1826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** 26eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Copyright (c) 2008 The Khronos Group Inc. 36eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 4826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Permission is hereby granted, free of charge, to any person obtaining 5826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * a copy of this software and associated documentation files (the 6826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * "Software"), to deal in the Software without restriction, including 7826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * without limitation the rights to use, copy, modify, merge, publish, 8826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * distribute, sublicense, and/or sell copies of the Software, and to 9826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * permit persons to whom the Software is furnished to do so, subject 106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to the following conditions: 11826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * The above copyright notice and this permission notice shall be included 126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * in all copies or substantial portions of the Software. 136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 14826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 18826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 19826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 22826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 23826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 25826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * @file OMX_Video.h - OpenMax IL version 1.1.2 266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * The structures is needed by Video components to exchange parameters 27826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * and configuration data with OMX components. 28826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 29826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifndef OMX_Video_h 30826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_Video_h 31826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 32826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @defgroup video OpenMAX IL Video Domain 33826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * @ingroup iv 34826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Structures for OpenMAX IL Video domain 35826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * @{ 36826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 37826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 38826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifdef __cplusplus 39826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevextern "C" { 40826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif /* __cplusplus */ 41826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 42826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 43826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** 44826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Each OMX header must include all required header files to allow the 45826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * header to compile without errors. The includes below are required 466eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * for this header file to compile successfully 47826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 48826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 49826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#include <OMX_IVCommon.h> 50826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 51826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 52826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** 536eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Enumeration used to define the possible video compression codings. 546eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * NOTE: This essentially refers to file extensions. If the coding is 556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * being used to specify the ENCODE type, then additional work 566eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * must be done to configure the exact flavor of the compression 576eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to be used. For decode cases where the user application can 586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * not differentiate between MPEG-4 and H.264 bit streams, it is 59826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * up to the codec to handle this. 60826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 61826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_CODINGTYPE { 62826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_CodingUnused, /**< Value when coding is N/A */ 63826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_CodingAutoDetect, /**< Autodetection of coding type */ 64826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_CodingMPEG2, /**< AKA: H.262 */ 65826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_CodingH263, /**< H.263 */ 66826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_CodingMPEG4, /**< MPEG-4 */ 67826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_CodingWMV, /**< all versions of Windows Media Video */ 68826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_CodingRV, /**< all versions of Real Video */ 69826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_CodingAVC, /**< H.264/AVC */ 70826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_CodingMJPEG, /**< Motion JPEG */ 71826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_CodingVPX, /**< Google VPX, formerly known as On2 VP8 */ 726eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 73826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 74826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_CodingMax = 0x7FFFFFFF 75826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_CODINGTYPE; 76826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 77826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 78826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** 796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Data structure used to define a video path. The number of Video paths for 806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * input and output will vary by type of the Video component. 816eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 82826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Input (aka Source) : zero Inputs, one Output, 83826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Splitter : one Input, 2 or more Outputs, 84826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Processing Element : one Input, one output, 85826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Mixer : 2 or more inputs, one output, 86826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Output (aka Sink) : one Input, zero outputs. 876eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * The PortDefinition structure is used to define all of the parameters 896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * necessary for the compliant component to setup an input or an output video 906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * path. If additional vendor specific data is required, it should be 916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * transmitted to the component using the CustomCommand function. Compliant 926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * components will prepopulate this structure with optimal values during the 93826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * GetDefaultInitParams command. 94826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 95826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 96826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * cMIMEType : MIME type of data for the port 976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * pNativeRender : Platform specific reference for a display if a 98826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * sync, otherwise this field is 0 996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nFrameWidth : Width of frame to be used on channel if 100826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * uncompressed format is used. Use 0 for unknown, 101826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * don't care or variable 1026eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nFrameHeight : Height of frame to be used on channel if 103826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * uncompressed format is used. Use 0 for unknown, 104826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * don't care or variable 1056eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nStride : Number of bytes per span of an image 106826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * (i.e. indicates the number of bytes to get 107826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * from span N to span N+1, where negative stride 108826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * indicates the image is bottom up 109826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSliceHeight : Height used when encoding in slices 1106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nBitrate : Bit rate of frame to be used on channel if 1116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * compressed format is used. Use 0 for unknown, 112826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * don't care or variable 1136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * xFramerate : Frame rate to be used on channel if uncompressed 1146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * format is used. Use 0 for unknown, don't care or 115826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * variable. Units are Q16 frames per second. 1166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bFlagErrorConcealment : Turns on error concealment if it is supported by 117826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * the OMX component 1186eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * eCompressionFormat : Compression format used in this instance of the 1196eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * component. When OMX_VIDEO_CodingUnused is 120826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * specified, eColorFormat is used 121826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eColorFormat : Decompressed format used by this component 1226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * pNativeWindow : Platform specific reference for a window object if a 1236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * display sink , otherwise this field is 0x0. 124826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 125826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PORTDEFINITIONTYPE { 126826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_STRING cMIMEType; 127826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_NATIVE_DEVICETYPE pNativeRender; 128826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nFrameWidth; 129826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nFrameHeight; 130826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_S32 nStride; 131826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSliceHeight; 132826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nBitrate; 133826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 xFramerate; 134826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bFlagErrorConcealment; 135826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_CODINGTYPE eCompressionFormat; 136826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_COLOR_FORMATTYPE eColorFormat; 137826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_NATIVE_WINDOWTYPE pNativeWindow; 138826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PORTDEFINITIONTYPE; 139826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 1406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 1416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Port format parameter. This structure is used to enumerate the various 142826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * data input/output format supported by the port. 1436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 144826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 145826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 146826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX specification version information 147826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Indicates which port to set 1486eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nIndex : Indicates the enumeration index for the format from 149826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 0x0 to N-1 1506eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * eCompressionFormat : Compression format used in this instance of the 1516eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * component. When OMX_VIDEO_CodingUnused is specified, 1526eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * eColorFormat is used 153826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eColorFormat : Decompressed format used by this component 154826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * xFrameRate : Indicates the video frame rate in Q16 format 155826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 156826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_PORTFORMATTYPE { 157826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 158826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 159826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 160826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nIndex; 1616eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_CODINGTYPE eCompressionFormat; 162826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_COLOR_FORMATTYPE eColorFormat; 163826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 xFramerate; 164826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PARAM_PORTFORMATTYPE; 165826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 166826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 167826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** 1686eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * This is a structure for configuring video compression quantization 169826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * parameter values. Codecs may support different QP values for different 170826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * frame types. 171826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 172826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 173826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 174826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX specification version info 175826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 176826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nQpI : QP value to use for index frames 177826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nQpP : QP value to use for P frames 1786eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nQpB : QP values to use for bidirectional frames 179826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 180826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_QUANTIZATIONTYPE { 1816eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 182826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 183826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 184826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nQpI; 185826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nQpP; 186826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nQpB; 187826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PARAM_QUANTIZATIONTYPE; 188826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 189826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 1906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 1916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure for configuration of video fast update parameters. 1926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 193826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 194826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 1956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion : OMX specification version info 196826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 197826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bEnableVFU : Enable/Disable video fast update 198826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nFirstGOB : Specifies the number of the first macroblock row 199826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nFirstMB : specifies the first MB relative to the specified first GOB 2006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nNumMBs : Specifies the number of MBs to be refreshed from nFirstGOB 201826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * and nFirstMB 202826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 203826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_VIDEOFASTUPDATETYPE { 2046eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 2056eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; 2066eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPortIndex; 2076eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bEnableVFU; 2086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nFirstGOB; 2096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nFirstMB; 2106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nNumMBs; 211826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PARAM_VIDEOFASTUPDATETYPE; 212826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 213826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 2146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 2156eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Enumeration of possible bitrate control types 216826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 217826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_CONTROLRATETYPE { 218826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_Video_ControlRateDisable, 219826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_Video_ControlRateVariable, 220826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_Video_ControlRateConstant, 221826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_Video_ControlRateVariableSkipFrames, 222826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_Video_ControlRateConstantSkipFrames, 2236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_Video_ControlRateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 224826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_Video_ControlRateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 225826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_Video_ControlRateMax = 0x7FFFFFFF 226826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_CONTROLRATETYPE; 227826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 228826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 2296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 2306eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure for configuring bitrate mode of a codec. 231826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 232826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 233826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the struct in bytes 234826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX spec version info 235826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this struct applies to 236826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eControlRate : Control rate type enum 237826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nTargetBitrate : Target bitrate to encode with 238826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 239826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_BITRATETYPE { 2406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 2416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; 2426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPortIndex; 2436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_CONTROLRATETYPE eControlRate; 2446eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nTargetBitrate; 245826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PARAM_BITRATETYPE; 246826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 247826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 2486eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 2496eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Enumeration of possible motion vector (MV) types 250826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 251826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_MOTIONVECTORTYPE { 252826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_Video_MotionVectorPixel, 253826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_Video_MotionVectorHalfPel, 254826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_Video_MotionVectorQuarterPel, 255826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_Video_MotionVectorEighthPel, 2566eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_Video_MotionVectorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 257826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_Video_MotionVectorVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 258826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_Video_MotionVectorMax = 0x7FFFFFFF 259826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_MOTIONVECTORTYPE; 260826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 261826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 262826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** 263826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Structure for configuring the number of motion vectors used as well 264826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * as their accuracy. 2656eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 266826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 267826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the struct in bytes 268826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX spec version info 269826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : port that this structure applies to 270826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eAccuracy : Enumerated MV accuracy 271826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bUnrestrictedMVs : Allow unrestricted MVs 272826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bFourMV : Allow use of 4 MVs 273826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * sXSearchRange : Search range in horizontal direction for MVs 274826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * sYSearchRange : Search range in vertical direction for MVs 275826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 276826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_MOTIONVECTORTYPE { 277826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 278826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 279826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 280826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_MOTIONVECTORTYPE eAccuracy; 281826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bUnrestrictedMVs; 282826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bFourMV; 283826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_S32 sXSearchRange; 284826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_S32 sYSearchRange; 285826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PARAM_MOTIONVECTORTYPE; 286826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 287826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 2886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 2896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Enumeration of possible methods to use for Intra Refresh 290826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 291826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_INTRAREFRESHTYPE { 292826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_IntraRefreshCyclic, 293826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_IntraRefreshAdaptive, 294826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_IntraRefreshBoth, 2956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_IntraRefreshKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 296826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_IntraRefreshVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 297826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_IntraRefreshMax = 0x7FFFFFFF 298826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_INTRAREFRESHTYPE; 299826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 300826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 301826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** 3026eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure for configuring intra refresh mode 3036eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 304826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 305826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 306826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX specification version information 307826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 308826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eRefreshMode : Cyclic, Adaptive, or Both 3096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nAirMBs : Number of intra macroblocks to refresh in a frame when 310826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * AIR is enabled 3116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nAirRef : Number of times a motion marked macroblock has to be 312826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * intra coded 3136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nCirMBs : Number of consecutive macroblocks to be coded as "intra" 314826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * when CIR is enabled 315826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 316826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_INTRAREFRESHTYPE { 317826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 318826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 319826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 320826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_INTRAREFRESHTYPE eRefreshMode; 321826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nAirMBs; 322826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nAirRef; 323826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nCirMBs; 324826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PARAM_INTRAREFRESHTYPE; 325826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 326826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 327826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** 3286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure for enabling various error correction methods for video 329826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * compression. 330826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 331826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 332826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 3336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion : OMX specification version information 3346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nPortIndex : Port that this structure applies to 335826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bEnableHEC : Enable/disable header extension codes (HEC) 336826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bEnableResync : Enable/disable resynchronization markers 3376eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nResynchMarkerSpacing : Resynch markers interval (in bits) to be 3386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * applied in the stream 3396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bEnableDataPartitioning : Enable/disable data partitioning 3406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bEnableRVLC : Enable/disable reversible variable length 341826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * coding 342826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 343826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE { 344826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 345826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 346826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 347826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bEnableHEC; 348826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bEnableResync; 349826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nResynchMarkerSpacing; 350826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bEnableDataPartitioning; 351826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bEnableRVLC; 352826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE; 353826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 354826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 3556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 3566eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Configuration of variable block-size motion compensation (VBSMC) 3576eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 358826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 359826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 3606eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion : OMX specification version information 361826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 362826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * b16x16 : Enable inter block search 16x16 363826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * b16x8 : Enable inter block search 16x8 364826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * b8x16 : Enable inter block search 8x16 365826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * b8x8 : Enable inter block search 8x8 366826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * b8x4 : Enable inter block search 8x4 367826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * b4x8 : Enable inter block search 4x8 368826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * b4x4 : Enable inter block search 4x4 369826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 370826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_VBSMCTYPE { 3716eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 3726eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; 3736eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPortIndex; 3746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL b16x16; 3756eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL b16x8; 376826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL b8x16; 377826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL b8x8; 378826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL b8x4; 379826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL b4x8; 380826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL b4x4; 381826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PARAM_VBSMCTYPE; 382826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 383826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 3846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 3856eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * H.263 profile types, each profile indicates support for various 386826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * performance bounds and different annexes. 387826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 388826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * ENUMS: 3896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Baseline : Baseline Profile: H.263 (V1), no optional modes 3906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * H320 Coding : H.320 Coding Efficiency Backward Compatibility 391826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Profile: H.263+ (V2), includes annexes I, J, L.4 392826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * and T 3936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * BackwardCompatible : Backward Compatibility Profile: H.263 (V1), 3946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * includes annex F 3956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * ISWV2 : Interactive Streaming Wireless Profile: H.263+ 3966eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * (V2), includes annexes I, J, K and T 3976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * ISWV3 : Interactive Streaming Wireless Profile: H.263++ 3986eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * (V3), includes profile 3 and annexes V and W.6.3.8 3996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * HighCompression : Conversational High Compression Profile: H.263++ 4006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * (V3), includes profiles 1 & 2 and annexes D and U 4016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Internet : Conversational Internet Profile: H.263++ (V3), 4026eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * includes profile 5 and annex K 4036eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Interlace : Conversational Interlace Profile: H.263++ (V3), 4046eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * includes profile 5 and annex W.6.3.11 4056eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * HighLatency : High Latency Profile: H.263++ (V3), includes 4066eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * profile 6 and annexes O.1 and P.5 407826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 408826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_H263PROFILETYPE { 4096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileBaseline = 0x01, 4106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileH320Coding = 0x02, 4116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileBackwardCompatible = 0x04, 4126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileISWV2 = 0x08, 4136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileISWV3 = 0x10, 4146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileHighCompression = 0x20, 4156eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileInternet = 0x40, 4166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileInterlace = 0x80, 4176eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileHighLatency = 0x100, 4186eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 419826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_H263ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 4206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileMax = 0x7FFFFFFF 421826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_H263PROFILETYPE; 422826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 423826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 4246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 4256eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * H.263 level types, each level indicates support for various frame sizes, 426826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bit rates, decoder frame rates. 427826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 428826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_H263LEVELTYPE { 4296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263Level10 = 0x01, 4306eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263Level20 = 0x02, 4316eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263Level30 = 0x04, 4326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263Level40 = 0x08, 4336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263Level45 = 0x10, 4346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263Level50 = 0x20, 4356eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263Level60 = 0x40, 4366eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263Level70 = 0x80, 4376eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 438826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_H263LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 4396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263LevelMax = 0x7FFFFFFF 440826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_H263LEVELTYPE; 441826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 442826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 4436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 4446eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Specifies the picture type. These values should be OR'd to signal all 445826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * pictures types which are allowed. 446826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 447826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * ENUMS: 448826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Generic Picture Types: I, P and B 449826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * H.263 Specific Picture Types: SI and SP 450826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * H.264 Specific Picture Types: EI and EP 451826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * MPEG-4 Specific Picture Types: S 452826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 453826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_PICTURETYPE { 454826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_PictureTypeI = 0x01, 455826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_PictureTypeP = 0x02, 456826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_PictureTypeB = 0x04, 457826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_PictureTypeSI = 0x08, 458826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_PictureTypeSP = 0x10, 459826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_PictureTypeEI = 0x11, 460826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_PictureTypeEP = 0x12, 461826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_PictureTypeS = 0x14, 4626eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_PictureTypeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 463826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_PictureTypeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 464826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_PictureTypeMax = 0x7FFFFFFF 465826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PICTURETYPE; 466826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 467826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 4686eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 4696eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * H.263 Params 470826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 471826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 472826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 4736eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion : OMX specification version information 474826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 475826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPFrames : Number of P frames between each I frame 476826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nBFrames : Number of B frames between each I frame 477826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eProfile : H.263 profile(s) to use 478826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eLevel : H.263 level(s) to use 4796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bPLUSPTYPEAllowed : Indicating that it is allowed to use PLUSPTYPE 4806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * (specified in the 1998 version of H.263) to 4816eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * indicate custom picture sizes or clock 4826eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * frequencies 4836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nAllowedPictureTypes : Specifies the picture types allowed in the 484826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bitstream 4856eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bForceRoundingTypeToZero : value of the RTYPE bit (bit 6 of MPPTYPE) is 4866eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * not constrained. It is recommended to change 4876eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * the value of the RTYPE bit for each reference 488826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * picture in error-free communication 4896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nPictureHeaderRepetition : Specifies the frequency of picture header 490826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * repetition 4916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nGOBHeaderInterval : Specifies the interval of non-empty GOB 492826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * headers in units of GOBs 493826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 494826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_H263TYPE { 495826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 496826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 497826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 498826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPFrames; 499826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nBFrames; 500826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_H263PROFILETYPE eProfile; 501826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_H263LEVELTYPE eLevel; 502826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bPLUSPTYPEAllowed; 503826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nAllowedPictureTypes; 504826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bForceRoundingTypeToZero; 505826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPictureHeaderRepetition; 506826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nGOBHeaderInterval; 507826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PARAM_H263TYPE; 508826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 509826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 5106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 5116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * MPEG-2 profile types, each profile indicates support for various 512826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * performance bounds and different annexes. 513826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 514826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_MPEG2PROFILETYPE { 515826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_MPEG2ProfileSimple = 0, /**< Simple Profile */ 516826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_MPEG2ProfileMain, /**< Main Profile */ 517826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_MPEG2Profile422, /**< 4:2:2 Profile */ 518826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_MPEG2ProfileSNR, /**< SNR Profile */ 519826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_MPEG2ProfileSpatial, /**< Spatial Profile */ 520826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_MPEG2ProfileHigh, /**< High Profile */ 5216eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 522826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_MPEG2ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 5236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2ProfileMax = 0x7FFFFFFF 524826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_MPEG2PROFILETYPE; 525826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 526826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 5276eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 5286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * MPEG-2 level types, each level indicates support for various frame 5296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * sizes, bit rates, decoder frame rates. No need 530826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 531826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_MPEG2LEVELTYPE { 5326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2LevelLL = 0, /**< Low Level */ 5336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2LevelML, /**< Main Level */ 5346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2LevelH14, /**< High 1440 */ 5356eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2LevelHL, /**< High Level */ 5366eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 537826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_MPEG2LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 5386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2LevelMax = 0x7FFFFFFF 539826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_MPEG2LEVELTYPE; 540826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 541826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 5426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 5436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * MPEG-2 params 544826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 545826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 546826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 547826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX specification version information 548826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 549826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPFrames : Number of P frames between each I frame 550826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nBFrames : Number of B frames between each I frame 551826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eProfile : MPEG-2 profile(s) to use 552826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eLevel : MPEG-2 levels(s) to use 553826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 554826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_MPEG2TYPE { 5556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 556826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 5576eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPortIndex; 5586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPFrames; 5596eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nBFrames; 560826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_MPEG2PROFILETYPE eProfile; 5616eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2LEVELTYPE eLevel; 562826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PARAM_MPEG2TYPE; 563826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 564826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 5656eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 5666eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * MPEG-4 profile types, each profile indicates support for various 567826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * performance bounds and different annexes. 5686eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 569826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * ENUMS: 570826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * - Simple Profile, Levels 1-3 571826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * - Simple Scalable Profile, Levels 1-2 572826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * - Core Profile, Levels 1-2 573826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * - Main Profile, Levels 2-4 574826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * - N-bit Profile, Level 2 575826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * - Scalable Texture Profile, Level 1 576826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * - Simple Face Animation Profile, Levels 1-2 577826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * - Simple Face and Body Animation (FBA) Profile, Levels 1-2 578826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * - Basic Animated Texture Profile, Levels 1-2 579826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * - Hybrid Profile, Levels 1-2 580826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * - Advanced Real Time Simple Profiles, Levels 1-4 581826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * - Core Scalable Profile, Levels 1-3 582826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * - Advanced Coding Efficiency Profile, Levels 1-4 583826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * - Advanced Core Profile, Levels 1-2 584826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * - Advanced Scalable Texture, Levels 2-3 585826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 586826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_MPEG4PROFILETYPE { 5876eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileSimple = 0x01, 5886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileSimpleScalable = 0x02, 5896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileCore = 0x04, 5906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileMain = 0x08, 5916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileNbit = 0x10, 5926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileScalableTexture = 0x20, 5936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileSimpleFace = 0x40, 5946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileSimpleFBA = 0x80, 5956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileBasicAnimated = 0x100, 5966eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileHybrid = 0x200, 5976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileAdvancedRealTime = 0x400, 5986eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileCoreScalable = 0x800, 5996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileAdvancedCoding = 0x1000, 6006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileAdvancedCore = 0x2000, 601826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_MPEG4ProfileAdvancedScalable = 0x4000, 602826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_MPEG4ProfileAdvancedSimple = 0x8000, 6036eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 604826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_MPEG4ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 6056eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileMax = 0x7FFFFFFF 606826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_MPEG4PROFILETYPE; 607826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 608826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 6096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 6106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * MPEG-4 level types, each level indicates support for various frame 6116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * sizes, bit rates, decoder frame rates. No need 612826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 613826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_MPEG4LEVELTYPE { 6146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4Level0 = 0x01, /**< Level 0 */ 6156eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4Level0b = 0x02, /**< Level 0b */ 6166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4Level1 = 0x04, /**< Level 1 */ 6176eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4Level2 = 0x08, /**< Level 2 */ 6186eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4Level3 = 0x10, /**< Level 3 */ 6196eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4Level4 = 0x20, /**< Level 4 */ 6206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4Level4a = 0x40, /**< Level 4a */ 6216eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4Level5 = 0x80, /**< Level 5 */ 6226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 623826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_MPEG4LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 6246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4LevelMax = 0x7FFFFFFF 625826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_MPEG4LEVELTYPE; 626826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 627826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 6286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 629826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * MPEG-4 configuration. This structure handles configuration options 630826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * which are specific to MPEG4 algorithms 631826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 632826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 633826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 634826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX specification version information 635826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 6366eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nSliceHeaderSpacing : Number of macroblocks between slice header (H263+ 637826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Annex K). Put zero if not used 638826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bSVH : Enable Short Video Header mode 639826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bGov : Flag to enable GOV 6406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nPFrames : Number of P frames between each I frame (also called 641826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * GOV period) 642826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nBFrames : Number of B frames between each I frame 643826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nIDCVLCThreshold : Value of intra DC VLC threshold 644826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bACPred : Flag to use ac prediction 645826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nMaxPacketSize : Maximum size of packet in bytes. 6466eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nTimeIncRes : Used to pass VOP time increment resolution for MPEG4. 647826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Interpreted as described in MPEG4 standard. 648826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eProfile : MPEG-4 profile(s) to use. 649826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eLevel : MPEG-4 level(s) to use. 650826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nAllowedPictureTypes : Specifies the picture types allowed in the bitstream 651826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nHeaderExtension : Specifies the number of consecutive video packet 652826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * headers within a VOP 6536eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bReversibleVLC : Specifies whether reversible variable length coding 654826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * is in use 655826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 656826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_MPEG4TYPE { 657826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 658826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 659826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 660826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSliceHeaderSpacing; 661826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bSVH; 662826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bGov; 663826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPFrames; 664826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nBFrames; 665826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nIDCVLCThreshold; 666826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bACPred; 667826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nMaxPacketSize; 668826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nTimeIncRes; 669826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_MPEG4PROFILETYPE eProfile; 670826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_MPEG4LEVELTYPE eLevel; 671826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nAllowedPictureTypes; 672826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nHeaderExtension; 673826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bReversibleVLC; 674826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PARAM_MPEG4TYPE; 675826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 676826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 6776eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 6786eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * WMV Versions 679826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 680826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_WMVFORMATTYPE { 681826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_WMVFormatUnused = 0x01, /**< Format unused or unknown */ 682826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_WMVFormat7 = 0x02, /**< Windows Media Video format 7 */ 683826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_WMVFormat8 = 0x04, /**< Windows Media Video format 8 */ 684826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_WMVFormat9 = 0x08, /**< Windows Media Video format 9 */ 6856eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_WMFFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 686826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_WMFFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 687826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_WMVFormatMax = 0x7FFFFFFF 688826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_WMVFORMATTYPE; 689826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 690826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 6916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 6926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * WMV Params 693826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 694826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 695826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 696826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX specification version information 697826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 698826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eFormat : Version of WMV stream / data 699826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 700826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_WMVTYPE { 7016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 702826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 703826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 704826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_WMVFORMATTYPE eFormat; 705826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PARAM_WMVTYPE; 706826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 707826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 7086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 7096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Real Video Version 710826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 711826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_RVFORMATTYPE { 712826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_RVFormatUnused = 0, /**< Format unused or unknown */ 713826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_RVFormat8, /**< Real Video format 8 */ 714826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_RVFormat9, /**< Real Video format 9 */ 715826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_RVFormatG2, /**< Real Video Format G2 */ 7166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_RVFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 717826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_RVFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 718826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_RVFormatMax = 0x7FFFFFFF 719826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_RVFORMATTYPE; 720826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 721826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 7226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 7236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Real Video Params 724826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 725826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STUCT MEMBERS: 726826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 7276eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion : OMX specification version information 728826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 729826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eFormat : Version of RV stream / data 730826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nBitsPerPixel : Bits per pixel coded in the frame 731826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPaddedWidth : Padded width in pixel of a video frame 732826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPaddedHeight : Padded Height in pixels of a video frame 733826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nFrameRate : Rate of video in frames per second 734826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nBitstreamFlags : Flags which internal information about the bitstream 735826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nBitstreamVersion : Bitstream version 736826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nMaxEncodeFrameSize: Max encoded frame size 737826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bEnablePostFilter : Turn on/off post filter 738826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bEnableTemporalInterpolation : Turn on/off temporal interpolation 7396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bEnableLatencyMode : When enabled, the decoder does not display a decoded 7406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * frame until it has detected that no enhancement layer 7416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * frames or dependent B frames will be coming. This 7426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * detection usually occurs when a subsequent non-B 7436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * frame is encountered 744826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 745826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_RVTYPE { 746826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 747826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 748826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 749826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_RVFORMATTYPE eFormat; 750826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U16 nBitsPerPixel; 751826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U16 nPaddedWidth; 752826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U16 nPaddedHeight; 753826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nFrameRate; 754826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nBitstreamFlags; 755826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nBitstreamVersion; 756826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nMaxEncodeFrameSize; 757826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bEnablePostFilter; 758826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bEnableTemporalInterpolation; 759826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bEnableLatencyMode; 760826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PARAM_RVTYPE; 761826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 762826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 7636eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 7646eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * AVC profile types, each profile indicates support for various 765826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * performance bounds and different annexes. 766826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 767826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_AVCPROFILETYPE { 768826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCProfileBaseline = 0x01, /**< Baseline profile */ 769826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCProfileMain = 0x02, /**< Main profile */ 770826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCProfileExtended = 0x04, /**< Extended profile */ 771826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCProfileHigh = 0x08, /**< High profile */ 772826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCProfileHigh10 = 0x10, /**< High 10 profile */ 773826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCProfileHigh422 = 0x20, /**< High 4:2:2 profile */ 774826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCProfileHigh444 = 0x40, /**< High 4:4:4 profile */ 7756eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_AVCProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 776826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 7776eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_AVCProfileMax = 0x7FFFFFFF 778826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_AVCPROFILETYPE; 779826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 780826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 7816eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 7826eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * AVC level types, each level indicates support for various frame sizes, 7836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bit rates, decoder frame rates. No need 784826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 785826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_AVCLEVELTYPE { 786826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevel1 = 0x01, /**< Level 1 */ 787826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevel1b = 0x02, /**< Level 1b */ 788826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevel11 = 0x04, /**< Level 1.1 */ 789826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevel12 = 0x08, /**< Level 1.2 */ 790826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevel13 = 0x10, /**< Level 1.3 */ 791826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevel2 = 0x20, /**< Level 2 */ 792826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevel21 = 0x40, /**< Level 2.1 */ 793826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevel22 = 0x80, /**< Level 2.2 */ 794826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevel3 = 0x100, /**< Level 3 */ 795826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevel31 = 0x200, /**< Level 3.1 */ 796826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevel32 = 0x400, /**< Level 3.2 */ 797826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevel4 = 0x800, /**< Level 4 */ 798826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevel41 = 0x1000, /**< Level 4.1 */ 799826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevel42 = 0x2000, /**< Level 4.2 */ 800826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevel5 = 0x4000, /**< Level 5 */ 801826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevel51 = 0x8000, /**< Level 5.1 */ 8026eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_AVCLevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 803826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 8046eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_AVCLevelMax = 0x7FFFFFFF 805826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_AVCLEVELTYPE; 806826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 807826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 8086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 8096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * AVC loop filter modes 810826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 811826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OMX_VIDEO_AVCLoopFilterEnable : Enable 812826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OMX_VIDEO_AVCLoopFilterDisable : Disable 813826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OMX_VIDEO_AVCLoopFilterDisableSliceBoundary : Disabled on slice boundaries 814826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 815826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_AVCLOOPFILTERTYPE { 816826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLoopFilterEnable = 0, 817826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLoopFilterDisable, 818826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLoopFilterDisableSliceBoundary, 8196eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_AVCLoopFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 820826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLoopFilterVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 821826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLoopFilterMax = 0x7FFFFFFF 822826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_AVCLOOPFILTERTYPE; 823826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 824826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 8256eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 8266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * AVC params 827826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 828826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 829826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 830826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX specification version information 831826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 8326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nSliceHeaderSpacing : Number of macroblocks between slice header, put 833826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * zero if not used 834826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPFrames : Number of P frames between each I frame 835826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nBFrames : Number of B frames between each I frame 836826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bUseHadamard : Enable/disable Hadamard transform 837826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nRefFrames : Max number of reference frames to use for inter 838826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * motion search (1-16) 839826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nRefIdxTrailing : Pic param set ref frame index (index into ref 840826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * frame buffer of trailing frames list), B frame 841826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * support 842826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nRefIdxForward : Pic param set ref frame index (index into ref 843826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * frame buffer of forward frames list), B frame 844826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * support 8456eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bEnableUEP : Enable/disable unequal error protection. This 846826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * is only valid of data partitioning is enabled. 847826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bEnableFMO : Enable/disable flexible macroblock ordering 848826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bEnableASO : Enable/disable arbitrary slice ordering 849826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bEnableRS : Enable/disable sending of redundant slices 850826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eProfile : AVC profile(s) to use 851826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eLevel : AVC level(s) to use 8526eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nAllowedPictureTypes : Specifies the picture types allowed in the 853826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bitstream 8546eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bFrameMBsOnly : specifies that every coded picture of the 8556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * coded video sequence is a coded frame 856826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * containing only frame macroblocks 8576eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bMBAFF : Enable/disable switching between frame and 858826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * field macroblocks within a picture 8596eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bEntropyCodingCABAC : Entropy decoding method to be applied for the 8606eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * syntax elements for which two descriptors appear 861826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * in the syntax tables 8626eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bWeightedPPrediction : Enable/disable weighted prediction shall not 863826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * be applied to P and SP slices 8646eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nWeightedBipredicitonMode : Default weighted prediction is applied to B 8656eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * slices 866826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bconstIpred : Enable/disable intra prediction 8676eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bDirect8x8Inference : Specifies the method used in the derivation 8686eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * process for luma motion vectors for B_Skip, 8696eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * B_Direct_16x16 and B_Direct_8x8 as specified 8706eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * in subclause 8.4.1.2 of the AVC spec 871826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * bDirectSpatialTemporal : Flag indicating spatial or temporal direct 8726eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * mode used in B slice coding (related to 8736eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bDirect8x8Inference) . Spatial direct mode is 874826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * more common and should be the default. 875826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nCabacInitIdx : Index used to init CABAC contexts 876826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eLoopFilterMode : Enable/disable loop filter 877826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 878826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_AVCTYPE { 8796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 8806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; 8816eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPortIndex; 8826eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSliceHeaderSpacing; 8836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPFrames; 8846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nBFrames; 885826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bUseHadamard; 8866eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nRefFrames; 887826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nRefIdx10ActiveMinus1; 888826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nRefIdx11ActiveMinus1; 8896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bEnableUEP; 8906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bEnableFMO; 8916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bEnableASO; 8926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bEnableRS; 893826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCPROFILETYPE eProfile; 8946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_AVCLEVELTYPE eLevel; 8956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nAllowedPictureTypes; 89661a2c6a19dbd06a317a419623020e02056661876Praveen Chavan OMX_BOOL bFrameMBsOnly; 8976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bMBAFF; 8986eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bEntropyCodingCABAC; 8996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bWeightedPPrediction; 9006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nWeightedBipredicitonMode; 901826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bconstIpred ; 9026eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bDirect8x8Inference; 903826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bDirectSpatialTemporal; 904826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nCabacInitIdc; 905826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCLOOPFILTERTYPE eLoopFilterMode; 906826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PARAM_AVCTYPE; 907826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 908826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_PROFILELEVELTYPE { 9096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 9106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; 9116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPortIndex; 9126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 eProfile; /**< type is OMX_VIDEO_AVCPROFILETYPE, OMX_VIDEO_H263PROFILETYPE, 913826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev or OMX_VIDEO_MPEG4PROFILETYPE depending on context */ 9146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 eLevel; /**< type is OMX_VIDEO_AVCLEVELTYPE, OMX_VIDEO_H263LEVELTYPE, 915826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev or OMX_VIDEO_MPEG4PROFILETYPE depending on context */ 916826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nProfileIndex; /**< Used to query for individual profile support information, 9176eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal This parameter is valid only for 918826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_IndexParamVideoProfileLevelQuerySupported index, 919826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev For all other indices this parameter is to be ignored. */ 920826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PARAM_PROFILELEVELTYPE; 921826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 9226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 9236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure for dynamically configuring bitrate mode of a codec. 924826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 925826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 926826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the struct in bytes 927826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX spec version info 928826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this struct applies to 929826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nEncodeBitrate : Target average bitrate to be generated in bps 930826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 931826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_CONFIG_BITRATETYPE { 9326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 9336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; 9346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPortIndex; 9356eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nEncodeBitrate; 936826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_CONFIG_BITRATETYPE; 937826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 9386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 939826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Defines Encoder Frame Rate setting 940826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 941826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 942826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 9436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion : OMX specification version information 944826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 945826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * xEncodeFramerate : Encoding framerate represented in Q16 format 946826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 947826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_FRAMERATETYPE { 948826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 949826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 950826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 951826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 xEncodeFramerate; /* Q16 format */ 952826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_FRAMERATETYPE; 953826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 954826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_INTRAREFRESHVOPTYPE { 955826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 956826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 957826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 958826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL IntraRefreshVOP; 959826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_INTRAREFRESHVOPTYPE; 960826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 961826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_MACROBLOCKERRORMAPTYPE { 962826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 963826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 964826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 965826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nErrMapSize; /* Size of the Error Map in bytes */ 966826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U8 ErrMap[1]; /* Error map hint */ 967826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_MACROBLOCKERRORMAPTYPE; 968826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 969826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_CONFIG_MBERRORREPORTINGTYPE { 970826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 971826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 972826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 973826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_BOOL bEnabled; 974826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_CONFIG_MBERRORREPORTINGTYPE; 975826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 976826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_PARAM_MACROBLOCKSTYPE { 977826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize; 978826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 979826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 980826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nMacroblocks; 981826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_PARAM_MACROBLOCKSTYPE; 982826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 9836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 9846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * AVC Slice Mode modes 985826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 986826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OMX_VIDEO_SLICEMODE_AVCDefault : Normal frame encoding, one slice per frame 987826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OMX_VIDEO_SLICEMODE_AVCMBSlice : NAL mode, number of MBs per frame 988826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OMX_VIDEO_SLICEMODE_AVCByteSlice : NAL mode, number of bytes per frame 989826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 990826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_VIDEO_AVCSLICEMODETYPE { 991826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_SLICEMODE_AVCDefault = 0, 992826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_SLICEMODE_AVCMBSlice, 993826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_SLICEMODE_AVCByteSlice, 9946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_SLICEMODE_AVCKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 995826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_SLICEMODE_AVCVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 996826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_SLICEMODE_AVCLevelMax = 0x7FFFFFFF 997826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_AVCSLICEMODETYPE; 998826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 9996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 10006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * AVC FMO Slice Mode Params 1001826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 1002826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 1003826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 1004826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX specification version information 1005826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 1006826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nNumSliceGroups : Specifies the number of slice groups 1007826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSliceGroupMapType : Specifies the type of slice groups 1008826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * eSliceMode : Specifies the type of slice 1009826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 1010826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_AVCSLICEFMO { 10116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 1012826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 1013826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 1014826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U8 nNumSliceGroups; 1015826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U8 nSliceGroupMapType; 1016826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VIDEO_AVCSLICEMODETYPE eSliceMode; 1017826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_PARAM_AVCSLICEFMO; 1018826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 10196eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 1020826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * AVC IDR Period Configs 1021826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 1022826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 1023826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 1024826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX specification version information 1025826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 1026826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nIDRPeriod : Specifies periodicity of IDR frames 1027826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPFrames : Specifies internal of coding Intra frames 1028826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 1029826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_CONFIG_AVCINTRAPERIOD { 10306eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 1031826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 1032826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 1033826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nIDRPeriod; 1034826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPFrames; 1035826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_CONFIG_AVCINTRAPERIOD; 1036826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 10376eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 1038826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * AVC NAL Size Configs 1039826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 1040826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS: 1041826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nSize : Size of the structure in bytes 1042826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nVersion : OMX specification version information 1043826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nPortIndex : Port that this structure applies to 1044826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * nNaluBytes : Specifies the NAL unit size 1045826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */ 1046826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VIDEO_CONFIG_NALSIZE { 10476eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 1048826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion; 1049826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex; 1050826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nNaluBytes; 1051826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VIDEO_CONFIG_NALSIZE; 1052826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 1053826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** @} */ 1054826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 1055826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifdef __cplusplus 1056826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} 1057826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif /* __cplusplus */ 1058826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 1059826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif 1060826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/* File EOF */ 1061826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev 1062