120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** 220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Copyright (c) 2008 The Khronos Group Inc. 320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Permission is hereby granted, free of charge, to any person obtaining 520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * a copy of this software and associated documentation files (the 620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * "Software"), to deal in the Software without restriction, including 720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * without limitation the rights to use, copy, modify, merge, publish, 820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * distribute, sublicense, and/or sell copies of the Software, and to 920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * permit persons to whom the Software is furnished to do so, subject 1020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * to the following conditions: 1120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * The above copyright notice and this permission notice shall be included 1220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * in all copies or substantial portions of the Software. 1320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 1420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 1520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 1620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 1720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 1820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 1920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 2020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 2120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 2220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 2320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** 2420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @file OMX_Image.h - OpenMax IL version 1.1.2 2520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * The structures needed by Image components to exchange parameters and 2620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * configuration data with the components. 2720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 2820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifndef OMX_Image_h 2920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#define OMX_Image_h 3020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifdef __cplusplus 3220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changextern "C" { 3320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif /* __cplusplus */ 3420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 3620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** 3720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Each OMX header must include all required header files to allow the 3820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * header to compile without errors. The includes below are required 3920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * for this header file to compile successfully 4020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 4120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 4220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#include <OMX_IVCommon.h> 4320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 4420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @defgroup imaging OpenMAX IL Imaging Domain 4520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @ingroup iv 4620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Structures for OpenMAX IL Imaging domain 4720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * @{ 4820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 4920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 5020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** 5120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Enumeration used to define the possible image compression coding. 5220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 5320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_IMAGE_CODINGTYPE { 5420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_CodingUnused, /**< Value when format is N/A */ 5520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_CodingAutoDetect, /**< Auto detection of image format */ 5620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_CodingJPEG, /**< JPEG/JFIF image format */ 5720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_CodingJPEG2K, /**< JPEG 2000 image format */ 5820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_CodingEXIF, /**< EXIF image format */ 5920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_CodingTIFF, /**< TIFF image format */ 6020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_CodingGIF, /**< Graphics image format */ 6120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_CodingPNG, /**< PNG image format */ 6220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_CodingLZW, /**< LZW image format */ 6320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_CodingBMP, /**< Windows Bitmap format */ 6420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 6520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 6620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_CodingMax = 0x7FFFFFFF 6720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_IMAGE_CODINGTYPE; 6820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 6920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 7020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** 7120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Data structure used to define an image path. The number of image paths 7220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * for input and output will vary by type of the image component. 7320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 7420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Input (aka Source) : Zero Inputs, one Output, 7520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Splitter : One Input, 2 or more Outputs, 7620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Processing Element : One Input, one output, 7720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Mixer : 2 or more inputs, one output, 7820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Output (aka Sink) : One Input, zero outputs. 7920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 8020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * The PortDefinition structure is used to define all of the parameters 8120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * necessary for the compliant component to setup an input or an output 8220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * image path. If additional vendor specific data is required, it should 8320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * be transmitted to the component using the CustomCommand function. 8420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Compliant components will prepopulate this structure with optimal 8520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * values during the OMX_GetParameter() command. 8620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 8720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * STRUCT MEMBERS: 8820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * cMIMEType : MIME type of data for the port 8920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * pNativeRender : Platform specific reference for a display if a 9020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * sync, otherwise this field is 0 9120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nFrameWidth : Width of frame to be used on port if 9220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * uncompressed format is used. Use 0 for 9320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * unknown, don't care or variable 9420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nFrameHeight : Height of frame to be used on port if 9520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * uncompressed format is used. Use 0 for 9620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * unknown, don't care or variable 9720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nStride : Number of bytes per span of an image (i.e. 9820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * indicates the number of bytes to get from 9920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * span N to span N+1, where negative stride 10020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * indicates the image is bottom up 10120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nSliceHeight : Height used when encoding in slices 10220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * bFlagErrorConcealment : Turns on error concealment if it is supported by 10320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * the OMX component 10420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * eCompressionFormat : Compression format used in this instance of 10520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * the component. When OMX_IMAGE_CodingUnused is 10620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * specified, eColorFormat is valid 10720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * eColorFormat : Decompressed format used by this component 10820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * pNativeWindow : Platform specific reference for a window object if a 10920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * display sink , otherwise this field is 0x0. 11020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 11120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_IMAGE_PORTDEFINITIONTYPE { 11220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_STRING cMIMEType; 11320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_NATIVE_DEVICETYPE pNativeRender; 11420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nFrameWidth; 11520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nFrameHeight; 11620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_S32 nStride; 11720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSliceHeight; 11820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_BOOL bFlagErrorConcealment; 11920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_CODINGTYPE eCompressionFormat; 12020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_COLOR_FORMATTYPE eColorFormat; 12120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_NATIVE_WINDOWTYPE pNativeWindow; 12220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_IMAGE_PORTDEFINITIONTYPE; 12320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 12420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 12520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** 12620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Port format parameter. This structure is used to enumerate the various 12720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * data input/output format supported by the port. 12820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 12920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * STRUCT MEMBERS: 13020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nSize : Size of the structure in bytes 13120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nVersion : OMX specification version information 13220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nPortIndex : Indicates which port to set 13320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nIndex : Indicates the enumeration index for the format from 13420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 0x0 to N-1 13520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * eCompressionFormat : Compression format used in this instance of the 13620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * component. When OMX_IMAGE_CodingUnused is specified, 13720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * eColorFormat is valid 13820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * eColorFormat : Decompressed format used by this component 13920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 14020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_IMAGE_PARAM_PORTFORMATTYPE { 14120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; 14220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; 14320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; 14420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nIndex; 14520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_CODINGTYPE eCompressionFormat; 14620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_COLOR_FORMATTYPE eColorFormat; 14720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_IMAGE_PARAM_PORTFORMATTYPE; 14820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 14920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 15020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** 15120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Flash control type 15220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 15320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * ENUMS 15420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Torch : Flash forced constantly on 15520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 15620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_IMAGE_FLASHCONTROLTYPE { 15720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FlashControlOn = 0, 15820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FlashControlOff, 15920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FlashControlAuto, 16020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FlashControlRedEyeReduction, 16120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FlashControlFillin, 16220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FlashControlTorch, 16320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FlashControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 16420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FlashControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 16520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FlashControlMax = 0x7FFFFFFF 16620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_IMAGE_FLASHCONTROLTYPE; 16720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 16820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 16920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** 17020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Flash control configuration 17120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 17220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * STRUCT MEMBERS: 17320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nSize : Size of the structure in bytes 17420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nVersion : OMX specification version information 17520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nPortIndex : Port that this structure applies to 17620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * eFlashControl : Flash control type 17720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 17820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_IMAGE_PARAM_FLASHCONTROLTYPE { 17920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; 18020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; 18120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; 18220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FLASHCONTROLTYPE eFlashControl; 18320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_IMAGE_PARAM_FLASHCONTROLTYPE; 18420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 18520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 18620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** 18720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Focus control type 18820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 18920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_IMAGE_FOCUSCONTROLTYPE { 19020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FocusControlOn = 0, 19120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FocusControlOff, 19220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FocusControlAuto, 19320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FocusControlAutoLock, 19420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FocusControlKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 19520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FocusControlVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 19620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FocusControlMax = 0x7FFFFFFF 19720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_IMAGE_FOCUSCONTROLTYPE; 19820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 19920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 20020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** 20120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Focus control configuration 20220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 20320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * STRUCT MEMBERS: 20420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nSize : Size of the structure in bytes 20520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nVersion : OMX specification version information 20620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nPortIndex : Port that this structure applies to 20720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * eFocusControl : Focus control 20820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nFocusSteps : Focus can take on values from 0 mm to infinity. 20920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Interest is only in number of steps over this range. 21020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nFocusStepIndex : Current focus step index 21120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 21220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE { 21320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; 21420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; 21520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; 21620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_FOCUSCONTROLTYPE eFocusControl; 21720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nFocusSteps; 21820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nFocusStepIndex; 21920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_IMAGE_CONFIG_FOCUSCONTROLTYPE; 22020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 22120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 22220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** 22320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Q Factor for JPEG compression, which controls the tradeoff between image 22420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * quality and size. Q Factor provides a more simple means of controlling 22520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * JPEG compression quality, without directly programming Quantization 22620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * tables for chroma and luma 22720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 22820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * STRUCT MEMBERS: 22920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nSize : Size of the structure in bytes 23020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nVersion : OMX specification version information 23120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nPortIndex : Port that this structure applies to 23220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nQFactor : JPEG Q factor value in the range of 1-100. A factor of 1 23320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * produces the smallest, worst quality images, and a factor 23420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * of 100 produces the largest, best quality images. A 23520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * typical default is 75 for small good quality images 23620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 23720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_IMAGE_PARAM_QFACTORTYPE { 23820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; 23920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; 24020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; 24120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nQFactor; 24220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_IMAGE_PARAM_QFACTORTYPE; 24320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 24420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** 24520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Quantization table type 24620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 24720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 24820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_IMAGE_QUANTIZATIONTABLETYPE { 24920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_QuantizationTableLuma = 0, 25020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_QuantizationTableChroma, 25120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_QuantizationTableChromaCb, 25220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_QuantizationTableChromaCr, 25320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_QuantizationTableKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 25420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_QuantizationTableVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 25520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_QuantizationTableMax = 0x7FFFFFFF 25620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_IMAGE_QUANTIZATIONTABLETYPE; 25720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 25820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** 25920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * JPEG quantization tables are used to determine DCT compression for 26020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * YUV data, as an alternative to specifying Q factor, providing exact 26120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * control of compression 26220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 26320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * STRUCT MEMBERS: 26420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nSize : Size of the structure in bytes 26520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nVersion : OMX specification version information 26620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nPortIndex : Port that this structure applies to 26720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * eQuantizationTable : Quantization table type 26820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nQuantizationMatrix[64] : JPEG quantization table of coefficients stored 26920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * in increasing columns then by rows of data (i.e. 27020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * row 1, ... row 8). Quantization values are in 27120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * the range 0-255 and stored in linear order 27220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * (i.e. the component will zig-zag the 27320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * quantization table data if required internally) 27420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 27520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_IMAGE_PARAM_QUANTIZATIONTABLETYPE { 27620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; 27720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; 27820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; 27920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_QUANTIZATIONTABLETYPE eQuantizationTable; 28020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U8 nQuantizationMatrix[64]; 28120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_IMAGE_PARAM_QUANTIZATIONTABLETYPE; 28220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 28320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 28420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** 28520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * Huffman table type, the same Huffman table is applied for chroma and 28620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * luma component 28720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 28820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef enum OMX_IMAGE_HUFFMANTABLETYPE { 28920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_HuffmanTableAC = 0, 29020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_HuffmanTableDC, 29120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_HuffmanTableACLuma, 29220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_HuffmanTableACChroma, 29320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_HuffmanTableDCLuma, 29420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_HuffmanTableDCChroma, 29520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_HuffmanTableKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 29620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_HuffmanTableVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 29720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_HuffmanTableMax = 0x7FFFFFFF 29820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} OMX_IMAGE_HUFFMANTABLETYPE; 29920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 30020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** 30120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * JPEG Huffman table 30220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * 30320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * STRUCT MEMBERS: 30420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nSize : Size of the structure in bytes 30520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nVersion : OMX specification version information 30620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nPortIndex : Port that this structure applies to 30720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * eHuffmanTable : Huffman table type 30820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nNumberOfHuffmanCodeOfLength[16] : 0-16, number of Huffman codes of each 30920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * possible length 31020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * nHuffmanTable[256] : 0-255, the size used for AC and DC 31120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang * HuffmanTable are 16 and 162 31220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang */ 31320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Changtypedef struct OMX_IMAGE_PARAM_HUFFMANTTABLETYPE { 31420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nSize; 31520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_VERSIONTYPE nVersion; 31620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U32 nPortIndex; 31720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_IMAGE_HUFFMANTABLETYPE eHuffmanTable; 31820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U8 nNumberOfHuffmanCodeOfLength[16]; 31920d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang OMX_U8 nHuffmanTable[256]; 32020d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang}OMX_IMAGE_PARAM_HUFFMANTTABLETYPE; 32120d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 32220d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/** @} */ 32320d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#ifdef __cplusplus 32420d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang} 32520d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif /* __cplusplus */ 32620d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang 32720d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang#endif 32820d3e6e3118a6e19627296e9247e948d54ec0fb8Jiho Chang/* File EOF */ 329