120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/* 238ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * Copyright 2012 Samsung Electronics S.LSI Co. LTD 320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Licensed under the Apache License, Version 2.0 (the "License"); 520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * you may not use this file except in compliance with the License. 620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * You may obtain a copy of the License at 720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * http://www.apache.org/licenses/LICENSE-2.0 920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 1020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Unless required by applicable law or agreed to in writing, software 1120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * distributed under the License is distributed on an "AS IS" BASIS, 1220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * See the License for the specific language governing permissions and 1420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * limitations under the License. 1520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 1620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 1720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/* 1820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @file Exynos_OSAL_Android.h 1920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @brief 2020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @author Seungbeom Kim (sbcrux.kim@samsung.com) 2120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @author Hyeyeon Chung (hyeon.chung@samsung.com) 2220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @author Yunji Kim (yunji.kim@samsung.com) 2320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @author Jinsung Yang (jsgood.yang@samsung.com) 2438ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * @version 2.0.0 2520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @history 2638ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * 2012.02.20 : Create 2720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 2820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 2920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifndef Exynos_OSAL_ANDROID 3020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define Exynos_OSAL_ANDROID 3120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include "OMX_Types.h" 3320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include "OMX_Core.h" 3420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include "OMX_Index.h" 3520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 363b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kimtypedef struct _EXYNOS_OMX_SHARED_BUFFER { 373b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim OMX_S32 BufferFd; 383b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim OMX_S32 BufferFd1; 393b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim OMX_S32 BufferFd2; 403b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim unsigned long *pIonHandle; 413b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim unsigned long *pIonHandle1; 423b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim unsigned long *pIonHandle2; 433b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim OMX_U32 cnt; 443b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim} EXYNOS_OMX_SHARED_BUFFER; 453b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim 463b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kimtypedef struct _EXYNOS_OMX_REF_HANDLE { 473b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim OMX_HANDLETYPE hMutex; 483b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim EXYNOS_OMX_SHARED_BUFFER SharedBuffer[MAX_BUFFER_REF]; 493b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim} EXYNOS_OMX_REF_HANDLE; 503b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim 513b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim 5220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifdef __cplusplus 5320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changextern "C" { 5420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif 5520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 56690c39906e5dab752a87ed741c94ae4b6fc6db20SeungBeom KimOMX_COLOR_FORMATTYPE Exynos_OSAL_GetANBColorFormat(OMX_IN OMX_U32 handle); 57690c39906e5dab752a87ed741c94ae4b6fc6db20SeungBeom Kim 583b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom KimOMX_U32 Exynos_OSAL_GetANBStride(OMX_IN OMX_U32 handle); 593b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim 6020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho ChangOMX_ERRORTYPE Exynos_OSAL_GetANBParameter(OMX_IN OMX_HANDLETYPE hComponent, 6120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_INDEXTYPE nIndex, 6220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_INOUT OMX_PTR ComponentParameterStructure); 6320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 6420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho ChangOMX_ERRORTYPE Exynos_OSAL_SetANBParameter(OMX_IN OMX_HANDLETYPE hComponent, 6520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_INDEXTYPE nIndex, 6620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_PTR ComponentParameterStructure); 6720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 6820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho ChangOMX_ERRORTYPE Exynos_OSAL_LockANB(OMX_IN OMX_PTR pBuffer, 6920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_U32 width, 7020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_U32 height, 7120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_COLOR_FORMATTYPE format, 7220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_OUT OMX_U32 *pStride, 7301fa64f5f096690c95b2fd1d3a875d7a1aeefe53Dima Zavin OMX_OUT OMX_PTR planes); 7420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 7520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho ChangOMX_ERRORTYPE Exynos_OSAL_UnlockANB(OMX_IN OMX_PTR pBuffer); 7620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 773b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom KimOMX_ERRORTYPE Exynos_OSAL_LockMetaData(OMX_IN OMX_PTR pBuffer, 783b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim OMX_IN OMX_U32 width, 793b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim OMX_IN OMX_U32 height, 803b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim OMX_IN OMX_COLOR_FORMATTYPE format, 813b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim OMX_OUT OMX_U32 *pStride, 823b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim OMX_OUT OMX_PTR planes); 833b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim 843b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom KimOMX_ERRORTYPE Exynos_OSAL_UnlockMetaData(OMX_IN OMX_PTR pBuffer); 853b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim 8620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho ChangOMX_ERRORTYPE Exynos_OSAL_LockANBHandle(OMX_IN OMX_U32 pBuffer, 8720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_U32 width, 8820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_U32 height, 8920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IN OMX_COLOR_FORMATTYPE format, 9001fa64f5f096690c95b2fd1d3a875d7a1aeefe53Dima Zavin OMX_OUT OMX_PTR planes); 9120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 9220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho ChangOMX_ERRORTYPE Exynos_OSAL_UnlockANBHandle(OMX_IN OMX_U32 pBuffer); 9320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 9438ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_OSAL_GetInfoFromMetaData(OMX_IN OMX_BYTE pBuffer, 9520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_OUT OMX_PTR *pOutBuffer); 9620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 9720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho ChangOMX_ERRORTYPE Exynos_OSAL_CheckANB(OMX_IN EXYNOS_OMX_DATA *pBuffer, 9820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_OUT OMX_BOOL *bIsANBEnabled); 9920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 1001021eb3052b6af322b604a07f3cafaf3d45e711fSeungBeom KimOMX_ERRORTYPE Exynos_OSAL_SetPrependSPSPPSToIDR(OMX_PTR pComponentParameterStructure, 1011021eb3052b6af322b604a07f3cafaf3d45e711fSeungBeom Kim OMX_PTR pbPrependSpsPpsToIdr); 10233d6044e338e2ea5c8580b6a52840808e459d998SeungBeom KimOMX_COLOR_FORMATTYPE Exynos_OSAL_Hal2OMXPixelFormat(unsigned int hal_format); 10333d6044e338e2ea5c8580b6a52840808e459d998SeungBeom Kim 10433d6044e338e2ea5c8580b6a52840808e459d998SeungBeom Kimunsigned int Exynos_OSAL_OMX2HalPixelFormat(OMX_COLOR_FORMATTYPE omx_format); 10533d6044e338e2ea5c8580b6a52840808e459d998SeungBeom Kim 10620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifdef __cplusplus 10720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} 10820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif 10920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 11020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif 111