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