2 * Copyright (c) 2008 The Khronos Group Inc.
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.
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
34 #endif /* __cplusplus */
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
44 /** @defgroup iv OpenMAX IL Imaging and Video Domain
45 * Common structures for OpenMAX IL Imaging and Video domains
51 * Enumeration defining possible uncompressed image/video formats.
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
,
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
;
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
;
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
;
168 * Enumeration of possible image filter types
170 typedef enum OMX_IMAGEFILTERTYPE
{
172 OMX_ImageFilterNoise
,
173 OMX_ImageFilterEmboss
,
174 OMX_ImageFilterNegative
,
175 OMX_ImageFilterSketch
,
176 OMX_ImageFilterOilPaint
,
177 OMX_ImageFilterHatch
,
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
;
189 * Image filter configuration
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
{
199 OMX_VERSIONTYPE nVersion
;
201 OMX_IMAGEFILTERTYPE eImageFilter
;
202 } OMX_CONFIG_IMAGEFILTERTYPE
;
206 * Customized U and V for color enhancement
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
215 * nCustomizedV : Practical values: 16-240, range: 0-255, value set for
218 typedef struct OMX_CONFIG_COLORENHANCEMENTTYPE
{
220 OMX_VERSIONTYPE nVersion
;
222 OMX_BOOL bColorEnhancement
;
225 } OMX_CONFIG_COLORENHANCEMENTTYPE
;
229 * Define color key and color key mask
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
{
240 OMX_VERSIONTYPE nVersion
;
244 } OMX_CONFIG_COLORKEYTYPE
;
248 * List of color blend types for pre/post processing
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
{
262 OMX_ColorBlendAlphaConstant
,
263 OMX_ColorBlendAlphaPerPixel
,
264 OMX_ColorBlendAlternate
,
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
;
275 * Color blend configuration
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
{
286 OMX_VERSIONTYPE nVersion
;
288 OMX_U32 nRGBAlphaConstant
;
289 OMX_COLORBLENDTYPE eColorBlend
;
290 } OMX_CONFIG_COLORBLENDTYPE
;
294 * Hold frame dimension
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
{
305 OMX_VERSIONTYPE nVersion
;
313 * Rotation configuration
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
{
323 OMX_VERSIONTYPE nVersion
;
326 } OMX_CONFIG_ROTATIONTYPE
;
330 * Possible mirroring directions for pre/post processing
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
{
341 OMX_MirrorHorizontal
,
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
350 * Mirroring configuration
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
{
360 OMX_VERSIONTYPE nVersion
;
362 OMX_MIRRORTYPE eMirror
;
363 } OMX_CONFIG_MIRRORTYPE
;
367 * Position information only
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
{
378 OMX_VERSIONTYPE nVersion
;
382 } OMX_CONFIG_POINTTYPE
;
386 * Frame size plus position
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
{
399 OMX_VERSIONTYPE nVersion
;
405 } OMX_CONFIG_RECTTYPE
;
409 * Deblocking state; it is required to be set up before starting the codec
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
{
419 OMX_VERSIONTYPE nVersion
;
421 OMX_BOOL bDeblocking
;
422 } OMX_PARAM_DEBLOCKINGTYPE
;
426 * Stabilization state
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
{
436 OMX_VERSIONTYPE nVersion
;
439 } OMX_CONFIG_FRAMESTABTYPE
;
443 * White Balance control type
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
;
467 * White Balance control configuration
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
{
477 OMX_VERSIONTYPE nVersion
;
479 OMX_WHITEBALCONTROLTYPE eWhiteBalControl
;
480 } OMX_CONFIG_WHITEBALCONTROLTYPE
;
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
;
504 * White Balance control configuration
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
{
514 OMX_VERSIONTYPE nVersion
;
516 OMX_EXPOSURECONTROLTYPE eExposureControl
;
517 } OMX_CONFIG_EXPOSURECONTROLTYPE
;
521 * Defines sensor supported mode.
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
{
533 OMX_VERSIONTYPE nVersion
;
537 OMX_FRAMESIZETYPE sFrameSize
;
538 } OMX_PARAM_SENSORMODETYPE
;
542 * Defines contrast level
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
{
552 OMX_VERSIONTYPE nVersion
;
555 } OMX_CONFIG_CONTRASTTYPE
;
559 * Defines brightness level
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
{
569 OMX_VERSIONTYPE nVersion
;
572 } OMX_CONFIG_BRIGHTNESSTYPE
;
576 * Defines backlight level configuration for a video sink, e.g. LCD panel
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
{
588 OMX_VERSIONTYPE nVersion
;
592 } OMX_CONFIG_BACKLIGHTTYPE
;
596 * Defines setting for Gamma
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
{
606 OMX_VERSIONTYPE nVersion
;
609 } OMX_CONFIG_GAMMATYPE
;
613 * Define for setting saturation
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
622 typedef struct OMX_CONFIG_SATURATIONTYPE
{
624 OMX_VERSIONTYPE nVersion
;
627 } OMX_CONFIG_SATURATIONTYPE
;
631 * Define for setting Lightness
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
640 typedef struct OMX_CONFIG_LIGHTNESSTYPE
{
642 OMX_VERSIONTYPE nVersion
;
645 } OMX_CONFIG_LIGHTNESSTYPE
;
649 * Plane blend configuration
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
{
663 OMX_VERSIONTYPE nVersion
;
667 } OMX_CONFIG_PLANEBLENDTYPE
;
671 * Define interlace type
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
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
{
685 OMX_VERSIONTYPE nVersion
;
688 OMX_U32 nInterleavePortIndex
;
689 } OMX_PARAM_INTERLEAVETYPE
;
693 * Defines the picture effect used for an input picture
695 typedef enum OMX_TRANSITIONEFFECTTYPE
{
697 OMX_EffectFadeFromBlack
,
698 OMX_EffectFadeToBlack
,
699 OMX_EffectUnspecifiedThroughConstantColor
,
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
;
710 * Structure used to configure current transition effect
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
{
720 OMX_VERSIONTYPE nVersion
;
722 OMX_TRANSITIONEFFECTTYPE eEffect
;
723 } OMX_CONFIG_TRANSITIONEFFECTTYPE
;
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
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
;
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
{
775 OMX_DitherErrorDiffusion
,
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
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
{
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
819 typedef struct OMX_CONFIG_EXPOSUREVALUETYPE
{
821 OMX_VERSIONTYPE nVersion
;
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
;
834 * Focus region configuration
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
{
852 OMX_VERSIONTYPE nVersion
;
861 OMX_BOOL bBottomLeft
;
862 OMX_BOOL bBottomRight
;
863 } OMX_CONFIG_FOCUSREGIONTYPE
;
868 typedef enum OMX_FOCUSSTATUSTYPE
{
869 OMX_FocusStatusOff
= 0,
870 OMX_FocusStatusRequest
,
871 OMX_FocusStatusReached
,
872 OMX_FocusStatusUnableToReach
,
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
;
880 * Focus status configuration
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
{
899 OMX_VERSIONTYPE nVersion
;
901 OMX_FOCUSSTATUSTYPE eFocusStatus
;
902 OMX_BOOL bCenterStatus
;
903 OMX_BOOL bLeftStatus
;
904 OMX_BOOL bRightStatus
;
906 OMX_BOOL bBottomStatus
;
907 OMX_BOOL bTopLeftStatus
;
908 OMX_BOOL bTopRightStatus
;
909 OMX_BOOL bBottomLeftStatus
;
910 OMX_BOOL bBottomRightStatus
;
911 } OMX_PARAM_FOCUSSTATUSTYPE
;
917 #endif /* __cplusplus */