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