138ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang/*
238ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang *
338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * Copyright 2012 Samsung Electronics S.LSI Co. LTD
438ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang *
538ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * Licensed under the Apache License, Version 2.0 (the "License");
638ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * you may not use this file except in compliance with the License.
738ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * You may obtain a copy of the License at
838ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang *
938ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang *      http://www.apache.org/licenses/LICENSE-2.0
1038ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang *
1138ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * Unless required by applicable law or agreed to in writing, software
1238ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * distributed under the License is distributed on an "AS IS" BASIS,
1338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1438ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * See the License for the specific language governing permissions and
1538ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * limitations under the License.
1638ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang */
1738ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang
1838ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang/*
1938ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * @file        Exynos_OMX_VdecControl.h
2038ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * @brief
2138ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * @author      SeungBeom Kim (sbcrux.kim@samsung.com)
2238ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * @version     2.0.0
2338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang * @history
2438ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang *   2012.02.20 : Create
2538ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang */
2638ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang
2738ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#ifndef EXYNOS_OMX_VIDEO_DECODECONTROL
2838ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#define EXYNOS_OMX_VIDEO_DECODECONTROL
2938ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang
3038ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#include "OMX_Component.h"
3138ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#include "Exynos_OMX_Def.h"
3238ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#include "Exynos_OSAL_Queue.h"
3338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#include "Exynos_OMX_Baseport.h"
3438ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#include "Exynos_OMX_Basecomponent.h"
3538ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang
3638ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang
3738ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#ifdef __cplusplus
3838ef2572d26fc760c584a1855a3d002f34eb0231Jiho Changextern "C" {
3938ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#endif
4038ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang
4138ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_OMX_UseBuffer(
4238ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_HANDLETYPE            hComponent,
4338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_INOUT OMX_BUFFERHEADERTYPE **ppBufferHdr,
4438ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_U32                   nPortIndex,
4538ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_PTR                   pAppPrivate,
4638ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_U32                   nSizeBytes,
4738ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_U8                   *pBuffer);
4838ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_OMX_AllocateBuffer(
4938ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_HANDLETYPE            hComponent,
5038ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_INOUT OMX_BUFFERHEADERTYPE **ppBuffer,
5138ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_U32                   nPortIndex,
5238ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_PTR                   pAppPrivate,
5338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_U32                   nSizeBytes);
5438ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_OMX_FreeBuffer(
5538ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_HANDLETYPE hComponent,
5638ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_U32        nPortIndex,
5738ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_BUFFERHEADERTYPE *pBufferHdr);
5838ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_OMX_AllocateTunnelBuffer(
5938ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    EXYNOS_OMX_BASEPORT *pOMXBasePort,
6038ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_U32           nPortIndex);
6138ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_OMX_FreeTunnelBuffer(
6238ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    EXYNOS_OMX_BASEPORT *pOMXBasePort,
6338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_U32           nPortIndex);
6438ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_OMX_ComponentTunnelRequest(
6538ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN  OMX_HANDLETYPE hComp,
6638ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_U32         nPort,
6738ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_HANDLETYPE  hTunneledComp,
6838ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_U32         nTunneledPort,
6938ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_INOUT OMX_TUNNELSETUPTYPE *pTunnelSetup);
7038ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_OMX_VideoDecodeGetParameter(
7138ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_HANDLETYPE hComponent,
7238ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_INDEXTYPE  nParamIndex,
7338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_INOUT OMX_PTR     ComponentParameterStructure);
7438ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_OMX_VideoDecodeSetParameter(
7538ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_HANDLETYPE hComponent,
7638ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_INDEXTYPE  nIndex,
7738ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_PTR        ComponentParameterStructure);
7838ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_OMX_VideoDecodeGetConfig(
7938ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_HANDLETYPE hComponent,
8038ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_INDEXTYPE nIndex,
8138ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_PTR pComponentConfigStructure);
8238ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_OMX_VideoDecodeSetConfig(
8338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_HANDLETYPE hComponent,
8438ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_INDEXTYPE nIndex,
8538ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_PTR pComponentConfigStructure);
8638ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_OMX_VideoDecodeGetExtensionIndex(
8738ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_HANDLETYPE  hComponent,
8838ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_IN OMX_STRING      cParameterName,
8938ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang    OMX_OUT OMX_INDEXTYPE *pIndexType);
9038ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_InputBufferReturn(OMX_COMPONENTTYPE *pOMXComponent);
9138ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_OutputBufferReturn(OMX_COMPONENTTYPE *pOMXComponent);
9238ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_OMX_BufferFlush(OMX_COMPONENTTYPE *pOMXComponent, OMX_S32 nPortIndex, OMX_BOOL bEvent);
9338ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_FlushInputBufferReturn(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX_DATABUFFER *dataBuffer);
9438ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_FlushOutputBufferReturn(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX_DATABUFFER *dataBuffer);
9538ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang
9638ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#ifdef USE_ANB
9738ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_Shared_ANBBufferToData(EXYNOS_OMX_DATABUFFER *pUseBuffer, EXYNOS_OMX_DATA *pData, EXYNOS_OMX_BASEPORT *pExynosPort, EXYNOS_OMX_PLANE nPlane);
9838ef2572d26fc760c584a1855a3d002f34eb0231Jiho ChangOMX_ERRORTYPE Exynos_Shared_DataToANBBuffer(EXYNOS_OMX_DATA *pData, EXYNOS_OMX_DATABUFFER *pUseBuffer, EXYNOS_OMX_BASEPORT *pExynosPort);
9938ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#endif
10038ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang
10138ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#ifdef __cplusplus
10238ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang}
10338ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#endif
10438ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang
10538ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang#endif
10638ef2572d26fc760c584a1855a3d002f34eb0231Jiho Chang
107