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 * @file OMX_Image.h - OpenMax IL version 1.1.2 25b3a6c5adSopenharmony_ci * The structures needed by Image components to exchange parameters and 26b3a6c5adSopenharmony_ci * configuration data with the components. 27b3a6c5adSopenharmony_ci */ 28b3a6c5adSopenharmony_ci#ifndef OMX_Image_h 29b3a6c5adSopenharmony_ci#define OMX_Image_h 30b3a6c5adSopenharmony_ci 31b3a6c5adSopenharmony_ci#ifdef __cplusplus 32b3a6c5adSopenharmony_ciextern "C" { 33b3a6c5adSopenharmony_ci#endif /* __cplusplus */ 34b3a6c5adSopenharmony_ci 35b3a6c5adSopenharmony_ci 36b3a6c5adSopenharmony_ci/** 37b3a6c5adSopenharmony_ci * Each OMX header must include all required header files to allow the 38b3a6c5adSopenharmony_ci * header to compile without errors. The includes below are required 39b3a6c5adSopenharmony_ci * for this header file to compile successfully 40b3a6c5adSopenharmony_ci */ 41b3a6c5adSopenharmony_ci 42b3a6c5adSopenharmony_ci#include <OMX_IVCommon.h> 43b3a6c5adSopenharmony_ci 44b3a6c5adSopenharmony_ci/** @defgroup imaging OpenMAX IL Imaging Domain 45b3a6c5adSopenharmony_ci * @ingroup iv 46b3a6c5adSopenharmony_ci * Structures for OpenMAX IL Imaging domain 47b3a6c5adSopenharmony_ci * @{ 48b3a6c5adSopenharmony_ci */ 49b3a6c5adSopenharmony_ci 50b3a6c5adSopenharmony_ci/** 51b3a6c5adSopenharmony_ci * Enumeration used to define the possible image compression coding. 52b3a6c5adSopenharmony_ci */ 53b3a6c5adSopenharmony_citypedef enum OMX_IMAGE_CODINGTYPE { 54b3a6c5adSopenharmony_ci OMX_IMAGE_CodingUnused, /**< Value when format is N/A */ 55b3a6c5adSopenharmony_ci OMX_IMAGE_CodingAutoDetect, /**< Auto detection of image format */ 56b3a6c5adSopenharmony_ci OMX_IMAGE_CodingJPEG, /**< JPEG/JFIF image format */ 57b3a6c5adSopenharmony_ci OMX_IMAGE_CodingJPEG2K, /**< JPEG 2000 image format */ 58b3a6c5adSopenharmony_ci OMX_IMAGE_CodingEXIF, /**< EXIF image format */ 59b3a6c5adSopenharmony_ci OMX_IMAGE_CodingTIFF, /**< TIFF image format */ 60b3a6c5adSopenharmony_ci OMX_IMAGE_CodingGIF, /**< Graphics image format */ 61b3a6c5adSopenharmony_ci OMX_IMAGE_CodingPNG, /**< PNG image format */ 62b3a6c5adSopenharmony_ci OMX_IMAGE_CodingLZW, /**< LZW image format */ 63b3a6c5adSopenharmony_ci OMX_IMAGE_CodingBMP, /**< Windows Bitmap format */ 64b3a6c5adSopenharmony_ci OMX_IMAGE_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 65b3a6c5adSopenharmony_ci OMX_IMAGE_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 66b3a6c5adSopenharmony_ci OMX_IMAGE_CodingMax = 0x7FFFFFFF 67b3a6c5adSopenharmony_ci} OMX_IMAGE_CODINGTYPE; 68b3a6c5adSopenharmony_ci 69b3a6c5adSopenharmony_ci 70b3a6c5adSopenharmony_ci/** 71b3a6c5adSopenharmony_ci * Data structure used to define an image path. The number of image paths 72b3a6c5adSopenharmony_ci * for input and output will vary by type of the image component. 73b3a6c5adSopenharmony_ci * 74b3a6c5adSopenharmony_ci * Input (aka Source) : Zero Inputs, one Output, 75b3a6c5adSopenharmony_ci * Splitter : One Input, 2 or more Outputs, 76b3a6c5adSopenharmony_ci * Processing Element : One Input, one output, 77b3a6c5adSopenharmony_ci * Mixer : 2 or more inputs, one output, 78b3a6c5adSopenharmony_ci * Output (aka Sink) : One Input, zero outputs. 79b3a6c5adSopenharmony_ci * 80b3a6c5adSopenharmony_ci * The PortDefinition structure is used to define all of the parameters 81b3a6c5adSopenharmony_ci * necessary for the compliant component to setup an input or an output 82b3a6c5adSopenharmony_ci * image path. If additional vendor specific data is required, it should 83b3a6c5adSopenharmony_ci * be transmitted to the component using the CustomCommand function. 84b3a6c5adSopenharmony_ci * Compliant components will prepopulate this structure with optimal 85b3a6c5adSopenharmony_ci * values during the OMX_GetParameter() command. 86b3a6c5adSopenharmony_ci * 87b3a6c5adSopenharmony_ci * STRUCT MEMBERS: 88b3a6c5adSopenharmony_ci * cMIMEType : MIME type of data for the port 89b3a6c5adSopenharmony_ci * pNativeRender : Platform specific reference for a display if a 90b3a6c5adSopenharmony_ci * sync, otherwise this field is 0 91b3a6c5adSopenharmony_ci * nFrameWidth : Width of frame to be used on port if 92b3a6c5adSopenharmony_ci * uncompressed format is used. Use 0 for 93b3a6c5adSopenharmony_ci * unknown, don't care or variable 94b3a6c5adSopenharmony_ci * nFrameHeight : Height of frame to be used on port if 95b3a6c5adSopenharmony_ci * uncompressed format is used. Use 0 for 96b3a6c5adSopenharmony_ci * unknown, don't care or variable 97b3a6c5adSopenharmony_ci * nStride : Number of bytes per span of an image (i.e. 98b3a6c5adSopenharmony_ci * indicates the number of bytes to get from 99b3a6c5adSopenharmony_ci * span N to span N+1, where negative stride 100b3a6c5adSopenharmony_ci * indicates the image is bottom up 101b3a6c5adSopenharmony_ci * nSliceHeight : Height used when encoding in slices 102b3a6c5adSopenharmony_ci * bFlagErrorConcealment : Turns on error concealment if it is supported by 103b3a6c5adSopenharmony_ci * the OMX component 104b3a6c5adSopenharmony_ci * eCompressionFormat : Compression format used in this instance of 105b3a6c5adSopenharmony_ci * the component. When OMX_IMAGE_CodingUnused is 106b3a6c5adSopenharmony_ci * specified, eColorFormat is valid 107b3a6c5adSopenharmony_ci * eColorFormat : Decompressed format used by this component 108b3a6c5adSopenharmony_ci * pNativeWindow : Platform specific reference for a window object if a 109b3a6c5adSopenharmony_ci * display sink , otherwise this field is 0x0. 110b3a6c5adSopenharmony_ci */ 111b3a6c5adSopenharmony_citypedef struct OMX_IMAGE_PORTDEFINITIONTYPE { 112b3a6c5adSopenharmony_ci OMX_STRING cMIMEType; 113b3a6c5adSopenharmony_ci OMX_NATIVE_DEVICETYPE pNativeRender; 114b3a6c5adSopenharmony_ci OMX_U32 nFrameWidth; 115b3a6c5adSopenharmony_ci OMX_U32 nFrameHeight; 116b3a6c5adSopenharmony_ci OMX_S32 nStride; 117b3a6c5adSopenharmony_ci OMX_U32 nSliceHeight; 118b3a6c5adSopenharmony_ci OMX_BOOL bFlagErrorConcealment; 119b3a6c5adSopenharmony_ci OMX_IMAGE_CODINGTYPE eCompressionFormat; 120b3a6c5adSopenharmony_ci OMX_COLOR_FORMATTYPE eColorFormat; 121b3a6c5adSopenharmony_ci OMX_NATIVE_WINDOWTYPE pNativeWindow; 122b3a6c5adSopenharmony_ci} OMX_IMAGE_PORTDEFINITIONTYPE; 123b3a6c5adSopenharmony_ci 124b3a6c5adSopenharmony_ci 125b3a6c5adSopenharmony_ci/** 126b3a6c5adSopenharmony_ci * Port format parameter. This structure is used to enumerate the various 127b3a6c5adSopenharmony_ci * data input/output format supported by the port. 128b3a6c5adSopenharmony_ci * 129b3a6c5adSopenharmony_ci * STRUCT MEMBERS: 130b3a6c5adSopenharmony_ci * nSize : Size of the structure in bytes 131b3a6c5adSopenharmony_ci * nVersion : OMX specification version information 132b3a6c5adSopenharmony_ci * nPortIndex : Indicates which port to set 133b3a6c5adSopenharmony_ci * nIndex : Indicates the enumeration index for the format from 134b3a6c5adSopenharmony_ci * 0x0 to N-1 135b3a6c5adSopenharmony_ci * eCompressionFormat : Compression format used in this instance of the 136b3a6c5adSopenharmony_ci * component. When OMX_IMAGE_CodingUnused is specified, 137b3a6c5adSopenharmony_ci * eColorFormat is valid 138b3a6c5adSopenharmony_ci * eColorFormat : Decompressed format used by this component 139b3a6c5adSopenharmony_ci */ 140b3a6c5adSopenharmony_citypedef struct OMX_IMAGE_PARAM_PORTFORMATTYPE { 141b3a6c5adSopenharmony_ci OMX_U32 nSize; 142b3a6c5adSopenharmony_ci OMX_VERSIONTYPE nVersion; 143b3a6c5adSopenharmony_ci OMX_U32 nPortIndex; 144b3a6c5adSopenharmony_ci OMX_U32 nIndex; 145b3a6c5adSopenharmony_ci OMX_IMAGE_CODINGTYPE eCompressionFormat; 146b3a6c5adSopenharmony_ci OMX_COLOR_FORMATTYPE eColorFormat; 147b3a6c5adSopenharmony_ci} OMX_IMAGE_PARAM_PORTFORMATTYPE; 148b3a6c5adSopenharmony_ci 149b3a6c5adSopenharmony_ci 150b3a6c5adSopenharmony_ci/** 151b3a6c5adSopenharmony_ci * Flash control type 152b3a6c5adSopenharmony_ci * 153b3a6c5adSopenharmony_ci * ENUMS 154b3a6c5adSopenharmony_ci * Torch : Flash forced constantly on 155b3a6c5adSopenharmony_ci */ 156b3a6c5adSopenharmony_citypedef enum OMX_IMAGE_FLASHCONTROLTYPE { 157b3a6c5adSopenharmony_ci OMX_IMAGE_FlashControlOn = 0, 158b3a6c5adSopenharmony_ci OMX_IMAGE_FlashControlOff, 159b3a6c5adSopenharmony_ci OMX_IMAGE_FlashControlAuto, 160b3a6c5adSopenharmony_ci OMX_IMAGE_FlashControlRedEyeReduction, 161b3a6c5adSopenharmony_ci OMX_IMAGE_FlashControlFillin, 162b3a6c5adSopenharmony_ci OMX_IMAGE_FlashControlTorch, 163b3a6c5adSopenharmony_ci OMX_IMAGE_FlashControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 164b3a6c5adSopenharmony_ci OMX_IMAGE_FlashControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 165b3a6c5adSopenharmony_ci OMX_IMAGE_FlashControlMax = 0x7FFFFFFF 166b3a6c5adSopenharmony_ci} OMX_IMAGE_FLASHCONTROLTYPE; 167b3a6c5adSopenharmony_ci 168b3a6c5adSopenharmony_ci 169b3a6c5adSopenharmony_ci/** 170b3a6c5adSopenharmony_ci * Flash control configuration 171b3a6c5adSopenharmony_ci * 172b3a6c5adSopenharmony_ci * STRUCT MEMBERS: 173b3a6c5adSopenharmony_ci * nSize : Size of the structure in bytes 174b3a6c5adSopenharmony_ci * nVersion : OMX specification version information 175b3a6c5adSopenharmony_ci * nPortIndex : Port that this structure applies to 176b3a6c5adSopenharmony_ci * eFlashControl : Flash control type 177b3a6c5adSopenharmony_ci */ 178b3a6c5adSopenharmony_citypedef struct OMX_IMAGE_PARAM_FLASHCONTROLTYPE { 179b3a6c5adSopenharmony_ci OMX_U32 nSize; 180b3a6c5adSopenharmony_ci OMX_VERSIONTYPE nVersion; 181b3a6c5adSopenharmony_ci OMX_U32 nPortIndex; 182b3a6c5adSopenharmony_ci OMX_IMAGE_FLASHCONTROLTYPE eFlashControl; 183b3a6c5adSopenharmony_ci} OMX_IMAGE_PARAM_FLASHCONTROLTYPE; 184b3a6c5adSopenharmony_ci 185b3a6c5adSopenharmony_ci 186b3a6c5adSopenharmony_ci/** 187b3a6c5adSopenharmony_ci * Focus control type 188b3a6c5adSopenharmony_ci */ 189b3a6c5adSopenharmony_citypedef enum OMX_IMAGE_FOCUSCONTROLTYPE { 190b3a6c5adSopenharmony_ci OMX_IMAGE_FocusControlOn = 0, 191b3a6c5adSopenharmony_ci OMX_IMAGE_FocusControlOff, 192b3a6c5adSopenharmony_ci OMX_IMAGE_FocusControlAuto, 193b3a6c5adSopenharmony_ci OMX_IMAGE_FocusControlAutoLock, 194b3a6c5adSopenharmony_ci OMX_IMAGE_FocusControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 195b3a6c5adSopenharmony_ci OMX_IMAGE_FocusControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 196b3a6c5adSopenharmony_ci OMX_IMAGE_FocusControlMax = 0x7FFFFFFF 197b3a6c5adSopenharmony_ci} OMX_IMAGE_FOCUSCONTROLTYPE; 198b3a6c5adSopenharmony_ci 199b3a6c5adSopenharmony_ci 200b3a6c5adSopenharmony_ci/** 201b3a6c5adSopenharmony_ci * Focus control configuration 202b3a6c5adSopenharmony_ci * 203b3a6c5adSopenharmony_ci * STRUCT MEMBERS: 204b3a6c5adSopenharmony_ci * nSize : Size of the structure in bytes 205b3a6c5adSopenharmony_ci * nVersion : OMX specification version information 206b3a6c5adSopenharmony_ci * nPortIndex : Port that this structure applies to 207b3a6c5adSopenharmony_ci * eFocusControl : Focus control 208b3a6c5adSopenharmony_ci * nFocusSteps : Focus can take on values from 0 mm to infinity. 209b3a6c5adSopenharmony_ci * Interest is only in number of steps over this range. 210b3a6c5adSopenharmony_ci * nFocusStepIndex : Current focus step index 211b3a6c5adSopenharmony_ci */ 212b3a6c5adSopenharmony_citypedef struct OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE { 213b3a6c5adSopenharmony_ci OMX_U32 nSize; 214b3a6c5adSopenharmony_ci OMX_VERSIONTYPE nVersion; 215b3a6c5adSopenharmony_ci OMX_U32 nPortIndex; 216b3a6c5adSopenharmony_ci OMX_IMAGE_FOCUSCONTROLTYPE eFocusControl; 217b3a6c5adSopenharmony_ci OMX_U32 nFocusSteps; 218b3a6c5adSopenharmony_ci OMX_U32 nFocusStepIndex; 219b3a6c5adSopenharmony_ci} OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE; 220b3a6c5adSopenharmony_ci 221b3a6c5adSopenharmony_ci 222b3a6c5adSopenharmony_ci/** 223b3a6c5adSopenharmony_ci * Q Factor for JPEG compression, which controls the tradeoff between image 224b3a6c5adSopenharmony_ci * quality and size. Q Factor provides a more simple means of controlling 225b3a6c5adSopenharmony_ci * JPEG compression quality, without directly programming Quantization 226b3a6c5adSopenharmony_ci * tables for chroma and luma 227b3a6c5adSopenharmony_ci * 228b3a6c5adSopenharmony_ci * STRUCT MEMBERS: 229b3a6c5adSopenharmony_ci * nSize : Size of the structure in bytes 230b3a6c5adSopenharmony_ci * nVersion : OMX specification version information 231b3a6c5adSopenharmony_ci * nPortIndex : Port that this structure applies to 232b3a6c5adSopenharmony_ci * nQFactor : JPEG Q factor value in the range of 1-100. A factor of 1 233b3a6c5adSopenharmony_ci * produces the smallest, worst quality images, and a factor 234b3a6c5adSopenharmony_ci * of 100 produces the largest, best quality images. A 235b3a6c5adSopenharmony_ci * typical default is 75 for small good quality images 236b3a6c5adSopenharmony_ci */ 237b3a6c5adSopenharmony_citypedef struct OMX_IMAGE_PARAM_QFACTORTYPE { 238b3a6c5adSopenharmony_ci OMX_U32 nSize; 239b3a6c5adSopenharmony_ci OMX_VERSIONTYPE nVersion; 240b3a6c5adSopenharmony_ci OMX_U32 nPortIndex; 241b3a6c5adSopenharmony_ci OMX_U32 nQFactor; 242b3a6c5adSopenharmony_ci} OMX_IMAGE_PARAM_QFACTORTYPE; 243b3a6c5adSopenharmony_ci 244b3a6c5adSopenharmony_ci/** 245b3a6c5adSopenharmony_ci * Quantization table type 246b3a6c5adSopenharmony_ci */ 247b3a6c5adSopenharmony_ci 248b3a6c5adSopenharmony_citypedef enum OMX_IMAGE_QUANTIZATIONTABLETYPE { 249b3a6c5adSopenharmony_ci OMX_IMAGE_QuantizationTableLuma = 0, 250b3a6c5adSopenharmony_ci OMX_IMAGE_QuantizationTableChroma, 251b3a6c5adSopenharmony_ci OMX_IMAGE_QuantizationTableChromaCb, 252b3a6c5adSopenharmony_ci OMX_IMAGE_QuantizationTableChromaCr, 253b3a6c5adSopenharmony_ci OMX_IMAGE_QuantizationTableKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 254b3a6c5adSopenharmony_ci OMX_IMAGE_QuantizationTableVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 255b3a6c5adSopenharmony_ci OMX_IMAGE_QuantizationTableMax = 0x7FFFFFFF 256b3a6c5adSopenharmony_ci} OMX_IMAGE_QUANTIZATIONTABLETYPE; 257b3a6c5adSopenharmony_ci 258b3a6c5adSopenharmony_ci/** 259b3a6c5adSopenharmony_ci * JPEG quantization tables are used to determine DCT compression for 260b3a6c5adSopenharmony_ci * YUV data, as an alternative to specifying Q factor, providing exact 261b3a6c5adSopenharmony_ci * control of compression 262b3a6c5adSopenharmony_ci * 263b3a6c5adSopenharmony_ci * STRUCT MEMBERS: 264b3a6c5adSopenharmony_ci * nSize : Size of the structure in bytes 265b3a6c5adSopenharmony_ci * nVersion : OMX specification version information 266b3a6c5adSopenharmony_ci * nPortIndex : Port that this structure applies to 267b3a6c5adSopenharmony_ci * eQuantizationTable : Quantization table type 268b3a6c5adSopenharmony_ci * nQuantizationMatrix[64] : JPEG quantization table of coefficients stored 269b3a6c5adSopenharmony_ci * in increasing columns then by rows of data (i.e. 270b3a6c5adSopenharmony_ci * row 1, ... row 8). Quantization values are in 271b3a6c5adSopenharmony_ci * the range 0-255 and stored in linear order 272b3a6c5adSopenharmony_ci * (i.e. the component will zig-zag the 273b3a6c5adSopenharmony_ci * quantization table data if required internally) 274b3a6c5adSopenharmony_ci */ 275b3a6c5adSopenharmony_citypedef struct OMX_IMAGE_PARAM_QUANTIZATIONTABLETYPE { 276b3a6c5adSopenharmony_ci OMX_U32 nSize; 277b3a6c5adSopenharmony_ci OMX_VERSIONTYPE nVersion; 278b3a6c5adSopenharmony_ci OMX_U32 nPortIndex; 279b3a6c5adSopenharmony_ci OMX_IMAGE_QUANTIZATIONTABLETYPE eQuantizationTable; 280b3a6c5adSopenharmony_ci OMX_U8 nQuantizationMatrix[64]; 281b3a6c5adSopenharmony_ci} OMX_IMAGE_PARAM_QUANTIZATIONTABLETYPE; 282b3a6c5adSopenharmony_ci 283b3a6c5adSopenharmony_ci 284b3a6c5adSopenharmony_ci/** 285b3a6c5adSopenharmony_ci * Huffman table type, the same Huffman table is applied for chroma and 286b3a6c5adSopenharmony_ci * luma component 287b3a6c5adSopenharmony_ci */ 288b3a6c5adSopenharmony_citypedef enum OMX_IMAGE_HUFFMANTABLETYPE { 289b3a6c5adSopenharmony_ci OMX_IMAGE_HuffmanTableAC = 0, 290b3a6c5adSopenharmony_ci OMX_IMAGE_HuffmanTableDC, 291b3a6c5adSopenharmony_ci OMX_IMAGE_HuffmanTableACLuma, 292b3a6c5adSopenharmony_ci OMX_IMAGE_HuffmanTableACChroma, 293b3a6c5adSopenharmony_ci OMX_IMAGE_HuffmanTableDCLuma, 294b3a6c5adSopenharmony_ci OMX_IMAGE_HuffmanTableDCChroma, 295b3a6c5adSopenharmony_ci OMX_IMAGE_HuffmanTableKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 296b3a6c5adSopenharmony_ci OMX_IMAGE_HuffmanTableVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 297b3a6c5adSopenharmony_ci OMX_IMAGE_HuffmanTableMax = 0x7FFFFFFF 298b3a6c5adSopenharmony_ci} OMX_IMAGE_HUFFMANTABLETYPE; 299b3a6c5adSopenharmony_ci 300b3a6c5adSopenharmony_ci/** 301b3a6c5adSopenharmony_ci * JPEG Huffman table 302b3a6c5adSopenharmony_ci * 303b3a6c5adSopenharmony_ci * STRUCT MEMBERS: 304b3a6c5adSopenharmony_ci * nSize : Size of the structure in bytes 305b3a6c5adSopenharmony_ci * nVersion : OMX specification version information 306b3a6c5adSopenharmony_ci * nPortIndex : Port that this structure applies to 307b3a6c5adSopenharmony_ci * eHuffmanTable : Huffman table type 308b3a6c5adSopenharmony_ci * nNumberOfHuffmanCodeOfLength[16] : 0-16, number of Huffman codes of each 309b3a6c5adSopenharmony_ci * possible length 310b3a6c5adSopenharmony_ci * nHuffmanTable[256] : 0-255, the size used for AC and DC 311b3a6c5adSopenharmony_ci * HuffmanTable are 16 and 162 312b3a6c5adSopenharmony_ci */ 313b3a6c5adSopenharmony_citypedef struct OMX_IMAGE_PARAM_HUFFMANTTABLETYPE { 314b3a6c5adSopenharmony_ci OMX_U32 nSize; 315b3a6c5adSopenharmony_ci OMX_VERSIONTYPE nVersion; 316b3a6c5adSopenharmony_ci OMX_U32 nPortIndex; 317b3a6c5adSopenharmony_ci OMX_IMAGE_HUFFMANTABLETYPE eHuffmanTable; 318b3a6c5adSopenharmony_ci OMX_U8 nNumberOfHuffmanCodeOfLength[16]; 319b3a6c5adSopenharmony_ci OMX_U8 nHuffmanTable[256]; 320b3a6c5adSopenharmony_ci}OMX_IMAGE_PARAM_HUFFMANTTABLETYPE; 321b3a6c5adSopenharmony_ci 322b3a6c5adSopenharmony_ci/** @} */ 323b3a6c5adSopenharmony_ci#ifdef __cplusplus 324b3a6c5adSopenharmony_ci} 325b3a6c5adSopenharmony_ci#endif /* __cplusplus */ 326b3a6c5adSopenharmony_ci 327b3a6c5adSopenharmony_ci#endif 328b3a6c5adSopenharmony_ci/* File EOF */ 329