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_Wmvdec.h
21 * @author HyeYeon Chung (hyeon.chung@samsung.com)
22 * @author Satish Kumar Reddy (palli.satish@samsung.com)
28 #ifndef EXYNOS_OMX_WMV_DEC_COMPONENT
29 #define EXYNOS_OMX_WMV_DEC_COMPONENT
31 #include "Exynos_OMX_Def.h"
32 #include "OMX_Component.h"
33 #include "OMX_Video.h"
34 #include "ExynosVideoApi.h"
37 #define BITMAPINFOHEADER_SIZE 0
38 #define BITMAPINFOHEADER_ASFBINDING_SIZE 1
40 #define BITMAPINFOHEADER_SIZE 40
41 #define BITMAPINFOHEADER_ASFBINDING_SIZE 41
43 #define COMPRESSION_POS 16
45 typedef enum WMV_FORMAT {
52 * This structure is the same as BitmapInfoHhr struct in pv_avifile_typedefs.h file
54 typedef struct _BitmapInfoHhr
61 OMX_U32 BiCompression;
63 OMX_U32 BiXPelsPerMeter;
64 OMX_U32 BiYPelsPerMeter;
66 OMX_U32 BiClrImportant;
69 typedef struct _EXYNOS_MFC_WMVDEC_HANDLE
71 OMX_HANDLETYPE hMFCHandle;
72 OMX_BOOL bShareableBuf;
73 OMX_U32 indexTimestamp;
74 OMX_U32 outputIndexTimestamp;
75 OMX_BOOL bConfiguredMFCSrc;
76 OMX_BOOL bConfiguredMFCDst;
80 ExynosVideoColorFormatType MFCOutputColorType;
81 ExynosVideoDecOps *pDecOps;
82 ExynosVideoDecBufferOps *pInbufOps;
83 ExynosVideoDecBufferOps *pOutbufOps;
84 ExynosVideoGeometry codecOutbufConf;
85 } EXYNOS_MFC_WMVDEC_HANDLE;
87 typedef struct _EXYNOS_WMVDEC_HANDLE
89 /* OMX Codec specific */
90 OMX_VIDEO_PARAM_WMVTYPE WmvComponent[ALL_PORT_NUM];
91 OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE errorCorrectionType[ALL_PORT_NUM];
93 /* EXYNOS MFC Codec specific */
94 EXYNOS_MFC_WMVDEC_HANDLE hMFCWmvHandle;
96 OMX_BOOL bSourceStart;
97 OMX_BOOL bDestinationStart;
98 OMX_HANDLETYPE hSourceStartEvent;
99 OMX_HANDLETYPE hDestinationStartEvent;
101 WMV_FORMAT wmvFormat;
103 } EXYNOS_WMVDEC_HANDLE;
109 OSCL_EXPORT_REF OMX_ERRORTYPE Exynos_OMX_ComponentInit(
110 OMX_HANDLETYPE hComponent,
111 OMX_STRING componentName);
112 OMX_ERRORTYPE Exynos_OMX_ComponentDeinit(
113 OMX_HANDLETYPE hComponent);
115 OMX_ERRORTYPE WmvCodecSrcInit(OMX_COMPONENTTYPE *pOMXComponent);
116 OMX_ERRORTYPE WmvCodecDstSetup(OMX_COMPONENTTYPE *pOMXComponent);
117 OMX_ERRORTYPE WmvCodecCheckResolutionChange(OMX_COMPONENTTYPE *pOMXComponent);