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