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