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;
48e260e4e60e5eeea869b690224848fe4cbb6b2e8aSeungBeom Kim    OMX_PTR pGrallocModule;
493b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim    EXYNOS_OMX_SHARED_BUFFER SharedBuffer[MAX_BUFFER_REF];
503b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim} EXYNOS_OMX_REF_HANDLE;
513b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim
523b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim
5320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifdef __cplusplus
5420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changextern "C" {
5520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif
5620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
57690c39906e5dab752a87ed741c94ae4b6fc6db20SeungBeom KimOMX_COLOR_FORMATTYPE Exynos_OSAL_GetANBColorFormat(OMX_IN OMX_U32 handle);
58690c39906e5dab752a87ed741c94ae4b6fc6db20SeungBeom Kim
593b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom KimOMX_U32 Exynos_OSAL_GetANBStride(OMX_IN OMX_U32 handle);
603b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim
6120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho ChangOMX_ERRORTYPE Exynos_OSAL_GetANBParameter(OMX_IN OMX_HANDLETYPE hComponent,
6220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang                                          OMX_IN OMX_INDEXTYPE nIndex,
6320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang                                          OMX_INOUT OMX_PTR ComponentParameterStructure);
6420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
6520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho ChangOMX_ERRORTYPE Exynos_OSAL_SetANBParameter(OMX_IN OMX_HANDLETYPE hComponent,
6620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang                                          OMX_IN OMX_INDEXTYPE nIndex,
6720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang                                          OMX_IN OMX_PTR ComponentParameterStructure);
6820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
693b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom KimOMX_ERRORTYPE Exynos_OSAL_LockMetaData(OMX_IN OMX_PTR pBuffer,
703b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim                                       OMX_IN OMX_U32 width,
713b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim                                       OMX_IN OMX_U32 height,
723b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim                                       OMX_IN OMX_COLOR_FORMATTYPE format,
733b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim                                       OMX_OUT OMX_U32 *pStride,
743b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim                                       OMX_OUT OMX_PTR planes);
753b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim
763b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom KimOMX_ERRORTYPE Exynos_OSAL_UnlockMetaData(OMX_IN OMX_PTR pBuffer);
773b1c2e30b8c73bb51c3e2c93504e3571ab851268SeungBeom Kim
7820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho ChangOMX_ERRORTYPE Exynos_OSAL_LockANBHandle(OMX_IN OMX_U32 pBuffer,
7920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang                                        OMX_IN OMX_U32 width,
8020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang                                        OMX_IN OMX_U32 height,
8120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang                                        OMX_IN OMX_COLOR_FORMATTYPE format,
821e339948fd5bcee9312ea3701e7b9ace092b37dbSeungBeom Kim                                        OMX_OUT OMX_U32 *pStride,
8301fa64f5f096690c95b2fd1d3a875d7a1aeefe53Dima Zavin                                        OMX_OUT OMX_PTR planes);
8420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
8520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho ChangOMX_ERRORTYPE Exynos_OSAL_UnlockANBHandle(OMX_IN OMX_U32 pBuffer);
8620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
8738ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_OSAL_GetInfoFromMetaData(OMX_IN OMX_BYTE pBuffer,
8820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang                                              OMX_OUT OMX_PTR *pOutBuffer);
8920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
9020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho ChangOMX_ERRORTYPE Exynos_OSAL_CheckANB(OMX_IN EXYNOS_OMX_DATA *pBuffer,
9120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang                                   OMX_OUT OMX_BOOL *bIsANBEnabled);
9220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
931021eb3052b6af322b604a07f3cafaf3d45e711fSeungBeom KimOMX_ERRORTYPE Exynos_OSAL_SetPrependSPSPPSToIDR(OMX_PTR pComponentParameterStructure,
941021eb3052b6af322b604a07f3cafaf3d45e711fSeungBeom Kim                                                OMX_PTR pbPrependSpsPpsToIdr);
9533d6044e338e2ea5c8580b6a52840808e459d998SeungBeom KimOMX_COLOR_FORMATTYPE Exynos_OSAL_Hal2OMXPixelFormat(unsigned int hal_format);
9633d6044e338e2ea5c8580b6a52840808e459d998SeungBeom Kim
9733d6044e338e2ea5c8580b6a52840808e459d998SeungBeom Kimunsigned int Exynos_OSAL_OMX2HalPixelFormat(OMX_COLOR_FORMATTYPE omx_format);
9833d6044e338e2ea5c8580b6a52840808e459d998SeungBeom Kim
9920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifdef __cplusplus
10020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang}
10120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif
10220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang
10320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif
104