1826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
26eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Copyright (c) 2008 The Khronos Group Inc.
36eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *
4826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Permission is hereby granted, free of charge, to any person obtaining
5826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * a copy of this software and associated documentation files (the
6826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * "Software"), to deal in the Software without restriction, including
7826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * without limitation the rights to use, copy, modify, merge, publish,
8826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * distribute, sublicense, and/or sell copies of the Software, and to
9826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * permit persons to whom the Software is furnished to do so, subject
106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to the following conditions:
11826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * The above copyright notice and this permission notice shall be included
126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * in all copies or substantial portions of the Software.
136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *
14826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
18826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
19826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
22826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
23826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
25826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * @file OMX_IVCommon.h - OpenMax IL version 1.1.2
26826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  The structures needed by Video and Image components to exchange
27826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  parameters and configuration data with the components.
28826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
29826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifndef OMX_IVCommon_h
30826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_IVCommon_h
31826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
32826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifdef __cplusplus
33826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevextern "C" {
34826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif /* __cplusplus */
35826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
36826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
37826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Each OMX header must include all required header files to allow the header
38826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * to compile without errors.  The includes below are required for this header
396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * file to compile successfully
40826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
41826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
42826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#include <OMX_Core.h>
43826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
44826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @defgroup iv OpenMAX IL Imaging and Video Domain
45826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Common structures for OpenMAX IL Imaging and Video domains
46826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * @{
47826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
48826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
49826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
506eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
516eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Enumeration defining possible uncompressed image/video formats.
52826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
53826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * ENUMS:
54826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  Unused                 : Placeholder value when format is N/A
55826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  Monochrome             : black and white
56826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  8bitRGB332             : Red 7:5, Green 4:2, Blue 1:0
57826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  12bitRGB444            : Red 11:8, Green 7:4, Blue 3:0
58826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  16bitARGB4444          : Alpha 15:12, Red 11:8, Green 7:4, Blue 3:0
59826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  16bitARGB1555          : Alpha 15, Red 14:10, Green 9:5, Blue 4:0
60826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  16bitRGB565            : Red 15:11, Green 10:5, Blue 4:0
61826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  16bitBGR565            : Blue 15:11, Green 10:5, Red 4:0
62826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  18bitRGB666            : Red 17:12, Green 11:6, Blue 5:0
63826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  18bitARGB1665          : Alpha 17, Red 16:11, Green 10:5, Blue 4:0
64826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  19bitARGB1666          : Alpha 18, Red 17:12, Green 11:6, Blue 5:0
65826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  24bitRGB888            : Red 24:16, Green 15:8, Blue 7:0
66826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  24bitBGR888            : Blue 24:16, Green 15:8, Red 7:0
67826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  24bitARGB1887          : Alpha 23, Red 22:15, Green 14:7, Blue 6:0
68826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  25bitARGB1888          : Alpha 24, Red 23:16, Green 15:8, Blue 7:0
69826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  32bitBGRA8888          : Blue 31:24, Green 23:16, Red 15:8, Alpha 7:0
70826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  32bitARGB8888          : Alpha 31:24, Red 23:16, Green 15:8, Blue 7:0
71826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  YUV411Planar           : U,Y are subsampled by a factor of 4 horizontally
72826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  YUV411PackedPlanar     : packed per payload in planar slices
73826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  YUV420Planar           : Three arrays Y,U,V.
74826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  YUV420PackedPlanar     : packed per payload in planar slices
75826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  YUV420SemiPlanar       : Two arrays, one is all Y, the other is U and V
76826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  YUV422Planar           : Three arrays Y,U,V.
77826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  YUV422PackedPlanar     : packed per payload in planar slices
78826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  YUV422SemiPlanar       : Two arrays, one is all Y, the other is U and V
79826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  YCbYCr                 : Organized as 16bit YUYV (i.e. YCbYCr)
80826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  YCrYCb                 : Organized as 16bit YVYU (i.e. YCrYCb)
81826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  CbYCrY                 : Organized as 16bit UYVY (i.e. CbYCrY)
82826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  CrYCbY                 : Organized as 16bit VYUY (i.e. CrYCbY)
83826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  YUV444Interleaved      : Each pixel contains equal parts YUV
84826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  RawBayer8bit           : SMIA camera output format
85826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  RawBayer10bit          : SMIA camera output format
86826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  RawBayer8bitcompressed : SMIA camera output format
87826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
88826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_COLOR_FORMATTYPE {
89826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatUnused,
90826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatMonochrome,
91826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format8bitRGB332,
92826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format12bitRGB444,
93826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format16bitARGB4444,
94826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format16bitARGB1555,
95826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format16bitRGB565,
96826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format16bitBGR565,
97826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format18bitRGB666,
98826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format18bitARGB1665,
996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_COLOR_Format19bitARGB1666,
100826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format24bitRGB888,
101826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format24bitBGR888,
102826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format24bitARGB1887,
103826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format25bitARGB1888,
104826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format32bitBGRA8888,
105826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format32bitARGB8888,
106826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatYUV411Planar,
107826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatYUV411PackedPlanar,
108826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatYUV420Planar,
109826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatYUV420PackedPlanar,
110826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatYUV420SemiPlanar,
111826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatYUV422Planar,
112826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatYUV422PackedPlanar,
113826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatYUV422SemiPlanar,
114826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatYCbYCr,
115826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatYCrYCb,
116826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatCbYCrY,
117826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatCrYCbY,
118826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatYUV444Interleaved,
119826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatRawBayer8bit,
120826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatRawBayer10bit,
121826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    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,
127826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatL32,
128826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatYUV420PackedSemiPlanar,
129826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatYUV422PackedSemiPlanar,
130826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format18BitBGR666,
131826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format24BitARGB6666,
132826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_Format24BitABGR6666,
1336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_COLOR_FormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
134826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
135826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatMax = 0x7FFFFFFF
136826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_COLOR_FORMATTYPE;
137826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
138826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
140826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Defines the matrix for conversion from RGB to YUV or vice versa.
1416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * iColorMatrix should be initialized with the fixed point values
142826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * used in converting between formats.
143826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
144826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_COLORCONVERSIONTYPE {
145826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;              /**< Size of the structure in bytes */
1466eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;   /**< OMX specification version info */
147826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;         /**< Port that this struct applies to */
148826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 xColorMatrix[3][3]; /**< Stored in signed Q16 format */
149826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 xColorOffset[4];    /**< Stored in signed Q16 format */
150826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_CONFIG_COLORCONVERSIONTYPE;
151826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
152826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1536eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
1546eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure defining percent to scale each frame dimension.  For example:
155826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * To make the width 50% larger, use fWidth = 1.5 and to make the width
156826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 1/2 the original size, use fWidth = 0.5
157826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
158826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_SCALEFACTORTYPE {
159826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;            /**< Size of the structure in bytes */
1606eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion; /**< OMX specification version info */
161826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;       /**< Port that this struct applies to */
162826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 xWidth;           /**< Fixed point value stored as Q16 */
163826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 xHeight;          /**< Fixed point value stored as Q16 */
164826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_CONFIG_SCALEFACTORTYPE;
165826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
166826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1676eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
1686eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Enumeration of possible image filter types
169826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
170826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_IMAGEFILTERTYPE {
171826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterNone,
172826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterNoise,
173826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterEmboss,
174826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterNegative,
175826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterSketch,
176826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterOilPaint,
177826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterHatch,
178826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterGpen,
1796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_ImageFilterAntialias,
1806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_ImageFilterDeRing,
181826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterSolarize,
1826eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_ImageFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
183826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
184826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterMax = 0x7FFFFFFF
185826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_IMAGEFILTERTYPE;
186826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
187826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
1896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Image filter configuration
190826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
191826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
1926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize        : Size of the structure in bytes
193826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion     : OMX specification version information
1946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex   : Port that this structure applies to
1956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eImageFilter : Image filter type enumeration
196826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
197826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_IMAGEFILTERTYPE {
198826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
199826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
200826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
201826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_IMAGEFILTERTYPE eImageFilter;
202826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_IMAGEFILTERTYPE;
203826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
204826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
2056eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
2066eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Customized U and V for color enhancement
207826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
208826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
209826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize             : Size of the structure in bytes
2106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion          : OMX specification version information
211826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex        : Port that this structure applies to
212826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bColorEnhancement : Enable/disable color enhancement
2136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nCustomizedU      : Practical values: 16-240, range: 0-255, value set for
214826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                      U component
2156eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nCustomizedV      : Practical values: 16-240, range: 0-255, value set for
216826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                      V component
217826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
218826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_COLORENHANCEMENTTYPE {
219826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
2206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
221826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
222826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bColorEnhancement;
223826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U8 nCustomizedU;
224826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U8 nCustomizedV;
225826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_COLORENHANCEMENTTYPE;
226826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
227826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
2286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
2296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Define color key and color key mask
230826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
231826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
232826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize      : Size of the structure in bytes
2336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion   : OMX specification version information
234826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
235826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nARGBColor : 32bit Alpha, Red, Green, Blue Color
236826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nARGBMask  : 32bit Mask for Alpha, Red, Green, Blue channels
237826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
238826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_COLORKEYTYPE {
239826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
240826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
241826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
242826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nARGBColor;
243826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nARGBMask;
244826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_COLORKEYTYPE;
245826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
246826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
2476eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
2486eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * List of color blend types for pre/post processing
249826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
250826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * ENUMS:
251826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  None          : No color blending present
2526eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  AlphaConstant : Function is (alpha_constant * src) +
253826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                  (1 - alpha_constant) * dst)
254826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  AlphaPerPixel : Function is (alpha * src) + (1 - alpha) * dst)
255826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  Alternate     : Function is alternating pixels from src and dst
256826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  And           : Function is (src & dst)
257826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  Or            : Function is (src | dst)
258826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  Invert        : Function is ~src
259826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
260826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_COLORBLENDTYPE {
261826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendNone,
262826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendAlphaConstant,
263826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendAlphaPerPixel,
264826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendAlternate,
265826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendAnd,
266826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendOr,
267826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendInvert,
2686eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_ColorBlendKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
269826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
270826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendMax = 0x7FFFFFFF
271826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_COLORBLENDTYPE;
272826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
273826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
2746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
2756eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Color blend configuration
276826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
277826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 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
281826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nRGBAlphaConstant : Constant global alpha values when global alpha is used
2826eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eColorBlend       : Color blend type enumeration
283826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
284826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_COLORBLENDTYPE {
285826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
286826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
287826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
288826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nRGBAlphaConstant;
289826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLORBLENDTYPE  eColorBlend;
290826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_COLORBLENDTYPE;
291826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
292826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
2936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
294826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Hold frame dimension
295826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
296826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
2976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
298826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  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
302826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
303826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_FRAMESIZETYPE {
304826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
305826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
306826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
307826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nWidth;
308826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nHeight;
309826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_FRAMESIZETYPE;
310826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
311826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
312826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
3136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Rotation configuration
314826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
315826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
3166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
317826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
318826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
3196eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nRotation  : +/- integer rotation value
320826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
321826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_ROTATIONTYPE {
322826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
323826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
324826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
3256eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_S32 nRotation;
326826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_ROTATIONTYPE;
327826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
328826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
3296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
3306eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Possible mirroring directions for pre/post processing
331826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
332826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * ENUMS:
3336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  None       : No mirroring
3346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  Vertical   : Vertical mirroring, flip on X axis
3356eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  Horizontal : Horizontal mirroring, flip on Y axis
336826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  Both       : Both vertical and horizontal mirroring
337826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
338826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_MIRRORTYPE {
339826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MirrorNone = 0,
340826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MirrorVertical,
341826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MirrorHorizontal,
3426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_MirrorBoth,
3436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_MirrorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
344826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MirrorVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
3456eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_MirrorMax = 0x7FFFFFFF
346826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_MIRRORTYPE;
347826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
348826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
3496eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
3506eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Mirroring configuration
351826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
352826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
3536eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
354826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
3556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex : Port that this structure applies to
3566eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eMirror    : Mirror type enumeration
357826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
358826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_MIRRORTYPE {
359826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
3606eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
361826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
362826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MIRRORTYPE  eMirror;
363826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_MIRRORTYPE;
364826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
365826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
3666eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
3676eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Position information only
368826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
369826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
3706eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
371826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
372826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  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 */
376826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_POINTTYPE {
377826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
378826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
379826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
380826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 nX;
381826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 nY;
382826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_POINTTYPE;
383826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
384826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
3856eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
3866eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Frame size plus position
387826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
388826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 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
392826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nLeft      : X Coordinate of the top left corner of the rectangle
393826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  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
396826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
397826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_RECTTYPE {
398826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
3996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
4006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nPortIndex;
4016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_S32 nLeft;
402826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 nTop;
403826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nWidth;
404826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nHeight;
405826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_RECTTYPE;
406826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
407826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
4086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
4096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Deblocking state; it is required to be set up before starting the codec
410826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
411826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
4126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize       : Size of the structure in bytes
4136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion    : OMX specification version information
414826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex  : Port that this structure applies to
4156eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  bDeblocking : Enable/disable deblocking mode
416826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
417826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_PARAM_DEBLOCKINGTYPE {
418826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
419826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
420826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
421826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bDeblocking;
422826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_DEBLOCKINGTYPE;
423826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
424826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
4256eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
4266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Stabilization state
427826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
428826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 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
432826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bStab      : Enable/disable frame stabilization state
433826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
434826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_FRAMESTABTYPE {
435826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
436826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
437826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
438826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bStab;
439826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_FRAMESTABTYPE;
440826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
441826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
4426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
4436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * White Balance control type
444826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
445826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
446826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  SunLight : Referenced in JSR-234
447826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  Flash    : Optimal for device's integrated flash
448826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
449826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_WHITEBALCONTROLTYPE {
450826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlOff = 0,
451826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlAuto,
452826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlSunLight,
453826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlCloudy,
454826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlShade,
455826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlTungsten,
456826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlFluorescent,
457826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlIncandescent,
458826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlFlash,
459826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlHorizon,
4606eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_WhiteBalControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
461826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
462826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlMax = 0x7FFFFFFF
463826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_WHITEBALCONTROLTYPE;
464826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
465826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
4666eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
4676eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * White Balance control configuration
468826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
469826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
4706eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize            : Size of the structure in bytes
471826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion         : OMX specification version information
4726eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex       : Port that this structure applies to
4736eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eWhiteBalControl : White balance enumeration
474826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
475826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_WHITEBALCONTROLTYPE {
476826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
477826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
478826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
479826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WHITEBALCONTROLTYPE eWhiteBalControl;
480826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_WHITEBALCONTROLTYPE;
481826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
482826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
4836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
4846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Exposure control type
485826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
486826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_EXPOSURECONTROLTYPE {
487826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlOff = 0,
488826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlAuto,
489826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlNight,
490826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlBackLight,
491826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlSpotLight,
492826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlSports,
493826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlSnow,
494826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlBeach,
495826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlLargeAperture,
496826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlSmallApperture,
4976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_ExposureControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
498826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
499826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlMax = 0x7FFFFFFF
500826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_EXPOSURECONTROLTYPE;
501826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
502826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
5036eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5046eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * White Balance control configuration
505826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
506826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
5076eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize            : Size of the structure in bytes
508826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion         : OMX specification version information
5096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex       : Port that this structure applies to
5106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eExposureControl : Exposure control enumeration
511826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
512826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_EXPOSURECONTROLTYPE {
513826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
514826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
515826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
516826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EXPOSURECONTROLTYPE eExposureControl;
517826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_EXPOSURECONTROLTYPE;
518826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
519826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
5206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5216eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines sensor supported mode.
522826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
523826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
5246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
525826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  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
528826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bOneShot   : Enable for single shot, disable for streaming
5296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  sFrameSize : Framesize
530826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
531826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_PARAM_SENSORMODETYPE {
532826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
533826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
534826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
535826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nFrameRate;
536826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bOneShot;
537826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FRAMESIZETYPE sFrameSize;
538826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_SENSORMODETYPE;
539826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
540826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
5416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines contrast level
543826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
544826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 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
548826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nContrast  : Values allowed for contrast -100 to 100, zero means no change
549826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
550826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_CONTRASTTYPE {
551826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
552826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
553826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
554826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 nContrast;
555826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_CONTRASTTYPE;
556826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
557826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
5586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5596eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines brightness level
560826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
561826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 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%
566826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
567826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_BRIGHTNESSTYPE {
568826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
569826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
570826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
571826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nBrightness;
572826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_BRIGHTNESSTYPE;
573826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
574826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
5756eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5766eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines backlight level configuration for a video sink, e.g. LCD panel
577826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
578826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
579826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize      : Size of the structure in bytes
5806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion   : OMX specification version information
581826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
582826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  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
585826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
586826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_BACKLIGHTTYPE {
587826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
588826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
589826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
590826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nBacklight;
591826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nTimeout;
592826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_BACKLIGHTTYPE;
593826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
594826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
5956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5966eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines setting for Gamma
597826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
598826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
599826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize      : Size of the structure in bytes
6006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion   : OMX specification version information
601826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
602826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nGamma     : Values allowed for gamma -100 to 100, zero means no change
603826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
604826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_GAMMATYPE {
605826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
606826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
607826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
608826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 nGamma;
609826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_GAMMATYPE;
610826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
611826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
6126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Define for setting saturation
6146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *
615826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
616826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize       : Size of the structure in bytes
617826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion    : OMX specification version information
618826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex  : Port that this structure applies to
6196eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSaturation : Values allowed for saturation -100 to 100, zero means
620826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                no change
621826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
622826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_SATURATIONTYPE {
623826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
624826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
625826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
626826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 nSaturation;
627826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_SATURATIONTYPE;
628826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
629826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
6306eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6316eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Define for setting Lightness
632826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
633826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
634826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize      : Size of the structure in bytes
635826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
636826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
6376eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nLightness : Values allowed for lightness -100 to 100, zero means no
638826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *               change
639826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
640826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_LIGHTNESSTYPE {
641826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
642826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
643826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
644826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 nLightness;
645826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_LIGHTNESSTYPE;
646826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
647826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
6486eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6496eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Plane blend configuration
650826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
651826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
6526eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
653826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
654826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  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.
657826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *               This number defaults to the Port Index number.
6586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nAlpha     : Transparency blending component for the entire plane.
659826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *               See blending modes for more detail.
660826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
661826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_PLANEBLENDTYPE {
662826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
663826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
664826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
665826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nDepth;
666826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nAlpha;
667826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_PLANEBLENDTYPE;
668826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
669826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
6706eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
671826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Define interlace type
672826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
673826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
6746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize                 : Size of the structure in bytes
6756eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion              : OMX specification version information
676826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex            : Port that this structure applies to
6776eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  bEnable               : Enable control variable for this functionality
678826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                          (see below)
6796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nInterleavePortIndex  : Index of input or output port associated with
6806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *                          the interleaved plane.
681826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  pPlanarPortIndexes[4] : Index of input or output planar ports.
682826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
683826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_PARAM_INTERLEAVETYPE {
684826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
685826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
686826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
687826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bEnable;
688826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nInterleavePortIndex;
689826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_INTERLEAVETYPE;
690826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
691826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
6926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines the picture effect used for an input picture
694826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
695826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_TRANSITIONEFFECTTYPE {
696826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectNone,
697826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectFadeFromBlack,
698826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectFadeToBlack,
699826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectUnspecifiedThroughConstantColor,
700826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectDissolve,
701826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectWipe,
702826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectUnspecifiedMixOfTwoScenes,
7036eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_EffectKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
704826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
705826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectMax = 0x7FFFFFFF
706826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_TRANSITIONEFFECTTYPE;
707826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
708826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
7096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
7106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure used to configure current transition effect
711826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
712826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
713826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize      : Size of the structure in bytes
7146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion   : OMX specification version information
715826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to
716826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eEffect    : Effect to enable
717826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
718826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_TRANSITIONEFFECTTYPE {
719826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
720826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
721826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
722826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_TRANSITIONEFFECTTYPE eEffect;
723826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_TRANSITIONEFFECTTYPE;
724826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
725826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
7266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
7276eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines possible data unit types for encoded video data. The data unit
728826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * types are used both for encoded video input for playback as well as
7296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * encoded video output from recording.
730826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
731826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_DATAUNITTYPE {
732826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataUnitCodedPicture,
733826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataUnitVideoSegment,
734826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataUnitSeveralSegments,
735826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataUnitArbitraryStreamSection,
7366eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_DataUnitKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
737826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataUnitVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
738826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataUnitMax = 0x7FFFFFFF
739826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_DATAUNITTYPE;
740826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
741826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
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.
746826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
747826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_DATAUNITENCAPSULATIONTYPE {
748826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataEncapsulationElementaryStream,
749826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataEncapsulationGenericPayload,
750826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataEncapsulationRtpPayload,
7516eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_DataEncapsulationKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
752826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataEncapsulationVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
753826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataEncapsulationMax = 0x7FFFFFFF
754826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_DATAUNITENCAPSULATIONTYPE;
755826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
756826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
7576eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
7586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure used to configure the type of being decoded/encoded
759826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
760826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_PARAM_DATAUNITTYPE {
761826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;            /**< Size of the structure in bytes */
7626eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
763826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;       /**< Port that this structure applies to */
764826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DATAUNITTYPE eUnitType;
765826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DATAUNITENCAPSULATIONTYPE eEncapsulationType;
766826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_DATAUNITTYPE;
767826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
768826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
769826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
7706eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines dither types
771826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
772826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_DITHERTYPE {
773826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DitherNone,
774826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DitherOrdered,
775826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DitherErrorDiffusion,
776826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DitherOther,
7776eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_DitherKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
778826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DitherVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
779826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DitherMax = 0x7FFFFFFF
780826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_DITHERTYPE;
781826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
782826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
7836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
7846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure used to configure current type of dithering
785826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
786826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_DITHERTYPE {
787826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;            /**< Size of the structure in bytes */
7886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
789826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;       /**< Port that this structure applies to */
790826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DITHERTYPE eDither;   /**< Type of dithering to use */
791826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_DITHERTYPE;
792826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
793826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_CAPTUREMODETYPE {
794826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
795826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
796826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;     /**< Port that this structure applies to */
7976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_BOOL bContinuous;   /**< If true then ignore frame rate and emit capture
798826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                             *   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
803826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                             *   to reaching the limit. */
804826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nFrameLimit;      /**< Limit on number of frames emitted during a capture (only
805826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                               *   valid if bFrameLimited is set). */
806826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_CAPTUREMODETYPE;
807826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
808826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_METERINGTYPE {
8096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
810826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MeteringModeAverage,     /**< Center-weighted average metering. */
811826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MeteringModeSpot,  	      /**< Spot (partial) metering. */
812826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MeteringModeMatrix,      /**< Matrix or evaluative metering. */
8136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
8146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_MeteringKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
815826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MeteringVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
816826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EVModeMax = 0x7fffffff
817826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_METERINGTYPE;
8186eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
819826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_EXPOSUREVALUETYPE {
820826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
821826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
822826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
823826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_METERINGTYPE eMetering;
824826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 xEVCompensation;      /**< Fixed point value stored as Q16 */
825826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nApertureFNumber;     /**< e.g. nApertureFNumber = 2 implies "f/2" - Q16 format */
826826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    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 */
829826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSensitivity;         /**< e.g. nSensitivity = 100 implies "ISO 100" */
830826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bAutoSensitivity;	/**< Whether sensitivity is defined automatically */
831826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_EXPOSUREVALUETYPE;
832826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
8336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
8346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Focus region configuration
835826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
836826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
837826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize           : Size of the structure in bytes
838826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion        : OMX specification version information
839826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex      : Port that this structure applies to
840826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bCenter         : Use center region as focus region of interest
841826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bLeft           : Use left region as focus region of interest
842826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bRight          : Use right region as focus region of interest
843826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bTop            : Use top region as focus region of interest
844826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bBottom         : Use bottom region as focus region of interest
845826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bTopLeft        : Use top left region as focus region of interest
846826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bTopRight       : Use top right region as focus region of interest
847826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bBottomLeft     : Use bottom left region as focus region of interest
848826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bBottomRight    : Use bottom right region as focus region of interest
849826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
850826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_FOCUSREGIONTYPE {
851826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
852826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
853826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
854826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bCenter;
855826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bLeft;
856826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bRight;
857826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bTop;
858826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bBottom;
859826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bTopLeft;
860826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bTopRight;
861826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bBottomLeft;
862826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bBottomRight;
863826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_FOCUSREGIONTYPE;
864826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
8656eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
8666eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Focus Status type
867826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
868826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_FOCUSSTATUSTYPE {
869826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FocusStatusOff = 0,
870826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FocusStatusRequest,
871826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FocusStatusReached,
872826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FocusStatusUnableToReach,
873826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FocusStatusLost,
8746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_FocusStatusKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
875826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FocusStatusVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
876826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FocusStatusMax = 0x7FFFFFFF
877826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_FOCUSSTATUSTYPE;
878826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
8796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
8806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Focus status configuration
881826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
882826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
883826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize               : Size of the structure in bytes
884826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion            : OMX specification version information
885826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex          : Port that this structure applies to
886826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  eFocusStatus        : Specifies the focus status
887826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bCenterStatus       : Use center region as focus region of interest
888826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bLeftStatus         : Use left region as focus region of interest
889826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bRightStatus        : Use right region as focus region of interest
890826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bTopStatus          : Use top region as focus region of interest
891826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bBottomStatus       : Use bottom region as focus region of interest
892826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bTopLeftStatus      : Use top left region as focus region of interest
893826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bTopRightStatus     : Use top right region as focus region of interest
894826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bBottomLeftStatus   : Use bottom left region as focus region of interest
895826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bBottomRightStatus  : Use bottom right region as focus region of interest
896826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
897826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_PARAM_FOCUSSTATUSTYPE {
898826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
899826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
900826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
901826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FOCUSSTATUSTYPE eFocusStatus;
902826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bCenterStatus;
903826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bLeftStatus;
904826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bRightStatus;
905826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bTopStatus;
906826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bBottomStatus;
907826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bTopLeftStatus;
908826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bTopRightStatus;
909826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bBottomLeftStatus;
910826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bBottomRightStatus;
911826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_FOCUSSTATUSTYPE;
912826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
913826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @} */
914826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
915826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifdef __cplusplus
916826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}
917826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif /* __cplusplus */
918826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
919826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif
920826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/* File EOF */
921