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/** 25fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @file OMX_Video.h - OpenMax IL version 1.1.2 26fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * The structures is needed by Video components to exchange parameters 27fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * and configuration data with OMX components. 28fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 29fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifndef OMX_Video_h 30fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#define OMX_Video_h 31fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 32fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @defgroup video OpenMAX IL Video Domain 33fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @ingroup iv 34fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Structures for OpenMAX IL Video domain 35fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * @{ 36fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 37fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 38fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef __cplusplus 39fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavinextern "C" { 40fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif /* __cplusplus */ 41fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 42fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 43fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 44fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Each OMX header must include all required header files to allow the 45fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * header to compile without errors. The includes below are required 46fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * for this header file to compile successfully 47fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 48fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 49fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#include <OMX_IVCommon.h> 50fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 51fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 52fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 53fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Enumeration used to define the possible video compression codings. 54fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * NOTE: This essentially refers to file extensions. If the coding is 55fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * being used to specify the ENCODE type, then additional work 56fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * must be done to configure the exact flavor of the compression 57fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * to be used. For decode cases where the user application can 58fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * not differentiate between MPEG-4 and H.264 bit streams, it is 59fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * up to the codec to handle this. 60fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 61fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_CODINGTYPE { 62fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_CodingUnused, /**< Value when coding is N/A */ 63fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_CodingAutoDetect, /**< Autodetection of coding type */ 64fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_CodingMPEG2, /**< AKA: H.262 */ 65fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_CodingH263, /**< H.263 */ 66fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_CodingMPEG4, /**< MPEG-4 */ 67fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_CodingWMV, /**< all versions of Windows Media Video */ 68fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_CodingRV, /**< all versions of Real Video */ 69fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_CodingAVC, /**< H.264/AVC */ 70fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_CodingMJPEG, /**< Motion JPEG */ 71fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 72fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 73fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_CodingMax = 0x7FFFFFFF 74fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_CODINGTYPE; 75fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 76fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 77fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 78fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Data structure used to define a video path. The number of Video paths for 79fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * input and output will vary by type of the Video component. 80fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 81fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Input (aka Source) : zero Inputs, one Output, 82fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Splitter : one Input, 2 or more Outputs, 83fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Processing Element : one Input, one output, 84fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Mixer : 2 or more inputs, one output, 85fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Output (aka Sink) : one Input, zero outputs. 86fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 87fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * The PortDefinition structure is used to define all of the parameters 88fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * necessary for the compliant component to setup an input or an output video 89fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * path. If additional vendor specific data is required, it should be 90fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * transmitted to the component using the CustomCommand function. Compliant 91fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * components will prepopulate this structure with optimal values during the 92fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * GetDefaultInitParams command. 93fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 94fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 95fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * cMIMEType : MIME type of data for the port 96fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * pNativeRender : Platform specific reference for a display if a 97fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * sync, otherwise this field is 0 98fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nFrameWidth : Width of frame to be used on channel if 99fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * uncompressed format is used. Use 0 for unknown, 100fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * don't care or variable 101fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nFrameHeight : Height of frame to be used on channel if 102fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * uncompressed format is used. Use 0 for unknown, 103fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * don't care or variable 104fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nStride : Number of bytes per span of an image 105fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * (i.e. indicates the number of bytes to get 106fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * from span N to span N+1, where negative stride 107fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * indicates the image is bottom up 108fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSliceHeight : Height used when encoding in slices 109fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nBitrate : Bit rate of frame to be used on channel if 110fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * compressed format is used. Use 0 for unknown, 111fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * don't care or variable 112fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * xFramerate : Frame rate to be used on channel if uncompressed 113fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * format is used. Use 0 for unknown, don't care or 114fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * variable. Units are Q16 frames per second. 115fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bFlagErrorConcealment : Turns on error concealment if it is supported by 116fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * the OMX component 117fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eCompressionFormat : Compression format used in this instance of the 118fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * component. When OMX_VIDEO_CodingUnused is 119fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * specified, eColorFormat is used 120fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eColorFormat : Decompressed format used by this component 121fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * pNativeWindow : Platform specific reference for a window object if a 122fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * display sink , otherwise this field is 0x0. 123fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 124fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PORTDEFINITIONTYPE { 125fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_STRING cMIMEType; 126fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_NATIVE_DEVICETYPE pNativeRender; 127fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nFrameWidth; 128fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nFrameHeight; 129fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_S32 nStride; 130fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSliceHeight; 131fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nBitrate; 132fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 xFramerate; 133fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bFlagErrorConcealment; 134fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_CODINGTYPE eCompressionFormat; 135fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_COLOR_FORMATTYPE eColorFormat; 136fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_NATIVE_WINDOWTYPE pNativeWindow; 137fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PORTDEFINITIONTYPE; 138fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 139fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 140fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Port format parameter. This structure is used to enumerate the various 141fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * data input/output format supported by the port. 142fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 143fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 144fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the structure in bytes 145fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX specification version information 146fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Indicates which port to set 147fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nIndex : Indicates the enumeration index for the format from 148fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 0x0 to N-1 149fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eCompressionFormat : Compression format used in this instance of the 150fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * component. When OMX_VIDEO_CodingUnused is specified, 151fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eColorFormat is used 152fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eColorFormat : Decompressed format used by this component 153fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * xFrameRate : Indicates the video frame rate in Q16 format 154fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 155fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PARAM_PORTFORMATTYPE { 156fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 157fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 158fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 159fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nIndex; 160fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_CODINGTYPE eCompressionFormat; 161fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_COLOR_FORMATTYPE eColorFormat; 162fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 xFramerate; 163fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PARAM_PORTFORMATTYPE; 164fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 165fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 166fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 167fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * This is a structure for configuring video compression quantization 168fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * parameter values. Codecs may support different QP values for different 169fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * frame types. 170fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 171fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 172fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the structure in bytes 173fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX specification version info 174fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Port that this structure applies to 175fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nQpI : QP value to use for index frames 176fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nQpP : QP value to use for P frames 177fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nQpB : QP values to use for bidirectional frames 178fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 179fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PARAM_QUANTIZATIONTYPE { 180fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 181fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 182fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 183fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nQpI; 184fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nQpP; 185fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nQpB; 186fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PARAM_QUANTIZATIONTYPE; 187fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 188fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 189fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 190fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Structure for configuration of video fast update parameters. 191fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 192fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 193fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the structure in bytes 194fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX specification version info 195fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Port that this structure applies to 196fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bEnableVFU : Enable/Disable video fast update 197fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nFirstGOB : Specifies the number of the first macroblock row 198fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nFirstMB : specifies the first MB relative to the specified first GOB 199fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nNumMBs : Specifies the number of MBs to be refreshed from nFirstGOB 200fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * and nFirstMB 201fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 202fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PARAM_VIDEOFASTUPDATETYPE { 203fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 204fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 205fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 206fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bEnableVFU; 207fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nFirstGOB; 208fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nFirstMB; 209fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nNumMBs; 210fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PARAM_VIDEOFASTUPDATETYPE; 211fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 212fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 213fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 214fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Enumeration of possible bitrate control types 215fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 216fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_CONTROLRATETYPE { 217fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Video_ControlRateDisable, 218fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Video_ControlRateVariable, 219fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Video_ControlRateConstant, 220fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Video_ControlRateVariableSkipFrames, 221fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Video_ControlRateConstantSkipFrames, 222fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Video_ControlRateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 223fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Video_ControlRateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 224fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Video_ControlRateMax = 0x7FFFFFFF 225fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_CONTROLRATETYPE; 226fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 227fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 228fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 229fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Structure for configuring bitrate mode of a codec. 230fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 231fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 232fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the struct in bytes 233fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX spec version info 234fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Port that this struct applies to 235fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eControlRate : Control rate type enum 236fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nTargetBitrate : Target bitrate to encode with 237fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 238fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PARAM_BITRATETYPE { 239fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 240fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 241fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 242fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_CONTROLRATETYPE eControlRate; 243fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nTargetBitrate; 244fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PARAM_BITRATETYPE; 245fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 246fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 247fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 248fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Enumeration of possible motion vector (MV) types 249fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 250fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_MOTIONVECTORTYPE { 251fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Video_MotionVectorPixel, 252fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Video_MotionVectorHalfPel, 253fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Video_MotionVectorQuarterPel, 254fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Video_MotionVectorEighthPel, 255fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Video_MotionVectorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 256fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Video_MotionVectorVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 257fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_Video_MotionVectorMax = 0x7FFFFFFF 258fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_MOTIONVECTORTYPE; 259fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 260fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 261fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 262fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Structure for configuring the number of motion vectors used as well 263fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * as their accuracy. 264fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 265fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 266fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the struct in bytes 267fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX spec version info 268fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : port that this structure applies to 269fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eAccuracy : Enumerated MV accuracy 270fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bUnrestrictedMVs : Allow unrestricted MVs 271fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bFourMV : Allow use of 4 MVs 272fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * sXSearchRange : Search range in horizontal direction for MVs 273fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * sYSearchRange : Search range in vertical direction for MVs 274fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 275fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PARAM_MOTIONVECTORTYPE { 276fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 277fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 278fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 279fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MOTIONVECTORTYPE eAccuracy; 280fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bUnrestrictedMVs; 281fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bFourMV; 282fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_S32 sXSearchRange; 283fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_S32 sYSearchRange; 284fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PARAM_MOTIONVECTORTYPE; 285fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 286fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 287fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 288fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Enumeration of possible methods to use for Intra Refresh 289fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 290fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_INTRAREFRESHTYPE { 291fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_IntraRefreshCyclic, 292fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_IntraRefreshAdaptive, 293fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_IntraRefreshBoth, 294fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_IntraRefreshKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 295fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_IntraRefreshVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 296fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_IntraRefreshMax = 0x7FFFFFFF 297fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_INTRAREFRESHTYPE; 298fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 299fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 300fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 301fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Structure for configuring intra refresh mode 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 * eRefreshMode : Cyclic, Adaptive, or Both 308fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nAirMBs : Number of intra macroblocks to refresh in a frame when 309fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AIR is enabled 310fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nAirRef : Number of times a motion marked macroblock has to be 311fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * intra coded 312fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nCirMBs : Number of consecutive macroblocks to be coded as "intra" 313fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * when CIR is enabled 314fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 315fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PARAM_INTRAREFRESHTYPE { 316fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 317fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 318fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 319fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_INTRAREFRESHTYPE eRefreshMode; 320fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nAirMBs; 321fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nAirRef; 322fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nCirMBs; 323fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PARAM_INTRAREFRESHTYPE; 324fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 325fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 326fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 327fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Structure for enabling various error correction methods for video 328fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * compression. 329fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 330fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 331fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the structure in bytes 332fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX specification version information 333fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Port that this structure applies to 334fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bEnableHEC : Enable/disable header extension codes (HEC) 335fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bEnableResync : Enable/disable resynchronization markers 336fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nResynchMarkerSpacing : Resynch markers interval (in bits) to be 337fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * applied in the stream 338fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bEnableDataPartitioning : Enable/disable data partitioning 339fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bEnableRVLC : Enable/disable reversible variable length 340fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * coding 341fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 342fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE { 343fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 344fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 345fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 346fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bEnableHEC; 347fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bEnableResync; 348fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nResynchMarkerSpacing; 349fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bEnableDataPartitioning; 350fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bEnableRVLC; 351fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE; 352fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 353fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 354fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 355fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Configuration of variable block-size motion compensation (VBSMC) 356fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 357fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 358fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the structure in bytes 359fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX specification version information 360fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Port that this structure applies to 361fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * b16x16 : Enable inter block search 16x16 362fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * b16x8 : Enable inter block search 16x8 363fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * b8x16 : Enable inter block search 8x16 364fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * b8x8 : Enable inter block search 8x8 365fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * b8x4 : Enable inter block search 8x4 366fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * b4x8 : Enable inter block search 4x8 367fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * b4x4 : Enable inter block search 4x4 368fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 369fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PARAM_VBSMCTYPE { 370fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 371fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 372fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 373fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL b16x16; 374fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL b16x8; 375fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL b8x16; 376fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL b8x8; 377fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL b8x4; 378fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL b4x8; 379fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL b4x4; 380fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PARAM_VBSMCTYPE; 381fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 382fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 383fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 384fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * H.263 profile types, each profile indicates support for various 385fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * performance bounds and different annexes. 386fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 387fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * ENUMS: 388fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Baseline : Baseline Profile: H.263 (V1), no optional modes 389fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * H320 Coding : H.320 Coding Efficiency Backward Compatibility 390fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Profile: H.263+ (V2), includes annexes I, J, L.4 391fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * and T 392fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * BackwardCompatible : Backward Compatibility Profile: H.263 (V1), 393fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * includes annex F 394fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * ISWV2 : Interactive Streaming Wireless Profile: H.263+ 395fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * (V2), includes annexes I, J, K and T 396fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * ISWV3 : Interactive Streaming Wireless Profile: H.263++ 397fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * (V3), includes profile 3 and annexes V and W.6.3.8 398fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * HighCompression : Conversational High Compression Profile: H.263++ 399fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * (V3), includes profiles 1 & 2 and annexes D and U 400fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Internet : Conversational Internet Profile: H.263++ (V3), 401fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * includes profile 5 and annex K 402fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Interlace : Conversational Interlace Profile: H.263++ (V3), 403fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * includes profile 5 and annex W.6.3.11 404fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * HighLatency : High Latency Profile: H.263++ (V3), includes 405fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * profile 6 and annexes O.1 and P.5 406fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 407fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_H263PROFILETYPE { 408fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263ProfileBaseline = 0x01, 409fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263ProfileH320Coding = 0x02, 410fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263ProfileBackwardCompatible = 0x04, 411fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263ProfileISWV2 = 0x08, 412fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263ProfileISWV3 = 0x10, 413fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263ProfileHighCompression = 0x20, 414fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263ProfileInternet = 0x40, 415fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263ProfileInterlace = 0x80, 416fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263ProfileHighLatency = 0x100, 417fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 418fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 419fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263ProfileMax = 0x7FFFFFFF 420fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_H263PROFILETYPE; 421fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 422fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 423fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 424fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * H.263 level types, each level indicates support for various frame sizes, 425fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bit rates, decoder frame rates. 426fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 427fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_H263LEVELTYPE { 428fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263Level10 = 0x01, 429fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263Level20 = 0x02, 430fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263Level30 = 0x04, 431fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263Level40 = 0x08, 432fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263Level45 = 0x10, 433fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263Level50 = 0x20, 434fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263Level60 = 0x40, 435fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263Level70 = 0x80, 436fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 437fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 438fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263LevelMax = 0x7FFFFFFF 439fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_H263LEVELTYPE; 440fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 441fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 442fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 443fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Specifies the picture type. These values should be OR'd to signal all 444fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * pictures types which are allowed. 445fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 446fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * ENUMS: 447fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Generic Picture Types: I, P and B 448fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * H.263 Specific Picture Types: SI and SP 449fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * H.264 Specific Picture Types: EI and EP 450fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * MPEG-4 Specific Picture Types: S 451fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 452fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_PICTURETYPE { 453fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_PictureTypeI = 0x01, 454fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_PictureTypeP = 0x02, 455fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_PictureTypeB = 0x04, 456fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_PictureTypeSI = 0x08, 457fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_PictureTypeSP = 0x10, 458fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_PictureTypeEI = 0x11, 459fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_PictureTypeEP = 0x12, 460fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_PictureTypeS = 0x14, 461fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_PictureTypeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 462fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_PictureTypeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 463fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_PictureTypeMax = 0x7FFFFFFF 464fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PICTURETYPE; 465fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 466fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 467fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 468fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * H.263 Params 469fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 470fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 471fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the structure in bytes 472fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX specification version information 473fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Port that this structure applies to 474fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPFrames : Number of P frames between each I frame 475fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nBFrames : Number of B frames between each I frame 476fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eProfile : H.263 profile(s) to use 477fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eLevel : H.263 level(s) to use 478fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bPLUSPTYPEAllowed : Indicating that it is allowed to use PLUSPTYPE 479fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * (specified in the 1998 version of H.263) to 480fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * indicate custom picture sizes or clock 481fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * frequencies 482fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nAllowedPictureTypes : Specifies the picture types allowed in the 483fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bitstream 484fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bForceRoundingTypeToZero : value of the RTYPE bit (bit 6 of MPPTYPE) is 485fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * not constrained. It is recommended to change 486fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * the value of the RTYPE bit for each reference 487fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * picture in error-free communication 488fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPictureHeaderRepetition : Specifies the frequency of picture header 489fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * repetition 490fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nGOBHeaderInterval : Specifies the interval of non-empty GOB 491fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * headers in units of GOBs 492fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 493fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PARAM_H263TYPE { 494fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 495fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 496fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 497fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPFrames; 498fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nBFrames; 499fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263PROFILETYPE eProfile; 500fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_H263LEVELTYPE eLevel; 501fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bPLUSPTYPEAllowed; 502fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nAllowedPictureTypes; 503fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bForceRoundingTypeToZero; 504fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPictureHeaderRepetition; 505fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nGOBHeaderInterval; 506fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PARAM_H263TYPE; 507fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 508fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 509fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 510fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * MPEG-2 profile types, each profile indicates support for various 511fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * performance bounds and different annexes. 512fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 513fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_MPEG2PROFILETYPE { 514fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2ProfileSimple = 0, /**< Simple Profile */ 515fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2ProfileMain, /**< Main Profile */ 516fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2Profile422, /**< 4:2:2 Profile */ 517fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2ProfileSNR, /**< SNR Profile */ 518fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2ProfileSpatial, /**< Spatial Profile */ 519fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2ProfileHigh, /**< High Profile */ 520fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 521fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 522fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2ProfileMax = 0x7FFFFFFF 523fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_MPEG2PROFILETYPE; 524fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 525fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 526fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 527fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * MPEG-2 level types, each level indicates support for various frame 528fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * sizes, bit rates, decoder frame rates. No need 529fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 530fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_MPEG2LEVELTYPE { 531fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2LevelLL = 0, /**< Low Level */ 532fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2LevelML, /**< Main Level */ 533fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2LevelH14, /**< High 1440 */ 534fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2LevelHL, /**< High Level */ 535fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 536fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 537fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2LevelMax = 0x7FFFFFFF 538fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_MPEG2LEVELTYPE; 539fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 540fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 541fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 542fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * MPEG-2 params 543fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 544fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 545fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the structure in bytes 546fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX specification version information 547fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Port that this structure applies to 548fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPFrames : Number of P frames between each I frame 549fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nBFrames : Number of B frames between each I frame 550fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eProfile : MPEG-2 profile(s) to use 551fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eLevel : MPEG-2 levels(s) to use 552fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 553fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PARAM_MPEG2TYPE { 554fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 555fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 556fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 557fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPFrames; 558fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nBFrames; 559fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2PROFILETYPE eProfile; 560fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG2LEVELTYPE eLevel; 561fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PARAM_MPEG2TYPE; 562fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 563fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 564fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 565fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * MPEG-4 profile types, each profile indicates support for various 566fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * performance bounds and different annexes. 567fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 568fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * ENUMS: 569fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * - Simple Profile, Levels 1-3 570fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * - Simple Scalable Profile, Levels 1-2 571fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * - Core Profile, Levels 1-2 572fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * - Main Profile, Levels 2-4 573fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * - N-bit Profile, Level 2 574fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * - Scalable Texture Profile, Level 1 575fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * - Simple Face Animation Profile, Levels 1-2 576fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * - Simple Face and Body Animation (FBA) Profile, Levels 1-2 577fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * - Basic Animated Texture Profile, Levels 1-2 578fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * - Hybrid Profile, Levels 1-2 579fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * - Advanced Real Time Simple Profiles, Levels 1-4 580fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * - Core Scalable Profile, Levels 1-3 581fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * - Advanced Coding Efficiency Profile, Levels 1-4 582fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * - Advanced Core Profile, Levels 1-2 583fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * - Advanced Scalable Texture, Levels 2-3 584fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 585fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_MPEG4PROFILETYPE { 586fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileSimple = 0x01, 587fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileSimpleScalable = 0x02, 588fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileCore = 0x04, 589fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileMain = 0x08, 590fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileNbit = 0x10, 591fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileScalableTexture = 0x20, 592fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileSimpleFace = 0x40, 593fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileSimpleFBA = 0x80, 594fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileBasicAnimated = 0x100, 595fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileHybrid = 0x200, 596fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileAdvancedRealTime = 0x400, 597fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileCoreScalable = 0x800, 598fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileAdvancedCoding = 0x1000, 599fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileAdvancedCore = 0x2000, 600fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileAdvancedScalable = 0x4000, 601fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileAdvancedSimple = 0x8000, 602fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 603fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 604fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4ProfileMax = 0x7FFFFFFF 605fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_MPEG4PROFILETYPE; 606fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 607fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 608fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 609fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * MPEG-4 level types, each level indicates support for various frame 610fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * sizes, bit rates, decoder frame rates. No need 611fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 612fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_MPEG4LEVELTYPE { 613fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4Level0 = 0x01, /**< Level 0 */ 614fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4Level0b = 0x02, /**< Level 0b */ 615fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4Level1 = 0x04, /**< Level 1 */ 616fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4Level2 = 0x08, /**< Level 2 */ 617fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4Level3 = 0x10, /**< Level 3 */ 618fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4Level4 = 0x20, /**< Level 4 */ 619fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4Level4a = 0x40, /**< Level 4a */ 620fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4Level5 = 0x80, /**< Level 5 */ 621fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 622fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 623fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4LevelMax = 0x7FFFFFFF 624fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_MPEG4LEVELTYPE; 625fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 626fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 627fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 628fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * MPEG-4 configuration. This structure handles configuration options 629fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * which are specific to MPEG4 algorithms 630fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 631fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 632fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the structure in bytes 633fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX specification version information 634fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Port that this structure applies to 635fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSliceHeaderSpacing : Number of macroblocks between slice header (H263+ 636fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Annex K). Put zero if not used 637fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bSVH : Enable Short Video Header mode 638fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bGov : Flag to enable GOV 639fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPFrames : Number of P frames between each I frame (also called 640fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * GOV period) 641fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nBFrames : Number of B frames between each I frame 642fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nIDCVLCThreshold : Value of intra DC VLC threshold 643fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bACPred : Flag to use ac prediction 644fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nMaxPacketSize : Maximum size of packet in bytes. 645fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nTimeIncRes : Used to pass VOP time increment resolution for MPEG4. 646fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Interpreted as described in MPEG4 standard. 647fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eProfile : MPEG-4 profile(s) to use. 648fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eLevel : MPEG-4 level(s) to use. 649fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nAllowedPictureTypes : Specifies the picture types allowed in the bitstream 650fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nHeaderExtension : Specifies the number of consecutive video packet 651fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * headers within a VOP 652fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bReversibleVLC : Specifies whether reversible variable length coding 653fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * is in use 654fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 655fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PARAM_MPEG4TYPE { 656fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 657fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 658fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 659fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSliceHeaderSpacing; 660fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bSVH; 661fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bGov; 662fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPFrames; 663fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nBFrames; 664fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nIDCVLCThreshold; 665fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bACPred; 666fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nMaxPacketSize; 667fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nTimeIncRes; 668fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4PROFILETYPE eProfile; 669fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_MPEG4LEVELTYPE eLevel; 670fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nAllowedPictureTypes; 671fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nHeaderExtension; 672fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bReversibleVLC; 673fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PARAM_MPEG4TYPE; 674fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 675fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 676fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 677fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * WMV Versions 678fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 679fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_WMVFORMATTYPE { 680fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_WMVFormatUnused = 0x01, /**< Format unused or unknown */ 681fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_WMVFormat7 = 0x02, /**< Windows Media Video format 7 */ 682fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_WMVFormat8 = 0x04, /**< Windows Media Video format 8 */ 683fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_WMVFormat9 = 0x08, /**< Windows Media Video format 9 */ 684fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_WMFFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 685fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_WMFFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 686fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_WMVFormatMax = 0x7FFFFFFF 687fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_WMVFORMATTYPE; 688fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 689fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 690fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 691fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * WMV Params 692fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 693fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 694fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the structure in bytes 695fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX specification version information 696fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Port that this structure applies to 697fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eFormat : Version of WMV stream / data 698fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 699fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PARAM_WMVTYPE { 700fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 701fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 702fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 703fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_WMVFORMATTYPE eFormat; 704fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PARAM_WMVTYPE; 705fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 706fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 707fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 708fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Real Video Version 709fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 710fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_RVFORMATTYPE { 711fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_RVFormatUnused = 0, /**< Format unused or unknown */ 712fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_RVFormat8, /**< Real Video format 8 */ 713fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_RVFormat9, /**< Real Video format 9 */ 714fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_RVFormatG2, /**< Real Video Format G2 */ 715fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_RVFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 716fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_RVFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 717fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_RVFormatMax = 0x7FFFFFFF 718fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_RVFORMATTYPE; 719fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 720fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 721fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 722fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Real Video Params 723fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 724fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STUCT MEMBERS: 725fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the structure in bytes 726fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX specification version information 727fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Port that this structure applies to 728fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eFormat : Version of RV stream / data 729fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nBitsPerPixel : Bits per pixel coded in the frame 730fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPaddedWidth : Padded width in pixel of a video frame 731fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPaddedHeight : Padded Height in pixels of a video frame 732fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nFrameRate : Rate of video in frames per second 733fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nBitstreamFlags : Flags which internal information about the bitstream 734fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nBitstreamVersion : Bitstream version 735fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nMaxEncodeFrameSize: Max encoded frame size 736fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bEnablePostFilter : Turn on/off post filter 737fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bEnableTemporalInterpolation : Turn on/off temporal interpolation 738fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bEnableLatencyMode : When enabled, the decoder does not display a decoded 739fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * frame until it has detected that no enhancement layer 740fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * frames or dependent B frames will be coming. This 741fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * detection usually occurs when a subsequent non-B 742fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * frame is encountered 743fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 744fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PARAM_RVTYPE { 745fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 746fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 747fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 748fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_RVFORMATTYPE eFormat; 749fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U16 nBitsPerPixel; 750fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U16 nPaddedWidth; 751fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U16 nPaddedHeight; 752fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nFrameRate; 753fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nBitstreamFlags; 754fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nBitstreamVersion; 755fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nMaxEncodeFrameSize; 756fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bEnablePostFilter; 757fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bEnableTemporalInterpolation; 758fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bEnableLatencyMode; 759fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PARAM_RVTYPE; 760fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 761fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 762fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 763fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AVC profile types, each profile indicates support for various 764fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * performance bounds and different annexes. 765fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 766fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_AVCPROFILETYPE { 767fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCProfileBaseline = 0x01, /**< Baseline profile */ 768fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCProfileMain = 0x02, /**< Main profile */ 769fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCProfileExtended = 0x04, /**< Extended profile */ 770fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCProfileHigh = 0x08, /**< High profile */ 771fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCProfileHigh10 = 0x10, /**< High 10 profile */ 772fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCProfileHigh422 = 0x20, /**< High 4:2:2 profile */ 773fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCProfileHigh444 = 0x40, /**< High 4:4:4 profile */ 774fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 775fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 776fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCProfileMax = 0x7FFFFFFF 777fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_AVCPROFILETYPE; 778fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 779fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 780fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 781fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AVC level types, each level indicates support for various frame sizes, 782fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bit rates, decoder frame rates. No need 783fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 784fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_AVCLEVELTYPE { 785fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevel1 = 0x01, /**< Level 1 */ 786fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevel1b = 0x02, /**< Level 1b */ 787fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevel11 = 0x04, /**< Level 1.1 */ 788fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevel12 = 0x08, /**< Level 1.2 */ 789fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevel13 = 0x10, /**< Level 1.3 */ 790fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevel2 = 0x20, /**< Level 2 */ 791fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevel21 = 0x40, /**< Level 2.1 */ 792fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevel22 = 0x80, /**< Level 2.2 */ 793fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevel3 = 0x100, /**< Level 3 */ 794fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevel31 = 0x200, /**< Level 3.1 */ 795fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevel32 = 0x400, /**< Level 3.2 */ 796fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevel4 = 0x800, /**< Level 4 */ 797fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevel41 = 0x1000, /**< Level 4.1 */ 798fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevel42 = 0x2000, /**< Level 4.2 */ 799fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevel5 = 0x4000, /**< Level 5 */ 800fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevel51 = 0x8000, /**< Level 5.1 */ 801fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 802fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 803fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLevelMax = 0x7FFFFFFF 804fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_AVCLEVELTYPE; 805fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 806fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 807fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 808fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AVC loop filter modes 809fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 810fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * OMX_VIDEO_AVCLoopFilterEnable : Enable 811fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * OMX_VIDEO_AVCLoopFilterDisable : Disable 812fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * OMX_VIDEO_AVCLoopFilterDisableSliceBoundary : Disabled on slice boundaries 813fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 814fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_AVCLOOPFILTERTYPE { 815fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLoopFilterEnable = 0, 816fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLoopFilterDisable, 817fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLoopFilterDisableSliceBoundary, 818fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLoopFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 819fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLoopFilterVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 820fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLoopFilterMax = 0x7FFFFFFF 821fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_AVCLOOPFILTERTYPE; 822fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 823fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 824fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 825fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AVC params 826fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 827fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 828fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the structure in bytes 829fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX specification version information 830fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Port that this structure applies to 831fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSliceHeaderSpacing : Number of macroblocks between slice header, put 832fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * zero if not used 833fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPFrames : Number of P frames between each I frame 834fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nBFrames : Number of B frames between each I frame 835fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bUseHadamard : Enable/disable Hadamard transform 836fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nRefFrames : Max number of reference frames to use for inter 837fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * motion search (1-16) 838fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nRefIdxTrailing : Pic param set ref frame index (index into ref 839fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * frame buffer of trailing frames list), B frame 840fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * support 841fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nRefIdxForward : Pic param set ref frame index (index into ref 842fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * frame buffer of forward frames list), B frame 843fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * support 844fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bEnableUEP : Enable/disable unequal error protection. This 845fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * is only valid of data partitioning is enabled. 846fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bEnableFMO : Enable/disable flexible macroblock ordering 847fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bEnableASO : Enable/disable arbitrary slice ordering 848fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bEnableRS : Enable/disable sending of redundant slices 849fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eProfile : AVC profile(s) to use 850fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eLevel : AVC level(s) to use 851fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nAllowedPictureTypes : Specifies the picture types allowed in the 852fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bitstream 853fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bFrameMBsOnly : specifies that every coded picture of the 854fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * coded video sequence is a coded frame 855fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * containing only frame macroblocks 856fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bMBAFF : Enable/disable switching between frame and 857fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * field macroblocks within a picture 858fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bEntropyCodingCABAC : Entropy decoding method to be applied for the 859fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * syntax elements for which two descriptors appear 860fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * in the syntax tables 861fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bWeightedPPrediction : Enable/disable weighted prediction shall not 862fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * be applied to P and SP slices 863fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nWeightedBipredicitonMode : Default weighted prediction is applied to B 864fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * slices 865fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bconstIpred : Enable/disable intra prediction 866fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bDirect8x8Inference : Specifies the method used in the derivation 867fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * process for luma motion vectors for B_Skip, 868fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * B_Direct_16x16 and B_Direct_8x8 as specified 869fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * in subclause 8.4.1.2 of the AVC spec 870fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bDirectSpatialTemporal : Flag indicating spatial or temporal direct 871fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * mode used in B slice coding (related to 872fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * bDirect8x8Inference) . Spatial direct mode is 873fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * more common and should be the default. 874fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nCabacInitIdx : Index used to init CABAC contexts 875fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eLoopFilterMode : Enable/disable loop filter 876fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 877fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PARAM_AVCTYPE { 878fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 879fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 880fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 881fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSliceHeaderSpacing; 882fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPFrames; 883fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nBFrames; 884fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bUseHadamard; 885fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nRefFrames; 886fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nRefIdx10ActiveMinus1; 887fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nRefIdx11ActiveMinus1; 888fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bEnableUEP; 889fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bEnableFMO; 890fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bEnableASO; 891fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bEnableRS; 892fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCPROFILETYPE eProfile; 893fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLEVELTYPE eLevel; 894fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nAllowedPictureTypes; 895fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bFrameMBsOnly; 896fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bMBAFF; 897fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bEntropyCodingCABAC; 898fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bWeightedPPrediction; 899fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nWeightedBipredicitonMode; 900fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bconstIpred ; 901fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bDirect8x8Inference; 902fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bDirectSpatialTemporal; 903fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nCabacInitIdc; 904fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCLOOPFILTERTYPE eLoopFilterMode; 905fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PARAM_AVCTYPE; 906fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 907fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PARAM_PROFILELEVELTYPE { 908fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 909fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 910fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 911fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 eProfile; /**< type is OMX_VIDEO_AVCPROFILETYPE, OMX_VIDEO_H263PROFILETYPE, 912fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin or OMX_VIDEO_MPEG4PROFILETYPE depending on context */ 913fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 eLevel; /**< type is OMX_VIDEO_AVCLEVELTYPE, OMX_VIDEO_H263LEVELTYPE, 914fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin or OMX_VIDEO_MPEG4PROFILETYPE depending on context */ 915fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nProfileIndex; /**< Used to query for individual profile support information, 916fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin This parameter is valid only for 917fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_IndexParamVideoProfileLevelQuerySupported index, 918fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin For all other indices this parameter is to be ignored. */ 919fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PARAM_PROFILELEVELTYPE; 920fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 921fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 922fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Structure for dynamically configuring bitrate mode of a codec. 923fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 924fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 925fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the struct in bytes 926fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX spec version info 927fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Port that this struct applies to 928fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nEncodeBitrate : Target average bitrate to be generated in bps 929fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 930fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_CONFIG_BITRATETYPE { 931fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 932fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 933fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 934fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nEncodeBitrate; 935fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_CONFIG_BITRATETYPE; 936fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 937fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 938fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * Defines Encoder Frame Rate setting 939fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 940fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 941fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the structure in bytes 942fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX specification version information 943fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Port that this structure applies to 944fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * xEncodeFramerate : Encoding framerate represented in Q16 format 945fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 946fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_CONFIG_FRAMERATETYPE { 947fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 948fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 949fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 950fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 xEncodeFramerate; /* Q16 format */ 951fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_CONFIG_FRAMERATETYPE; 952fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 953fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_CONFIG_INTRAREFRESHVOPTYPE { 954fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 955fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 956fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 957fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL IntraRefreshVOP; 958fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_CONFIG_INTRAREFRESHVOPTYPE; 959fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 960fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_CONFIG_MACROBLOCKERRORMAPTYPE { 961fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 962fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 963fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 964fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nErrMapSize; /* Size of the Error Map in bytes */ 965fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 ErrMap[1]; /* Error map hint */ 966fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_CONFIG_MACROBLOCKERRORMAPTYPE; 967fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 968fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_CONFIG_MBERRORREPORTINGTYPE { 969fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 970fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 971fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 972fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_BOOL bEnabled; 973fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_CONFIG_MBERRORREPORTINGTYPE; 974fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 975fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_PARAM_MACROBLOCKSTYPE { 976fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 977fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 978fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 979fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nMacroblocks; 980fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_PARAM_MACROBLOCKSTYPE; 981fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 982fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 983fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AVC Slice Mode modes 984fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 985fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * OMX_VIDEO_SLICEMODE_AVCDefault : Normal frame encoding, one slice per frame 986fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * OMX_VIDEO_SLICEMODE_AVCMBSlice : NAL mode, number of MBs per frame 987fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * OMX_VIDEO_SLICEMODE_AVCByteSlice : NAL mode, number of bytes per frame 988fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 989fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef enum OMX_VIDEO_AVCSLICEMODETYPE { 990fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_SLICEMODE_AVCDefault = 0, 991fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_SLICEMODE_AVCMBSlice, 992fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_SLICEMODE_AVCByteSlice, 993fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_SLICEMODE_AVCKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 994fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_SLICEMODE_AVCVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 995fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_SLICEMODE_AVCLevelMax = 0x7FFFFFFF 996fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_AVCSLICEMODETYPE; 997fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 998fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 999fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AVC FMO Slice Mode Params 1000fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 1001fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 1002fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the structure in bytes 1003fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX specification version information 1004fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Port that this structure applies to 1005fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nNumSliceGroups : Specifies the number of slice groups 1006fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSliceGroupMapType : Specifies the type of slice groups 1007fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * eSliceMode : Specifies the type of slice 1008fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 1009fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_PARAM_AVCSLICEFMO { 1010fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 1011fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 1012fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 1013fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 nNumSliceGroups; 1014fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U8 nSliceGroupMapType; 1015fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VIDEO_AVCSLICEMODETYPE eSliceMode; 1016fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_PARAM_AVCSLICEFMO; 1017fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 1018fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 1019fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AVC IDR Period Configs 1020fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 1021fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 1022fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the structure in bytes 1023fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX specification version information 1024fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Port that this structure applies to 1025fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nIDRPeriod : Specifies periodicity of IDR frames 1026fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPFrames : Specifies internal of coding Intra frames 1027fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 1028fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_CONFIG_AVCINTRAPERIOD { 1029fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 1030fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 1031fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 1032fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nIDRPeriod; 1033fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPFrames; 1034fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_CONFIG_AVCINTRAPERIOD; 1035fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 1036fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** 1037fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * AVC NAL Size Configs 1038fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * 1039fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * STRUCT MEMBERS: 1040fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nSize : Size of the structure in bytes 1041fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nVersion : OMX specification version information 1042fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nPortIndex : Port that this structure applies to 1043fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin * nNaluBytes : Specifies the NAL unit size 1044fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin */ 1045fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavintypedef struct OMX_VIDEO_CONFIG_NALSIZE { 1046fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nSize; 1047fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_VERSIONTYPE nVersion; 1048fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nPortIndex; 1049fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin OMX_U32 nNaluBytes; 1050fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} OMX_VIDEO_CONFIG_NALSIZE; 1051fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 1052fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/** @} */ 1053fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 1054fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#ifdef __cplusplus 1055fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin} 1056fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif /* __cplusplus */ 1057fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 1058fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin#endif 1059fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin/* File EOF */ 1060fb3766f18a2c18b6f4798a6a631fdb88fcacd1dcRebecca Schultz Zavin 1061