/** The destructor */ OMX_ERRORTYPE omx_amr_audiodec_component_Destructor(OMX_COMPONENTTYPE *openmaxStandComp) { omx_amr_audiodec_component_PrivateType* omx_amr_audiodec_component_Private = openmaxStandComp->pComponentPrivate; OMX_U32 i; if(omx_amr_audiodec_component_Private->extradata) { free(omx_amr_audiodec_component_Private->extradata); } /*Free Codec Context*/ av_free (omx_amr_audiodec_component_Private->avCodecContext); /* frees port/s */ if (omx_amr_audiodec_component_Private->ports) { for (i=0; i < omx_amr_audiodec_component_Private->sPortTypesParam[OMX_PortDomainAudio].nPorts; i++) { if(omx_amr_audiodec_component_Private->ports[i]) omx_amr_audiodec_component_Private->ports[i]->PortDestructor(omx_amr_audiodec_component_Private->ports[i]); } free(omx_amr_audiodec_component_Private->ports); omx_amr_audiodec_component_Private->ports=NULL; } DEBUG(DEB_LEV_FUNCTION_NAME, "Destructor of amr_audiodecoder component is called\n"); omx_base_filter_Destructor(openmaxStandComp); noAudioDecInstance--; return OMX_ErrorNone; }
/** The destructor of the video decoder component */ OMX_ERRORTYPE omx_shvpudec_component_Destructor(OMX_COMPONENTTYPE *openmaxStandComp) { omx_shvpudec_component_PrivateType* omx_shvpudec_component_Private = openmaxStandComp->pComponentPrivate; OMX_U32 i; #if 0 if(omx_shvpudec_component_Private->extradata) { free(omx_shvpudec_component_Private->extradata); omx_shvpudec_component_Private->extradata=NULL; } #endif if(omx_shvpudec_component_Private->avCodecSyncSem) { tsem_deinit(omx_shvpudec_component_Private->avCodecSyncSem); free(omx_shvpudec_component_Private->avCodecSyncSem); omx_shvpudec_component_Private->avCodecSyncSem = NULL; } /* frees port/s */ if (omx_shvpudec_component_Private->ports) { for (i=0; i < omx_shvpudec_component_Private->sPortTypesParam[OMX_PortDomainVideo].nPorts; i++) { if(omx_shvpudec_component_Private->ports[i]) omx_shvpudec_component_Private->ports[i]->PortDestructor(omx_shvpudec_component_Private->ports[i]); } free(omx_shvpudec_component_Private->ports); omx_shvpudec_component_Private->ports=NULL; } DEBUG(DEB_LEV_FUNCTION_NAME, "Destructor of video decoder component is called\n"); omx_base_filter_Destructor(openmaxStandComp); noVideoDecInstance--; return OMX_ErrorNone; }
/** The destructor */ OMX_ERRORTYPE omx_jpegdec_component_Destructor(OMX_COMPONENTTYPE *openmaxStandComp) { omx_jpegdec_component_PrivateType* omx_jpegdec_component_Private = openmaxStandComp->pComponentPrivate; OMX_U32 i; if(omx_jpegdec_component_Private->jpegdecSyncSem) { tsem_deinit(omx_jpegdec_component_Private->jpegdecSyncSem); free(omx_jpegdec_component_Private->jpegdecSyncSem); omx_jpegdec_component_Private->jpegdecSyncSem = NULL; } if(omx_jpegdec_component_Private->jpegdecSyncSem1) { tsem_deinit(omx_jpegdec_component_Private->jpegdecSyncSem1); free(omx_jpegdec_component_Private->jpegdecSyncSem1); omx_jpegdec_component_Private->jpegdecSyncSem1 = NULL; } /* frees port/s */ if (omx_jpegdec_component_Private->ports) { for (i=0; i < omx_jpegdec_component_Private->sPortTypesParam[OMX_PortDomainImage].nPorts; i++) { if(omx_jpegdec_component_Private->ports[i]) { omx_jpegdec_component_Private->ports[i]->PortDestructor(omx_jpegdec_component_Private->ports[i]); } } free(omx_jpegdec_component_Private->ports); omx_jpegdec_component_Private->ports=NULL; } DEBUG(DEB_LEV_FUNCTION_NAME, "Destructor of mad decoder component is called\n"); omx_base_filter_Destructor(openmaxStandComp); // nojpegdecInstance--; return OMX_ErrorNone; }
/** The destructor */ OMX_ERRORTYPE omx_video_scheduler_component_Destructor(OMX_COMPONENTTYPE *openmaxStandComp) { omx_video_scheduler_component_PrivateType* omx_video_scheduler_component_Private = openmaxStandComp->pComponentPrivate; OMX_U32 i; DEBUG(DEB_LEV_FUNCTION_NAME, "Destructor of video scheduler component is called\n"); /* frees port/s */ if (omx_video_scheduler_component_Private->ports) { for(i=0; i < (omx_video_scheduler_component_Private->sPortTypesParam[OMX_PortDomainVideo].nPorts + omx_video_scheduler_component_Private->sPortTypesParam[OMX_PortDomainOther].nPorts); i++) { if(omx_video_scheduler_component_Private->ports[i]) omx_video_scheduler_component_Private->ports[i]->PortDestructor(omx_video_scheduler_component_Private->ports[i]); } free(omx_video_scheduler_component_Private->ports); omx_video_scheduler_component_Private->ports=NULL; } omx_base_filter_Destructor(openmaxStandComp); return OMX_ErrorNone; }
/*************************************************************************** * Function : omx_ImageDecoderJpeg_Destructor * * Description : Destruct the Jpeg Decoder Component.This function free the input and * output ports then destruct the compenent. * * Params : * * Name Type In/Out Description * openmaxStandComp OMX_COMPONENTTYPE* In/Out Openmax Standard Component structure * * Return: * * Note: * * Revision: * * Author Date Version Description * yuyiwei 2008.10.9 1.0.0 * ***************************************************************************/ OMX_ERRORTYPE omx_ImageDecoderJpeg_Destructor(OMX_COMPONENTTYPE *openmaxStandComp) { omx_jpegdec_component_PrivateType *omx_jpegdec_component_Private = openmaxStandComp->pComponentPrivate; omx_jpegdec_component_PortType *pPort; OMX_U32 i; /* frees port/s */ if (omx_jpegdec_component_Private->sPortTypesParam.nPorts && omx_jpegdec_component_Private->ports) { for (i = 0; i < omx_jpegdec_component_Private->sPortTypesParam.nPorts; i++) { pPort = (omx_jpegdec_component_PortType*)omx_jpegdec_component_Private->ports[i]; if (pPort->sPortParam.format.image.cMIMEType != NULL) { omx_free(pPort->sPortParam.format.image.cMIMEType); pPort->sPortParam.format.image.cMIMEType = NULL; } } } /** deinitialise the semaphore used for jpeg encoder access synchronization */ if (omx_jpegdec_component_Private->JpegSyncSem) { omx_sem_deinit(omx_jpegdec_component_Private->JpegSyncSem); omx_free(omx_jpegdec_component_Private->JpegSyncSem); omx_jpegdec_component_Private->JpegSyncSem = NULL; } DEBUG(DEB_LEV_FUNCTION_NAME, "Destructor of jpeg decoder component is called\n"); /** component destruct */ omx_base_filter_Destructor(openmaxStandComp); nojpegdecInstance--; return OMX_ErrorNone; }
/** The destructor */ OMX_ERRORTYPE omx_audio_decoder_component_Destructor( OMX_COMPONENTTYPE *pComponent) { omx_audio_decoder_component_PrivateType* pPrivate = pComponent->pComponentPrivate; OMX_U32 i; DEBUG(DEB_LEV_FUNCTION_NAME, "Destructor of audiodecoder component is called\n"); /* frees port/s */ if (pPrivate->ports) { for (i=0; i < pPrivate->sPortTypesParam[OMX_PortDomainAudio].nPorts; i++) { if(pPrivate->ports[i]) pPrivate->ports[i]->PortDestructor(pPrivate->ports[i]); } free(pPrivate->ports); pPrivate->ports=NULL; } omx_base_filter_Destructor(pComponent); noAudioSplitterCompInstance--; return OMX_ErrorNone; }