1/*
2 *
3 * Copyright 2012 Samsung Electronics S.LSI Co. LTD
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 *      http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18/*
19 * @file        Exynos_OMX_VdecControl.h
20 * @brief
21 * @author      SeungBeom Kim (sbcrux.kim@samsung.com)
22 * @version     2.0.0
23 * @history
24 *   2012.02.20 : Create
25 */
26
27#ifndef EXYNOS_OMX_VIDEO_DECODECONTROL
28#define EXYNOS_OMX_VIDEO_DECODECONTROL
29
30#include "OMX_Component.h"
31#include "Exynos_OMX_Def.h"
32#include "Exynos_OSAL_Queue.h"
33#include "Exynos_OMX_Baseport.h"
34#include "Exynos_OMX_Basecomponent.h"
35
36
37#ifdef __cplusplus
38extern "C" {
39#endif
40
41OMX_ERRORTYPE Exynos_OMX_UseBuffer(
42    OMX_IN OMX_HANDLETYPE            hComponent,
43    OMX_INOUT OMX_BUFFERHEADERTYPE **ppBufferHdr,
44    OMX_IN OMX_U32                   nPortIndex,
45    OMX_IN OMX_PTR                   pAppPrivate,
46    OMX_IN OMX_U32                   nSizeBytes,
47    OMX_IN OMX_U8                   *pBuffer);
48OMX_ERRORTYPE Exynos_OMX_AllocateBuffer(
49    OMX_IN OMX_HANDLETYPE            hComponent,
50    OMX_INOUT OMX_BUFFERHEADERTYPE **ppBuffer,
51    OMX_IN OMX_U32                   nPortIndex,
52    OMX_IN OMX_PTR                   pAppPrivate,
53    OMX_IN OMX_U32                   nSizeBytes);
54OMX_ERRORTYPE Exynos_OMX_FreeBuffer(
55    OMX_IN OMX_HANDLETYPE hComponent,
56    OMX_IN OMX_U32        nPortIndex,
57    OMX_IN OMX_BUFFERHEADERTYPE *pBufferHdr);
58OMX_ERRORTYPE Exynos_OMX_AllocateTunnelBuffer(
59    EXYNOS_OMX_BASEPORT *pOMXBasePort,
60    OMX_U32           nPortIndex);
61OMX_ERRORTYPE Exynos_OMX_FreeTunnelBuffer(
62    EXYNOS_OMX_BASEPORT *pOMXBasePort,
63    OMX_U32           nPortIndex);
64OMX_ERRORTYPE Exynos_OMX_ComponentTunnelRequest(
65    OMX_IN  OMX_HANDLETYPE hComp,
66    OMX_IN OMX_U32         nPort,
67    OMX_IN OMX_HANDLETYPE  hTunneledComp,
68    OMX_IN OMX_U32         nTunneledPort,
69    OMX_INOUT OMX_TUNNELSETUPTYPE *pTunnelSetup);
70OMX_ERRORTYPE Exynos_OMX_VideoDecodeGetParameter(
71    OMX_IN OMX_HANDLETYPE hComponent,
72    OMX_IN OMX_INDEXTYPE  nParamIndex,
73    OMX_INOUT OMX_PTR     ComponentParameterStructure);
74OMX_ERRORTYPE Exynos_OMX_VideoDecodeSetParameter(
75    OMX_IN OMX_HANDLETYPE hComponent,
76    OMX_IN OMX_INDEXTYPE  nIndex,
77    OMX_IN OMX_PTR        ComponentParameterStructure);
78OMX_ERRORTYPE Exynos_OMX_VideoDecodeGetConfig(
79    OMX_HANDLETYPE hComponent,
80    OMX_INDEXTYPE nIndex,
81    OMX_PTR pComponentConfigStructure);
82OMX_ERRORTYPE Exynos_OMX_VideoDecodeSetConfig(
83    OMX_HANDLETYPE hComponent,
84    OMX_INDEXTYPE nIndex,
85    OMX_PTR pComponentConfigStructure);
86OMX_ERRORTYPE Exynos_OMX_VideoDecodeGetExtensionIndex(
87    OMX_IN OMX_HANDLETYPE  hComponent,
88    OMX_IN OMX_STRING      cParameterName,
89    OMX_OUT OMX_INDEXTYPE *pIndexType);
90OMX_ERRORTYPE Exynos_InputBufferReturn(OMX_COMPONENTTYPE *pOMXComponent);
91OMX_ERRORTYPE Exynos_OutputBufferReturn(OMX_COMPONENTTYPE *pOMXComponent);
92OMX_ERRORTYPE Exynos_OMX_BufferFlush(OMX_COMPONENTTYPE *pOMXComponent, OMX_S32 nPortIndex, OMX_BOOL bEvent);
93OMX_ERRORTYPE Exynos_FlushInputBufferReturn(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX_DATABUFFER *dataBuffer);
94OMX_ERRORTYPE Exynos_FlushOutputBufferReturn(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX_DATABUFFER *dataBuffer);
95
96#ifdef USE_ANB
97OMX_ERRORTYPE Exynos_Shared_ANBBufferToData(EXYNOS_OMX_DATABUFFER *pUseBuffer, EXYNOS_OMX_DATA *pData, EXYNOS_OMX_BASEPORT *pExynosPort, EXYNOS_OMX_PLANE nPlane);
98OMX_ERRORTYPE Exynos_Shared_DataToANBBuffer(EXYNOS_OMX_DATA *pData, EXYNOS_OMX_DATABUFFER *pUseBuffer, EXYNOS_OMX_BASEPORT *pExynosPort);
99#endif
100
101#ifdef __cplusplus
102}
103#endif
104
105#endif
106
107