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 */
1355aa03230fef7a43a61e1ac5f19a2c5a71e5d6df7Praveen Chavan    /**<Reserved android opaque colorformat. Tells the encoder that
1365aa03230fef7a43a61e1ac5f19a2c5a71e5d6df7Praveen Chavan     * the actual colorformat will be  relayed by the
1375aa03230fef7a43a61e1ac5f19a2c5a71e5d6df7Praveen Chavan     * Gralloc Buffers.
1385aa03230fef7a43a61e1ac5f19a2c5a71e5d6df7Praveen Chavan     * FIXME: In the process of reserving some enum values for
1395aa03230fef7a43a61e1ac5f19a2c5a71e5d6df7Praveen Chavan     * Android-specific OMX IL colorformats. Change this enum to
1405aa03230fef7a43a61e1ac5f19a2c5a71e5d6df7Praveen Chavan     * an acceptable range once that is done.
1415aa03230fef7a43a61e1ac5f19a2c5a71e5d6df7Praveen Chavan     * */
1425aa03230fef7a43a61e1ac5f19a2c5a71e5d6df7Praveen Chavan    OMX_COLOR_FormatAndroidOpaque = 0x7F000789,
1435aa03230fef7a43a61e1ac5f19a2c5a71e5d6df7Praveen Chavan    OMX_TI_COLOR_FormatYUV420PackedSemiPlanar = 0x7F000100,
1445aa03230fef7a43a61e1ac5f19a2c5a71e5d6df7Praveen Chavan    OMX_QCOM_COLOR_FormatYVU420SemiPlanar = 0x7FA30C00,
1455aa03230fef7a43a61e1ac5f19a2c5a71e5d6df7Praveen Chavan    OMX_QCOM_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka = 0x7FA30C03,
1465aa03230fef7a43a61e1ac5f19a2c5a71e5d6df7Praveen Chavan    OMX_SEC_COLOR_FormatNV12Tiled = 0x7FC00002,
1475aa03230fef7a43a61e1ac5f19a2c5a71e5d6df7Praveen Chavan    OMX_QCOM_COLOR_FormatYUV420PackedSemiPlanar32m = 0x7FA30C04,
148826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLOR_FormatMax = 0x7FFFFFFF
149826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_COLOR_FORMATTYPE;
150826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
151826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1526eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
153826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Defines the matrix for conversion from RGB to YUV or vice versa.
1546eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * iColorMatrix should be initialized with the fixed point values
155826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * used in converting between formats.
156826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
157826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_COLORCONVERSIONTYPE {
158826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;              /**< Size of the structure in bytes */
1596eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;   /**< OMX specification version info */
160826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;         /**< Port that this struct applies to */
161826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 xColorMatrix[3][3]; /**< Stored in signed Q16 format */
162826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 xColorOffset[4];    /**< Stored in signed Q16 format */
163826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_CONFIG_COLORCONVERSIONTYPE;
164826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
165826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1666eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
1676eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure defining percent to scale each frame dimension.  For example:
168826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * To make the width 50% larger, use fWidth = 1.5 and to make the width
169826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 1/2 the original size, use fWidth = 0.5
170826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
171826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_SCALEFACTORTYPE {
172826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;            /**< Size of the structure in bytes */
1736eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion; /**< OMX specification version info */
174826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;       /**< Port that this struct applies to */
175826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 xWidth;           /**< Fixed point value stored as Q16 */
176826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 xHeight;          /**< Fixed point value stored as Q16 */
177826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_CONFIG_SCALEFACTORTYPE;
178826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
179826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
1816eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Enumeration of possible image filter types
182826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
183826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_IMAGEFILTERTYPE {
184826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterNone,
185826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterNoise,
186826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterEmboss,
187826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterNegative,
188826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterSketch,
189826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterOilPaint,
190826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterHatch,
191826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterGpen,
1926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_ImageFilterAntialias,
1936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_ImageFilterDeRing,
194826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterSolarize,
1956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_ImageFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
196826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
197826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ImageFilterMax = 0x7FFFFFFF
198826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_IMAGEFILTERTYPE;
199826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
200826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
2016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
2026eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Image filter configuration
203826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
204826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
2056eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize        : Size of the structure in bytes
206826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion     : OMX specification version information
2076eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex   : Port that this structure applies to
2086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eImageFilter : Image filter type enumeration
209826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
210826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_IMAGEFILTERTYPE {
211826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
212826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
213826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
214826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_IMAGEFILTERTYPE eImageFilter;
215826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_IMAGEFILTERTYPE;
216826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
217826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
2186eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
2196eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Customized U and V for color enhancement
220826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
221826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
222826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize             : Size of the structure in bytes
2236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion          : OMX specification version information
224826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex        : Port that this structure applies to
225826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bColorEnhancement : Enable/disable color enhancement
2266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nCustomizedU      : Practical values: 16-240, range: 0-255, value set for
227826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                      U component
2286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nCustomizedV      : Practical values: 16-240, range: 0-255, value set for
229826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                      V component
230826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
231826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_COLORENHANCEMENTTYPE {
232826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
2336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
234826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
235826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bColorEnhancement;
236826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U8 nCustomizedU;
237826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U8 nCustomizedV;
238826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_COLORENHANCEMENTTYPE;
239826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
240826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
2416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
2426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Define color key and color key mask
243826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
244826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
245826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize      : Size of the structure in bytes
2466eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion   : OMX specification version information
247826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
248826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nARGBColor : 32bit Alpha, Red, Green, Blue Color
249826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nARGBMask  : 32bit Mask for Alpha, Red, Green, Blue channels
250826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
251826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_COLORKEYTYPE {
252826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
253826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
254826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
255826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nARGBColor;
256826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nARGBMask;
257826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_COLORKEYTYPE;
258826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
259826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
2606eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
2616eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * List of color blend types for pre/post processing
262826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
263826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * ENUMS:
264826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  None          : No color blending present
2656eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  AlphaConstant : Function is (alpha_constant * src) +
266826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                  (1 - alpha_constant) * dst)
267826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  AlphaPerPixel : Function is (alpha * src) + (1 - alpha) * dst)
268826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  Alternate     : Function is alternating pixels from src and dst
269826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  And           : Function is (src & dst)
270826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  Or            : Function is (src | dst)
271826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  Invert        : Function is ~src
272826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
273826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_COLORBLENDTYPE {
274826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendNone,
275826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendAlphaConstant,
276826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendAlphaPerPixel,
277826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendAlternate,
278826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendAnd,
279826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendOr,
280826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendInvert,
2816eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_ColorBlendKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
282826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
283826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ColorBlendMax = 0x7FFFFFFF
284826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_COLORBLENDTYPE;
285826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
286826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
2876eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
2886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Color blend configuration
289826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
290826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
2916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize             : Size of the structure in bytes
2926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion          : OMX specification version information
2936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex        : Port that this structure applies to
294826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nRGBAlphaConstant : Constant global alpha values when global alpha is used
2956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eColorBlend       : Color blend type enumeration
296826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
297826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_COLORBLENDTYPE {
298826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
299826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
300826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
301826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nRGBAlphaConstant;
302826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_COLORBLENDTYPE  eColorBlend;
303826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_COLORBLENDTYPE;
304826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
305826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
3066eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
307826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Hold frame dimension
308826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
309826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
3106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
311826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
3126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex : Port that this structure applies to
3136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nWidth     : Frame width in pixels
3146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nHeight    : Frame height in pixels
315826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
316826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_FRAMESIZETYPE {
317826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
318826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
319826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
320826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nWidth;
321826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nHeight;
322826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_FRAMESIZETYPE;
323826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
324826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
325826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
3266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Rotation configuration
327826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
328826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
3296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
330826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
331826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
3326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nRotation  : +/- integer rotation value
333826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
334826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_ROTATIONTYPE {
335826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
336826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
337826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
3386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_S32 nRotation;
339826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_ROTATIONTYPE;
340826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
341826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
3426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
3436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Possible mirroring directions for pre/post processing
344826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
345826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * ENUMS:
3466eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  None       : No mirroring
3476eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  Vertical   : Vertical mirroring, flip on X axis
3486eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  Horizontal : Horizontal mirroring, flip on Y axis
349826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  Both       : Both vertical and horizontal mirroring
350826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
351826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_MIRRORTYPE {
352826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MirrorNone = 0,
353826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MirrorVertical,
354826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MirrorHorizontal,
3556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_MirrorBoth,
3566eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_MirrorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
357826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MirrorVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
3586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_MirrorMax = 0x7FFFFFFF
359826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_MIRRORTYPE;
360826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
361826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
3626eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
3636eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Mirroring configuration
364826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
365826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
3666eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
367826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
3686eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex : Port that this structure applies to
3696eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eMirror    : Mirror type enumeration
370826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
371826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_MIRRORTYPE {
372826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
3736eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
374826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
375826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MIRRORTYPE  eMirror;
376826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_MIRRORTYPE;
377826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
378826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
3796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
3806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Position information only
381826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
382826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
3836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
384826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
385826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
3866eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nX         : X coordinate for the point
3876eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nY         : Y coordinate for the point
3886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
389826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_POINTTYPE {
390826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
391826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
392826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
393826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 nX;
394826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 nY;
395826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_POINTTYPE;
396826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
397826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
3986eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
3996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Frame size plus position
400826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
401826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
4026eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
4036eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion   : OMX specification version information
4046eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex : Port that this structure applies to
405826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nLeft      : X Coordinate of the top left corner of the rectangle
406826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nTop       : Y Coordinate of the top left corner of the rectangle
4076eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nWidth     : Width of the rectangle
4086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nHeight    : Height of the rectangle
409826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
410826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_RECTTYPE {
411826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
4126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
4136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nPortIndex;
4146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_S32 nLeft;
415826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 nTop;
416826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nWidth;
417826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nHeight;
418826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_RECTTYPE;
419826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
420826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
4216eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
4226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Deblocking state; it is required to be set up before starting the codec
423826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
424826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
4256eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize       : Size of the structure in bytes
4266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion    : OMX specification version information
427826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex  : Port that this structure applies to
4286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  bDeblocking : Enable/disable deblocking mode
429826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
430826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_PARAM_DEBLOCKINGTYPE {
431826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
432826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
433826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
434826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bDeblocking;
435826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_DEBLOCKINGTYPE;
436826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
437826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
4386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
4396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Stabilization state
440826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
441826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
4426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
4436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion   : OMX specification version information
4446eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex : Port that this structure applies to
445826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bStab      : Enable/disable frame stabilization state
446826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
447826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_FRAMESTABTYPE {
448826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
449826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
450826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
451826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bStab;
452826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_FRAMESTABTYPE;
453826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
454826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
4556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
4566eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * White Balance control type
457826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
458826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
459826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  SunLight : Referenced in JSR-234
460826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  Flash    : Optimal for device's integrated flash
461826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
462826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_WHITEBALCONTROLTYPE {
463826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlOff = 0,
464826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlAuto,
465826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlSunLight,
466826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlCloudy,
467826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlShade,
468826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlTungsten,
469826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlFluorescent,
470826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlIncandescent,
471826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlFlash,
472826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlHorizon,
4736eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_WhiteBalControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
474826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
475826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WhiteBalControlMax = 0x7FFFFFFF
476826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_WHITEBALCONTROLTYPE;
477826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
478826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
4796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
4806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * White Balance control configuration
481826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
482826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
4836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize            : Size of the structure in bytes
484826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion         : OMX specification version information
4856eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex       : Port that this structure applies to
4866eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eWhiteBalControl : White balance enumeration
487826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
488826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_WHITEBALCONTROLTYPE {
489826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
490826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
491826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
492826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_WHITEBALCONTROLTYPE eWhiteBalControl;
493826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_WHITEBALCONTROLTYPE;
494826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
495826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
4966eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
4976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Exposure control type
498826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
499826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_EXPOSURECONTROLTYPE {
500826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlOff = 0,
501826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlAuto,
502826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlNight,
503826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlBackLight,
504826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlSpotLight,
505826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlSports,
506826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlSnow,
507826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlBeach,
508826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlLargeAperture,
509826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlSmallApperture,
5106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_ExposureControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
511826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
512826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_ExposureControlMax = 0x7FFFFFFF
513826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_EXPOSURECONTROLTYPE;
514826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
515826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
5166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5176eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * White Balance control configuration
518826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
519826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
5206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize            : Size of the structure in bytes
521826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion         : OMX specification version information
5226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex       : Port that this structure applies to
5236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eExposureControl : Exposure control enumeration
524826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
525826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_EXPOSURECONTROLTYPE {
526826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
527826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
528826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
529826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EXPOSURECONTROLTYPE eExposureControl;
530826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_EXPOSURECONTROLTYPE;
531826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
532826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
5336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines sensor supported mode.
535826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
536826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
5376eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
538826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
5396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex : Port that this structure applies to
5406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nFrameRate : Single shot mode is indicated by a 0
541826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bOneShot   : Enable for single shot, disable for streaming
5426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  sFrameSize : Framesize
543826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
544826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_PARAM_SENSORMODETYPE {
545826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
546826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
547826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
548826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nFrameRate;
549826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bOneShot;
550826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FRAMESIZETYPE sFrameSize;
551826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_SENSORMODETYPE;
552826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
553826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
5546eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines contrast level
556826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
557826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
5586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
5596eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion   : OMX specification version information
5606eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex : Port that this structure applies to
561826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nContrast  : Values allowed for contrast -100 to 100, zero means no change
562826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
563826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_CONTRASTTYPE {
564826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
565826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
566826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
567826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 nContrast;
568826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_CONTRASTTYPE;
569826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
570826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
5716eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5726eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines brightness level
573826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
574826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
5756eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize       : Size of the structure in bytes
5766eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion    : OMX specification version information
5776eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex  : Port that this structure applies to
5786eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nBrightness : 0-100%
579826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
580826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_BRIGHTNESSTYPE {
581826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
582826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
583826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
584826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nBrightness;
585826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_BRIGHTNESSTYPE;
586826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
587826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
5886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines backlight level configuration for a video sink, e.g. LCD panel
590826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
591826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
592826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize      : Size of the structure in bytes
5936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion   : OMX specification version information
594826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
595826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nBacklight : Values allowed for backlight 0-100%
5966eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nTimeout   : Number of milliseconds before backlight automatically turns
5976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *               off.  A value of 0x0 disables backight timeout
598826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
599826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_BACKLIGHTTYPE {
600826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
601826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
602826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
603826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nBacklight;
604826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nTimeout;
605826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_BACKLIGHTTYPE;
606826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
607826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
6086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines setting for Gamma
610826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
611826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
612826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize      : Size of the structure in bytes
6136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion   : OMX specification version information
614826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
615826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nGamma     : Values allowed for gamma -100 to 100, zero means no change
616826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
617826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_GAMMATYPE {
618826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
619826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
620826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
621826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 nGamma;
622826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_GAMMATYPE;
623826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
624826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
6256eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Define for setting saturation
6276eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *
628826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
629826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize       : Size of the structure in bytes
630826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion    : OMX specification version information
631826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex  : Port that this structure applies to
6326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSaturation : Values allowed for saturation -100 to 100, zero means
633826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                no change
634826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
635826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_SATURATIONTYPE {
636826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
637826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
638826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
639826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 nSaturation;
640826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_SATURATIONTYPE;
641826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
642826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
6436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6446eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Define for setting Lightness
645826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
646826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
647826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize      : Size of the structure in bytes
648826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
649826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
6506eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nLightness : Values allowed for lightness -100 to 100, zero means no
651826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *               change
652826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
653826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_LIGHTNESSTYPE {
654826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
655826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
656826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
657826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 nLightness;
658826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_LIGHTNESSTYPE;
659826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
660826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
6616eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6626eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Plane blend configuration
663826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
664826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
6656eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize      : Size of the structure in bytes
666826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
667826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Index of input port associated with the plane.
6686eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nDepth     : Depth of the plane in relation to the screen. Higher
6696eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *               numbered depths are "behind" lower number depths.
670826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *               This number defaults to the Port Index number.
6716eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nAlpha     : Transparency blending component for the entire plane.
672826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *               See blending modes for more detail.
673826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
674826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_PLANEBLENDTYPE {
675826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
676826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
677826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
678826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nDepth;
679826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nAlpha;
680826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_PLANEBLENDTYPE;
681826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
682826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
6836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
684826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Define interlace type
685826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
686826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
6876eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize                 : Size of the structure in bytes
6886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion              : OMX specification version information
689826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex            : Port that this structure applies to
6906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  bEnable               : Enable control variable for this functionality
691826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                          (see below)
6926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nInterleavePortIndex  : Index of input or output port associated with
6936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *                          the interleaved plane.
694826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  pPlanarPortIndexes[4] : Index of input or output planar ports.
695826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
696826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_PARAM_INTERLEAVETYPE {
697826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
698826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
699826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
700826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bEnable;
701826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nInterleavePortIndex;
702826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_INTERLEAVETYPE;
703826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
704826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
7056eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
7066eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines the picture effect used for an input picture
707826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
708826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_TRANSITIONEFFECTTYPE {
709826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectNone,
710826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectFadeFromBlack,
711826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectFadeToBlack,
712826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectUnspecifiedThroughConstantColor,
713826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectDissolve,
714826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectWipe,
715826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectUnspecifiedMixOfTwoScenes,
7166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_EffectKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
717826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
718826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EffectMax = 0x7FFFFFFF
719826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_TRANSITIONEFFECTTYPE;
720826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
721826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
7226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
7236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure used to configure current transition effect
724826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
725826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
726826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize      : Size of the structure in bytes
7276eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion   : OMX specification version information
728826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to
729826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eEffect    : Effect to enable
730826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
731826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_TRANSITIONEFFECTTYPE {
732826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
733826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
734826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
735826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_TRANSITIONEFFECTTYPE eEffect;
736826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_TRANSITIONEFFECTTYPE;
737826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
738826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
7396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
7406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines possible data unit types for encoded video data. The data unit
741826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * types are used both for encoded video input for playback as well as
7426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * encoded video output from recording.
743826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
744826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_DATAUNITTYPE {
745826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataUnitCodedPicture,
746826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataUnitVideoSegment,
747826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataUnitSeveralSegments,
748826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataUnitArbitraryStreamSection,
7496eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_DataUnitKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
750826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataUnitVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
751826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataUnitMax = 0x7FFFFFFF
752826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_DATAUNITTYPE;
753826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
754826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
7556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
7566eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines possible encapsulation types for coded video data unit. The
7576eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * encapsulation information is used both for encoded video input for
7586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * playback as well as encoded video output from recording.
759826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
760826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_DATAUNITENCAPSULATIONTYPE {
761826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataEncapsulationElementaryStream,
762826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataEncapsulationGenericPayload,
763826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataEncapsulationRtpPayload,
7646eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_DataEncapsulationKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
765826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataEncapsulationVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
766826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DataEncapsulationMax = 0x7FFFFFFF
767826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_DATAUNITENCAPSULATIONTYPE;
768826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
769826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
7706eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
7716eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure used to configure the type of being decoded/encoded
772826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
773826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_PARAM_DATAUNITTYPE {
774826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;            /**< Size of the structure in bytes */
7756eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
776826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;       /**< Port that this structure applies to */
777826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DATAUNITTYPE eUnitType;
778826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DATAUNITENCAPSULATIONTYPE eEncapsulationType;
779826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_DATAUNITTYPE;
780826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
781826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
782826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
7836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Defines dither types
784826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
785826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_DITHERTYPE {
786826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DitherNone,
787826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DitherOrdered,
788826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DitherErrorDiffusion,
789826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DitherOther,
7906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_DitherKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
791826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DitherVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
792826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DitherMax = 0x7FFFFFFF
793826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_DITHERTYPE;
794826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
795826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
7966eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
7976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure used to configure current type of dithering
798826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
799826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_DITHERTYPE {
800826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;            /**< Size of the structure in bytes */
8016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
802826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;       /**< Port that this structure applies to */
803826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_DITHERTYPE eDither;   /**< Type of dithering to use */
804826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_DITHERTYPE;
805826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
806826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_CAPTUREMODETYPE {
807826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
808826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
809826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;     /**< Port that this structure applies to */
8106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_BOOL bContinuous;   /**< If true then ignore frame rate and emit capture
811826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                             *   data as fast as possible (otherwise obey port's frame rate). */
8126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_BOOL bFrameLimited; /**< If true then terminate capture after the port emits the
8136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                             *   specified number of frames (otherwise the port does not
8146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                             *   terminate the capture until instructed to do so by the client).
8156eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                             *   Even if set, the client may manually terminate the capture prior
816826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                             *   to reaching the limit. */
817826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nFrameLimit;      /**< Limit on number of frames emitted during a capture (only
818826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev                               *   valid if bFrameLimited is set). */
819826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_CAPTUREMODETYPE;
820826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
821826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_METERINGTYPE {
8226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
823826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MeteringModeAverage,     /**< Center-weighted average metering. */
824826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MeteringModeSpot,  	      /**< Spot (partial) metering. */
825826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MeteringModeMatrix,      /**< Matrix or evaluative metering. */
8266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
8276eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_MeteringKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
828826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_MeteringVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
829826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EVModeMax = 0x7fffffff
830826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_METERINGTYPE;
8316eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
832826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_EXPOSUREVALUETYPE {
833826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
834826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
835826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
836826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_METERINGTYPE eMetering;
837826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_S32 xEVCompensation;      /**< Fixed point value stored as Q16 */
838826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nApertureFNumber;     /**< e.g. nApertureFNumber = 2 implies "f/2" - Q16 format */
839826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bAutoAperture;		/**< Whether aperture number is defined automatically */
8406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nShutterSpeedMsec;    /**< Shutterspeed in milliseconds */
8416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_BOOL bAutoShutterSpeed;	/**< Whether shutter speed is defined automatically */
842826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSensitivity;         /**< e.g. nSensitivity = 100 implies "ISO 100" */
843826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bAutoSensitivity;	/**< Whether sensitivity is defined automatically */
844826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_EXPOSUREVALUETYPE;
845826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
8466eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
8476eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Focus region configuration
848826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
849826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
850826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize           : Size of the structure in bytes
851826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion        : OMX specification version information
852826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex      : Port that this structure applies to
853826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bCenter         : Use center region as focus region of interest
854826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bLeft           : Use left region as focus region of interest
855826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bRight          : Use right region as focus region of interest
856826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bTop            : Use top region as focus region of interest
857826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bBottom         : Use bottom region as focus region of interest
858826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bTopLeft        : Use top left region as focus region of interest
859826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bTopRight       : Use top right region as focus region of interest
860826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bBottomLeft     : Use bottom left region as focus region of interest
861826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bBottomRight    : Use bottom right region as focus region of interest
862826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
863826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_FOCUSREGIONTYPE {
864826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
865826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
866826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
867826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bCenter;
868826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bLeft;
869826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bRight;
870826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bTop;
871826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bBottom;
872826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bTopLeft;
873826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bTopRight;
874826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bBottomLeft;
875826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bBottomRight;
876826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_FOCUSREGIONTYPE;
877826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
8786eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
8796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Focus Status type
880826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
881826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_FOCUSSTATUSTYPE {
882826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FocusStatusOff = 0,
883826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FocusStatusRequest,
884826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FocusStatusReached,
885826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FocusStatusUnableToReach,
886826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FocusStatusLost,
8876eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_FocusStatusKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
888826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FocusStatusVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
889826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FocusStatusMax = 0x7FFFFFFF
890826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_FOCUSSTATUSTYPE;
891826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
8926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
8936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Focus status configuration
894826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
895826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
896826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize               : Size of the structure in bytes
897826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion            : OMX specification version information
898826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex          : Port that this structure applies to
899826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  eFocusStatus        : Specifies the focus status
900826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bCenterStatus       : Use center region as focus region of interest
901826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bLeftStatus         : Use left region as focus region of interest
902826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bRightStatus        : Use right region as focus region of interest
903826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bTopStatus          : Use top region as focus region of interest
904826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bBottomStatus       : Use bottom region as focus region of interest
905826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bTopLeftStatus      : Use top left region as focus region of interest
906826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bTopRightStatus     : Use top right region as focus region of interest
907826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bBottomLeftStatus   : Use bottom left region as focus region of interest
908826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bBottomRightStatus  : Use bottom right region as focus region of interest
909826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
910826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_PARAM_FOCUSSTATUSTYPE {
911826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
912826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
913826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
914826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_FOCUSSTATUSTYPE eFocusStatus;
915826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bCenterStatus;
916826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bLeftStatus;
917826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bRightStatus;
918826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bTopStatus;
919826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bBottomStatus;
920826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bTopLeftStatus;
921826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bTopRightStatus;
922826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bBottomLeftStatus;
923826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bBottomRightStatus;
924826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_FOCUSSTATUSTYPE;
925826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
926826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @} */
927826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
928826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifdef __cplusplus
929826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}
930826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif /* __cplusplus */
931826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
932826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif
933826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/* File EOF */
934