OMX_API OMX_ERRORTYPE OMX_APIENTRY Exynos_OMX_Init(void) { OMX_ERRORTYPE ret = OMX_ErrorNone; FunctionIn(); if (gInitialized == 0) { if (Exynos_OMX_Component_Register(&gComponentList, &gComponentNum)) { ret = OMX_ErrorInsufficientResources; Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Exynos_OMX_Init : %s", "OMX_ErrorInsufficientResources"); goto EXIT; } ret = Exynos_OMX_ResourceManager_Init(); if (OMX_ErrorNone != ret) { Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Exynos_OMX_Init : Exynos_OMX_ResourceManager_Init failed"); goto EXIT; } ret = Exynos_OSAL_MutexCreate(&ghLoadComponentListMutex); if (OMX_ErrorNone != ret) { Exynos_OSAL_Log(EXYNOS_LOG_ERROR, "Exynos_OMX_Init : Exynos_OSAL_MutexCreate(&ghLoadComponentListMutex) failed"); goto EXIT; } gInitialized = 1; Exynos_OSAL_Log(EXYNOS_LOG_TRACE, "Exynos_OMX_Init : %s", "OMX_ErrorNone"); } EXIT: FunctionOut(); return ret; }
OMX_ERRORTYPE Exynos_OMX_ResourceManager_Init() { OMX_ERRORTYPE ret = OMX_ErrorNone; FunctionIn(); ret = Exynos_OSAL_MutexCreate(&ghVideoRMComponentListMutex); FunctionOut(); return ret; }
OMX_ERRORTYPE Exynos_OMX_ResourceManager_Init() { OMX_ERRORTYPE ret = OMX_ErrorNone; FunctionIn(); ret = Exynos_OSAL_MutexCreate(&ghVideoRMComponentListMutex); if (ret == OMX_ErrorNone) { Exynos_OSAL_MutexLock(ghVideoRMComponentListMutex); Exynos_OSAL_Memset(gpRMList, NULL, (sizeof(EXYNOS_OMX_RM_COMPONENT_LIST*) * RESOURCE_MAX)); Exynos_OSAL_Memset(gpRMWaitList, NULL, (sizeof(EXYNOS_OMX_RM_COMPONENT_LIST*) * RESOURCE_MAX)); Exynos_OSAL_MutexUnlock(ghVideoRMComponentListMutex); } FunctionOut(); return ret; }