3 * Copyright 2012 Samsung Electronics S.LSI Co. LTD
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
9 * http://www.apache.org/licenses/LICENSE-2.0
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.
19 * @file Exynos_OMX_VencControl.h
21 * @author SeungBeom Kim (sbcrux.kim@samsung.com)
27 #ifndef EXYNOS_OMX_VIDEO_ENCODECONTROL
28 #define EXYNOS_OMX_VIDEO_ENCODECONTROL
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"
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
,
61 OMX_ERRORTYPE
Exynos_OMX_FreeTunnelBuffer(
62 EXYNOS_OMX_BASEPORT
*pOMXBasePort
,
64 OMX_ERRORTYPE
Exynos_OMX_ComponentTunnelRequest(
65 OMX_IN OMX_HANDLETYPE hComp
,
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 ComponentParameterStructure
);
74 OMX_ERRORTYPE
Exynos_OMX_VideoEncodeSetParameter(
75 OMX_IN OMX_HANDLETYPE hComponent
,
76 OMX_IN OMX_INDEXTYPE nIndex
,
77 OMX_IN OMX_PTR ComponentParameterStructure
);
78 OMX_ERRORTYPE
Exynos_OMX_VideoEncodeGetConfig(
79 OMX_HANDLETYPE hComponent
,
81 OMX_PTR pComponentConfigStructure
);
82 OMX_ERRORTYPE
Exynos_OMX_VideoEncodeSetConfig(
83 OMX_HANDLETYPE hComponent
,
85 OMX_PTR pComponentConfigStructure
);
86 OMX_ERRORTYPE
Exynos_OMX_VideoEncodeGetExtensionIndex(
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
);