1826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** 26eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Copyright (c) 2008 The Khronos Group Inc. 36eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 4826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Permission is hereby granted, free of charge, to any person obtaining 5826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * a copy of this software and associated documentation files (the 6826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * "Software"), to deal in the Software without restriction, including 7826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * without limitation the rights to use, copy, modify, merge, publish, 8826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * distribute, sublicense, and/or sell copies of the Software, and to 9826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * permit persons to whom the Software is furnished to do so, subject 106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to the following conditions: 11826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * The above copyright notice and this permission notice shall be included 126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * in all copies or substantial portions of the Software. 136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 14826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 18826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 19826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 22826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 24826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * @file OMX_Image.h - OpenMax IL version 1.1.2 256eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * The structures needed by Image components to exchange parameters and 26826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * configuration data with the components. 27826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 28826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifndef OMX_Image_h 29826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_Image_h 30826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 31826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifdef __cplusplus 32826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevextern "C" { 33826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif /* __cplusplus */ 34826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 35826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 36826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** 376eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Each OMX header must include all required header files to allow the 386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * header to compile without errors. The includes below are required 396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * for this header file to compile successfully 40826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 41826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 42826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#include <OMX_IVCommon.h> 43826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 44826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @defgroup imaging OpenMAX IL Imaging Domain 45826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * @ingroup iv 46826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Structures for OpenMAX IL Imaging domain 47826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * @{ 48826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 49826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 506eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 516eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Enumeration used to define the possible image compression coding. 52826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 53826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_IMAGE_CODINGTYPE { 54826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_CodingUnused, /**< Value when format is N/A */ 55826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_CodingAutoDetect, /**< Auto detection of image format */ 56826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_CodingJPEG, /**< JPEG/JFIF image format */ 57826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_CodingJPEG2K, /**< JPEG 2000 image format */ 58826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_CodingEXIF, /**< EXIF image format */ 59826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_CodingTIFF, /**< TIFF image format */ 60826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_CodingGIF, /**< Graphics image format */ 61826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_CodingPNG, /**< PNG image format */ 62826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_CodingLZW, /**< LZW image format */ 63826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_CodingBMP, /**< Windows Bitmap format */ 646eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_IMAGE_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 65826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 66826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_CodingMax = 0x7FFFFFFF 67826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_IMAGE_CODINGTYPE; 68826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 69826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 70826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** 716eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Data structure used to define an image path. The number of image paths 726eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * for input and output will vary by type of the image component. 736eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 74826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Input (aka Source) : Zero Inputs, one Output, 75826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Splitter : One Input, 2 or more Outputs, 76826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Processing Element : One Input, one output, 77826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Mixer : 2 or more inputs, one output, 78826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Output (aka Sink) : One Input, zero outputs. 796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * The PortDefinition structure is used to define all of the parameters 816eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * necessary for the compliant component to setup an input or an output 826eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * image path. If additional vendor specific data is required, it should 836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * be transmitted to the component using the CustomCommand function. 846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Compliant components will prepopulate this structure with optimal 85826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * values during the OMX_GetParameter() command. 86826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 87826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 88826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * cMIMEType : MIME type of data for the port 896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * pNativeRender : Platform specific reference for a display if a 90826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * sync, otherwise this field is 0 916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nFrameWidth : Width of frame to be used on port if 926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * uncompressed format is used. Use 0 for 93826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * unknown, don't care or variable 946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nFrameHeight : Height of frame to be used on port if 956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * uncompressed format is used. Use 0 for 96826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * unknown, don't care or variable 976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nStride : Number of bytes per span of an image (i.e. 98826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * indicates the number of bytes to get from 996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * span N to span N+1, where negative stride 100826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * indicates the image is bottom up 101826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSliceHeight : Height used when encoding in slices 1026eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bFlagErrorConcealment : Turns on error concealment if it is supported by 103826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * the OMX component 1046eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * eCompressionFormat : Compression format used in this instance of 1056eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * the component. When OMX_IMAGE_CodingUnused is 106826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * specified, eColorFormat is valid 107826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eColorFormat : Decompressed format used by this component 1086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * pNativeWindow : Platform specific reference for a window object if a 1096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * display sink , otherwise this field is 0x0. 110826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 111826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_IMAGE_PORTDEFINITIONTYPE { 112826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_STRING cMIMEType; 113826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_NATIVE_DEVICETYPE pNativeRender; 1146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nFrameWidth; 115826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nFrameHeight; 1166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_S32 nStride; 117826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSliceHeight; 118826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bFlagErrorConcealment; 119826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_CODINGTYPE eCompressionFormat; 120826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_COLOR_FORMATTYPE eColorFormat; 121826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_NATIVE_WINDOWTYPE pNativeWindow; 122826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_IMAGE_PORTDEFINITIONTYPE; 123826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 124826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 1256eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 1266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Port format parameter. This structure is used to enumerate the various 127826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * data input/output format supported by the port. 1286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 129826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 130826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 131826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX specification version information 132826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Indicates which port to set 1336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nIndex : Indicates the enumeration index for the format from 134826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 0x0 to N-1 1356eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * eCompressionFormat : Compression format used in this instance of the 1366eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * component. When OMX_IMAGE_CodingUnused is specified, 137826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eColorFormat is valid 138826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eColorFormat : Decompressed format used by this component 139826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 140826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_IMAGE_PARAM_PORTFORMATTYPE { 141826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 142826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 143826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 144826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nIndex; 145826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_CODINGTYPE eCompressionFormat; 146826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_COLOR_FORMATTYPE eColorFormat; 147826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_IMAGE_PARAM_PORTFORMATTYPE; 148826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 149826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 1506eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 1516eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Flash control type 152826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 153826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * ENUMS 154826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Torch : Flash forced constantly on 155826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 156826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_IMAGE_FLASHCONTROLTYPE { 157826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_FlashControlOn = 0, 158826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_FlashControlOff, 159826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_FlashControlAuto, 160826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_FlashControlRedEyeReduction, 161826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_FlashControlFillin, 162826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_FlashControlTorch, 1636eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_IMAGE_FlashControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 164826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_FlashControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 165826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_FlashControlMax = 0x7FFFFFFF 166826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_IMAGE_FLASHCONTROLTYPE; 167826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 168826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 1696eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 1706eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Flash control configuration 171826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 172826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 173826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 174826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX specification version information 175826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 176826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eFlashControl : Flash control type 177826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 178826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_IMAGE_PARAM_FLASHCONTROLTYPE { 179826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 180826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 181826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 182826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_FLASHCONTROLTYPE eFlashControl; 183826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_IMAGE_PARAM_FLASHCONTROLTYPE; 184826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 185826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 1866eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 1876eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Focus control type 188826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 189826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_IMAGE_FOCUSCONTROLTYPE { 190826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_FocusControlOn = 0, 191826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_FocusControlOff, 192826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_FocusControlAuto, 193826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_FocusControlAutoLock, 1946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_IMAGE_FocusControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 195826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_FocusControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 196826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_FocusControlMax = 0x7FFFFFFF 197826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_IMAGE_FOCUSCONTROLTYPE; 198826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 1996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal 2006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 2016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Focus control configuration 202826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 203826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 204826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 205826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX specification version information 206826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 207826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eFocusControl : Focus control 2086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nFocusSteps : Focus can take on values from 0 mm to infinity. 209826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Interest is only in number of steps over this range. 210826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nFocusStepIndex : Current focus step index 211826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 212826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE { 213826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 214826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 215826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 216826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_FOCUSCONTROLTYPE eFocusControl; 217826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nFocusSteps; 218826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nFocusStepIndex; 219826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE; 220826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 221826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 2226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 223826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Q Factor for JPEG compression, which controls the tradeoff between image 224826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * quality and size. Q Factor provides a more simple means of controlling 225826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * JPEG compression quality, without directly programming Quantization 2266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * tables for chroma and luma 227826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 228826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 2296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nSize : Size of the structure in bytes 2306eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion : OMX specification version information 2316eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nPortIndex : Port that this structure applies to 2326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nQFactor : JPEG Q factor value in the range of 1-100. A factor of 1 2336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * produces the smallest, worst quality images, and a factor 2346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * of 100 produces the largest, best quality images. A 2356eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * typical default is 75 for small good quality images 236826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 237826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_IMAGE_PARAM_QFACTORTYPE { 2386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 2396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; 2406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPortIndex; 2416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nQFactor; 242826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_IMAGE_PARAM_QFACTORTYPE; 243826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 2446eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 2456eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Quantization table type 246826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 247826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 248826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_IMAGE_QUANTIZATIONTABLETYPE { 249826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_QuantizationTableLuma = 0, 250826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_QuantizationTableChroma, 251826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_QuantizationTableChromaCb, 252826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_QuantizationTableChromaCr, 2536eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_IMAGE_QuantizationTableKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 254826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_QuantizationTableVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 255826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_QuantizationTableMax = 0x7FFFFFFF 256826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_IMAGE_QUANTIZATIONTABLETYPE; 257826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 2586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 259826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * JPEG quantization tables are used to determine DCT compression for 2606eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * YUV data, as an alternative to specifying Q factor, providing exact 2616eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * control of compression 262826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 263826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 264826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 2656eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion : OMX specification version information 266826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 267826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eQuantizationTable : Quantization table type 2686eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nQuantizationMatrix[64] : JPEG quantization table of coefficients stored 2696eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * in increasing columns then by rows of data (i.e. 2706eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * row 1, ... row 8). Quantization values are in 271826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * the range 0-255 and stored in linear order 2726eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * (i.e. the component will zig-zag the 2736eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * quantization table data if required internally) 274826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 275826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_IMAGE_PARAM_QUANTIZATIONTABLETYPE { 276826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 277826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 278826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 279826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_QUANTIZATIONTABLETYPE eQuantizationTable; 280826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U8 nQuantizationMatrix[64]; 281826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_IMAGE_PARAM_QUANTIZATIONTABLETYPE; 282826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 283826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 2846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 2856eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Huffman table type, the same Huffman table is applied for chroma and 2866eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * luma component 287826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 288826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_IMAGE_HUFFMANTABLETYPE { 289826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_HuffmanTableAC = 0, 290826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_HuffmanTableDC, 291826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_HuffmanTableACLuma, 292826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_HuffmanTableACChroma, 293826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_HuffmanTableDCLuma, 294826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_HuffmanTableDCChroma, 2956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_IMAGE_HuffmanTableKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 296826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_HuffmanTableVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 297826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_HuffmanTableMax = 0x7FFFFFFF 298826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_IMAGE_HUFFMANTABLETYPE; 299826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 3006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 3016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * JPEG Huffman table 302826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 303826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 304826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 305826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX specification version information 306826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 307826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eHuffmanTable : Huffman table type 3086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nNumberOfHuffmanCodeOfLength[16] : 0-16, number of Huffman codes of each 309826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * possible length 3106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nHuffmanTable[256] : 0-255, the size used for AC and DC 3116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * HuffmanTable are 16 and 162 312826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 313826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_IMAGE_PARAM_HUFFMANTTABLETYPE { 314826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 315826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 316826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 317826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IMAGE_HUFFMANTABLETYPE eHuffmanTable; 318826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U8 nNumberOfHuffmanCodeOfLength[16]; 319826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U8 nHuffmanTable[256]; 320826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_IMAGE_PARAM_HUFFMANTTABLETYPE; 321826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 322826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @} */ 323826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifdef __cplusplus 324826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 325826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif /* __cplusplus */ 326826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 327826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif 328826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/* File EOF */ 329