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_VdecControl.h
21 * @author SeungBeom Kim (sbcrux.kim@samsung.com)
27 #ifndef EXYNOS_OMX_VIDEO_DECODECONTROL
28 #define EXYNOS_OMX_VIDEO_DECODECONTROL
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
);
59 #ifdef TUNNELING_SUPPORT
60 OMX_ERRORTYPE
Exynos_OMX_AllocateTunnelBuffer(
61 EXYNOS_OMX_BASEPORT
*pOMXBasePort
,
63 OMX_ERRORTYPE
Exynos_OMX_FreeTunnelBuffer(
64 EXYNOS_OMX_BASEPORT
*pOMXBasePort
,
66 OMX_ERRORTYPE
Exynos_OMX_ComponentTunnelRequest(
67 OMX_IN OMX_HANDLETYPE hComp
,
69 OMX_IN OMX_HANDLETYPE hTunneledComp
,
70 OMX_IN OMX_U32 nTunneledPort
,
71 OMX_INOUT OMX_TUNNELSETUPTYPE
*pTunnelSetup
);
74 OMX_ERRORTYPE
Exynos_OMX_VideoDecodeGetParameter(
75 OMX_IN OMX_HANDLETYPE hComponent
,
76 OMX_IN OMX_INDEXTYPE nParamIndex
,
77 OMX_INOUT OMX_PTR ComponentParameterStructure
);
78 OMX_ERRORTYPE
Exynos_OMX_VideoDecodeSetParameter(
79 OMX_IN OMX_HANDLETYPE hComponent
,
80 OMX_IN OMX_INDEXTYPE nIndex
,
81 OMX_IN OMX_PTR ComponentParameterStructure
);
82 OMX_ERRORTYPE
Exynos_OMX_VideoDecodeGetConfig(
83 OMX_HANDLETYPE hComponent
,
85 OMX_PTR pComponentConfigStructure
);
86 OMX_ERRORTYPE
Exynos_OMX_VideoDecodeSetConfig(
87 OMX_HANDLETYPE hComponent
,
89 OMX_PTR pComponentConfigStructure
);
90 OMX_ERRORTYPE
Exynos_OMX_VideoDecodeGetExtensionIndex(
91 OMX_IN OMX_HANDLETYPE hComponent
,
92 OMX_IN OMX_STRING cParameterName
,
93 OMX_OUT OMX_INDEXTYPE
*pIndexType
);
94 OMX_ERRORTYPE
Exynos_InputBufferReturn(OMX_COMPONENTTYPE
*pOMXComponent
, EXYNOS_OMX_DATABUFFER
*pDataBuffer
);
95 OMX_ERRORTYPE
Exynos_OutputBufferReturn(OMX_COMPONENTTYPE
*pOMXComponent
, EXYNOS_OMX_DATABUFFER
*pDataBuffer
);
96 OMX_ERRORTYPE
Exynos_OMX_BufferFlush(OMX_COMPONENTTYPE
*pOMXComponent
, OMX_S32 nPortIndex
, OMX_BOOL bEvent
);
99 OMX_ERRORTYPE
Exynos_Shared_ANBBufferToData(EXYNOS_OMX_DATABUFFER
*pUseBuffer
, EXYNOS_OMX_DATA
*pData
, EXYNOS_OMX_BASEPORT
*pExynosPort
);
100 OMX_ERRORTYPE
Exynos_Shared_DataToANBBuffer(EXYNOS_OMX_DATA
*pData
, EXYNOS_OMX_DATABUFFER
*pUseBuffer
, EXYNOS_OMX_BASEPORT
*pExynosPort
);
103 OMX_ERRORTYPE
Exynos_Shared_DataToBuffer(EXYNOS_OMX_DATA
*pData
, EXYNOS_OMX_DATABUFFER
*pUseBuffer
);
104 OMX_BUFFERHEADERTYPE
*Exynos_OutputBufferGetQueue_Direct(EXYNOS_OMX_BASECOMPONENT
*pExynosComponent
);
105 OMX_ERRORTYPE
Exynos_InputBufferGetQueue(EXYNOS_OMX_BASECOMPONENT
*pExynosComponent
);
106 OMX_ERRORTYPE
Exynos_OutputBufferGetQueue(EXYNOS_OMX_BASECOMPONENT
*pExynosComponent
);
107 OMX_ERRORTYPE
Exynos_CodecBufferEnQueue(EXYNOS_OMX_BASECOMPONENT
*pExynosComponent
, OMX_U32 PortIndex
, OMX_PTR data
);
108 OMX_ERRORTYPE
Exynos_CodecBufferDeQueue(EXYNOS_OMX_BASECOMPONENT
*pExynosComponent
, OMX_U32 PortIndex
, OMX_PTR
*data
);
109 OMX_ERRORTYPE
Exynos_CodecBufferReset(EXYNOS_OMX_BASECOMPONENT
*pExynosComponent
, OMX_U32 PortIndex
);