OMX_ERRORTYPE base_image_port_Constructor(OMX_COMPONENTTYPE *openmaxStandComp,omx_base_PortType **openmaxStandPort,OMX_U32 nPortIndex, OMX_BOOL isInput) { omx_base_image_PortType *omx_base_image_Port; if (!(*openmaxStandPort)) { *openmaxStandPort = calloc(1,sizeof (omx_base_image_PortType)); } if (!(*openmaxStandPort)) { return OMX_ErrorInsufficientResources; } base_port_Constructor(openmaxStandComp,openmaxStandPort,nPortIndex, isInput); omx_base_image_Port = (omx_base_image_PortType *)*openmaxStandPort; setHeader(&omx_base_image_Port->sImageParam, sizeof(OMX_IMAGE_PARAM_PORTFORMATTYPE)); omx_base_image_Port->sImageParam.nPortIndex = nPortIndex; omx_base_image_Port->sImageParam.nIndex = 0; omx_base_image_Port->sImageParam.eCompressionFormat = OMX_IMAGE_CodingUnused; omx_base_image_Port->sPortParam.eDomain = OMX_PortDomainImage; omx_base_image_Port->sPortParam.format.image.cMIMEType = malloc(DEFAULT_MIME_STRING_LENGTH); strcpy(omx_base_image_Port->sPortParam.format.image.cMIMEType, "raw/image"); omx_base_image_Port->sPortParam.format.image.pNativeRender = 0; omx_base_image_Port->sPortParam.format.image.bFlagErrorConcealment = OMX_FALSE; omx_base_image_Port->sPortParam.format.image.eCompressionFormat = OMX_IMAGE_CodingUnused; omx_base_image_Port->sPortParam.nBufferSize = (isInput == OMX_TRUE)?DEFAULT_IN_BUFFER_SIZE:DEFAULT_OUT_BUFFER_SIZE ; omx_base_image_Port->PortDestructor = &base_image_port_Destructor; return OMX_ErrorNone; }
OMX_ERRORTYPE base_clock_port_Constructor(OMX_COMPONENTTYPE *openmaxStandComp,omx_base_PortType **openmaxStandPort,OMX_U32 nPortIndex, OMX_BOOL isInput) { omx_base_clock_PortType *omx_base_clock_Port; if (!(*openmaxStandPort)) { *openmaxStandPort = TCC_calloc(1,sizeof (omx_base_clock_PortType)); } if (!(*openmaxStandPort)) { return OMX_ErrorInsufficientResources; } base_port_Constructor(openmaxStandComp,openmaxStandPort,nPortIndex, isInput); omx_base_clock_Port = (omx_base_clock_PortType *)*openmaxStandPort; setHeader(&omx_base_clock_Port->sOtherParam, sizeof(OMX_OTHER_PARAM_PORTFORMATTYPE)); omx_base_clock_Port->sOtherParam.nPortIndex = nPortIndex; omx_base_clock_Port->sOtherParam.nIndex = 0; omx_base_clock_Port->sOtherParam.eFormat = OMX_OTHER_FormatTime; omx_base_clock_Port->sPortParam.eDomain = OMX_PortDomainOther; omx_base_clock_Port->sPortParam.format.other.eFormat = OMX_OTHER_FormatTime; omx_base_clock_Port->sPortParam.nBufferSize = sizeof(OMX_TIME_MEDIATIMETYPE) ; omx_base_clock_Port->sPortParam.nBufferCountActual = 1; omx_base_clock_Port->sPortParam.nBufferCountMin = 1; omx_base_clock_Port->sPortParam.format.other.eFormat = OMX_OTHER_FormatTime; setHeader(&omx_base_clock_Port->sTimeStamp, sizeof(OMX_TIME_CONFIG_TIMESTAMPTYPE)); omx_base_clock_Port->sTimeStamp.nPortIndex = nPortIndex; omx_base_clock_Port->sTimeStamp.nTimestamp = 0x00; setHeader(&omx_base_clock_Port->sMediaTime, sizeof(OMX_TIME_MEDIATIMETYPE)); omx_base_clock_Port->sMediaTime.nClientPrivate = 0; omx_base_clock_Port->sMediaTime.nOffset = 0x0; omx_base_clock_Port->sMediaTime.xScale = 1; setHeader(&omx_base_clock_Port->sMediaTimeRequest, sizeof(OMX_TIME_MEDIATIMETYPE)); omx_base_clock_Port->sMediaTimeRequest.nPortIndex = nPortIndex; omx_base_clock_Port->sMediaTimeRequest.pClientPrivate = NULL; omx_base_clock_Port->sMediaTimeRequest.nOffset = 0x0; omx_base_clock_Port->Port_SendBufferFunction = &base_clock_port_SendBufferFunction; omx_base_clock_Port->PortDestructor = &base_clock_port_Destructor; return OMX_ErrorNone; }
OMX_ERRORTYPE base_audio_port_Constructor(OMX_COMPONENTTYPE *openmaxStandComp,omx_base_PortType **openmaxStandPort,OMX_U32 nPortIndex, OMX_BOOL isInput) { OMX_ERRORTYPE err; omx_base_audio_PortType *omx_base_audio_Port; DEBUG(DEB_LEV_FUNCTION_NAME, "In %s of component %x\n", __func__, (int)openmaxStandComp); if (!(*openmaxStandPort)) { *openmaxStandPort = calloc(1, sizeof(omx_base_audio_PortType)); } if (!(*openmaxStandPort)) { return OMX_ErrorInsufficientResources; } err = base_port_Constructor(openmaxStandComp,openmaxStandPort,nPortIndex, isInput); if (err != OMX_ErrorNone) { DEBUG(DEB_LEV_ERR, "In %s base port constructor failed\n", __func__); return err; } omx_base_audio_Port = (omx_base_audio_PortType *)*openmaxStandPort; setHeader(&omx_base_audio_Port->sAudioParam, sizeof(OMX_AUDIO_PARAM_PORTFORMATTYPE)); omx_base_audio_Port->sAudioParam.nPortIndex = nPortIndex; omx_base_audio_Port->sAudioParam.nIndex = 0; omx_base_audio_Port->sAudioParam.eEncoding = OMX_AUDIO_CodingUnused; omx_base_audio_Port->sPortParam.eDomain = OMX_PortDomainAudio; omx_base_audio_Port->sPortParam.format.audio.cMIMEType = malloc(DEFAULT_MIME_STRING_LENGTH); if (!omx_base_audio_Port->sPortParam.format.audio.cMIMEType) { DEBUG(DEB_LEV_ERR, "Memory allocation failed in %s\n", __func__); return OMX_ErrorInsufficientResources; } strcpy(omx_base_audio_Port->sPortParam.format.audio.cMIMEType, "raw/audio"); omx_base_audio_Port->sPortParam.format.audio.pNativeRender = 0; omx_base_audio_Port->sPortParam.format.audio.bFlagErrorConcealment = OMX_FALSE; omx_base_audio_Port->sPortParam.format.audio.eEncoding = OMX_AUDIO_CodingUnused; omx_base_audio_Port->sPortParam.nBufferSize = (isInput == OMX_TRUE)?DEFAULT_IN_BUFFER_SIZE:DEFAULT_OUT_BUFFER_SIZE ; omx_base_audio_Port->PortDestructor = &base_audio_port_Destructor; DEBUG(DEB_LEV_FUNCTION_NAME, "Out of %s of component %x\n", __func__, (int)openmaxStandComp); return OMX_ErrorNone; }