|
OpenMAXBellagio 0.9.3
|
00001 00026 #include <string.h> 00027 #include <unistd.h> 00028 #include <omxcore.h> 00029 #include <OMX_Core.h> 00030 #include <OMX_Component.h> 00031 #include "omx_base_video_port.h" 00032 00049 OSCL_EXPORT_REF OMX_ERRORTYPE base_video_port_Constructor(OMX_COMPONENTTYPE *openmaxStandComp,omx_base_PortType **openmaxStandPort,OMX_U32 nPortIndex, OMX_BOOL isInput) { 00050 00051 omx_base_video_PortType *omx_base_video_Port; 00052 00053 if (!(*openmaxStandPort)) { 00054 *openmaxStandPort = calloc(1,sizeof (omx_base_video_PortType)); 00055 } 00056 00057 if (!(*openmaxStandPort)) { 00058 return OMX_ErrorInsufficientResources; 00059 } 00060 00061 base_port_Constructor(openmaxStandComp,openmaxStandPort,nPortIndex, isInput); 00062 00063 omx_base_video_Port = (omx_base_video_PortType *)*openmaxStandPort; 00064 00065 setHeader(&omx_base_video_Port->sVideoParam, sizeof(OMX_VIDEO_PARAM_PORTFORMATTYPE)); 00066 omx_base_video_Port->sVideoParam.nPortIndex = nPortIndex; 00067 omx_base_video_Port->sVideoParam.nIndex = 0; 00068 omx_base_video_Port->sVideoParam.eCompressionFormat = OMX_VIDEO_CodingUnused; 00069 omx_base_video_Port->sVideoParam.eColorFormat = OMX_COLOR_FormatUnused; 00070 omx_base_video_Port->sVideoParam.xFramerate = 15; 00071 00072 omx_base_video_Port->sPortParam.eDomain = OMX_PortDomainVideo; 00073 omx_base_video_Port->sPortParam.format.video.cMIMEType = malloc(DEFAULT_MIME_STRING_LENGTH); 00074 strcpy(omx_base_video_Port->sPortParam.format.video.cMIMEType, "raw/video"); 00075 omx_base_video_Port->sPortParam.format.video.pNativeRender = 0; 00076 omx_base_video_Port->sPortParam.format.video.bFlagErrorConcealment = OMX_FALSE; 00077 omx_base_video_Port->sPortParam.format.video.eCompressionFormat = OMX_VIDEO_CodingUnused; 00078 00079 omx_base_video_Port->sPortParam.format.video.nFrameWidth = 0; 00080 omx_base_video_Port->sPortParam.format.video.nFrameHeight= 0; 00081 omx_base_video_Port->sPortParam.format.video.nStride = 0; 00082 omx_base_video_Port->sPortParam.format.video.nSliceHeight = 0; 00083 omx_base_video_Port->sPortParam.format.video.nBitrate = 0; 00084 omx_base_video_Port->sPortParam.format.video.xFramerate = 15; 00085 omx_base_video_Port->sPortParam.format.video.eColorFormat = OMX_COLOR_FormatUnused; 00086 omx_base_video_Port->sPortParam.format.video.pNativeWindow = NULL; 00087 00088 00089 omx_base_video_Port->sPortParam.nBufferSize = (isInput == OMX_TRUE)?DEFAULT_IN_BUFFER_SIZE:MAX_VIDEO_OUTPUT_BUF_SIZE ; 00090 00091 omx_base_video_Port->PortDestructor = &base_video_port_Destructor; 00092 00093 return OMX_ErrorNone; 00094 } 00095 00108 OSCL_EXPORT_REF OMX_ERRORTYPE base_video_port_Destructor(omx_base_PortType *openmaxStandPort){ 00109 00110 if(openmaxStandPort->sPortParam.format.video.cMIMEType) { 00111 free(openmaxStandPort->sPortParam.format.video.cMIMEType); 00112 openmaxStandPort->sPortParam.format.video.cMIMEType = NULL; 00113 } 00114 00115 base_port_Destructor(openmaxStandPort); 00116 00117 return OMX_ErrorNone; 00118 }