OpenMAXBellagio 0.9.3
omx_base_video_port.c
Go to the documentation of this file.
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 }