Initial version of libomxil-e3250-v4l2
[platform/adaptation/ap_samsung/libomxil-e3250-v4l2.git] / openmax / component / video / dec / Exynos_OMX_VdecControl.h
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
38 extern "C" {
39 #endif
40
41 OMX_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);
48 OMX_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);
54 OMX_ERRORTYPE Exynos_OMX_FreeBuffer(
55     OMX_IN OMX_HANDLETYPE hComponent,
56     OMX_IN OMX_U32        nPortIndex,
57     OMX_IN OMX_BUFFERHEADERTYPE *pBufferHdr);
58 OMX_ERRORTYPE Exynos_OMX_AllocateTunnelBuffer(
59     EXYNOS_OMX_BASEPORT *pOMXBasePort,
60     OMX_U32           nPortIndex);
61 OMX_ERRORTYPE Exynos_OMX_FreeTunnelBuffer(
62     EXYNOS_OMX_BASEPORT *pOMXBasePort,
63     OMX_U32           nPortIndex);
64 OMX_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);
70 OMX_ERRORTYPE Exynos_OMX_VideoDecodeGetParameter(
71     OMX_IN OMX_HANDLETYPE hComponent,
72     OMX_IN OMX_INDEXTYPE  nParamIndex,
73     OMX_INOUT OMX_PTR     ComponentParameterStructure);
74 OMX_ERRORTYPE Exynos_OMX_VideoDecodeSetParameter(
75     OMX_IN OMX_HANDLETYPE hComponent,
76     OMX_IN OMX_INDEXTYPE  nIndex,
77     OMX_IN OMX_PTR        ComponentParameterStructure);
78 OMX_ERRORTYPE Exynos_OMX_VideoDecodeGetConfig(
79     OMX_HANDLETYPE hComponent,
80     OMX_INDEXTYPE nIndex,
81     OMX_PTR pComponentConfigStructure);
82 OMX_ERRORTYPE Exynos_OMX_VideoDecodeSetConfig(
83     OMX_HANDLETYPE hComponent,
84     OMX_INDEXTYPE nIndex,
85     OMX_PTR pComponentConfigStructure);
86 OMX_ERRORTYPE Exynos_OMX_VideoDecodeGetExtensionIndex(
87     OMX_IN OMX_HANDLETYPE  hComponent,
88     OMX_IN OMX_STRING      cParameterName,
89     OMX_OUT OMX_INDEXTYPE *pIndexType);
90 OMX_ERRORTYPE Exynos_InputBufferReturn(OMX_COMPONENTTYPE *pOMXComponent);
91 OMX_ERRORTYPE Exynos_OutputBufferReturn(OMX_COMPONENTTYPE *pOMXComponent);
92 OMX_ERRORTYPE Exynos_OMX_BufferFlush(OMX_COMPONENTTYPE *pOMXComponent, OMX_S32 nPortIndex, OMX_BOOL bEvent);
93 OMX_ERRORTYPE Exynos_FlushInputBufferReturn(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX_DATABUFFER *dataBuffer);
94 OMX_ERRORTYPE Exynos_FlushOutputBufferReturn(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX_DATABUFFER *dataBuffer);
95
96 #ifdef USE_PB
97 OMX_ERRORTYPE Exynos_Shared_PlatformBufferToData(EXYNOS_OMX_DATABUFFER *pUseBuffer, EXYNOS_OMX_DATA *pData, EXYNOS_OMX_BASEPORT *pExynosPort, EXYNOS_OMX_PLANE nPlane);
98 #ifdef SLP_PLATFORM
99 OMX_ERRORTYPE Exynos_Shared_DataToPlatformBuffer(EXYNOS_OMX_DATA *pData, EXYNOS_OMX_DATABUFFER *pUseBuffer, EXYNOS_OMX_BASEPORT *pExynosPort,EXYNOS_OMX_BASEPORT *pExynosInPort);
100 #else
101 OMX_ERRORTYPE Exynos_Shared_DataToPlatformBuffer(EXYNOS_OMX_DATA *pData, EXYNOS_OMX_DATABUFFER *pUseBuffer, EXYNOS_OMX_BASEPORT *pExynosPort);
102 #endif
103 #endif
104
105 #ifdef __cplusplus
106 }
107 #endif
108
109 #endif
110