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