add_savefile: remove callback parameter
[vlc/asuraparaju-public.git] / modules / codec / omxil / OMX_IVCommon.h
blob9b2ce2bba26a63acbf83e6472a0293f36d1fceea
1 /**
2 * Copyright (c) 2008 The Khronos Group Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files (the
6 * "Software"), to deal in the Software without restriction, including
7 * without limitation the rights to use, copy, modify, merge, publish,
8 * distribute, sublicense, and/or sell copies of the Software, and to
9 * permit persons to whom the Software is furnished to do so, subject
10 * to the following conditions:
11 * The above copyright notice and this permission notice shall be included
12 * in all copies or substantial portions of the Software.
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
20 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 /**
25 * @file OMX_IVCommon.h - OpenMax IL version 1.1.2
26 * The structures needed by Video and Image components to exchange
27 * parameters and configuration data with the components.
29 #ifndef OMX_IVCommon_h
30 #define OMX_IVCommon_h
32 #ifdef __cplusplus
33 extern "C" {
34 #endif /* __cplusplus */
36 /**
37 * Each OMX header must include all required header files to allow the header
38 * to compile without errors. The includes below are required for this header
39 * file to compile successfully
42 #include <OMX_Core.h>
44 /** @defgroup iv OpenMAX IL Imaging and Video Domain
45 * Common structures for OpenMAX IL Imaging and Video domains
46 * @{
50 /**
51 * Enumeration defining possible uncompressed image/video formats.
53 * ENUMS:
54 * Unused : Placeholder value when format is N/A
55 * Monochrome : black and white
56 * 8bitRGB332 : Red 7:5, Green 4:2, Blue 1:0
57 * 12bitRGB444 : Red 11:8, Green 7:4, Blue 3:0
58 * 16bitARGB4444 : Alpha 15:12, Red 11:8, Green 7:4, Blue 3:0
59 * 16bitARGB1555 : Alpha 15, Red 14:10, Green 9:5, Blue 4:0
60 * 16bitRGB565 : Red 15:11, Green 10:5, Blue 4:0
61 * 16bitBGR565 : Blue 15:11, Green 10:5, Red 4:0
62 * 18bitRGB666 : Red 17:12, Green 11:6, Blue 5:0
63 * 18bitARGB1665 : Alpha 17, Red 16:11, Green 10:5, Blue 4:0
64 * 19bitARGB1666 : Alpha 18, Red 17:12, Green 11:6, Blue 5:0
65 * 24bitRGB888 : Red 24:16, Green 15:8, Blue 7:0
66 * 24bitBGR888 : Blue 24:16, Green 15:8, Red 7:0
67 * 24bitARGB1887 : Alpha 23, Red 22:15, Green 14:7, Blue 6:0
68 * 25bitARGB1888 : Alpha 24, Red 23:16, Green 15:8, Blue 7:0
69 * 32bitBGRA8888 : Blue 31:24, Green 23:16, Red 15:8, Alpha 7:0
70 * 32bitARGB8888 : Alpha 31:24, Red 23:16, Green 15:8, Blue 7:0
71 * YUV411Planar : U,Y are subsampled by a factor of 4 horizontally
72 * YUV411PackedPlanar : packed per payload in planar slices
73 * YUV420Planar : Three arrays Y,U,V.
74 * YUV420PackedPlanar : packed per payload in planar slices
75 * YUV420SemiPlanar : Two arrays, one is all Y, the other is U and V
76 * YUV422Planar : Three arrays Y,U,V.
77 * YUV422PackedPlanar : packed per payload in planar slices
78 * YUV422SemiPlanar : Two arrays, one is all Y, the other is U and V
79 * YCbYCr : Organized as 16bit YUYV (i.e. YCbYCr)
80 * YCrYCb : Organized as 16bit YVYU (i.e. YCrYCb)
81 * CbYCrY : Organized as 16bit UYVY (i.e. CbYCrY)
82 * CrYCbY : Organized as 16bit VYUY (i.e. CrYCbY)
83 * YUV444Interleaved : Each pixel contains equal parts YUV
84 * RawBayer8bit : SMIA camera output format
85 * RawBayer10bit : SMIA camera output format
86 * RawBayer8bitcompressed : SMIA camera output format
88 typedef enum OMX_COLOR_FORMATTYPE {
89 OMX_COLOR_FormatUnused,
90 OMX_COLOR_FormatMonochrome,
91 OMX_COLOR_Format8bitRGB332,
92 OMX_COLOR_Format12bitRGB444,
93 OMX_COLOR_Format16bitARGB4444,
94 OMX_COLOR_Format16bitARGB1555,
95 OMX_COLOR_Format16bitRGB565,
96 OMX_COLOR_Format16bitBGR565,
97 OMX_COLOR_Format18bitRGB666,
98 OMX_COLOR_Format18bitARGB1665,
99 OMX_COLOR_Format19bitARGB1666,
100 OMX_COLOR_Format24bitRGB888,
101 OMX_COLOR_Format24bitBGR888,
102 OMX_COLOR_Format24bitARGB1887,
103 OMX_COLOR_Format25bitARGB1888,
104 OMX_COLOR_Format32bitBGRA8888,
105 OMX_COLOR_Format32bitARGB8888,
106 OMX_COLOR_FormatYUV411Planar,
107 OMX_COLOR_FormatYUV411PackedPlanar,
108 OMX_COLOR_FormatYUV420Planar,
109 OMX_COLOR_FormatYUV420PackedPlanar,
110 OMX_COLOR_FormatYUV420SemiPlanar,
111 OMX_COLOR_FormatYUV422Planar,
112 OMX_COLOR_FormatYUV422PackedPlanar,
113 OMX_COLOR_FormatYUV422SemiPlanar,
114 OMX_COLOR_FormatYCbYCr,
115 OMX_COLOR_FormatYCrYCb,
116 OMX_COLOR_FormatCbYCrY,
117 OMX_COLOR_FormatCrYCbY,
118 OMX_COLOR_FormatYUV444Interleaved,
119 OMX_COLOR_FormatRawBayer8bit,
120 OMX_COLOR_FormatRawBayer10bit,
121 OMX_COLOR_FormatRawBayer8bitcompressed,
122 OMX_COLOR_FormatL2,
123 OMX_COLOR_FormatL4,
124 OMX_COLOR_FormatL8,
125 OMX_COLOR_FormatL16,
126 OMX_COLOR_FormatL24,
127 OMX_COLOR_FormatL32,
128 OMX_COLOR_FormatYUV420PackedSemiPlanar,
129 OMX_COLOR_FormatYUV422PackedSemiPlanar,
130 OMX_COLOR_Format18BitBGR666,
131 OMX_COLOR_Format24BitARGB6666,
132 OMX_COLOR_Format24BitABGR6666,
133 OMX_COLOR_FormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
134 OMX_COLOR_FormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
135 OMX_COLOR_FormatMax = 0x7FFFFFFF
136 } OMX_COLOR_FORMATTYPE;
139 /**
140 * Defines the matrix for conversion from RGB to YUV or vice versa.
141 * iColorMatrix should be initialized with the fixed point values
142 * used in converting between formats.
144 typedef struct OMX_CONFIG_COLORCONVERSIONTYPE {
145 OMX_U32 nSize; /**< Size of the structure in bytes */
146 OMX_VERSIONTYPE nVersion; /**< OMX specification version info */
147 OMX_U32 nPortIndex; /**< Port that this struct applies to */
148 OMX_S32 xColorMatrix[3][3]; /**< Stored in signed Q16 format */
149 OMX_S32 xColorOffset[4]; /**< Stored in signed Q16 format */
150 }OMX_CONFIG_COLORCONVERSIONTYPE;
153 /**
154 * Structure defining percent to scale each frame dimension. For example:
155 * To make the width 50% larger, use fWidth = 1.5 and to make the width
156 * 1/2 the original size, use fWidth = 0.5
158 typedef struct OMX_CONFIG_SCALEFACTORTYPE {
159 OMX_U32 nSize; /**< Size of the structure in bytes */
160 OMX_VERSIONTYPE nVersion; /**< OMX specification version info */
161 OMX_U32 nPortIndex; /**< Port that this struct applies to */
162 OMX_S32 xWidth; /**< Fixed point value stored as Q16 */
163 OMX_S32 xHeight; /**< Fixed point value stored as Q16 */
164 }OMX_CONFIG_SCALEFACTORTYPE;
167 /**
168 * Enumeration of possible image filter types
170 typedef enum OMX_IMAGEFILTERTYPE {
171 OMX_ImageFilterNone,
172 OMX_ImageFilterNoise,
173 OMX_ImageFilterEmboss,
174 OMX_ImageFilterNegative,
175 OMX_ImageFilterSketch,
176 OMX_ImageFilterOilPaint,
177 OMX_ImageFilterHatch,
178 OMX_ImageFilterGpen,
179 OMX_ImageFilterAntialias,
180 OMX_ImageFilterDeRing,
181 OMX_ImageFilterSolarize,
182 OMX_ImageFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
183 OMX_ImageFilterVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
184 OMX_ImageFilterMax = 0x7FFFFFFF
185 } OMX_IMAGEFILTERTYPE;
188 /**
189 * Image filter configuration
191 * STRUCT MEMBERS:
192 * nSize : Size of the structure in bytes
193 * nVersion : OMX specification version information
194 * nPortIndex : Port that this structure applies to
195 * eImageFilter : Image filter type enumeration
197 typedef struct OMX_CONFIG_IMAGEFILTERTYPE {
198 OMX_U32 nSize;
199 OMX_VERSIONTYPE nVersion;
200 OMX_U32 nPortIndex;
201 OMX_IMAGEFILTERTYPE eImageFilter;
202 } OMX_CONFIG_IMAGEFILTERTYPE;
205 /**
206 * Customized U and V for color enhancement
208 * STRUCT MEMBERS:
209 * nSize : Size of the structure in bytes
210 * nVersion : OMX specification version information
211 * nPortIndex : Port that this structure applies to
212 * bColorEnhancement : Enable/disable color enhancement
213 * nCustomizedU : Practical values: 16-240, range: 0-255, value set for
214 * U component
215 * nCustomizedV : Practical values: 16-240, range: 0-255, value set for
216 * V component
218 typedef struct OMX_CONFIG_COLORENHANCEMENTTYPE {
219 OMX_U32 nSize;
220 OMX_VERSIONTYPE nVersion;
221 OMX_U32 nPortIndex;
222 OMX_BOOL bColorEnhancement;
223 OMX_U8 nCustomizedU;
224 OMX_U8 nCustomizedV;
225 } OMX_CONFIG_COLORENHANCEMENTTYPE;
228 /**
229 * Define color key and color key mask
231 * STRUCT MEMBERS:
232 * nSize : Size of the structure in bytes
233 * nVersion : OMX specification version information
234 * nPortIndex : Port that this structure applies to
235 * nARGBColor : 32bit Alpha, Red, Green, Blue Color
236 * nARGBMask : 32bit Mask for Alpha, Red, Green, Blue channels
238 typedef struct OMX_CONFIG_COLORKEYTYPE {
239 OMX_U32 nSize;
240 OMX_VERSIONTYPE nVersion;
241 OMX_U32 nPortIndex;
242 OMX_U32 nARGBColor;
243 OMX_U32 nARGBMask;
244 } OMX_CONFIG_COLORKEYTYPE;
247 /**
248 * List of color blend types for pre/post processing
250 * ENUMS:
251 * None : No color blending present
252 * AlphaConstant : Function is (alpha_constant * src) +
253 * (1 - alpha_constant) * dst)
254 * AlphaPerPixel : Function is (alpha * src) + (1 - alpha) * dst)
255 * Alternate : Function is alternating pixels from src and dst
256 * And : Function is (src & dst)
257 * Or : Function is (src | dst)
258 * Invert : Function is ~src
260 typedef enum OMX_COLORBLENDTYPE {
261 OMX_ColorBlendNone,
262 OMX_ColorBlendAlphaConstant,
263 OMX_ColorBlendAlphaPerPixel,
264 OMX_ColorBlendAlternate,
265 OMX_ColorBlendAnd,
266 OMX_ColorBlendOr,
267 OMX_ColorBlendInvert,
268 OMX_ColorBlendKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
269 OMX_ColorBlendVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
270 OMX_ColorBlendMax = 0x7FFFFFFF
271 } OMX_COLORBLENDTYPE;
274 /**
275 * Color blend configuration
277 * STRUCT MEMBERS:
278 * nSize : Size of the structure in bytes
279 * nVersion : OMX specification version information
280 * nPortIndex : Port that this structure applies to
281 * nRGBAlphaConstant : Constant global alpha values when global alpha is used
282 * eColorBlend : Color blend type enumeration
284 typedef struct OMX_CONFIG_COLORBLENDTYPE {
285 OMX_U32 nSize;
286 OMX_VERSIONTYPE nVersion;
287 OMX_U32 nPortIndex;
288 OMX_U32 nRGBAlphaConstant;
289 OMX_COLORBLENDTYPE eColorBlend;
290 } OMX_CONFIG_COLORBLENDTYPE;
293 /**
294 * Hold frame dimension
296 * STRUCT MEMBERS:
297 * nSize : Size of the structure in bytes
298 * nVersion : OMX specification version information
299 * nPortIndex : Port that this structure applies to
300 * nWidth : Frame width in pixels
301 * nHeight : Frame height in pixels
303 typedef struct OMX_FRAMESIZETYPE {
304 OMX_U32 nSize;
305 OMX_VERSIONTYPE nVersion;
306 OMX_U32 nPortIndex;
307 OMX_U32 nWidth;
308 OMX_U32 nHeight;
309 } OMX_FRAMESIZETYPE;
313 * Rotation configuration
315 * STRUCT MEMBERS:
316 * nSize : Size of the structure in bytes
317 * nVersion : OMX specification version information
318 * nPortIndex : Port that this structure applies to
319 * nRotation : +/- integer rotation value
321 typedef struct OMX_CONFIG_ROTATIONTYPE {
322 OMX_U32 nSize;
323 OMX_VERSIONTYPE nVersion;
324 OMX_U32 nPortIndex;
325 OMX_S32 nRotation;
326 } OMX_CONFIG_ROTATIONTYPE;
329 /**
330 * Possible mirroring directions for pre/post processing
332 * ENUMS:
333 * None : No mirroring
334 * Vertical : Vertical mirroring, flip on X axis
335 * Horizontal : Horizontal mirroring, flip on Y axis
336 * Both : Both vertical and horizontal mirroring
338 typedef enum OMX_MIRRORTYPE {
339 OMX_MirrorNone = 0,
340 OMX_MirrorVertical,
341 OMX_MirrorHorizontal,
342 OMX_MirrorBoth,
343 OMX_MirrorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
344 OMX_MirrorVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
345 OMX_MirrorMax = 0x7FFFFFFF
346 } OMX_MIRRORTYPE;
349 /**
350 * Mirroring configuration
352 * STRUCT MEMBERS:
353 * nSize : Size of the structure in bytes
354 * nVersion : OMX specification version information
355 * nPortIndex : Port that this structure applies to
356 * eMirror : Mirror type enumeration
358 typedef struct OMX_CONFIG_MIRRORTYPE {
359 OMX_U32 nSize;
360 OMX_VERSIONTYPE nVersion;
361 OMX_U32 nPortIndex;
362 OMX_MIRRORTYPE eMirror;
363 } OMX_CONFIG_MIRRORTYPE;
366 /**
367 * Position information only
369 * STRUCT MEMBERS:
370 * nSize : Size of the structure in bytes
371 * nVersion : OMX specification version information
372 * nPortIndex : Port that this structure applies to
373 * nX : X coordinate for the point
374 * nY : Y coordinate for the point
376 typedef struct OMX_CONFIG_POINTTYPE {
377 OMX_U32 nSize;
378 OMX_VERSIONTYPE nVersion;
379 OMX_U32 nPortIndex;
380 OMX_S32 nX;
381 OMX_S32 nY;
382 } OMX_CONFIG_POINTTYPE;
385 /**
386 * Frame size plus position
388 * STRUCT MEMBERS:
389 * nSize : Size of the structure in bytes
390 * nVersion : OMX specification version information
391 * nPortIndex : Port that this structure applies to
392 * nLeft : X Coordinate of the top left corner of the rectangle
393 * nTop : Y Coordinate of the top left corner of the rectangle
394 * nWidth : Width of the rectangle
395 * nHeight : Height of the rectangle
397 typedef struct OMX_CONFIG_RECTTYPE {
398 OMX_U32 nSize;
399 OMX_VERSIONTYPE nVersion;
400 OMX_U32 nPortIndex;
401 OMX_S32 nLeft;
402 OMX_S32 nTop;
403 OMX_U32 nWidth;
404 OMX_U32 nHeight;
405 } OMX_CONFIG_RECTTYPE;
408 /**
409 * Deblocking state; it is required to be set up before starting the codec
411 * STRUCT MEMBERS:
412 * nSize : Size of the structure in bytes
413 * nVersion : OMX specification version information
414 * nPortIndex : Port that this structure applies to
415 * bDeblocking : Enable/disable deblocking mode
417 typedef struct OMX_PARAM_DEBLOCKINGTYPE {
418 OMX_U32 nSize;
419 OMX_VERSIONTYPE nVersion;
420 OMX_U32 nPortIndex;
421 OMX_BOOL bDeblocking;
422 } OMX_PARAM_DEBLOCKINGTYPE;
425 /**
426 * Stabilization state
428 * STRUCT MEMBERS:
429 * nSize : Size of the structure in bytes
430 * nVersion : OMX specification version information
431 * nPortIndex : Port that this structure applies to
432 * bStab : Enable/disable frame stabilization state
434 typedef struct OMX_CONFIG_FRAMESTABTYPE {
435 OMX_U32 nSize;
436 OMX_VERSIONTYPE nVersion;
437 OMX_U32 nPortIndex;
438 OMX_BOOL bStab;
439 } OMX_CONFIG_FRAMESTABTYPE;
442 /**
443 * White Balance control type
445 * STRUCT MEMBERS:
446 * SunLight : Referenced in JSR-234
447 * Flash : Optimal for device's integrated flash
449 typedef enum OMX_WHITEBALCONTROLTYPE {
450 OMX_WhiteBalControlOff = 0,
451 OMX_WhiteBalControlAuto,
452 OMX_WhiteBalControlSunLight,
453 OMX_WhiteBalControlCloudy,
454 OMX_WhiteBalControlShade,
455 OMX_WhiteBalControlTungsten,
456 OMX_WhiteBalControlFluorescent,
457 OMX_WhiteBalControlIncandescent,
458 OMX_WhiteBalControlFlash,
459 OMX_WhiteBalControlHorizon,
460 OMX_WhiteBalControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
461 OMX_WhiteBalControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
462 OMX_WhiteBalControlMax = 0x7FFFFFFF
463 } OMX_WHITEBALCONTROLTYPE;
466 /**
467 * White Balance control configuration
469 * STRUCT MEMBERS:
470 * nSize : Size of the structure in bytes
471 * nVersion : OMX specification version information
472 * nPortIndex : Port that this structure applies to
473 * eWhiteBalControl : White balance enumeration
475 typedef struct OMX_CONFIG_WHITEBALCONTROLTYPE {
476 OMX_U32 nSize;
477 OMX_VERSIONTYPE nVersion;
478 OMX_U32 nPortIndex;
479 OMX_WHITEBALCONTROLTYPE eWhiteBalControl;
480 } OMX_CONFIG_WHITEBALCONTROLTYPE;
483 /**
484 * Exposure control type
486 typedef enum OMX_EXPOSURECONTROLTYPE {
487 OMX_ExposureControlOff = 0,
488 OMX_ExposureControlAuto,
489 OMX_ExposureControlNight,
490 OMX_ExposureControlBackLight,
491 OMX_ExposureControlSpotLight,
492 OMX_ExposureControlSports,
493 OMX_ExposureControlSnow,
494 OMX_ExposureControlBeach,
495 OMX_ExposureControlLargeAperture,
496 OMX_ExposureControlSmallApperture,
497 OMX_ExposureControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
498 OMX_ExposureControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
499 OMX_ExposureControlMax = 0x7FFFFFFF
500 } OMX_EXPOSURECONTROLTYPE;
503 /**
504 * White Balance control configuration
506 * STRUCT MEMBERS:
507 * nSize : Size of the structure in bytes
508 * nVersion : OMX specification version information
509 * nPortIndex : Port that this structure applies to
510 * eExposureControl : Exposure control enumeration
512 typedef struct OMX_CONFIG_EXPOSURECONTROLTYPE {
513 OMX_U32 nSize;
514 OMX_VERSIONTYPE nVersion;
515 OMX_U32 nPortIndex;
516 OMX_EXPOSURECONTROLTYPE eExposureControl;
517 } OMX_CONFIG_EXPOSURECONTROLTYPE;
520 /**
521 * Defines sensor supported mode.
523 * STRUCT MEMBERS:
524 * nSize : Size of the structure in bytes
525 * nVersion : OMX specification version information
526 * nPortIndex : Port that this structure applies to
527 * nFrameRate : Single shot mode is indicated by a 0
528 * bOneShot : Enable for single shot, disable for streaming
529 * sFrameSize : Framesize
531 typedef struct OMX_PARAM_SENSORMODETYPE {
532 OMX_U32 nSize;
533 OMX_VERSIONTYPE nVersion;
534 OMX_U32 nPortIndex;
535 OMX_U32 nFrameRate;
536 OMX_BOOL bOneShot;
537 OMX_FRAMESIZETYPE sFrameSize;
538 } OMX_PARAM_SENSORMODETYPE;
541 /**
542 * Defines contrast level
544 * STRUCT MEMBERS:
545 * nSize : Size of the structure in bytes
546 * nVersion : OMX specification version information
547 * nPortIndex : Port that this structure applies to
548 * nContrast : Values allowed for contrast -100 to 100, zero means no change
550 typedef struct OMX_CONFIG_CONTRASTTYPE {
551 OMX_U32 nSize;
552 OMX_VERSIONTYPE nVersion;
553 OMX_U32 nPortIndex;
554 OMX_S32 nContrast;
555 } OMX_CONFIG_CONTRASTTYPE;
558 /**
559 * Defines brightness level
561 * STRUCT MEMBERS:
562 * nSize : Size of the structure in bytes
563 * nVersion : OMX specification version information
564 * nPortIndex : Port that this structure applies to
565 * nBrightness : 0-100%
567 typedef struct OMX_CONFIG_BRIGHTNESSTYPE {
568 OMX_U32 nSize;
569 OMX_VERSIONTYPE nVersion;
570 OMX_U32 nPortIndex;
571 OMX_U32 nBrightness;
572 } OMX_CONFIG_BRIGHTNESSTYPE;
575 /**
576 * Defines backlight level configuration for a video sink, e.g. LCD panel
578 * STRUCT MEMBERS:
579 * nSize : Size of the structure in bytes
580 * nVersion : OMX specification version information
581 * nPortIndex : Port that this structure applies to
582 * nBacklight : Values allowed for backlight 0-100%
583 * nTimeout : Number of milliseconds before backlight automatically turns
584 * off. A value of 0x0 disables backight timeout
586 typedef struct OMX_CONFIG_BACKLIGHTTYPE {
587 OMX_U32 nSize;
588 OMX_VERSIONTYPE nVersion;
589 OMX_U32 nPortIndex;
590 OMX_U32 nBacklight;
591 OMX_U32 nTimeout;
592 } OMX_CONFIG_BACKLIGHTTYPE;
595 /**
596 * Defines setting for Gamma
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 * nGamma : Values allowed for gamma -100 to 100, zero means no change
604 typedef struct OMX_CONFIG_GAMMATYPE {
605 OMX_U32 nSize;
606 OMX_VERSIONTYPE nVersion;
607 OMX_U32 nPortIndex;
608 OMX_S32 nGamma;
609 } OMX_CONFIG_GAMMATYPE;
612 /**
613 * Define for setting saturation
615 * STRUCT MEMBERS:
616 * nSize : Size of the structure in bytes
617 * nVersion : OMX specification version information
618 * nPortIndex : Port that this structure applies to
619 * nSaturation : Values allowed for saturation -100 to 100, zero means
620 * no change
622 typedef struct OMX_CONFIG_SATURATIONTYPE {
623 OMX_U32 nSize;
624 OMX_VERSIONTYPE nVersion;
625 OMX_U32 nPortIndex;
626 OMX_S32 nSaturation;
627 } OMX_CONFIG_SATURATIONTYPE;
630 /**
631 * Define for setting Lightness
633 * STRUCT MEMBERS:
634 * nSize : Size of the structure in bytes
635 * nVersion : OMX specification version information
636 * nPortIndex : Port that this structure applies to
637 * nLightness : Values allowed for lightness -100 to 100, zero means no
638 * change
640 typedef struct OMX_CONFIG_LIGHTNESSTYPE {
641 OMX_U32 nSize;
642 OMX_VERSIONTYPE nVersion;
643 OMX_U32 nPortIndex;
644 OMX_S32 nLightness;
645 } OMX_CONFIG_LIGHTNESSTYPE;
648 /**
649 * Plane blend configuration
651 * STRUCT MEMBERS:
652 * nSize : Size of the structure in bytes
653 * nVersion : OMX specification version information
654 * nPortIndex : Index of input port associated with the plane.
655 * nDepth : Depth of the plane in relation to the screen. Higher
656 * numbered depths are "behind" lower number depths.
657 * This number defaults to the Port Index number.
658 * nAlpha : Transparency blending component for the entire plane.
659 * See blending modes for more detail.
661 typedef struct OMX_CONFIG_PLANEBLENDTYPE {
662 OMX_U32 nSize;
663 OMX_VERSIONTYPE nVersion;
664 OMX_U32 nPortIndex;
665 OMX_U32 nDepth;
666 OMX_U32 nAlpha;
667 } OMX_CONFIG_PLANEBLENDTYPE;
670 /**
671 * Define interlace type
673 * STRUCT MEMBERS:
674 * nSize : Size of the structure in bytes
675 * nVersion : OMX specification version information
676 * nPortIndex : Port that this structure applies to
677 * bEnable : Enable control variable for this functionality
678 * (see below)
679 * nInterleavePortIndex : Index of input or output port associated with
680 * the interleaved plane.
681 * pPlanarPortIndexes[4] : Index of input or output planar ports.
683 typedef struct OMX_PARAM_INTERLEAVETYPE {
684 OMX_U32 nSize;
685 OMX_VERSIONTYPE nVersion;
686 OMX_U32 nPortIndex;
687 OMX_BOOL bEnable;
688 OMX_U32 nInterleavePortIndex;
689 } OMX_PARAM_INTERLEAVETYPE;
692 /**
693 * Defines the picture effect used for an input picture
695 typedef enum OMX_TRANSITIONEFFECTTYPE {
696 OMX_EffectNone,
697 OMX_EffectFadeFromBlack,
698 OMX_EffectFadeToBlack,
699 OMX_EffectUnspecifiedThroughConstantColor,
700 OMX_EffectDissolve,
701 OMX_EffectWipe,
702 OMX_EffectUnspecifiedMixOfTwoScenes,
703 OMX_EffectKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
704 OMX_EffectVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
705 OMX_EffectMax = 0x7FFFFFFF
706 } OMX_TRANSITIONEFFECTTYPE;
709 /**
710 * Structure used to configure current transition effect
712 * STRUCT MEMBERS:
713 * nSize : Size of the structure in bytes
714 * nVersion : OMX specification version information
715 * nPortIndex : Port that this structure applies to
716 * eEffect : Effect to enable
718 typedef struct OMX_CONFIG_TRANSITIONEFFECTTYPE {
719 OMX_U32 nSize;
720 OMX_VERSIONTYPE nVersion;
721 OMX_U32 nPortIndex;
722 OMX_TRANSITIONEFFECTTYPE eEffect;
723 } OMX_CONFIG_TRANSITIONEFFECTTYPE;
726 /**
727 * Defines possible data unit types for encoded video data. The data unit
728 * types are used both for encoded video input for playback as well as
729 * encoded video output from recording.
731 typedef enum OMX_DATAUNITTYPE {
732 OMX_DataUnitCodedPicture,
733 OMX_DataUnitVideoSegment,
734 OMX_DataUnitSeveralSegments,
735 OMX_DataUnitArbitraryStreamSection,
736 OMX_DataUnitKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
737 OMX_DataUnitVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
738 OMX_DataUnitMax = 0x7FFFFFFF
739 } OMX_DATAUNITTYPE;
742 /**
743 * Defines possible encapsulation types for coded video data unit. The
744 * encapsulation information is used both for encoded video input for
745 * playback as well as encoded video output from recording.
747 typedef enum OMX_DATAUNITENCAPSULATIONTYPE {
748 OMX_DataEncapsulationElementaryStream,
749 OMX_DataEncapsulationGenericPayload,
750 OMX_DataEncapsulationRtpPayload,
751 OMX_DataEncapsulationKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
752 OMX_DataEncapsulationVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
753 OMX_DataEncapsulationMax = 0x7FFFFFFF
754 } OMX_DATAUNITENCAPSULATIONTYPE;
757 /**
758 * Structure used to configure the type of being decoded/encoded
760 typedef struct OMX_PARAM_DATAUNITTYPE {
761 OMX_U32 nSize; /**< Size of the structure in bytes */
762 OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
763 OMX_U32 nPortIndex; /**< Port that this structure applies to */
764 OMX_DATAUNITTYPE eUnitType;
765 OMX_DATAUNITENCAPSULATIONTYPE eEncapsulationType;
766 } OMX_PARAM_DATAUNITTYPE;
770 * Defines dither types
772 typedef enum OMX_DITHERTYPE {
773 OMX_DitherNone,
774 OMX_DitherOrdered,
775 OMX_DitherErrorDiffusion,
776 OMX_DitherOther,
777 OMX_DitherKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
778 OMX_DitherVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
779 OMX_DitherMax = 0x7FFFFFFF
780 } OMX_DITHERTYPE;
783 /**
784 * Structure used to configure current type of dithering
786 typedef struct OMX_CONFIG_DITHERTYPE {
787 OMX_U32 nSize; /**< Size of the structure in bytes */
788 OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
789 OMX_U32 nPortIndex; /**< Port that this structure applies to */
790 OMX_DITHERTYPE eDither; /**< Type of dithering to use */
791 } OMX_CONFIG_DITHERTYPE;
793 typedef struct OMX_CONFIG_CAPTUREMODETYPE {
794 OMX_U32 nSize;
795 OMX_VERSIONTYPE nVersion;
796 OMX_U32 nPortIndex; /**< Port that this structure applies to */
797 OMX_BOOL bContinuous; /**< If true then ignore frame rate and emit capture
798 * data as fast as possible (otherwise obey port's frame rate). */
799 OMX_BOOL bFrameLimited; /**< If true then terminate capture after the port emits the
800 * specified number of frames (otherwise the port does not
801 * terminate the capture until instructed to do so by the client).
802 * Even if set, the client may manually terminate the capture prior
803 * to reaching the limit. */
804 OMX_U32 nFrameLimit; /**< Limit on number of frames emitted during a capture (only
805 * valid if bFrameLimited is set). */
806 } OMX_CONFIG_CAPTUREMODETYPE;
808 typedef enum OMX_METERINGTYPE {
810 OMX_MeteringModeAverage, /**< Center-weighted average metering. */
811 OMX_MeteringModeSpot, /**< Spot (partial) metering. */
812 OMX_MeteringModeMatrix, /**< Matrix or evaluative metering. */
814 OMX_MeteringKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
815 OMX_MeteringVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
816 OMX_EVModeMax = 0x7fffffff
817 } OMX_METERINGTYPE;
819 typedef struct OMX_CONFIG_EXPOSUREVALUETYPE {
820 OMX_U32 nSize;
821 OMX_VERSIONTYPE nVersion;
822 OMX_U32 nPortIndex;
823 OMX_METERINGTYPE eMetering;
824 OMX_S32 xEVCompensation; /**< Fixed point value stored as Q16 */
825 OMX_U32 nApertureFNumber; /**< e.g. nApertureFNumber = 2 implies "f/2" - Q16 format */
826 OMX_BOOL bAutoAperture; /**< Whether aperture number is defined automatically */
827 OMX_U32 nShutterSpeedMsec; /**< Shutterspeed in milliseconds */
828 OMX_BOOL bAutoShutterSpeed; /**< Whether shutter speed is defined automatically */
829 OMX_U32 nSensitivity; /**< e.g. nSensitivity = 100 implies "ISO 100" */
830 OMX_BOOL bAutoSensitivity; /**< Whether sensitivity is defined automatically */
831 } OMX_CONFIG_EXPOSUREVALUETYPE;
833 /**
834 * Focus region configuration
836 * STRUCT MEMBERS:
837 * nSize : Size of the structure in bytes
838 * nVersion : OMX specification version information
839 * nPortIndex : Port that this structure applies to
840 * bCenter : Use center region as focus region of interest
841 * bLeft : Use left region as focus region of interest
842 * bRight : Use right region as focus region of interest
843 * bTop : Use top region as focus region of interest
844 * bBottom : Use bottom region as focus region of interest
845 * bTopLeft : Use top left region as focus region of interest
846 * bTopRight : Use top right region as focus region of interest
847 * bBottomLeft : Use bottom left region as focus region of interest
848 * bBottomRight : Use bottom right region as focus region of interest
850 typedef struct OMX_CONFIG_FOCUSREGIONTYPE {
851 OMX_U32 nSize;
852 OMX_VERSIONTYPE nVersion;
853 OMX_U32 nPortIndex;
854 OMX_BOOL bCenter;
855 OMX_BOOL bLeft;
856 OMX_BOOL bRight;
857 OMX_BOOL bTop;
858 OMX_BOOL bBottom;
859 OMX_BOOL bTopLeft;
860 OMX_BOOL bTopRight;
861 OMX_BOOL bBottomLeft;
862 OMX_BOOL bBottomRight;
863 } OMX_CONFIG_FOCUSREGIONTYPE;
865 /**
866 * Focus Status type
868 typedef enum OMX_FOCUSSTATUSTYPE {
869 OMX_FocusStatusOff = 0,
870 OMX_FocusStatusRequest,
871 OMX_FocusStatusReached,
872 OMX_FocusStatusUnableToReach,
873 OMX_FocusStatusLost,
874 OMX_FocusStatusKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
875 OMX_FocusStatusVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
876 OMX_FocusStatusMax = 0x7FFFFFFF
877 } OMX_FOCUSSTATUSTYPE;
879 /**
880 * Focus status configuration
882 * STRUCT MEMBERS:
883 * nSize : Size of the structure in bytes
884 * nVersion : OMX specification version information
885 * nPortIndex : Port that this structure applies to
886 * eFocusStatus : Specifies the focus status
887 * bCenterStatus : Use center region as focus region of interest
888 * bLeftStatus : Use left region as focus region of interest
889 * bRightStatus : Use right region as focus region of interest
890 * bTopStatus : Use top region as focus region of interest
891 * bBottomStatus : Use bottom region as focus region of interest
892 * bTopLeftStatus : Use top left region as focus region of interest
893 * bTopRightStatus : Use top right region as focus region of interest
894 * bBottomLeftStatus : Use bottom left region as focus region of interest
895 * bBottomRightStatus : Use bottom right region as focus region of interest
897 typedef struct OMX_PARAM_FOCUSSTATUSTYPE {
898 OMX_U32 nSize;
899 OMX_VERSIONTYPE nVersion;
900 OMX_U32 nPortIndex;
901 OMX_FOCUSSTATUSTYPE eFocusStatus;
902 OMX_BOOL bCenterStatus;
903 OMX_BOOL bLeftStatus;
904 OMX_BOOL bRightStatus;
905 OMX_BOOL bTopStatus;
906 OMX_BOOL bBottomStatus;
907 OMX_BOOL bTopLeftStatus;
908 OMX_BOOL bTopRightStatus;
909 OMX_BOOL bBottomLeftStatus;
910 OMX_BOOL bBottomRightStatus;
911 } OMX_PARAM_FOCUSSTATUSTYPE;
913 /** @} */
915 #ifdef __cplusplus
917 #endif /* __cplusplus */
919 #endif
920 /* File EOF */