venc: added UnlockANBHandle in video encode component.
[GitHub/LineageOS/android_hardware_samsung_slsi_openmax.git] / component / video / enc / Exynos_OMX_VencControl.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_VencControl.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_ENCODECONTROL
28 #define EXYNOS_OMX_VIDEO_ENCODECONTROL
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_VideoEncodeGetParameter(
71 OMX_IN OMX_HANDLETYPE hComponent,
72 OMX_IN OMX_INDEXTYPE nParamIndex,
73 OMX_INOUT OMX_PTR pComponentParameterStructure);
74 OMX_ERRORTYPE Exynos_OMX_VideoEncodeSetParameter(
75 OMX_IN OMX_HANDLETYPE hComponent,
76 OMX_IN OMX_INDEXTYPE nIndex,
77 OMX_IN OMX_PTR pComponentParameterStructure);
78 OMX_ERRORTYPE Exynos_OMX_VideoEncodeGetConfig(
79 OMX_HANDLETYPE hComponent,
80 OMX_INDEXTYPE nIndex,
81 OMX_PTR pComponentConfigStructure);
82 OMX_ERRORTYPE Exynos_OMX_VideoEncodeSetConfig(
83 OMX_HANDLETYPE hComponent,
84 OMX_INDEXTYPE nIndex,
85 OMX_PTR pComponentConfigStructure);
86 OMX_ERRORTYPE Exynos_OMX_VideoEncodeGetExtensionIndex(
87 OMX_IN OMX_HANDLETYPE hComponent,
88 OMX_IN OMX_STRING szParameterName,
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 *pDataBuffer);
94 OMX_ERRORTYPE Exynos_FlushOutputBufferReturn(OMX_COMPONENTTYPE *pOMXComponent, EXYNOS_OMX_DATABUFFER *pDataBuffer);
95 OMX_ERRORTYPE Exynos_Shared_DataToBuffer(EXYNOS_OMX_DATA *pData, EXYNOS_OMX_DATABUFFER *pUseBuffer, OMX_BOOL bNeedUnlock);
96
97 #ifdef __cplusplus
98 }
99 #endif
100
101 #endif
102