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);
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_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,
81 OMX_PTR pComponentConfigStructure);
82 OMX_ERRORTYPE Exynos_OMX_VideoDecodeSetConfig(
83 OMX_HANDLETYPE hComponent,
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 OMX_ERRORTYPE Exynos_CodecBufferReset(EXYNOS_OMX_BASECOMPONENT *pExynosComponent, OMX_U32 PortIndex);
96 OMX_ERRORTYPE Exynos_CodecBufferEnQueue(EXYNOS_OMX_BASECOMPONENT *pExynosComponent, OMX_U32 PortIndex, OMX_PTR data);
97 OMX_BUFFERHEADERTYPE *Exynos_OutputBufferGetQueue_Direct(EXYNOS_OMX_BASECOMPONENT *pExynosComponent);
98 OMX_ERRORTYPE Exynos_OutputBufferGetQueue(EXYNOS_OMX_BASECOMPONENT *pExynosComponent);
99 OMX_ERRORTYPE Exynos_CodecBufferDeQueue(EXYNOS_OMX_BASECOMPONENT *pExynosComponent, OMX_U32 PortIndex, OMX_PTR *data);
100 OMX_ERRORTYPE Exynos_InputBufferGetQueue(EXYNOS_OMX_BASECOMPONENT *pExynosComponent);
103 OMX_ERRORTYPE Exynos_Shared_PlatformBufferToData(EXYNOS_OMX_DATABUFFER *pUseBuffer, EXYNOS_OMX_DATA *pData, EXYNOS_OMX_BASEPORT *pExynosPort, EXYNOS_OMX_PLANE nPlane);
104 #ifdef TIZEN_FEATURE_E3250
105 OMX_ERRORTYPE Exynos_Shared_DataToPlatformBuffer(EXYNOS_OMX_DATA *pData, EXYNOS_OMX_DATABUFFER *pUseBuffer, EXYNOS_OMX_BASEPORT *pExynosPort,EXYNOS_OMX_BASEPORT *pExynosInPort);
107 OMX_ERRORTYPE Exynos_Shared_DataToPlatformBuffer(EXYNOS_OMX_DATA *pData, EXYNOS_OMX_DATABUFFER *pUseBuffer, EXYNOS_OMX_BASEPORT *pExynosPort);