static OMX_ERRORTYPE ComponentPrivateDeInit(OMX_IN OMX_HANDLETYPE hComponent) { OMX_ERRORTYPE eError = OMX_ErrorNone; TIMM_OSAL_ERRORTYPE eOsalError = TIMM_OSAL_ERR_NONE; if (dcc_flag) { eOsalError = TIMM_OSAL_MutexObtain(cam_mutex, TIMM_OSAL_SUSPEND); if (eOsalError != TIMM_OSAL_ERR_NONE) { TIMM_OSAL_Error("Mutex Obtain failed"); } numofInstance = numofInstance - 1; eOsalError = TIMM_OSAL_MutexRelease(cam_mutex); PROXY_assert(eOsalError == TIMM_OSAL_ERR_NONE, OMX_ErrorInsufficientResources, "Mutex release failed"); } eError = PROXY_ComponentDeInit(hComponent); EXIT: return eError; }
static OMX_ERRORTYPE ComponentPrivateDeInit(OMX_IN OMX_HANDLETYPE hComponent) { OMX_ERRORTYPE eError = OMX_ErrorNone, eCompReturn = OMX_ErrorNone; TIMM_OSAL_ERRORTYPE eOsalError = TIMM_OSAL_ERR_NONE; PROXY_COMPONENT_PRIVATE *pCompPrv; OMX_COMPONENTTYPE *hComp = (OMX_COMPONENTTYPE *) hComponent; OMX_U32 i, j; OMX_PROXY_CAM_PRIVATE* pCamPrv; MEMPLUGIN_BUFFER_PARAMS delBuffer_params; MEMPLUGIN_BUFFER_PROPERTIES delBuffer_prop; RPC_OMX_ERRORTYPE eRPCError = RPC_OMX_ErrorNone; MEMPLUGIN_BUFFER_PARAMS_INIT(delBuffer_params); pCompPrv = (PROXY_COMPONENT_PRIVATE *) hComp->pComponentPrivate; if (dcc_flag) { eOsalError = TIMM_OSAL_MutexObtain(cam_mutex, TIMM_OSAL_SUSPEND); if (eOsalError != TIMM_OSAL_ERR_NONE) { TIMM_OSAL_Error("Mutex Obtain failed"); } numofInstance = numofInstance - 1; eOsalError = TIMM_OSAL_MutexRelease(cam_mutex); PROXY_assert(eOsalError == TIMM_OSAL_ERR_NONE, OMX_ErrorInsufficientResources, "Mutex release failed"); } OMX_CameraVtcFreeMemory(hComponent); if(pCompPrv->pCompProxyPrv != NULL) { pCamPrv = (OMX_PROXY_CAM_PRIVATE*)pCompPrv->pCompProxyPrv; for (i = 0; i < PROXY_MAXNUMOFPORTS; i++) { for (j = 0; j < MAX_NUM_INTERNAL_BUFFERS; j++) { if (pCamPrv->gComponentBufferAllocation[i][j]) { delBuffer_prop.sBuffer_accessor.pBufferHandle = pCamPrv->gComponentBufferAllocation[i][j]; MemPlugin_Free(pCompPrv->pMemPluginHandle,pCompPrv->nMemmgrClientDesc,&delBuffer_params,&delBuffer_prop); } pCamPrv->gComponentBufferAllocation[i][j] = NULL; } } TIMM_OSAL_Free(pCompPrv->pCompProxyPrv); pCompPrv->pCompProxyPrv = NULL; pCamPrv = NULL; } eError = PROXY_ComponentDeInit(hComponent); EXIT: return eError; }