00001 00029 #include <stdlib.h> 00030 #include <string.h> 00031 #include <unistd.h> 00032 #include <omxcore.h> 00033 #include <OMX_Core.h> 00034 #include <OMX_Component.h> 00035 00036 #include "omx_base_component.h" 00037 #include "omx_base_audio_port.h" 00038 00055 OMX_ERRORTYPE base_audio_port_Constructor(OMX_COMPONENTTYPE *openmaxStandComp,omx_base_PortType **openmaxStandPort,OMX_U32 nPortIndex, OMX_BOOL isInput) { 00056 00057 omx_base_audio_PortType *omx_base_audio_Port; 00058 00059 if (!(*openmaxStandPort)) { 00060 *openmaxStandPort = calloc(1,sizeof (omx_base_audio_PortType)); 00061 } 00062 00063 if (!(*openmaxStandPort)) { 00064 return OMX_ErrorInsufficientResources; 00065 } 00066 00067 base_port_Constructor(openmaxStandComp,openmaxStandPort,nPortIndex, isInput); 00068 00069 omx_base_audio_Port = (omx_base_audio_PortType *)*openmaxStandPort; 00070 00071 setHeader(&omx_base_audio_Port->sAudioParam, sizeof(OMX_AUDIO_PARAM_PORTFORMATTYPE)); 00072 omx_base_audio_Port->sAudioParam.nPortIndex = nPortIndex; 00073 omx_base_audio_Port->sAudioParam.nIndex = 0; 00074 omx_base_audio_Port->sAudioParam.eEncoding = OMX_AUDIO_CodingUnused; 00075 00076 omx_base_audio_Port->sPortParam.eDomain = OMX_PortDomainAudio; 00077 omx_base_audio_Port->sPortParam.format.audio.cMIMEType = malloc(DEFAULT_MIME_STRING_LENGTH); 00078 strcpy(omx_base_audio_Port->sPortParam.format.audio.cMIMEType, "raw/audio"); 00079 omx_base_audio_Port->sPortParam.format.audio.pNativeRender = 0; 00080 omx_base_audio_Port->sPortParam.format.audio.bFlagErrorConcealment = OMX_FALSE; 00081 omx_base_audio_Port->sPortParam.format.audio.eEncoding = OMX_AUDIO_CodingUnused; 00082 00083 omx_base_audio_Port->sPortParam.nBufferSize = (isInput == OMX_TRUE)?DEFAULT_IN_BUFFER_SIZE:DEFAULT_OUT_BUFFER_SIZE ; 00084 00085 omx_base_audio_Port->PortDestructor = &base_audio_port_Destructor; 00086 00087 return OMX_ErrorNone; 00088 } 00089 00102 OMX_ERRORTYPE base_audio_port_Destructor(omx_base_PortType *openmaxStandPort){ 00103 00104 if(openmaxStandPort->sPortParam.format.audio.cMIMEType) { 00105 free(openmaxStandPort->sPortParam.format.audio.cMIMEType); 00106 openmaxStandPort->sPortParam.format.audio.cMIMEType = NULL; 00107 } 00108 00109 base_port_Destructor(openmaxStandPort); 00110 00111 return OMX_ErrorNone; 00112 }