1dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/**
26eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Copyright (c) 2008 The Khronos Group Inc.
36eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *
4dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Permission is hereby granted, free of charge, to any person obtaining
5dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * a copy of this software and associated documentation files (the
6dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * "Software"), to deal in the Software without restriction, including
7dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * without limitation the rights to use, copy, modify, merge, publish,
8dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * distribute, sublicense, and/or sell copies of the Software, and to
9dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * permit persons to whom the Software is furnished to do so, subject
106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to the following conditions:
11dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * The above copyright notice and this permission notice shall be included
126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * in all copies or substantial portions of the Software.
136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *
14dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
22dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
23dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
25dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * @file OMX_IVCommon.h - OpenMax IL version 1.1.2
26dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  The structures needed by Video and Image components to exchange
27dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  parameters and configuration data with the components.
28dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
29dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#ifndef OMX_IVCommon_h
30dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_IVCommon_h
31dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
32dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#ifdef __cplusplus
33dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandextern "C" {
34dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#endif /* __cplusplus */
35dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
36dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/**
37dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Each OMX header must include all required header files to allow the header
38dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * to compile without errors.  The includes below are required for this header
396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * file to compile successfully
40dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
41dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
42dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#include <OMX_Core.h>
43dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
44dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** @defgroup iv OpenMAX IL Imaging and Video Domain
45dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Common structures for OpenMAX IL Imaging and Video domains
46dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * @{
47dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
48dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
49dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
506eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
516eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Enumeration defining possible uncompressed image/video formats.
52dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
53dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * ENUMS:
54dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  Unused                 : Placeholder value when format is N/A
55dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  Monochrome             : black and white
56dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  8bitRGB332             : Red 7:5, Green 4:2, Blue 1:0
57dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  12bitRGB444            : Red 11:8, Green 7:4, Blue 3:0
58dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  16bitARGB4444          : Alpha 15:12, Red 11:8, Green 7:4, Blue 3:0
59dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  16bitARGB1555          : Alpha 15, Red 14:10, Green 9:5, Blue 4:0
60dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  16bitRGB565            : Red 15:11, Green 10:5, Blue 4:0
61dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  16bitBGR565            : Blue 15:11, Green 10:5, Red 4:0
62dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  18bitRGB666            : Red 17:12, Green 11:6, Blue 5:0
63dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  18bitARGB1665          : Alpha 17, Red 16:11, Green 10:5, Blue 4:0
64dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  19bitARGB1666          : Alpha 18, Red 17:12, Green 11:6, Blue 5:0
65dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  24bitRGB888            : Red 24:16, Green 15:8, Blue 7:0
66dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  24bitBGR888            : Blue 24:16, Green 15:8, Red 7:0
67dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  24bitARGB1887          : Alpha 23, Red 22:15, Green 14:7, Blue 6:0
68dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  25bitARGB1888          : Alpha 24, Red 23:16, Green 15:8, Blue 7:0
69dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  32bitBGRA8888          : Blue 31:24, Green 23:16, Red 15:8, Alpha 7:0
70dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  32bitARGB8888          : Alpha 31:24, Red 23:16, Green 15:8, Blue 7:0
71dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  YUV411Planar           : U,Y are subsampled by a factor of 4 horizontally
72dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  YUV411PackedPlanar     : packed per payload in planar slices
73dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  YUV420Planar           : Three arrays Y,U,V.
74dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  YUV420PackedPlanar     : packed per payload in planar slices
75dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  YUV420SemiPlanar       : Two arrays, one is all Y, the other is U and V
76dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  YUV422Planar           : Three arrays Y,U,V.
77dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  YUV422PackedPlanar     : packed per payload in planar slices
78dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  YUV422SemiPlanar       : Two arrays, one is all Y, the other is U and V
79dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  YCbYCr                 : Organized as 16bit YUYV (i.e. YCbYCr)
80dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  YCrYCb                 : Organized as 16bit YVYU (i.e. YCrYCb)
81dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  CbYCrY                 : Organized as 16bit UYVY (i.e. CbYCrY)
82dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  CrYCbY                 : Organized as 16bit VYUY (i.e. CrYCbY)
83dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  YUV444Interleaved      : Each pixel contains equal parts YUV
84dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  RawBayer8bit           : SMIA camera output format
85dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  RawBayer10bit          : SMIA camera output format
86dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  RawBayer8bitcompressed : SMIA camera output format
87dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
88dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_COLOR_FORMATTYPE {
89dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatUnused,
90dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatMonochrome,
91dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format8bitRGB332,
92dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format12bitRGB444,
93dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format16bitARGB4444,
94dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format16bitARGB1555,
95dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format16bitRGB565,
96dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format16bitBGR565,
97dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format18bitRGB666,
98dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format18bitARGB1665,
996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_COLOR_Format19bitARGB1666,
100dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format24bitRGB888,
101dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format24bitBGR888,
102dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format24bitARGB1887,
103dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format25bitARGB1888,
104dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format32bitBGRA8888,
105dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format32bitARGB8888,
106dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatYUV411Planar,
107dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatYUV411PackedPlanar,
108dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatYUV420Planar,
109dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatYUV420PackedPlanar,
110dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatYUV420SemiPlanar,
111dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatYUV422Planar,
112dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatYUV422PackedPlanar,
113dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatYUV422SemiPlanar,
114dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatYCbYCr,
115dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatYCrYCb,
116dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatCbYCrY,
117dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatCrYCbY,
118dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatYUV444Interleaved,
119dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatRawBayer8bit,
120dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatRawBayer10bit,
121dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatRawBayer8bitcompressed,
1226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_COLOR_FormatL2,
1236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_COLOR_FormatL4,
1246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_COLOR_FormatL8,
1256eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_COLOR_FormatL16,
1266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_COLOR_FormatL24,
127dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatL32,
128dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatYUV420PackedSemiPlanar,
129dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatYUV422PackedSemiPlanar,
130dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format18BitBGR666,
131dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format24BitARGB6666,
132dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_Format24BitABGR6666,
1336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_COLOR_FormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
134dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
135dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLOR_FormatMax = 0x7FFFFFFF
136dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_COLOR_FORMATTYPE;
137dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
138dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
1396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
140dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Defines the matrix for conversion from RGB to YUV or vice versa.
1416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * iColorMatrix should be initialized with the fixed point values
142dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * used in converting between formats.
143dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
144dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_COLORCONVERSIONTYPE {
145dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;              /**< Size of the structure in bytes */
1466eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;   /**< OMX specification version info */
147dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;         /**< Port that this struct applies to */
148dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_S32 xColorMatrix[3][3]; /**< Stored in signed Q16 format */
149dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_S32 xColorOffset[4];    /**< Stored in signed Q16 format */
150dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand}OMX_CONFIG_COLORCONVERSIONTYPE;
151dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
152dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
1536eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
1546eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure defining percent to scale each frame dimension.  For example:
155dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * To make the width 50% larger, use fWidth = 1.5 and to make the width
156dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 1/2 the original size, use fWidth = 0.5
157dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
158dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_SCALEFACTORTYPE {
159dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;            /**< Size of the structure in bytes */
1606eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion; /**< OMX specification version info */
161dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;       /**< Port that this struct applies to */
162dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_S32 xWidth;           /**< Fixed point value stored as Q16 */
163dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_S32 xHeight;          /**< Fixed point value stored as Q16 */
164dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand}OMX_CONFIG_SCALEFACTORTYPE;
165dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
166dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
1676eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
1686eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Enumeration of possible image filter types
169dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
170dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_IMAGEFILTERTYPE {
171dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ImageFilterNone,
172dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ImageFilterNoise,
173dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ImageFilterEmboss,
174dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ImageFilterNegative,
175dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ImageFilterSketch,
176dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ImageFilterOilPaint,
177dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ImageFilterHatch,
178dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ImageFilterGpen,
1796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_ImageFilterAntialias,
1806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_ImageFilterDeRing,
181dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ImageFilterSolarize,
1826eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_ImageFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
183dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ImageFilterVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
184dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ImageFilterMax = 0x7FFFFFFF
185dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_IMAGEFILTERTYPE;
186dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
187dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
1886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
1896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Image filter configuration
190dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
191dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
1926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize        : Size of the structure in bytes
193dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion     : OMX specification version information
1946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex   : Port that this structure applies to
1956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eImageFilter : Image filter type enumeration
196dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
197dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_IMAGEFILTERTYPE {
198dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
199dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
200dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
201dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_IMAGEFILTERTYPE eImageFilter;
202dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_IMAGEFILTERTYPE;
203dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
204dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
2056eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
2066eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Customized U and V for color enhancement
207dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
208dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
209dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize             : Size of the structure in bytes
2106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion          : OMX specification version information
211dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex        : Port that this structure applies to
212dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bColorEnhancement : Enable/disable color enhancement
2136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nCustomizedU      : Practical values: 16-240, range: 0-255, value set for
214dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                      U component
2156eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nCustomizedV      : Practical values: 16-240, range: 0-255, value set for
216dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                      V component
217dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
218dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_COLORENHANCEMENTTYPE {
219dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
2206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
221dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
222dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bColorEnhancement;
223dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U8 nCustomizedU;
224dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U8 nCustomizedV;
225dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_COLORENHANCEMENTTYPE;
226dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
227dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
2286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
2296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Define color key and color key mask
230dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
231dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
232dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize      : Size of the structure in bytes
2336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion   : OMX specification version information
234dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex : Port that this structure applies to
235dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nARGBColor : 32bit Alpha, Red, Green, Blue Color
236dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nARGBMask  : 32bit Mask for Alpha, Red, Green, Blue channels
237dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
238dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_COLORKEYTYPE {
239dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
240dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
241dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
242dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nARGBColor;
243dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nARGBMask;
244dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_COLORKEYTYPE;
245dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
246dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
2476eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
2486eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * List of color blend types for pre/post processing
249dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
250dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * ENUMS:
251dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  None          : No color blending present
2526eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  AlphaConstant : Function is (alpha_constant * src) +
253dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                  (1 - alpha_constant) * dst)
254dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  AlphaPerPixel : Function is (alpha * src) + (1 - alpha) * dst)
255dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  Alternate     : Function is alternating pixels from src and dst
256dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  And           : Function is (src & dst)
257dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  Or            : Function is (src | dst)
258dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  Invert        : Function is ~src
259dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
260dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_COLORBLENDTYPE {
261dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ColorBlendNone,
262dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ColorBlendAlphaConstant,
263dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ColorBlendAlphaPerPixel,
264dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ColorBlendAlternate,
265dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ColorBlendAnd,
266dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ColorBlendOr,
267dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ColorBlendInvert,
2686eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_ColorBlendKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
269dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ColorBlendVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
270dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ColorBlendMax = 0x7FFFFFFF
271dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_COLORBLENDTYPE;
272dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
273dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
2746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
2756eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Color blend configuration
276dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
277dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
2786eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize             : Size of the structure in bytes
2796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion          : OMX specification version information
2806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex        : Port that this structure applies to
281dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nRGBAlphaConstant : Constant global alpha values when global alpha is used
2826eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eColorBlend       : Color blend type enumeration
283dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
284dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_COLORBLENDTYPE {
285dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
286dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
287dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
288dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nRGBAlphaConstant;
289dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_COLORBLENDTYPE  eColorBlend;
290dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_COLORBLENDTYPE;
291dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
292dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
2936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
294dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Hold frame dimension
295dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
296dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
2976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
298dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion   : OMX specification version information
2996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex : Port that this structure applies to
3006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nWidth     : Frame width in pixels
3016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nHeight    : Frame height in pixels
302dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
303dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_FRAMESIZETYPE {
304dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
305dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
306dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
307dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nWidth;
308dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nHeight;
309dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_FRAMESIZETYPE;
310dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
311dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
312dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/**
3136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Rotation configuration
314dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
315dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
3166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
317dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion   : OMX specification version information
318dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex : Port that this structure applies to
3196eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nRotation  : +/- integer rotation value
320dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
321dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_ROTATIONTYPE {
322dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
323dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
324dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
3256eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_S32 nRotation;
326dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_ROTATIONTYPE;
327dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
328dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
3296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
3306eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Possible mirroring directions for pre/post processing
331dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
332dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * ENUMS:
3336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  None       : No mirroring
3346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  Vertical   : Vertical mirroring, flip on X axis
3356eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  Horizontal : Horizontal mirroring, flip on Y axis
336dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  Both       : Both vertical and horizontal mirroring
337dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
338dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_MIRRORTYPE {
339dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_MirrorNone = 0,
340dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_MirrorVertical,
341dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_MirrorHorizontal,
3426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_MirrorBoth,
3436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_MirrorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
344dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_MirrorVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
3456eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_MirrorMax = 0x7FFFFFFF
346dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_MIRRORTYPE;
347dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
348dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
3496eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
3506eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Mirroring configuration
351dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
352dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
3536eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
354dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion   : OMX specification version information
3556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex : Port that this structure applies to
3566eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eMirror    : Mirror type enumeration
357dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
358dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_MIRRORTYPE {
359dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
3606eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
361dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
362dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_MIRRORTYPE  eMirror;
363dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_MIRRORTYPE;
364dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
365dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
3666eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
3676eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Position information only
368dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
369dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
3706eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
371dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion   : OMX specification version information
372dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex : Port that this structure applies to
3736eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nX         : X coordinate for the point
3746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nY         : Y coordinate for the point
3756eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
376dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_POINTTYPE {
377dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
378dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
379dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
380dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_S32 nX;
381dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_S32 nY;
382dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_POINTTYPE;
383dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
384dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
3856eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
3866eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Frame size plus position
387dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
388dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
3896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
3906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion   : OMX specification version information
3916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex : Port that this structure applies to
392dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nLeft      : X Coordinate of the top left corner of the rectangle
393dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nTop       : Y Coordinate of the top left corner of the rectangle
3946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nWidth     : Width of the rectangle
3956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nHeight    : Height of the rectangle
396dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
397dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_RECTTYPE {
398dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
3996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
4006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nPortIndex;
4016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_S32 nLeft;
402dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_S32 nTop;
403dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nWidth;
404dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nHeight;
405dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_RECTTYPE;
406dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
407dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
4086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
4096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Deblocking state; it is required to be set up before starting the codec
410dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
411dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
4126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize       : Size of the structure in bytes
4136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion    : OMX specification version information
414dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex  : Port that this structure applies to
4156eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  bDeblocking : Enable/disable deblocking mode
416dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
417dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_PARAM_DEBLOCKINGTYPE {
418dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
419dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
420dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
421dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bDeblocking;
422dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_PARAM_DEBLOCKINGTYPE;
423dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
424dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
4256eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
4266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Stabilization state
427dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
428dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
4296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
4306eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion   : OMX specification version information
4316eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex : Port that this structure applies to
432dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bStab      : Enable/disable frame stabilization state
433dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
434dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_FRAMESTABTYPE {
435dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
436dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
437dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
438dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bStab;
439dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_FRAMESTABTYPE;
440dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
441dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
4426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
4436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * White Balance control type
444dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
445dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
446dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  SunLight : Referenced in JSR-234
447dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  Flash    : Optimal for device's integrated flash
448dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
449dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_WHITEBALCONTROLTYPE {
450dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_WhiteBalControlOff = 0,
451dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_WhiteBalControlAuto,
452dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_WhiteBalControlSunLight,
453dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_WhiteBalControlCloudy,
454dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_WhiteBalControlShade,
455dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_WhiteBalControlTungsten,
456dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_WhiteBalControlFluorescent,
457dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_WhiteBalControlIncandescent,
458dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_WhiteBalControlFlash,
459dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_WhiteBalControlHorizon,
4606eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_WhiteBalControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
461dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_WhiteBalControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
462dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_WhiteBalControlMax = 0x7FFFFFFF
463dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_WHITEBALCONTROLTYPE;
464dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
465dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
4666eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
4676eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * White Balance control configuration
468dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
469dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
4706eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize            : Size of the structure in bytes
471dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion         : OMX specification version information
4726eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex       : Port that this structure applies to
4736eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eWhiteBalControl : White balance enumeration
474dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
475dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_WHITEBALCONTROLTYPE {
476dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
477dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
478dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
479dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_WHITEBALCONTROLTYPE eWhiteBalControl;
480dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_WHITEBALCONTROLTYPE;
481dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
482dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
4836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
4846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Exposure control type
485dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
486dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_EXPOSURECONTROLTYPE {
487dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ExposureControlOff = 0,
488dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ExposureControlAuto,
489dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ExposureControlNight,
490dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ExposureControlBackLight,
491dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ExposureControlSpotLight,
492dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ExposureControlSports,
493dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ExposureControlSnow,
494dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ExposureControlBeach,
495dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ExposureControlLargeAperture,
496dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ExposureControlSmallApperture,
4976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_ExposureControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
498dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ExposureControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
499dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_ExposureControlMax = 0x7FFFFFFF
500dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_EXPOSURECONTROLTYPE;
501dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
502dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
5036eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5046eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * White Balance control configuration
505dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
506dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
5076eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize            : Size of the structure in bytes
508dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion         : OMX specification version information
5096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex       : Port that this structure applies to
5106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eExposureControl : Exposure control enumeration
511dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
512dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_EXPOSURECONTROLTYPE {
513dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
514dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
515dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
516dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_EXPOSURECONTROLTYPE eExposureControl;
517dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_EXPOSURECONTROLTYPE;
518dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
519dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
5206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5216eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines sensor supported mode.
522dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
523dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
5246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
525dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion   : OMX specification version information
5266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex : Port that this structure applies to
5276eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nFrameRate : Single shot mode is indicated by a 0
528dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bOneShot   : Enable for single shot, disable for streaming
5296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  sFrameSize : Framesize
530dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
531dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_PARAM_SENSORMODETYPE {
532dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
533dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
534dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
535dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nFrameRate;
536dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bOneShot;
537dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_FRAMESIZETYPE sFrameSize;
538dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_PARAM_SENSORMODETYPE;
539dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
540dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
5416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines contrast level
543dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
544dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
5456eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
5466eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion   : OMX specification version information
5476eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex : Port that this structure applies to
548dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nContrast  : Values allowed for contrast -100 to 100, zero means no change
549dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
550dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_CONTRASTTYPE {
551dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
552dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
553dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
554dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_S32 nContrast;
555dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_CONTRASTTYPE;
556dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
557dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
5586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5596eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines brightness level
560dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
561dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
5626eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize       : Size of the structure in bytes
5636eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion    : OMX specification version information
5646eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex  : Port that this structure applies to
5656eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nBrightness : 0-100%
566dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
567dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_BRIGHTNESSTYPE {
568dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
569dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
570dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
571dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nBrightness;
572dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_BRIGHTNESSTYPE;
573dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
574dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
5756eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5766eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines backlight level configuration for a video sink, e.g. LCD panel
577dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
578dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
579dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize      : Size of the structure in bytes
5806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion   : OMX specification version information
581dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex : Port that this structure applies to
582dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nBacklight : Values allowed for backlight 0-100%
5836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nTimeout   : Number of milliseconds before backlight automatically turns
5846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *               off.  A value of 0x0 disables backight timeout
585dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
586dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_BACKLIGHTTYPE {
587dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
588dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
589dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
590dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nBacklight;
591dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nTimeout;
592dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_BACKLIGHTTYPE;
593dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
594dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
5956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5966eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines setting for Gamma
597dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
598dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
599dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize      : Size of the structure in bytes
6006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion   : OMX specification version information
601dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex : Port that this structure applies to
602dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nGamma     : Values allowed for gamma -100 to 100, zero means no change
603dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
604dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_GAMMATYPE {
605dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
606dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
607dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
608dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_S32 nGamma;
609dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_GAMMATYPE;
610dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
611dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
6126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Define for setting saturation
6146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *
615dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
616dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize       : Size of the structure in bytes
617dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion    : OMX specification version information
618dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex  : Port that this structure applies to
6196eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSaturation : Values allowed for saturation -100 to 100, zero means
620dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                no change
621dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
622dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_SATURATIONTYPE {
623dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
624dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
625dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
626dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_S32 nSaturation;
627dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_SATURATIONTYPE;
628dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
629dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
6306eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6316eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Define for setting Lightness
632dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
633dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
634dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize      : Size of the structure in bytes
635dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion   : OMX specification version information
636dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex : Port that this structure applies to
6376eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nLightness : Values allowed for lightness -100 to 100, zero means no
638dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               change
639dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
640dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_LIGHTNESSTYPE {
641dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
642dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
643dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
644dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_S32 nLightness;
645dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_LIGHTNESSTYPE;
646dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
647dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
6486eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6496eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Plane blend configuration
650dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
651dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
6526eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
653dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion   : OMX specification version information
654dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex : Index of input port associated with the plane.
6556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nDepth     : Depth of the plane in relation to the screen. Higher
6566eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *               numbered depths are "behind" lower number depths.
657dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               This number defaults to the Port Index number.
6586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nAlpha     : Transparency blending component for the entire plane.
659dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               See blending modes for more detail.
660dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
661dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_PLANEBLENDTYPE {
662dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
663dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
664dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
665dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nDepth;
666dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nAlpha;
667dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_PLANEBLENDTYPE;
668dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
669dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
6706eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
671dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Define interlace type
672dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
673dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
6746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize                 : Size of the structure in bytes
6756eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion              : OMX specification version information
676dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex            : Port that this structure applies to
6776eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  bEnable               : Enable control variable for this functionality
678dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                          (see below)
6796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nInterleavePortIndex  : Index of input or output port associated with
6806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *                          the interleaved plane.
681dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  pPlanarPortIndexes[4] : Index of input or output planar ports.
682dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
683dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_PARAM_INTERLEAVETYPE {
684dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
685dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
686dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
687dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bEnable;
688dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nInterleavePortIndex;
689dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_PARAM_INTERLEAVETYPE;
690dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
691dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
6926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines the picture effect used for an input picture
694dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
695dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_TRANSITIONEFFECTTYPE {
696dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_EffectNone,
697dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_EffectFadeFromBlack,
698dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_EffectFadeToBlack,
699dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_EffectUnspecifiedThroughConstantColor,
700dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_EffectDissolve,
701dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_EffectWipe,
702dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_EffectUnspecifiedMixOfTwoScenes,
7036eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_EffectKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
704dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_EffectVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
705dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_EffectMax = 0x7FFFFFFF
706dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_TRANSITIONEFFECTTYPE;
707dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
708dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
7096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
7106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure used to configure current transition effect
711dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
712dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
713dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize      : Size of the structure in bytes
7146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion   : OMX specification version information
715dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to
716dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eEffect    : Effect to enable
717dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
718dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_TRANSITIONEFFECTTYPE {
719dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
720dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
721dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
722dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_TRANSITIONEFFECTTYPE eEffect;
723dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_TRANSITIONEFFECTTYPE;
724dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
725dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
7266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
7276eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines possible data unit types for encoded video data. The data unit
728dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * types are used both for encoded video input for playback as well as
7296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * encoded video output from recording.
730dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
731dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_DATAUNITTYPE {
732dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DataUnitCodedPicture,
733dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DataUnitVideoSegment,
734dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DataUnitSeveralSegments,
735dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DataUnitArbitraryStreamSection,
7366eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_DataUnitKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
737dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DataUnitVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
738dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DataUnitMax = 0x7FFFFFFF
739dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_DATAUNITTYPE;
740dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
741dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
7426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
7436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines possible encapsulation types for coded video data unit. The
7446eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * encapsulation information is used both for encoded video input for
7456eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * playback as well as encoded video output from recording.
746dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
747dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_DATAUNITENCAPSULATIONTYPE {
748dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DataEncapsulationElementaryStream,
749dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DataEncapsulationGenericPayload,
750dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DataEncapsulationRtpPayload,
7516eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_DataEncapsulationKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
752dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DataEncapsulationVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
753dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DataEncapsulationMax = 0x7FFFFFFF
754dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_DATAUNITENCAPSULATIONTYPE;
755dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
756dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
7576eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
7586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure used to configure the type of being decoded/encoded
759dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
760dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_PARAM_DATAUNITTYPE {
761dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;            /**< Size of the structure in bytes */
7626eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
763dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;       /**< Port that this structure applies to */
764dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DATAUNITTYPE eUnitType;
765dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DATAUNITENCAPSULATIONTYPE eEncapsulationType;
766dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_PARAM_DATAUNITTYPE;
767dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
768dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
769dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/**
7706eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines dither types
771dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
772dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_DITHERTYPE {
773dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DitherNone,
774dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DitherOrdered,
775dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DitherErrorDiffusion,
776dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DitherOther,
7776eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_DitherKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
778dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DitherVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
779dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DitherMax = 0x7FFFFFFF
780dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_DITHERTYPE;
781dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
782dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
7836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
7846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure used to configure current type of dithering
785dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
786dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_DITHERTYPE {
787dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;            /**< Size of the structure in bytes */
7886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
789dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;       /**< Port that this structure applies to */
790dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_DITHERTYPE eDither;   /**< Type of dithering to use */
791dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_DITHERTYPE;
792dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
793dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_CAPTUREMODETYPE {
794dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
795dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
796dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;     /**< Port that this structure applies to */
7976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_BOOL bContinuous;   /**< If true then ignore frame rate and emit capture
798dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand                             *   data as fast as possible (otherwise obey port's frame rate). */
7996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_BOOL bFrameLimited; /**< If true then terminate capture after the port emits the
8006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                             *   specified number of frames (otherwise the port does not
8016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                             *   terminate the capture until instructed to do so by the client).
8026eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                             *   Even if set, the client may manually terminate the capture prior
803dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand                             *   to reaching the limit. */
804dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nFrameLimit;      /**< Limit on number of frames emitted during a capture (only
805dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand                               *   valid if bFrameLimited is set). */
806dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_CAPTUREMODETYPE;
807dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
808dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_METERINGTYPE {
8096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
810dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_MeteringModeAverage,     /**< Center-weighted average metering. */
811dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_MeteringModeSpot,  	      /**< Spot (partial) metering. */
812dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_MeteringModeMatrix,      /**< Matrix or evaluative metering. */
8136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
8146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_MeteringKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
815dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_MeteringVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
816dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_EVModeMax = 0x7fffffff
817dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_METERINGTYPE;
8186eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
819dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_EXPOSUREVALUETYPE {
820dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
821dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
822dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
823dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_METERINGTYPE eMetering;
824dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_S32 xEVCompensation;      /**< Fixed point value stored as Q16 */
825dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nApertureFNumber;     /**< e.g. nApertureFNumber = 2 implies "f/2" - Q16 format */
826dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bAutoAperture;		/**< Whether aperture number is defined automatically */
8276eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nShutterSpeedMsec;    /**< Shutterspeed in milliseconds */
8286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_BOOL bAutoShutterSpeed;	/**< Whether shutter speed is defined automatically */
829dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSensitivity;         /**< e.g. nSensitivity = 100 implies "ISO 100" */
830dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bAutoSensitivity;	/**< Whether sensitivity is defined automatically */
831dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_EXPOSUREVALUETYPE;
832dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
8336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
8346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Focus region configuration
835dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
836dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
837dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize           : Size of the structure in bytes
838dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion        : OMX specification version information
839dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex      : Port that this structure applies to
840dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bCenter         : Use center region as focus region of interest
841dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bLeft           : Use left region as focus region of interest
842dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bRight          : Use right region as focus region of interest
843dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bTop            : Use top region as focus region of interest
844dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bBottom         : Use bottom region as focus region of interest
845dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bTopLeft        : Use top left region as focus region of interest
846dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bTopRight       : Use top right region as focus region of interest
847dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bBottomLeft     : Use bottom left region as focus region of interest
848dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bBottomRight    : Use bottom right region as focus region of interest
849dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
850dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_FOCUSREGIONTYPE {
851dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
852dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
853dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
854dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bCenter;
855dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bLeft;
856dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bRight;
857dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bTop;
858dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bBottom;
859dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bTopLeft;
860dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bTopRight;
861dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bBottomLeft;
862dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bBottomRight;
863dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_FOCUSREGIONTYPE;
864dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
8656eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
8666eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Focus Status type
867dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
868dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_FOCUSSTATUSTYPE {
869dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_FocusStatusOff = 0,
870dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_FocusStatusRequest,
871dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_FocusStatusReached,
872dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_FocusStatusUnableToReach,
873dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_FocusStatusLost,
8746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_FocusStatusKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
875dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_FocusStatusVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
876dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_FocusStatusMax = 0x7FFFFFFF
877dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_FOCUSSTATUSTYPE;
878dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
8796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
8806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Focus status configuration
881dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
882dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
883dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize               : Size of the structure in bytes
884dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion            : OMX specification version information
885dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex          : Port that this structure applies to
886dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  eFocusStatus        : Specifies the focus status
887dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bCenterStatus       : Use center region as focus region of interest
888dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bLeftStatus         : Use left region as focus region of interest
889dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bRightStatus        : Use right region as focus region of interest
890dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bTopStatus          : Use top region as focus region of interest
891dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bBottomStatus       : Use bottom region as focus region of interest
892dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bTopLeftStatus      : Use top left region as focus region of interest
893dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bTopRightStatus     : Use top right region as focus region of interest
894dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bBottomLeftStatus   : Use bottom left region as focus region of interest
895dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bBottomRightStatus  : Use bottom right region as focus region of interest
896dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
897dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_PARAM_FOCUSSTATUSTYPE {
898dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
899dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
900dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
901dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_FOCUSSTATUSTYPE eFocusStatus;
902dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bCenterStatus;
903dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bLeftStatus;
904dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bRightStatus;
905dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bTopStatus;
906dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bBottomStatus;
907dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bTopLeftStatus;
908dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bTopRightStatus;
909dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bBottomLeftStatus;
910dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bBottomRightStatus;
911dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_PARAM_FOCUSSTATUSTYPE;
912dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
913dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** @} */
914dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
915dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#ifdef __cplusplus
916dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand}
917dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#endif /* __cplusplus */
918dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
919dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#endif
920dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/* File EOF */
921