import exynos 7570 bsp
[GitHub/LineageOS/android_hardware_samsung_slsi_openmax.git] / include / exynos / Exynos_OMX_Def.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_Def.h
20 * @brief Exynos_OMX specific define
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_DEF
28 #define EXYNOS_OMX_DEF
29
30 //#define PERFORMANCE_DEBUG
31
32 #include "OMX_Types.h"
33 #include "OMX_IVCommon.h"
34 #include "OMX_Video.h"
35 #include "OMX_VideoExt.h"
36 #include "OMX_IndexExt.h"
37
38 #define VERSIONMAJOR_NUMBER 1
39 #define VERSIONMINOR_NUMBER 1
40 #define REVISION_NUMBER 2
41 #define STEP_NUMBER 0
42
43 #define RESOURCE_VIDEO_DEC 16
44 #define RESOURCE_VIDEO_ENC 16
45 #define RESOURCE_AUDIO_DEC 10
46
47 #define MAX_OMX_COMPONENT_NUM 40
48 #define MAX_OMX_COMPONENT_ROLE_NUM 10
49 #define MAX_OMX_COMPONENT_NAME_SIZE OMX_MAX_STRINGNAME_SIZE
50 #define MAX_OMX_COMPONENT_ROLE_SIZE OMX_MAX_STRINGNAME_SIZE
51 #define MAX_OMX_COMPONENT_LIBNAME_SIZE OMX_MAX_STRINGNAME_SIZE * 2
52 #define MAX_OMX_MIMETYPE_SIZE OMX_MAX_STRINGNAME_SIZE
53
54 #define MAX_BUFFER_REF 40
55 #define MAX_TIMESTAMP MAX_BUFFER_REF
56 #define MAX_FLAGS MAX_BUFFER_REF
57
58 #define MAX_BUFFER_PLANE 3
59
60 #define INDEX_AFTER_EOS 0xE05
61
62 #define DEFAULT_TIMESTAMP_VAL (-1010101010)
63 #define RESET_TIMESTAMP_VAL (-1001001001)
64
65 // The largest metadata buffer size advertised
66 // when metadata buffer mode is used
67 #define MAX_METADATA_BUFFER_SIZE (64)
68
69 #define PREFIX_COMPONENT_NAME "OMX.Exynos."
70 #define IS_CUSTOM_COMPONENT(name) (((char)(name[((int)sizeof(PREFIX_COMPONENT_NAME))-1]) >= 0x61)? OMX_TRUE:OMX_FALSE)
71
72 #define IS_64BIT_OS (((sizeof(int) != sizeof(void *))? OMX_TRUE:OMX_FALSE))
73 #define EXYNOS_OMX_INSTALL_PATH "/system/lib/omx/"
74 #define EXYNOS_OMX64_INSTALL_PATH "/system/lib64/omx/"
75
76 typedef enum _EXYNOS_CODEC_TYPE
77 {
78 SW_CODEC,
79 HW_VIDEO_DEC_CODEC,
80 HW_VIDEO_ENC_CODEC,
81 HW_VIDEO_DEC_SECURE_CODEC,
82 HW_VIDEO_ENC_SECURE_CODEC,
83 HW_AUDIO_DEC_CODEC,
84 HW_AUDIO_ENC_CODEC
85 } EXYNOS_CODEC_TYPE;
86
87 #define PLANE_MAX_NUM 3
88 typedef enum _PLANE_TYPE {
89 PLANE_MULTIPLE = 0x00,
90 PLANE_SINGLE = 0x11,
91 PLANE_SINGLE_USER = 0x12,
92 } PLANE_TYPE;
93
94 typedef enum _EXYNOS_OMX_INDEXTYPE
95 {
96 #define EXYNOS_INDEX_PARAM_THUMBNAIL "OMX.SEC.index.ThumbnailMode"
97 OMX_IndexVendorThumbnailMode = 0x7F000001,
98
99 #define EXYNOS_INDEX_CONFIG_VIDEO_INTRAPERIOD "OMX.SEC.index.VideoIntraPeriod"
100 OMX_IndexConfigVideoIntraPeriod = 0x7F000002,
101
102 #ifdef USE_S3D_SUPPORT
103 #define EXYNOS_INDEX_PARAM_GET_S3D "OMX.SEC.index.S3DMode"
104 OMX_IndexVendorS3DMode = 0x7F000003,
105 #endif
106
107 #define EXYNOS_INDEX_PARAM_NEED_CONTIG_MEMORY "OMX.SEC.index.NeedContigMemory"
108 OMX_IndexVendorNeedContigMemory = 0x7F000004,
109
110 #define EXYNOS_INDEX_CONFIG_GET_BUFFER_FD "OMX.SEC.index.GetBufferFD"
111 OMX_IndexVendorGetBufferFD = 0x7F000005,
112
113 #define EXYNOS_INDEX_PARAM_SET_DTS_MODE "OMX.SEC.index.SetDTSMode"
114 OMX_IndexVendorSetDTSMode = 0x7F000006,
115
116 #define EXYNOS_INDEX_CONFIG_SET_QOS_RATIO "OMX.SEC.index.SetQosRatio"
117 OMX_IndexVendorSetQosRatio = 0x7F000007,
118
119 /* for Android Native Window */
120 #define EXYNOS_INDEX_PARAM_ENABLE_ANB "OMX.google.android.index.enableAndroidNativeBuffers"
121 OMX_IndexParamEnableAndroidBuffers = 0x7F000011,
122
123 #define EXYNOS_INDEX_PARAM_GET_ANB "OMX.google.android.index.getAndroidNativeBufferUsage"
124 OMX_IndexParamGetAndroidNativeBuffer = 0x7F000012,
125
126 #define EXYNOS_INDEX_PARAM_USE_ANB "OMX.google.android.index.useAndroidNativeBuffer"
127 OMX_IndexParamUseAndroidNativeBuffer = 0x7F000013,
128
129 /* for Android Store Metadata Inbuffer */
130 #define EXYNOS_INDEX_PARAM_STORE_METADATA_BUFFER "OMX.google.android.index.storeMetaDataInBuffers"
131 OMX_IndexParamStoreMetaDataBuffer = 0x7F000014,
132
133 /* prepend SPS/PPS to I/IDR for H.264 Encoder */
134 #define EXYNOS_INDEX_PARAM_PREPEND_SPSPPS_TO_IDR "OMX.google.android.index.prependSPSPPSToIDRFrames"
135 OMX_IndexParamPrependSPSPPSToIDR = 0x7F000015,
136
137 #ifdef USE_KHRONOS_OMX_HEADER
138 /* VP8 Codec */
139 #if 0 /* USE_VP8_SUPPORT : these are declared in OMX_IndexExt.h */
140 #define EXYNOS_INDEX_PARAM_VIDEO_VP8_TYPE "OMX.SEC.index.VideoVp8Type"
141 OMX_IndexParamVideoVp8 = 0x7F000016,
142
143 #define EXYNOS_INDEX_CONFIG_VIDEO_VP8_REFERENCEFRAME "OMX.SEC.index.VideoVp8ReferenceFrame"
144 OMX_IndexConfigVideoVp8ReferenceFrame = 0x7F000017,
145
146 #define EXYNOS_INDEX_CONFIG_VIDEO_VP8_REFERENCEFRAMETYPE "OMX.SEC.index.VideoVp8ReferenceFrameType"
147 OMX_IndexConfigVideoVp8ReferenceFrameType = 0x7F000018,
148 #endif // USE_VP8_SUPPORT
149
150 /* HEVC Codec */
151 #ifdef USE_HEVC_SUPPORT
152 #define EXYNOS_INDEX_PARAM_VIDEO_HEVC_TYPE "OMX.SEC.index.VideoHevcType"
153 OMX_IndexParamVideoHevc = 0x7F000019,
154 #endif // USE_HEVC_SUPPORT
155
156 #endif // USE_KHRONOS_OMX_HEADER
157
158 /* Thumbnail */
159 #define EXYNOS_INDEX_PARAM_ENABLE_THUMBNAIL "OMX.SEC.index.enableThumbnailMode"
160 OMX_IndexParamEnableThumbnailMode = 0x7F000020,
161
162 /* Android Native Buffer */
163 #define EXYNOS_INDEX_PARAM_USE_ANB2 "OMX.google.android.index.useAndroidNativeBuffer2"
164 OMX_IndexParamUseAndroidNativeBuffer2 = 0x7F000021,
165
166 /* QP control */
167 #define EXYNOS_INDEX_PARAM_VIDEO_QPRANGE_TYPE "OMX.SEC.indexParam.VideoQPRange"
168 OMX_IndexParamVideoQPRange = 0x7F000022,
169
170 #define EXYNOS_INDEX_CONFIG_VIDEO_QPRANGE_TYPE "OMX.SEC.indexConfig.VideoQPRange"
171 OMX_IndexConfigVideoQPRange = 0x7F000023,
172
173 #ifdef USE_KHRONOS_OMX_HEADER
174 /* VP8 Codec */
175 #ifdef USE_VP8_SUPPORT
176 #define EXYNOS_INDEX_PARAM_VIDEO_ANDROID_VP8_ENCODER "OMX.SEC.index.VideoAndroidVP8Encoder"
177 OMX_IndexParamVideoAndroidVp8Encoder = 0x7F000024,
178 #endif // USE_VP8_SUPPORT
179
180 #define EXYNOS_INDEX_PARAM_SLICE_SEGMENTS "OMX.SEC.index.SliceSegments"
181 OMX_IndexParamSliceSegments = 0x7F000025,
182
183 #endif // USE_KHRONOS_OMX_HEADER
184
185 /* Temporal SVC */
186 #define EXYNOS_INDEX_CONFIG_VIDEO_TEMPORALSVC "OMX.SEC.index.TemporalSVC"
187 OMX_IndexConfigVideoTemporalSVC = 0x7F000026,
188
189 #define EXYNOS_INDEX_PARAM_VIDEO_AVC_ENABLE_TEMPORALSVC "OMX.SEC.index.AVC.enableTemporalSVC"
190 OMX_IndexParamVideoAVCEnableTemporalSVC = 0x7F000027,
191
192 /* VC1 Codec */
193 #ifndef USE_KHRONOS_OMX_1_2
194 #define EXYNOS_INDEX_PARAM_VIDEO_VC1_TYPE "OMX.SEC.index.VideoVc1Type"
195 OMX_IndexParamVideoVC1 = 0x7F000028,
196 #endif
197
198 //#ifdef USE_KHRONOS_OMX_HEADER
199 /* VP9 Codec */
200 #ifdef USE_VP9_SUPPORT
201 #define EXYNOS_INDEX_PARAM_VIDEO_VP9_TYPE "OMX.SEC.index.VideoVp9Type"
202 OMX_IndexParamVideoVp9 = 0x7F000029,
203
204 #define EXYNOS_INDEX_CONFIG_VIDEO_VP9_REFERENCEFRAME "OMX.SEC.index.VideoVp9ReferenceFrame"
205 OMX_IndexConfigVideoVp9ReferenceFrame = 0x7F000030,
206
207 #define EXYNOS_INDEX_CONFIG_VIDEO_VP9_REFERENCEFRAMETYPE "OMX.SEC.index.VideoVp9ReferenceFrameType"
208 OMX_IndexConfigVideoVp9ReferenceFrameType = 0x7F000031,
209
210 #define EXYNOS_INDEX_PARAM_VIDEO_ANDROID_VP9_ENCODER "OMX.SEC.index.VideoAndroidVP9Encoder"
211 OMX_IndexParamVideoAndroidVp9Encoder = 0x7F000032,
212 #endif // USE_VP9_SUPPORT
213 //#endif // USE_KHRONOS_OMX_HEADER
214
215 /* blur filtering */
216 #define EXYNOS_INDEX_PARAM_ENABLE_BLUR_FILTER "OMX.SEC.indexParam.enableBlurFilter"
217 OMX_IndexParamEnableBlurFilter = 0x7F000033,
218 #define EXYNOS_INDEX_CONFIG_BLUR_INFO "OMX.SEC.indexConfig.BlurInfo"
219 OMX_IndexConfigBlurInfo = 0x7F000034,
220
221 #define EXYNOS_INDEX_PARAM_VIDEO_HEVC_ENABLE_TEMPORALSVC "OMX.SEC.index.Hevc.enableTemporalSVC"
222 OMX_IndexParamVideoHevcEnableTemporalSVC = 0x7F000035,
223
224 /* ROI Information */
225 #define EXYNOS_INDEX_CONFIG_VIDEO_ROIINFO "OMX.SEC.index.RoiInfo"
226 OMX_IndexConfigVideoRoiInfo = 0x7F000036,
227 #define EXYNOS_INDEX_PARAM_VIDEO_ENABLE_ROIINFO "OMX.SEC.index.enableRoiInfo"
228 OMX_IndexParamVideoEnableRoiInfo = 0x7F000037,
229
230 /* rotation about encoder's input */
231 #define EXYNOS_INDEX_PARAM_ROATION_INFO "OMX.SEC.indexParam.RotationInfo"
232 OMX_IndexParamRotationInfo = 0x7F000038,
233
234 #define EXYNOS_INDEX_CONFIG_OPERATING_RATE "OMX.SEC.index.OperatingRate"
235 #ifdef USE_KHRONOS_OMX_HEADER
236 OMX_IndexConfigOperatingRate = 0x7F000039,
237 #endif
238
239 /* for custom component(MSRND) */
240 OMX_IndexExynosStartUnused = 0x7F050000, /* Reserved region for Exynos Extensions */
241
242 #define EXYNOS_CUSTOM_INDEX_CONFIG_PTS_MODE "OMX.SEC.CUSTOM.index.PTSMode"
243 OMX_IndexExynosConfigPTSMode = 0x7F050001, /* to support PTS Video TimeStamp - OMX_BOOL */
244 #define EXYNOS_CUSTOM_INDEX_CONFIG_DISPLAY_DELAY "OMX.SEC.CUSTOM.index.DisplayDelay"
245 OMX_IndexExynosConfigDisplayDelay = 0x7F050002, /* to support H264 DisplayDelay Setting - OMX_U32 */
246 /* Timestamp reorder */
247 #define EXYNOS_CUSTOM_INDEX_PARAM_REORDER_MODE "OMX.SEC.CUSTOM.index.ReorderMode"
248 OMX_IndexExynosParamReorderMode = 0x7F050003,
249 #define EXYNOS_CUSTOM_INDEX_PARAM_CORRUPTEDHEADER "OMX.SEC.CUSTOM.index.CorruptedHeader"
250 OMX_IndexExynosParamCorruptedHeader = 0x7F050004,
251
252
253 /* for Skype HD Common */
254 #define OMX_MS_SKYPE_PARAM_DRIVERVER "OMX.microsoft.skype.index.driverversion"
255 OMX_IndexSkypeParamDriverVersion = 0x7F060001,
256 /* for Skype HD Decode */
257 #define OMX_MS_SKYPE_PARAM_DECODERSETTING "OMX.microsoft.skype.index.decodersetting"
258 OMX_IndexSkypeParamDecoderSetting = 0x7F060002,
259 #define OMX_MS_SKYPE_PARAM_DECODERCAP "OMX.microsoft.skype.index.decodercapability"
260 OMX_IndexSkypeParamDecoderCapability = 0x7F060003,
261 /* for Skype HD Encode */
262 #define OMX_MS_SKYPE_PARAM_ENCODERSETTING "OMX.microsoft.skype.index.encodersetting"
263 OMX_IndexSkypeParamEncoderSetting = 0x7F060004,
264 #define OMX_MS_SKYPE_PARAM_ENCODERCAP "OMX.microsoft.skype.index.encodercapability"
265 OMX_IndexSkypeParamEncoderCapability = 0x7F060005,
266 #define OMX_MS_SKYPE_CONFIG_MARKLTRFRAME "OMX.microsoft.skype.index.markltrframe"
267 OMX_IndexSkypeConfigMarkLTRFrame = 0x7F060006,
268 #define OMX_MS_SKYPE_CONFIG_USELTRFRAME "OMX.microsoft.skype.index.useltrframe"
269 OMX_IndexSkypeConfigUseLTRFrame = 0x7F060007,
270 #define OMX_MS_SKYPE_CONFIG_QP "OMX.microsoft.skype.index.qp"
271 OMX_IndexSkypeConfigQP = 0x7F060008,
272 #define OMX_MS_SKYPE_CONFIG_TEMPORALLAYERCOUNT "OMX.microsoft.skype.index.temporallayercount"
273 OMX_IndexSkypeConfigTemporalLayerCount = 0x7F060009,
274 #define OMX_MS_SKYPE_CONFIG_BASELAYERPID "OMX.microsoft.skype.index.basepid"
275 OMX_IndexSkypeConfigBasePid = 0x7F06000a,
276
277 OMX_IndexExynosEndUnused = 0x7F05FFFF,
278 } EXYNOS_OMX_INDEXTYPE;
279
280 typedef enum _EXYNOS_OMX_ERRORTYPE
281 {
282 OMX_ErrorNoEOF = (OMX_S32) 0x90000001,
283 OMX_ErrorInputDataDecodeYet = (OMX_S32) 0x90000002,
284 OMX_ErrorInputDataEncodeYet = (OMX_S32) 0x90000003,
285 OMX_ErrorCodecInit = (OMX_S32) 0x90000004,
286 OMX_ErrorCodecDecode = (OMX_S32) 0x90000005,
287 OMX_ErrorCodecEncode = (OMX_S32) 0x90000006,
288 OMX_ErrorCodecFlush = (OMX_S32) 0x90000007,
289 OMX_ErrorOutputBufferUseYet = (OMX_S32) 0x90000008,
290 OMX_ErrorCorruptedFrame = (OMX_S32) 0x90000009,
291 OMX_ErrorNeedNextHeaderInfo = (OMX_S32) 0x90000010,
292 OMX_ErrorNoneSrcSetupFinish = (OMX_S32) 0x90000011,
293 OMX_ErrorCorruptedHeader = (OMX_S32) 0x90000012,
294 OMX_ErrorNoneExpiration = (OMX_S32) 0x90000013,
295 } EXYNOS_OMX_ERRORTYPE;
296
297 typedef enum _EXYNOS_OMX_COMMANDTYPE
298 {
299 EXYNOS_OMX_CommandComponentDeInit = 0x7F000001,
300 EXYNOS_OMX_CommandEmptyBuffer,
301 EXYNOS_OMX_CommandFillBuffer,
302 EXYNOS_OMX_CommandFakeBuffer
303 } EXYNOS_OMX_COMMANDTYPE;
304
305 typedef enum _EXYNOS_OMX_TRANS_STATETYPE {
306 EXYNOS_OMX_TransStateInvalid,
307 EXYNOS_OMX_TransStateLoadedToIdle,
308 EXYNOS_OMX_TransStateIdleToExecuting,
309 EXYNOS_OMX_TransStateExecutingToIdle,
310 EXYNOS_OMX_TransStateIdleToLoaded,
311 EXYNOS_OMX_TransStateMax = 0X7FFFFFFF
312 } EXYNOS_OMX_TRANS_STATETYPE;
313
314 typedef enum _EXYNOS_OMX_COLOR_FORMATTYPE {
315 OMX_SEC_COLOR_FormatNV12TPhysicalAddress = 0x7F000001, /**< Reserved region for introducing Vendor Extensions */
316 OMX_SEC_COLOR_FormatNV12LPhysicalAddress = 0x7F000002,
317 OMX_SEC_COLOR_FormatNV12LVirtualAddress = 0x7F000003,
318 #ifdef USE_KHRONOS_OMX_HEADER
319 OMX_SEC_COLOR_FormatNV12Tiled = 0x7FC00002, /* 0x7FC00002 */
320 #endif
321 OMX_SEC_COLOR_FormatNV21LPhysicalAddress = 0x7F000010,
322 OMX_SEC_COLOR_FormatNV21Linear = 0x7F000011,
323 OMX_SEC_COLOR_FormatYVU420Planar = 0x7F000012,
324 OMX_SEC_COLOR_Format32bitABGR8888 = 0x7F000013, /* unused */
325 OMX_SEC_COLOR_FormatYUV420SemiPlanarInterlace = 0x7F000014,
326 OMX_SEC_COLOR_Format10bitYUV420SemiPlanar = 0x7F000015,
327
328 /* to copy a encoded data for drm component using gsc or fimc */
329 OMX_SEC_COLOR_FormatEncodedData = OMX_COLOR_FormatYCbYCr,
330 #ifdef USE_KHRONOS_OMX_HEADER
331 /* for Android SurfaceMediaSource*/
332 OMX_COLOR_FormatAndroidOpaque = 0x7F000789,
333 OMX_COLOR_Format32BitRGBA8888 = 0x7F00A000,
334 #endif
335 }EXYNOS_OMX_COLOR_FORMATTYPE;
336
337 typedef enum _EXYNOS_OMX_SUPPORTFORMAT_TYPE
338 {
339 supportFormat_0 = 0x00,
340 supportFormat_1,
341 supportFormat_2,
342 supportFormat_3,
343 supportFormat_4,
344 supportFormat_5,
345 supportFormat_6,
346 supportFormat_7,
347 } EXYNOS_OMX_SUPPORTFORMAT_TYPE;
348
349 typedef enum _EXYNOS_OMX_BUFFERPROCESS_TYPE
350 {
351 BUFFER_DEFAULT = 0x00,
352 BUFFER_COPY = 0x01,
353 BUFFER_SHARE = 0x02,
354 BUFFER_METADATA = 0x04,
355 BUFFER_ANBSHARE = 0x08,
356 } EXYNOS_OMX_BUFFERPROCESS_TYPE;
357
358 #ifdef USE_S3D_SUPPORT
359 typedef enum _EXYNOS_OMX_FPARGMT_TYPE
360 {
361 OMX_SEC_FPARGMT_INVALID = -1,
362 OMX_SEC_FPARGMT_CHECKERBRD_INTERL = 0x00,
363 OMX_SEC_FPARGMT_COLUMN_INTERL = 0x01,
364 OMX_SEC_FPARGMT_ROW_INTERL = 0x02,
365 OMX_SEC_FPARGMT_SIDE_BY_SIDE = 0x03,
366 OMX_SEC_FPARGMT_TOP_BOTTOM = 0x04,
367 OMX_SEC_FPARGMT_TEMPORAL_INTERL = 0x05,
368 OMX_SEC_FPARGMT_NONE = 0x0A
369 } EXYNOS_OMX_FPARGMT_TYPE;
370 #endif
371
372 typedef enum _EXYNOS_OMX_EVENTTYPE
373 {
374 OMX_EventVendorStart = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
375 #ifdef USE_S3D_SUPPORT
376 OMX_EventS3DInformation,
377 #endif
378 } EXYNOS_OMX_EVENTTYPE;
379
380 typedef enum _EXYNOS_ANB_TYPE {
381 NATIVE_GRAPHIC_BUFFER1,
382 NATIVE_GRAPHIC_BUFFER2,
383 } EXYNOS_ANB_TYPE;
384
385 typedef enum _EXYNOS_OMX_VIDEO_CONTROLRATETYPE {
386 OMX_Video_ControlRateVendorStart = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
387 OMX_Video_ControlRateConstantVTCall = 0x7F000001,
388 } EXYNOS_OMX_VIDEO_CONTROLRATETYPE;
389
390 typedef struct _EXYNOS_OMX_PRIORITYMGMTTYPE
391 {
392 OMX_U32 nGroupPriority; /* the value 0 represents the highest priority */
393 /* for a group of components */
394 OMX_U32 nGroupID;
395 } EXYNOS_OMX_PRIORITYMGMTTYPE;
396
397 typedef struct _EXYNOS_OMX_VIDEO_PROFILELEVEL
398 {
399 OMX_S32 profile;
400 OMX_S32 level;
401 } EXYNOS_OMX_VIDEO_PROFILELEVEL;
402
403 typedef struct _EXYNOS_OMX_VIDEO_THUMBNAILMODE {
404 OMX_U32 nSize;
405 OMX_VERSIONTYPE nVersion;
406 OMX_U32 nPortIndex;
407 OMX_BOOL bEnable;
408 } EXYNOS_OMX_VIDEO_THUMBNAILMODE;
409
410 typedef struct _EXYNOS_OMX_VIDEO_PARAM_PORTMEMTYPE {
411 OMX_U32 nSize;
412 OMX_VERSIONTYPE nVersion;
413 OMX_U32 nPortIndex;
414 OMX_BOOL bNeedContigMem;
415 } EXYNOS_OMX_VIDEO_PARAM_PORTMEMTYPE;
416
417 typedef struct _EXYNOS_OMX_VIDEO_PARAM_DTSMODE {
418 OMX_U32 nSize;
419 OMX_VERSIONTYPE nVersion;
420 OMX_BOOL bDTSMode;
421 } EXYNOS_OMX_VIDEO_PARAM_DTSMODE;
422
423 typedef struct _EXYNOS_OMX_VIDEO_PARAM_REORDERMODE {
424 OMX_U32 nSize;
425 OMX_VERSIONTYPE nVersion;
426 OMX_BOOL bReorderMode;
427 } EXYNOS_OMX_VIDEO_PARAM_REORDERMODE;
428
429 typedef struct _EXYNOS_OMX_VIDEO_PARAM_CORRUPTEDHEADER {
430 OMX_U32 nSize;
431 OMX_VERSIONTYPE nVersion;
432 OMX_BOOL bDiscardEvent;
433 } EXYNOS_OMX_VIDEO_PARAM_CORRUPTEDHEADER;
434
435 typedef struct _EXYNOS_OMX_VIDEO_CONFIG_BUFFERINFO {
436 OMX_U32 nSize;
437 OMX_VERSIONTYPE nVersion;
438 OMX_PTR OMX_IN pVirAddr;
439 OMX_S32 OMX_OUT fd;
440 } EXYNOS_OMX_VIDEO_CONFIG_BUFFERINFO;
441
442 typedef struct _EXYNOS_OMX_VIDEO_CONFIG_QOSINFO {
443 OMX_U32 nSize;
444 OMX_VERSIONTYPE nVersion;
445 OMX_U32 nQosRatio;
446 } EXYNOS_OMX_VIDEO_CONFIG_QOSINFO;
447
448 typedef struct OMX_VIDEO_QPRANGE {
449 OMX_U32 nMinQP;
450 OMX_U32 nMaxQP;
451 } OMX_VIDEO_QPRANGE;
452
453 typedef struct OMX_VIDEO_QPRANGETYPE {
454 OMX_U32 nSize;
455 OMX_VERSIONTYPE nVersion;
456 OMX_U32 nPortIndex;
457 OMX_VIDEO_QPRANGE qpRangeI;
458 OMX_VIDEO_QPRANGE qpRangeP;
459 OMX_VIDEO_QPRANGE qpRangeB; /* H.264, HEVC, MPEG4 */
460 } OMX_VIDEO_QPRANGETYPE;
461
462 /* Temporal SVC */
463 /* Maximum number of temporal layers */
464 #define OMX_VIDEO_MAX_TEMPORAL_LAYERS 7
465 #define OMX_VIDEO_MAX_TEMPORAL_LAYERS_WITH_LTR 3
466 #define OMX_VIDEO_ANDROID_MAXAVCTEMPORALLAYERS 7
467 #define OMX_VIDEO_ANDROID_MAXHEVCTEMPORALLAYERS 7
468
469 typedef struct _EXYNOS_OMX_VIDEO_PARAM_ENABLE_TEMPORALSVC {
470 OMX_U32 nSize;
471 OMX_VERSIONTYPE nVersion;
472 OMX_U32 nPortIndex;
473 OMX_BOOL bEnableTemporalSVC;
474 } EXYNOS_OMX_VIDEO_PARAM_ENABLE_TEMPORALSVC;
475
476 typedef struct _EXYNOS_OMX_VIDEO_CONFIG_TEMPORALSVC {
477 OMX_U32 nSize;
478 OMX_VERSIONTYPE nVersion;
479 OMX_U32 nPortIndex;
480 OMX_U32 nKeyFrameInterval;
481 OMX_U32 nTemporalLayerCount;
482 OMX_U32 nTemporalLayerBitrateRatio[OMX_VIDEO_MAX_TEMPORAL_LAYERS];
483 OMX_U32 nMinQuantizer;
484 OMX_U32 nMaxQuantizer;
485 } EXYNOS_OMX_VIDEO_CONFIG_TEMPORALSVC;
486
487 typedef enum _EXYNOS_OMX_BLUR_MODE
488 {
489 BLUR_MODE_NONE = 0x00,
490 BLUR_MODE_DOWNUP = 0x01,
491 BLUR_MODE_COEFFICIENT = 0x02,
492 } EXYNOS_OMX_BLUR_MODE;
493
494 typedef enum _EXYNOS_OMX_BLUR_RESOL
495 {
496 BLUR_RESOL_240 = 426 * 240, /* 426 x 240 */
497 BLUR_RESOL_480 = 854 * 480, /* 854 x 480 */
498 BLUR_RESOL_720 = 1280 * 720, /* 1280 x 720 */
499 BLUR_RESOL_1080 = 1920 * 1080, /* 1920 x 1080 */
500 } EXYNOS_OMX_BLUR_RESOL;
501
502 typedef struct _EXYNOS_OMX_VIDEO_PARAM_ENABLE_BLURFILTER {
503 OMX_U32 nSize;
504 OMX_VERSIONTYPE nVersion;
505 OMX_U32 nPortIndex;
506 OMX_BOOL bUseBlurFilter;
507 } EXYNOS_OMX_VIDEO_PARAM_ENABLE_BLURFILTER;
508
509 typedef struct _EXYNOS_OMX_VIDEO_CONFIG_BLURINFO {
510 OMX_U32 nSize;
511 OMX_VERSIONTYPE nVersion;
512 OMX_U32 nPortIndex;
513 EXYNOS_OMX_BLUR_MODE eBlurMode;
514 EXYNOS_OMX_BLUR_RESOL eTargetResol;
515 } EXYNOS_OMX_VIDEO_CONFIG_BLURINFO;
516 /* ROI Information */
517
518 typedef struct _EXYNOS_OMX_VIDEO_CONFIG_ROIINFO {
519 OMX_U32 nSize;
520 OMX_VERSIONTYPE nVersion;
521 OMX_U32 nPortIndex;
522 OMX_S32 nUpperQpOffset;
523 OMX_S32 nLowerQpOffset;
524 OMX_BOOL bUseRoiInfo;
525 OMX_S32 nRoiMBInfoSize;
526 OMX_PTR pRoiMBInfo;
527 } EXYNOS_OMX_VIDEO_CONFIG_ROIINFO;
528
529 typedef struct _EXYNOS_OMX_VIDEO_PARAM_ENABLE_ROIINFO {
530 OMX_U32 nSize;
531 OMX_VERSIONTYPE nVersion;
532 OMX_U32 nPortIndex;
533 OMX_BOOL bEnableRoiInfo;
534 } EXYNOS_OMX_VIDEO_PARAM_ENABLE_ROIINFO;
535
536
537 typedef enum _EXYNOS_OMX_ROTATION_TYPE
538 {
539 ROTATE_0 = 0,
540 ROTATE_90 = 90,
541 ROTATE_180 = 180,
542 ROTATE_270 = 270,
543 } EXYNOS_OMX_ROTATION_TYPE;
544
545 typedef struct _EXYNOS_OMX_VIDEO_PARAM_ROTATION_INFO {
546 OMX_U32 nSize;
547 OMX_VERSIONTYPE nVersion;
548 OMX_U32 nPortIndex;
549 EXYNOS_OMX_ROTATION_TYPE eRotationType;
550 } EXYNOS_OMX_VIDEO_PARAM_ROTATION_INFO;
551
552 /* for AVC */
553 typedef enum EXYNOS_OMX_VIDEO_AVCPROFILETYPE {
554 OMX_VIDEO_AVCProfileConstrainedBaseline = 0x7F000001,
555 OMX_VIDEO_AVCProfileConstrainedHigh = 0x7F000002,
556 } EXYNOS_OMX_VIDEO_AVCPROFILETYPE;
557
558 #ifdef USE_KHRONOS_OMX_HEADER
559 typedef enum EXYNOS_OMX_VIDEO_AVCLEVELTYPE {
560 OMX_VIDEO_AVCLevel52 = 0x10000, /**< Level 5.2 */
561 } EXYNOS_OMX_VIDEO_AVCLEVELTYPE;
562 #endif
563
564 /* for Ext-Codec support */
565 typedef enum EXYNOS_OMX_VIDEO_CODINGTYPE {
566 #ifdef USE_KHRONOS_OMX_HEADER
567 OMX_VIDEO_CodingHEVC = 0x7F000002, /**< ITU H.265/HEVC */
568 OMX_VIDEO_CodingVP9 = 0x7F000003, /**< Google VP9 */
569 #endif
570 OMX_VIDEO_VendorCodingMAX = 0x7FFFFFFF,
571 } EXYNOS_OMX_VIDEO_CODINGTYPE;
572
573 typedef enum _EXYNOS_OMX_HIERARCHICAL_CODING_TYPE
574 {
575 EXYNOS_OMX_Hierarchical_P = 0x00,
576 EXYNOS_OMX_Hierarchical_B,
577 } EXYNOS_OMX_HIERARCHICAL_CODING_TYPE;
578
579 #ifdef USE_KHRONOS_OMX_HEADER
580
581 #if defined(USE_VP8_SUPPORT) || defined(USE_VP9_SUPPORT)
582 /** VP8 temporal layer patterns */
583 typedef enum OMX_VIDEO_ANDROID_VPXTEMPORALLAYERPATTERNTYPE {
584 OMX_VIDEO_VPXTemporalLayerPatternNone = 0,
585 OMX_VIDEO_VPXTemporalLayerPatternWebRTC = 1,
586 OMX_VIDEO_VPXTemporalLayerPatternMax = 0x7FFFFFFF
587 } OMX_VIDEO_ANDROID_VPXTEMPORALLAYERPATTERNTYPE;
588 #endif
589
590 /* VP8 Codec */
591 #ifdef USE_VP8_SUPPORT
592 /** Maximum number of VP8 temporal layers */
593 #define OMX_VIDEO_ANDROID_MAXVP8TEMPORALLAYERS 3
594
595 /**
596 * Android specific VP8 encoder params
597 *
598 * STRUCT MEMBERS:
599 * nSize : Size of the structure in bytes
600 * nVersion : OMX specification version information
601 * nPortIndex : Port that this structure applies to
602 * nKeyFrameInterval : Key frame interval in frames
603 * eTemporalPattern : Type of temporal layer pattern
604 * nTemporalLayerCount : Number of temporal coding layers
605 * nTemporalLayerBitrateRatio : Bitrate ratio allocation between temporal
606 * streams in percentage
607 * nMinQuantizer : Minimum (best quality) quantizer
608 * nMaxQuantizer : Maximum (worst quality) quantizer
609 */
610 typedef struct OMX_VIDEO_PARAM_ANDROID_VP8ENCODERTYPE {
611 OMX_U32 nSize;
612 OMX_VERSIONTYPE nVersion;
613 OMX_U32 nPortIndex;
614 OMX_U32 nKeyFrameInterval;
615 OMX_VIDEO_ANDROID_VPXTEMPORALLAYERPATTERNTYPE eTemporalPattern;
616 OMX_U32 nTemporalLayerCount;
617 OMX_U32 nTemporalLayerBitrateRatio[OMX_VIDEO_ANDROID_MAXVP8TEMPORALLAYERS];
618 OMX_U32 nMinQuantizer;
619 OMX_U32 nMaxQuantizer;
620 } OMX_VIDEO_PARAM_ANDROID_VP8ENCODERTYPE;
621 #endif // USE_VP8_SUPPORT
622
623 /* HEVC codec */
624 #ifdef USE_HEVC_SUPPORT
625 /** HEVC Profile enum type */
626 typedef enum OMX_VIDEO_HEVCPROFILETYPE {
627 OMX_VIDEO_HEVCProfileUnknown = 0x0,
628 OMX_VIDEO_HEVCProfileMain = 0x01, /**< Main profile */
629 OMX_VIDEO_HEVCProfileMain10 = 0x02, /**< Main 10 profile */
630 OMX_VIDEO_HEVCProfileMainStillPicture = 0x04, /**< Main Still Picture */
631 OMX_VIDEO_HEVCProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
632 OMX_VIDEO_HEVCProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
633 OMX_VIDEO_HEVCProfileMax = 0x7FFFFFFF
634 } OMX_VIDEO_HEVCPROFILETYPE;
635
636 /** HEVC Level enum type */
637 typedef enum OMX_VIDEO_HEVCLEVELTYPE {
638 OMX_VIDEO_HEVCLevelUnknown = 0x00000000,
639 OMX_VIDEO_HEVCMainTierLevel1 = 0x00000001, /**< Level 1 */
640 OMX_VIDEO_HEVCHighTierLevel1 = 0x00000002,
641 OMX_VIDEO_HEVCMainTierLevel2 = 0x00000004, /**< Level 2 */
642 OMX_VIDEO_HEVCHighTierLevel2 = 0x00000008,
643 OMX_VIDEO_HEVCMainTierLevel21 = 0x00000010, /**< Level 2.1 */
644 OMX_VIDEO_HEVCHighTierLevel21 = 0x00000020,
645 OMX_VIDEO_HEVCMainTierLevel3 = 0x00000040, /**< Level 3 */
646 OMX_VIDEO_HEVCHighTierLevel3 = 0x00000080,
647 OMX_VIDEO_HEVCMainTierLevel31 = 0x00000100, /**< Level 3.1 */
648 OMX_VIDEO_HEVCHighTierLevel31 = 0x00000200,
649 OMX_VIDEO_HEVCMainTierLevel4 = 0x00000400, /**< Level 4 */
650 OMX_VIDEO_HEVCHighTierLevel4 = 0x00000800,
651 OMX_VIDEO_HEVCMainTierLevel41 = 0x00001000, /**< Level 4.1 */
652 OMX_VIDEO_HEVCHighTierLevel41 = 0x00002000,
653 OMX_VIDEO_HEVCMainTierLevel5 = 0x00004000, /**< Level 5 */
654 OMX_VIDEO_HEVCHighTierLevel5 = 0x00008000,
655 OMX_VIDEO_HEVCMainTierLevel51 = 0x00010000, /**< Level 5.1 */
656 OMX_VIDEO_HEVCHighTierLevel51 = 0x00020000,
657 OMX_VIDEO_HEVCMainTierLevel52 = 0x00040000, /**< Level 5.2 */
658 OMX_VIDEO_HEVCHighTierLevel52 = 0x00080000,
659 OMX_VIDEO_HEVCMainTierLevel6 = 0x00100000, /**< Level 6 */
660 OMX_VIDEO_HEVCHighTierLevel6 = 0x00200000,
661 OMX_VIDEO_HEVCMainTierLevel61 = 0x00400000, /**< Level 6.1 */
662 OMX_VIDEO_HEVCHighTierLevel61 = 0x00800000,
663 OMX_VIDEO_HEVCMainTierLevel62 = 0x01000000, /**< Level 6.2 */
664 OMX_VIDEO_HEVCHighTierLevel62 = 0x02000000,
665 OMX_VIDEO_HEVCLevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
666 OMX_VIDEO_HEVCLevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
667 OMX_VIDEO_HEVCHighMAX = 0x7FFFFFFF
668 } OMX_VIDEO_HEVCLEVELTYPE;
669
670 /** Structure for controlling HEVC video encoding and decoding */
671 typedef struct OMX_VIDEO_PARAM_HEVCTYPE {
672 OMX_U32 nSize;
673 OMX_VERSIONTYPE nVersion;
674 OMX_U32 nPortIndex;
675 OMX_VIDEO_HEVCPROFILETYPE eProfile;
676 OMX_VIDEO_HEVCLEVELTYPE eLevel;
677 } OMX_VIDEO_PARAM_HEVCTYPE;
678
679 #endif // USE_HEVC_SUPPORT
680
681 /** Structure to define if dependent slice segments should be used */
682 typedef struct OMX_VIDEO_SLICESEGMENTSTYPE {
683 OMX_U32 nSize;
684 OMX_VERSIONTYPE nVersion;
685 OMX_U32 nPortIndex;
686 OMX_BOOL bDepedentSegments;
687 OMX_BOOL bEnableLoopFilterAcrossSlices;
688 } OMX_VIDEO_SLICESEGMENTSTYPE;
689
690 #endif // USE_KHRONOS_OMX_HEADER
691
692 //#ifdef USE_KHRONOS_OMX_HEADER
693 /* VP9 Codec */
694 #ifdef USE_VP9_SUPPORT
695 /* VP9 profiles */
696 typedef enum OMX_VIDEO_VP9PROFILETYPE {
697 OMX_VIDEO_VP9ProfileMain = 0x00000001,
698 OMX_VIDEO_VP9ProfileUnknown = 0x6EFFFFFF,
699 OMX_VIDEO_VP9ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
700 OMX_VIDEO_VP9ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
701 OMX_VIDEO_VP9ProfileMax = 0x7FFFFFFF
702 } OMX_VIDEO_VP9PROFILETYPE;
703
704 /* VP9 levels */
705 typedef enum OMX_VIDEO_VP9LEVELTYPE {
706 OMX_VIDEO_VP9Level_Version0 = 0x00000001,
707 OMX_VIDEO_VP9LevelUnknown = 0x6EFFFFFF,
708 OMX_VIDEO_VP9LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
709 OMX_VIDEO_VP9LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
710 OMX_VIDEO_VP9LevelMax = 0x7FFFFFFF
711 } OMX_VIDEO_VP9LEVELTYPE;
712
713 /* VP9 param */
714 typedef struct OMX_VIDEO_PARAM_VP9TYPE {
715 OMX_U32 nSize;
716 OMX_VERSIONTYPE nVersion;
717 OMX_U32 nPortIndex;
718 OMX_VIDEO_VP9PROFILETYPE eProfile;
719 OMX_VIDEO_VP9LEVELTYPE eLevel;
720 OMX_BOOL bErrorResilientMode;
721 } OMX_VIDEO_PARAM_VP9TYPE;
722
723 /* VP9 reference frames */
724 typedef struct OMX_VIDEO_VP9REFERENCEFRAMETYPE {
725 OMX_U32 nSize;
726 OMX_VERSIONTYPE nVersion;
727 OMX_U32 nPortIndex;
728 OMX_BOOL nPreviousFrameRefresh;
729 OMX_BOOL bGoldenFrameRefresh;
730 OMX_BOOL bAlternateFrameRefresh;
731 OMX_BOOL bUsePreviousFrame;
732 OMX_BOOL bUseGoldenFrame;
733 OMX_BOOL bUseAlternateFrame;
734 } OMX_VIDEO_VP9REFERENCEFRAMETYPE;
735
736 /* VP9 reference frame type */
737 typedef struct OMX_VIDEO_VP9REFERENCEFRAMEINFOTYPE {
738 OMX_U32 nSize;
739 OMX_VERSIONTYPE nVersion;
740 OMX_U32 nPortIndex;
741 OMX_BOOL bIsIntraFrame;
742 OMX_BOOL bIsGoldenOrAlternateFrame;
743 } OMX_VIDEO_VP9REFERENCEFRAMEINFOTYPE;
744
745 /** Maximum number of VP9 temporal layers */
746 #define OMX_VIDEO_ANDROID_MAXVP9TEMPORALLAYERS 3
747
748 /**
749 * Android specific VP9 encoder params
750 *
751 * STRUCT MEMBERS:
752 * nSize : Size of the structure in bytes
753 * nVersion : OMX specification version information
754 * nPortIndex : Port that this structure applies to
755 * nKeyFrameInterval : Key frame interval in frames
756 * eTemporalPattern : Type of temporal layer pattern
757 * nTemporalLayerCount : Number of temporal coding layers
758 * nTemporalLayerBitrateRatio : Bitrate ratio allocation between temporal
759 * streams in percentage
760 * nMinQuantizer : Minimum (best quality) quantizer
761 * nMaxQuantizer : Maximum (worst quality) quantizer
762 */
763 typedef struct OMX_VIDEO_PARAM_ANDROID_VP9ENCODERTYPE {
764 OMX_U32 nSize;
765 OMX_VERSIONTYPE nVersion;
766 OMX_U32 nPortIndex;
767 OMX_U32 nKeyFrameInterval;
768 OMX_VIDEO_ANDROID_VPXTEMPORALLAYERPATTERNTYPE eTemporalPattern;
769 OMX_U32 nTemporalLayerCount;
770 OMX_U32 nTemporalLayerBitrateRatio[OMX_VIDEO_ANDROID_MAXVP9TEMPORALLAYERS];
771 OMX_U32 nMinQuantizer;
772 OMX_U32 nMaxQuantizer;
773 } OMX_VIDEO_PARAM_ANDROID_VP9ENCODERTYPE;
774 #endif // USE_VP9_SUPPORT
775 //#endif // USE_KHRONOS_OMX_HEADER
776
777 #ifndef USE_KHRONOS_OMX_1_2
778 /* WMV codec */
779 /** WMV Profile enum type */
780 typedef enum OMX_VIDEO_WMVPROFILETYPE {
781 OMX_VIDEO_WMVProfileSimple = 0,
782 OMX_VIDEO_WMVProfileMain,
783 OMX_VIDEO_WMVProfileAdvanced,
784 OMX_VIDEO_WMVProfileUnknown = 0x6EFFFFFF,
785 OMX_VIDEO_WMVProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
786 OMX_VIDEO_WMVProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
787 } OMX_VIDEO_WMVPROFILETYPE;
788
789 /** WMV Level enum type */
790 typedef enum OMX_VIDEO_WMVLEVELTYPE {
791 OMX_VIDEO_WMVLevelLow = 0,
792 OMX_VIDEO_WMVLevelMedium,
793 OMX_VIDEO_WMVLevelHigh,
794 OMX_VIDEO_WMVLevelL0,
795 OMX_VIDEO_WMVLevelL1,
796 OMX_VIDEO_WMVLevelL2,
797 OMX_VIDEO_WMVLevelL3,
798 OMX_VIDEO_WMVLevelL4,
799 OMX_VIDEO_WMVLevelUnknown = 0x6EFFFFFF,
800 OMX_VIDEO_WMVLevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
801 OMX_VIDEO_WMVLevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
802 } OMX_VIDEO_WMVLEVELTYPE;
803
804 /* VC1 codec */
805 /** VC1 Profile enum type */
806 typedef enum OMX_VIDEO_VC1PROFILETYPE {
807 OMX_VIDEO_VC1ProfileUnused = 0,
808 OMX_VIDEO_VC1ProfileSimple,
809 OMX_VIDEO_VC1ProfileMain,
810 OMX_VIDEO_VC1ProfileAdvanced,
811 OMX_VIDEO_VC1ProfileUnknown = 0x6EFFFFFF,
812 OMX_VIDEO_VC1ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
813 OMX_VIDEO_VC1ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
814 OMX_VIDEO_VC1ProfileMax
815 } OMX_VIDEO_VC1PROFILETYPE;
816
817 /** VC1 Level enum type */
818 typedef enum OMX_VIDEO_VC1LEVELTYPE {
819 OMX_VIDEO_VC1LevelUnused = 0,
820 OMX_VIDEO_VC1LevelLow,
821 OMX_VIDEO_VC1LevelMedium,
822 OMX_VIDEO_VC1LevelHigh,
823 OMX_VIDEO_VC1Level0,
824 OMX_VIDEO_VC1Level1,
825 OMX_VIDEO_VC1Level2,
826 OMX_VIDEO_VC1Level3,
827 OMX_VIDEO_VC1Level4,
828 OMX_VIDEO_VC1LevelUnknown = 0x6EFFFFFF,
829 OMX_VIDEO_VC1LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
830 OMX_VIDEO_VC1LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
831 OMX_VIDEO_VC1LevelMax
832 } OMX_VIDEO_VC1LEVELTYPE;
833
834 /** Structure for controlling VC1 video encoding and decoding */
835 typedef struct OMX_VIDEO_PARAM_VC1TYPE {
836 OMX_U32 nSize;
837 OMX_VERSIONTYPE nVersion;
838 OMX_U32 nPortIndex;
839 OMX_VIDEO_VC1PROFILETYPE eProfile;
840 OMX_VIDEO_VC1LEVELTYPE eLevel;
841 } OMX_VIDEO_PARAM_VC1TYPE;
842 #endif
843
844 #ifndef __OMX_EXPORTS
845 #define __OMX_EXPORTS
846 #define EXYNOS_EXPORT_REF __attribute__((visibility("default")))
847 #define EXYNOS_IMPORT_REF __attribute__((visibility("default")))
848 #endif
849
850 #endif