16ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/* ------------------------------------------------------------------
26ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Copyright (C) 1998-2009 PacketVideo
36ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
46ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Licensed under the Apache License, Version 2.0 (the "License");
56ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * you may not use this file except in compliance with the License.
66ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * You may obtain a copy of the License at
76ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
86ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *      http://www.apache.org/licenses/LICENSE-2.0
96ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Unless required by applicable law or agreed to in writing, software
116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * distributed under the License is distributed on an "AS IS" BASIS,
126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * express or implied.
146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * See the License for the specific language governing permissions
156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * and limitations under the License.
166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * -------------------------------------------------------------------
176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/**
19348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Copyright (c) 2008 The Khronos Group Inc.
20348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *
216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Permission is hereby granted, free of charge, to any person obtaining
226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * a copy of this software and associated documentation files (the
236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * "Software"), to deal in the Software without restriction, including
246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * without limitation the rights to use, copy, modify, merge, publish,
256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * distribute, sublicense, and/or sell copies of the Software, and to
266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * permit persons to whom the Software is furnished to do so, subject
27348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * to the following conditions:
286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * The above copyright notice and this permission notice shall be included
29348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * in all copies or substantial portions of the Software.
30348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *
316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
37348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
41348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @file OMX_IVCommon.h - OpenMax IL version 1.1.2
436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  The structures needed by Video and Image components to exchange
446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  parameters and configuration data with the components.
456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#ifndef OMX_IVCommon_h
476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#define OMX_IVCommon_h
486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#ifdef __cplusplus
506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huberextern "C" {
516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#endif /* __cplusplus */
526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/**
546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Each OMX header must include all required header files to allow the header
556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * to compile without errors.  The includes below are required for this header
56348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * file to compile successfully
576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#include <OMX_Core.h>
606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @defgroup iv OpenMAX IL Imaging and Video Domain
626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Common structures for OpenMAX IL Imaging and Video domains
636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * @{
646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
67348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
68348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Enumeration defining possible uncompressed image/video formats.
696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * ENUMS:
716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  Unused                 : Placeholder value when format is N/A
726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  Monochrome             : black and white
736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  8bitRGB332             : Red 7:5, Green 4:2, Blue 1:0
746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  12bitRGB444            : Red 11:8, Green 7:4, Blue 3:0
756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  16bitARGB4444          : Alpha 15:12, Red 11:8, Green 7:4, Blue 3:0
766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  16bitARGB1555          : Alpha 15, Red 14:10, Green 9:5, Blue 4:0
776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  16bitRGB565            : Red 15:11, Green 10:5, Blue 4:0
786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  16bitBGR565            : Blue 15:11, Green 10:5, Red 4:0
796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  18bitRGB666            : Red 17:12, Green 11:6, Blue 5:0
806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  18bitARGB1665          : Alpha 17, Red 16:11, Green 10:5, Blue 4:0
816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  19bitARGB1666          : Alpha 18, Red 17:12, Green 11:6, Blue 5:0
826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  24bitRGB888            : Red 24:16, Green 15:8, Blue 7:0
836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  24bitBGR888            : Blue 24:16, Green 15:8, Red 7:0
846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  24bitARGB1887          : Alpha 23, Red 22:15, Green 14:7, Blue 6:0
856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  25bitARGB1888          : Alpha 24, Red 23:16, Green 15:8, Blue 7:0
866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  32bitBGRA8888          : Blue 31:24, Green 23:16, Red 15:8, Alpha 7:0
876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  32bitARGB8888          : Alpha 31:24, Red 23:16, Green 15:8, Blue 7:0
886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  YUV411Planar           : U,Y are subsampled by a factor of 4 horizontally
896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  YUV411PackedPlanar     : packed per payload in planar slices
906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  YUV420Planar           : Three arrays Y,U,V.
916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  YUV420PackedPlanar     : packed per payload in planar slices
926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  YUV420SemiPlanar       : Two arrays, one is all Y, the other is U and V
936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  YUV422Planar           : Three arrays Y,U,V.
946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  YUV422PackedPlanar     : packed per payload in planar slices
956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  YUV422SemiPlanar       : Two arrays, one is all Y, the other is U and V
966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  YCbYCr                 : Organized as 16bit YUYV (i.e. YCbYCr)
976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  YCrYCb                 : Organized as 16bit YVYU (i.e. YCrYCb)
986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  CbYCrY                 : Organized as 16bit UYVY (i.e. CbYCrY)
996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  CrYCbY                 : Organized as 16bit VYUY (i.e. CrYCbY)
1006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  YUV444Interleaved      : Each pixel contains equal parts YUV
1016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  RawBayer8bit           : SMIA camera output format
1026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  RawBayer10bit          : SMIA camera output format
1036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  RawBayer8bitcompressed : SMIA camera output format
1046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
1056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_COLOR_FORMATTYPE {
1066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatUnused,
1076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatMonochrome,
1086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format8bitRGB332,
1096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format12bitRGB444,
1106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format16bitARGB4444,
1116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format16bitARGB1555,
1126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format16bitRGB565,
1136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format16bitBGR565,
1146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format18bitRGB666,
1156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format18bitARGB1665,
116348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_COLOR_Format19bitARGB1666,
1176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format24bitRGB888,
1186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format24bitBGR888,
1196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format24bitARGB1887,
1206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format25bitARGB1888,
1216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format32bitBGRA8888,
1226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format32bitARGB8888,
1236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatYUV411Planar,
1246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatYUV411PackedPlanar,
1256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatYUV420Planar,
1266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatYUV420PackedPlanar,
1276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatYUV420SemiPlanar,
1286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatYUV422Planar,
1296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatYUV422PackedPlanar,
1306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatYUV422SemiPlanar,
1316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatYCbYCr,
1326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatYCrYCb,
1336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatCbYCrY,
1346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatCrYCbY,
1356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatYUV444Interleaved,
1366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatRawBayer8bit,
1376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatRawBayer10bit,
1386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatRawBayer8bitcompressed,
139348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_COLOR_FormatL2,
140348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_COLOR_FormatL4,
141348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_COLOR_FormatL8,
142348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_COLOR_FormatL16,
143348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_COLOR_FormatL24,
1446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatL32,
1456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatYUV420PackedSemiPlanar,
1466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatYUV422PackedSemiPlanar,
1476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format18BitBGR666,
1486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format24BitARGB6666,
1496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_Format24BitABGR6666,
150348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_COLOR_FormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
1516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
152348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    /**<Reserved android opaque colorformat. Tells the encoder that
153348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi     * the actual colorformat will be  relayed by the
154348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi     * Gralloc Buffers.
155348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi     * FIXME: In the process of reserving some enum values for
156348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi     * Android-specific OMX IL colorformats. Change this enum to
157557b7092cc9a1dfe766ac3d0421e1049c653c4aePannag Sanketi     * an acceptable range once that is done.
158557b7092cc9a1dfe766ac3d0421e1049c653c4aePannag Sanketi     * */
1594da5660eee240cea3f7411a0ed5a1120bccdeb45Pannag Sanketi    OMX_COLOR_FormatAndroidOpaque = 0x7F000789,
160d35df4412bc2218bb0d22522bd366123b8e6400cAnu Sundararajan    OMX_TI_COLOR_FormatYUV420PackedSemiPlanar = 0x7F000100,
16138c07129c42222a764d784327d0a63f4cfc1331bJames Dong    OMX_QCOM_COLOR_FormatYVU420SemiPlanar = 0x7FA30C00,
1626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLOR_FormatMax = 0x7FFFFFFF
1636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_COLOR_FORMATTYPE;
1646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
166348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
1676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Defines the matrix for conversion from RGB to YUV or vice versa.
168348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * iColorMatrix should be initialized with the fixed point values
1696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * used in converting between formats.
1706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
1716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_COLORCONVERSIONTYPE {
1726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;              /**< Size of the structure in bytes */
173348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_VERSIONTYPE nVersion;   /**< OMX specification version info */
1746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;         /**< Port that this struct applies to */
1756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_S32 xColorMatrix[3][3]; /**< Stored in signed Q16 format */
1766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_S32 xColorOffset[4];    /**< Stored in signed Q16 format */
1776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber}OMX_CONFIG_COLORCONVERSIONTYPE;
1786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
180348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
181348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Structure defining percent to scale each frame dimension.  For example:
1826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * To make the width 50% larger, use fWidth = 1.5 and to make the width
1836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * 1/2 the original size, use fWidth = 0.5
1846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
1856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_SCALEFACTORTYPE {
1866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;            /**< Size of the structure in bytes */
187348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_VERSIONTYPE nVersion; /**< OMX specification version info */
1886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;       /**< Port that this struct applies to */
1896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_S32 xWidth;           /**< Fixed point value stored as Q16 */
1906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_S32 xHeight;          /**< Fixed point value stored as Q16 */
1916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber}OMX_CONFIG_SCALEFACTORTYPE;
1926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
1936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
194348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
195348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Enumeration of possible image filter types
1966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
1976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_IMAGEFILTERTYPE {
1986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ImageFilterNone,
1996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ImageFilterNoise,
2006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ImageFilterEmboss,
2016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ImageFilterNegative,
2026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ImageFilterSketch,
2036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ImageFilterOilPaint,
2046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ImageFilterHatch,
2056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ImageFilterGpen,
206348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_ImageFilterAntialias,
207348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_ImageFilterDeRing,
2086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ImageFilterSolarize,
209348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_ImageFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
2106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ImageFilterVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
2116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ImageFilterMax = 0x7FFFFFFF
2126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_IMAGEFILTERTYPE;
2136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
2146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
215348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
216348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Image filter configuration
2176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
2186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
219348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSize        : Size of the structure in bytes
2206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nVersion     : OMX specification version information
221348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nPortIndex   : Port that this structure applies to
222348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  eImageFilter : Image filter type enumeration
2236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
2246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_IMAGEFILTERTYPE {
2256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
2266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
2276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
2286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_IMAGEFILTERTYPE eImageFilter;
2296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_IMAGEFILTERTYPE;
2306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
2316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
232348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
233348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Customized U and V for color enhancement
2346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
2356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
2366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nSize             : Size of the structure in bytes
237348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nVersion          : OMX specification version information
2386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nPortIndex        : Port that this structure applies to
2396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bColorEnhancement : Enable/disable color enhancement
240348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nCustomizedU      : Practical values: 16-240, range: 0-255, value set for
2416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *                      U component
242348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nCustomizedV      : Practical values: 16-240, range: 0-255, value set for
2436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *                      V component
2446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
2456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_COLORENHANCEMENTTYPE {
2466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
247348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_VERSIONTYPE nVersion;
2486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
2496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bColorEnhancement;
2506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U8 nCustomizedU;
2516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U8 nCustomizedV;
2526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_COLORENHANCEMENTTYPE;
2536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
2546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
255348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
256348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Define color key and color key mask
2576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
2586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
2596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nSize      : Size of the structure in bytes
260348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nVersion   : OMX specification version information
2616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nPortIndex : Port that this structure applies to
2626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nARGBColor : 32bit Alpha, Red, Green, Blue Color
2636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nARGBMask  : 32bit Mask for Alpha, Red, Green, Blue channels
2646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
2656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_COLORKEYTYPE {
2666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
2676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
2686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
2696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nARGBColor;
2706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nARGBMask;
2716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_COLORKEYTYPE;
2726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
2736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
274348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
275348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * List of color blend types for pre/post processing
2766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
2776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * ENUMS:
2786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  None          : No color blending present
279348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  AlphaConstant : Function is (alpha_constant * src) +
2806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *                  (1 - alpha_constant) * dst)
2816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  AlphaPerPixel : Function is (alpha * src) + (1 - alpha) * dst)
2826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  Alternate     : Function is alternating pixels from src and dst
2836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  And           : Function is (src & dst)
2846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  Or            : Function is (src | dst)
2856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  Invert        : Function is ~src
2866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
2876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_COLORBLENDTYPE {
2886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ColorBlendNone,
2896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ColorBlendAlphaConstant,
2906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ColorBlendAlphaPerPixel,
2916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ColorBlendAlternate,
2926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ColorBlendAnd,
2936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ColorBlendOr,
2946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ColorBlendInvert,
295348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_ColorBlendKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
2966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ColorBlendVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
2976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ColorBlendMax = 0x7FFFFFFF
2986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_COLORBLENDTYPE;
2996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
301348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
302348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Color blend configuration
3036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
3046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
305348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSize             : Size of the structure in bytes
306348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nVersion          : OMX specification version information
307348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nPortIndex        : Port that this structure applies to
3086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nRGBAlphaConstant : Constant global alpha values when global alpha is used
309348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  eColorBlend       : Color blend type enumeration
3106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
3116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_COLORBLENDTYPE {
3126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
3136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
3146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
3156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nRGBAlphaConstant;
3166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_COLORBLENDTYPE  eColorBlend;
3176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_COLORBLENDTYPE;
3186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
320348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
3216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Hold frame dimension
3226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
3236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
324348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSize      : Size of the structure in bytes
3256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nVersion   : OMX specification version information
326348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nPortIndex : Port that this structure applies to
327348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nWidth     : Frame width in pixels
328348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nHeight    : Frame height in pixels
3296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
3306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_FRAMESIZETYPE {
3316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
3326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
3336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
3346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nWidth;
3356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nHeight;
3366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_FRAMESIZETYPE;
3376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/**
340348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Rotation configuration
3416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
3426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
343348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSize      : Size of the structure in bytes
3446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nVersion   : OMX specification version information
3456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nPortIndex : Port that this structure applies to
346348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nRotation  : +/- integer rotation value
3476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
3486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_ROTATIONTYPE {
3496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
3506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
3516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
352348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_S32 nRotation;
3536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_ROTATIONTYPE;
3546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
356348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
357348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Possible mirroring directions for pre/post processing
3586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
3596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * ENUMS:
360348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  None       : No mirroring
361348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  Vertical   : Vertical mirroring, flip on X axis
362348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  Horizontal : Horizontal mirroring, flip on Y axis
3636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  Both       : Both vertical and horizontal mirroring
3646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
3656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_MIRRORTYPE {
3666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_MirrorNone = 0,
3676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_MirrorVertical,
3686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_MirrorHorizontal,
369348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_MirrorBoth,
370348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_MirrorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
3716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_MirrorVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
372348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_MirrorMax = 0x7FFFFFFF
3736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_MIRRORTYPE;
3746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
376348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
377348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Mirroring configuration
3786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
3796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
380348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSize      : Size of the structure in bytes
3816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nVersion   : OMX specification version information
382348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nPortIndex : Port that this structure applies to
383348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  eMirror    : Mirror type enumeration
3846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
3856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_MIRRORTYPE {
3866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
387348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_VERSIONTYPE nVersion;
3886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
3896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_MIRRORTYPE  eMirror;
3906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_MIRRORTYPE;
3916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
3926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
393348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
394348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Position information only
3956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
3966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
397348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSize      : Size of the structure in bytes
3986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nVersion   : OMX specification version information
3996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nPortIndex : Port that this structure applies to
400348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nX         : X coordinate for the point
401348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nY         : Y coordinate for the point
402348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi */
4036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_POINTTYPE {
4046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
4056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
4066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
4076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_S32 nX;
4086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_S32 nY;
4096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_POINTTYPE;
4106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
412348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
413348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Frame size plus position
4146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
4156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
416348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSize      : Size of the structure in bytes
417348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nVersion   : OMX specification version information
418348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nPortIndex : Port that this structure applies to
4196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nLeft      : X Coordinate of the top left corner of the rectangle
4206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nTop       : Y Coordinate of the top left corner of the rectangle
421348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nWidth     : Width of the rectangle
422348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nHeight    : Height of the rectangle
4236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
4246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_RECTTYPE {
4256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
426348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_VERSIONTYPE nVersion;
427348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_U32 nPortIndex;
428348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_S32 nLeft;
4296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_S32 nTop;
4306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nWidth;
4316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nHeight;
4326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_RECTTYPE;
4336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
435348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
436348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Deblocking state; it is required to be set up before starting the codec
4376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
4386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
439348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSize       : Size of the structure in bytes
440348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nVersion    : OMX specification version information
4416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nPortIndex  : Port that this structure applies to
442348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  bDeblocking : Enable/disable deblocking mode
4436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
4446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_PARAM_DEBLOCKINGTYPE {
4456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
4466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
4476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
4486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bDeblocking;
4496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_PARAM_DEBLOCKINGTYPE;
4506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
452348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
453348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Stabilization state
4546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
4556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
456348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSize      : Size of the structure in bytes
457348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nVersion   : OMX specification version information
458348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nPortIndex : Port that this structure applies to
4596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bStab      : Enable/disable frame stabilization state
4606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
4616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_FRAMESTABTYPE {
4626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
4636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
4646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
4656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bStab;
4666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_FRAMESTABTYPE;
4676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
469348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
470348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * White Balance control type
4716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
4726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
4736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  SunLight : Referenced in JSR-234
4746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  Flash    : Optimal for device's integrated flash
4756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
4766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_WHITEBALCONTROLTYPE {
4776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_WhiteBalControlOff = 0,
4786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_WhiteBalControlAuto,
4796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_WhiteBalControlSunLight,
4806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_WhiteBalControlCloudy,
4816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_WhiteBalControlShade,
4826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_WhiteBalControlTungsten,
4836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_WhiteBalControlFluorescent,
4846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_WhiteBalControlIncandescent,
4856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_WhiteBalControlFlash,
4866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_WhiteBalControlHorizon,
487348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_WhiteBalControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
4886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_WhiteBalControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
4896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_WhiteBalControlMax = 0x7FFFFFFF
4906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_WHITEBALCONTROLTYPE;
4916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
4926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
493348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
494348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * White Balance control configuration
4956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
4966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
497348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSize            : Size of the structure in bytes
4986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nVersion         : OMX specification version information
499348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nPortIndex       : Port that this structure applies to
500348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  eWhiteBalControl : White balance enumeration
5016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
5026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_WHITEBALCONTROLTYPE {
5036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
5046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
5056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
5066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_WHITEBALCONTROLTYPE eWhiteBalControl;
5076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_WHITEBALCONTROLTYPE;
5086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
510348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
511348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Exposure control type
5126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
5136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_EXPOSURECONTROLTYPE {
5146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ExposureControlOff = 0,
5156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ExposureControlAuto,
5166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ExposureControlNight,
5176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ExposureControlBackLight,
5186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ExposureControlSpotLight,
5196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ExposureControlSports,
5206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ExposureControlSnow,
5216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ExposureControlBeach,
5226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ExposureControlLargeAperture,
5236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ExposureControlSmallApperture,
524348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_ExposureControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
5256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ExposureControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
5266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_ExposureControlMax = 0x7FFFFFFF
5276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_EXPOSURECONTROLTYPE;
5286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
530348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
531348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * White Balance control configuration
5326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
5336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
534348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSize            : Size of the structure in bytes
5356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nVersion         : OMX specification version information
536348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nPortIndex       : Port that this structure applies to
537348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  eExposureControl : Exposure control enumeration
5386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
5396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_EXPOSURECONTROLTYPE {
5406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
5416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
5426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
5436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_EXPOSURECONTROLTYPE eExposureControl;
5446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_EXPOSURECONTROLTYPE;
5456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
547348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
548348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Defines sensor supported mode.
5496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
5506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
551348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSize      : Size of the structure in bytes
5526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nVersion   : OMX specification version information
553348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nPortIndex : Port that this structure applies to
554348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nFrameRate : Single shot mode is indicated by a 0
5556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bOneShot   : Enable for single shot, disable for streaming
556348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  sFrameSize : Framesize
5576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
5586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_PARAM_SENSORMODETYPE {
5596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
5606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
5616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
5626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nFrameRate;
5636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bOneShot;
5646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_FRAMESIZETYPE sFrameSize;
5656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_PARAM_SENSORMODETYPE;
5666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
568348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
569348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Defines contrast level
5706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
5716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
572348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSize      : Size of the structure in bytes
573348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nVersion   : OMX specification version information
574348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nPortIndex : Port that this structure applies to
5756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nContrast  : Values allowed for contrast -100 to 100, zero means no change
5766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
5776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_CONTRASTTYPE {
5786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
5796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
5806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
5816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_S32 nContrast;
5826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_CONTRASTTYPE;
5836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
5846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
585348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
586348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Defines brightness level
5876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
5886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
589348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSize       : Size of the structure in bytes
590348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nVersion    : OMX specification version information
591348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nPortIndex  : Port that this structure applies to
592348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nBrightness : 0-100%
5936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
5946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_BRIGHTNESSTYPE {
5956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
5966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
5976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
5986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nBrightness;
5996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_BRIGHTNESSTYPE;
6006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
602348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
603348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Defines backlight level configuration for a video sink, e.g. LCD panel
6046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
6056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
6066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nSize      : Size of the structure in bytes
607348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nVersion   : OMX specification version information
6086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nPortIndex : Port that this structure applies to
6096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nBacklight : Values allowed for backlight 0-100%
610348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nTimeout   : Number of milliseconds before backlight automatically turns
611348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *               off.  A value of 0x0 disables backight timeout
6126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
6136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_BACKLIGHTTYPE {
6146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
6156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
6166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
6176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nBacklight;
6186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nTimeout;
6196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_BACKLIGHTTYPE;
6206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
622348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
623348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Defines setting for Gamma
6246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
6256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
6266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nSize      : Size of the structure in bytes
627348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nVersion   : OMX specification version information
6286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nPortIndex : Port that this structure applies to
6296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nGamma     : Values allowed for gamma -100 to 100, zero means no change
6306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
6316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_GAMMATYPE {
6326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
6336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
6346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
6356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_S32 nGamma;
6366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_GAMMATYPE;
6376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
639348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
640348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Define for setting saturation
641348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *
6426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
6436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nSize       : Size of the structure in bytes
6446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nVersion    : OMX specification version information
6456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nPortIndex  : Port that this structure applies to
646348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSaturation : Values allowed for saturation -100 to 100, zero means
6476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *                no change
6486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
6496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_SATURATIONTYPE {
6506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
6516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
6526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
6536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_S32 nSaturation;
6546ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_SATURATIONTYPE;
6556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
657348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
658348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Define for setting Lightness
6596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
6606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
6616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nSize      : Size of the structure in bytes
6626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nVersion   : OMX specification version information
6636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nPortIndex : Port that this structure applies to
664348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nLightness : Values allowed for lightness -100 to 100, zero means no
6656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *               change
6666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
6676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_LIGHTNESSTYPE {
6686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
6696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
6706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
6716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_S32 nLightness;
6726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_LIGHTNESSTYPE;
6736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
675348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
676348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Plane blend configuration
6776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
6786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
679348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSize      : Size of the structure in bytes
6806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nVersion   : OMX specification version information
6816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nPortIndex : Index of input port associated with the plane.
682348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nDepth     : Depth of the plane in relation to the screen. Higher
683348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *               numbered depths are "behind" lower number depths.
6846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *               This number defaults to the Port Index number.
685348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nAlpha     : Transparency blending component for the entire plane.
6866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *               See blending modes for more detail.
6876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
6886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_PLANEBLENDTYPE {
6896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
6906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
6916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
6926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nDepth;
6936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nAlpha;
6946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_PLANEBLENDTYPE;
6956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
6966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
697348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
6986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * Define interlace type
6996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
7006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
701348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nSize                 : Size of the structure in bytes
702348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nVersion              : OMX specification version information
7036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nPortIndex            : Port that this structure applies to
704348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  bEnable               : Enable control variable for this functionality
7056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *                          (see below)
706348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *  nInterleavePortIndex  : Index of input or output port associated with
707348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi *                          the interleaved plane.
7086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  pPlanarPortIndexes[4] : Index of input or output planar ports.
7096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
7106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_PARAM_INTERLEAVETYPE {
7116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
7126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
7136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
7146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bEnable;
7156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nInterleavePortIndex;
7166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_PARAM_INTERLEAVETYPE;
7176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
719348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
720348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Defines the picture effect used for an input picture
7216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
7226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_TRANSITIONEFFECTTYPE {
7236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_EffectNone,
7246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_EffectFadeFromBlack,
7256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_EffectFadeToBlack,
7266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_EffectUnspecifiedThroughConstantColor,
7276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_EffectDissolve,
7286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_EffectWipe,
7296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_EffectUnspecifiedMixOfTwoScenes,
730348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_EffectKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
7316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_EffectVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
7326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_EffectMax = 0x7FFFFFFF
7336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_TRANSITIONEFFECTTYPE;
7346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
736348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
737348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Structure used to configure current transition effect
7386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
7396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
7406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * nSize      : Size of the structure in bytes
741348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * nVersion   : OMX specification version information
7426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * nPortIndex : Port that this structure applies to
7436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * eEffect    : Effect to enable
7446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
7456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_TRANSITIONEFFECTTYPE {
7466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
7476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
7486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
7496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_TRANSITIONEFFECTTYPE eEffect;
7506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_TRANSITIONEFFECTTYPE;
7516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
753348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
754348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Defines possible data unit types for encoded video data. The data unit
7556ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * types are used both for encoded video input for playback as well as
756348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * encoded video output from recording.
7576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
7586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_DATAUNITTYPE {
7596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DataUnitCodedPicture,
7606ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DataUnitVideoSegment,
7616ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DataUnitSeveralSegments,
7626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DataUnitArbitraryStreamSection,
763348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_DataUnitKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
7646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DataUnitVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
7656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DataUnitMax = 0x7FFFFFFF
7666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_DATAUNITTYPE;
7676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
769348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
770348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Defines possible encapsulation types for coded video data unit. The
771348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * encapsulation information is used both for encoded video input for
772348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * playback as well as encoded video output from recording.
7736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
7746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_DATAUNITENCAPSULATIONTYPE {
7756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DataEncapsulationElementaryStream,
7766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DataEncapsulationGenericPayload,
7776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DataEncapsulationRtpPayload,
778348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_DataEncapsulationKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
7796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DataEncapsulationVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
7806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DataEncapsulationMax = 0x7FFFFFFF
7816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_DATAUNITENCAPSULATIONTYPE;
7826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
784348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
785348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Structure used to configure the type of being decoded/encoded
7866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
7876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_PARAM_DATAUNITTYPE {
7886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;            /**< Size of the structure in bytes */
789348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
7906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;       /**< Port that this structure applies to */
7916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DATAUNITTYPE eUnitType;
7926ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DATAUNITENCAPSULATIONTYPE eEncapsulationType;
7936ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_PARAM_DATAUNITTYPE;
7946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
7966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/**
797348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Defines dither types
7986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
7996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_DITHERTYPE {
8006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DitherNone,
8016ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DitherOrdered,
8026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DitherErrorDiffusion,
8036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DitherOther,
804348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_DitherKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
8056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DitherVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
8066ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DitherMax = 0x7FFFFFFF
8076ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_DITHERTYPE;
8086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
810348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
811348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Structure used to configure current type of dithering
8126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
8136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_DITHERTYPE {
8146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;            /**< Size of the structure in bytes */
815348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
8166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;       /**< Port that this structure applies to */
8176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_DITHERTYPE eDither;   /**< Type of dithering to use */
8186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_DITHERTYPE;
8196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_CAPTUREMODETYPE {
8216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
8226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
8236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;     /**< Port that this structure applies to */
824348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_BOOL bContinuous;   /**< If true then ignore frame rate and emit capture
8256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                             *   data as fast as possible (otherwise obey port's frame rate). */
826348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_BOOL bFrameLimited; /**< If true then terminate capture after the port emits the
827348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi                             *   specified number of frames (otherwise the port does not
828348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi                             *   terminate the capture until instructed to do so by the client).
829348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi                             *   Even if set, the client may manually terminate the capture prior
8306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                             *   to reaching the limit. */
8316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nFrameLimit;      /**< Limit on number of frames emitted during a capture (only
8326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber                               *   valid if bFrameLimited is set). */
8336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_CAPTUREMODETYPE;
8346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
8356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_METERINGTYPE {
836348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi
8376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_MeteringModeAverage,     /**< Center-weighted average metering. */
8386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_MeteringModeSpot,  	      /**< Spot (partial) metering. */
8396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_MeteringModeMatrix,      /**< Matrix or evaluative metering. */
840348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi
841348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_MeteringKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
8426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_MeteringVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
8436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_EVModeMax = 0x7fffffff
8446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_METERINGTYPE;
845348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi
8466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_EXPOSUREVALUETYPE {
8476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
8486ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
8496ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
8506ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_METERINGTYPE eMetering;
8516ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_S32 xEVCompensation;      /**< Fixed point value stored as Q16 */
8526ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nApertureFNumber;     /**< e.g. nApertureFNumber = 2 implies "f/2" - Q16 format */
8536ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bAutoAperture;		/**< Whether aperture number is defined automatically */
854348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_U32 nShutterSpeedMsec;    /**< Shutterspeed in milliseconds */
855348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_BOOL bAutoShutterSpeed;	/**< Whether shutter speed is defined automatically */
8566ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSensitivity;         /**< e.g. nSensitivity = 100 implies "ISO 100" */
8576ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bAutoSensitivity;	/**< Whether sensitivity is defined automatically */
8586ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_EXPOSUREVALUETYPE;
8596ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
860348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
861348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Focus region configuration
8626ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
8636ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
8646ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nSize           : Size of the structure in bytes
8656ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nVersion        : OMX specification version information
8666ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nPortIndex      : Port that this structure applies to
8676ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bCenter         : Use center region as focus region of interest
8686ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bLeft           : Use left region as focus region of interest
8696ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bRight          : Use right region as focus region of interest
8706ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bTop            : Use top region as focus region of interest
8716ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bBottom         : Use bottom region as focus region of interest
8726ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bTopLeft        : Use top left region as focus region of interest
8736ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bTopRight       : Use top right region as focus region of interest
8746ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bBottomLeft     : Use bottom left region as focus region of interest
8756ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bBottomRight    : Use bottom right region as focus region of interest
8766ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
8776ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_CONFIG_FOCUSREGIONTYPE {
8786ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
8796ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
8806ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
8816ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bCenter;
8826ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bLeft;
8836ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bRight;
8846ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bTop;
8856ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bBottom;
8866ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bTopLeft;
8876ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bTopRight;
8886ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bBottomLeft;
8896ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bBottomRight;
8906ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_CONFIG_FOCUSREGIONTYPE;
8916ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
892348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
893348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Focus Status type
8946ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
8956ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef enum OMX_FOCUSSTATUSTYPE {
8966ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_FocusStatusOff = 0,
8976ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_FocusStatusRequest,
8986ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_FocusStatusReached,
8996ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_FocusStatusUnableToReach,
9006ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_FocusStatusLost,
901348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi    OMX_FocusStatusKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */
9026ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_FocusStatusVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */
9036ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_FocusStatusMax = 0x7FFFFFFF
9046ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_FOCUSSTATUSTYPE;
9056ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
906348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi/**
907348c45bd963389dfd3038c57bd7728608cb31fa4Pannag Sanketi * Focus status configuration
9086ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *
9096ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber * STRUCT MEMBERS:
9106ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nSize               : Size of the structure in bytes
9116ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nVersion            : OMX specification version information
9126ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  nPortIndex          : Port that this structure applies to
9136ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  eFocusStatus        : Specifies the focus status
9146ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bCenterStatus       : Use center region as focus region of interest
9156ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bLeftStatus         : Use left region as focus region of interest
9166ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bRightStatus        : Use right region as focus region of interest
9176ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bTopStatus          : Use top region as focus region of interest
9186ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bBottomStatus       : Use bottom region as focus region of interest
9196ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bTopLeftStatus      : Use top left region as focus region of interest
9206ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bTopRightStatus     : Use top right region as focus region of interest
9216ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bBottomLeftStatus   : Use bottom left region as focus region of interest
9226ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber *  bBottomRightStatus  : Use bottom right region as focus region of interest
9236ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber */
9246ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Hubertypedef struct OMX_PARAM_FOCUSSTATUSTYPE {
9256ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nSize;
9266ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_VERSIONTYPE nVersion;
9276ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_U32 nPortIndex;
9286ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_FOCUSSTATUSTYPE eFocusStatus;
9296ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bCenterStatus;
9306ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bLeftStatus;
9316ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bRightStatus;
9326ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bTopStatus;
9336ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bBottomStatus;
9346ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bTopLeftStatus;
9356ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bTopRightStatus;
9366ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bBottomLeftStatus;
9376ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber    OMX_BOOL bBottomRightStatus;
9386ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber} OMX_PARAM_FOCUSSTATUSTYPE;
9396ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
9406ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/** @} */
9416ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
9426ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#ifdef __cplusplus
9436ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber}
9446ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#endif /* __cplusplus */
9456ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber
9466ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber#endif
9476ac35f059726cf60a364c1efd783a99c901f2d9dAndreas Huber/* File EOF */
948