1dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 26eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Copyright (c) 2008 The Khronos Group Inc. 36eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 4dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Permission is hereby granted, free of charge, to any person obtaining 5dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * a copy of this software and associated documentation files (the 6dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * "Software"), to deal in the Software without restriction, including 7dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * without limitation the rights to use, copy, modify, merge, publish, 8dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * distribute, sublicense, and/or sell copies of the Software, and to 9dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * permit persons to whom the Software is furnished to do so, subject 106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to the following conditions: 11dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * The above copyright notice and this permission notice shall be included 126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * in all copies or substantial portions of the Software. 136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 14dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 15dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 17dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 18dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 19dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 22dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 23dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 25dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * @file OMX_Video.h - OpenMax IL version 1.1.2 266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * The structures is needed by Video components to exchange parameters 27dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * and configuration data with OMX components. 28dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 29dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#ifndef OMX_Video_h 30dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_Video_h 31dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 32dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** @defgroup video OpenMAX IL Video Domain 33dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * @ingroup iv 34dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Structures for OpenMAX IL Video domain 35dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * @{ 36dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 37dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 38dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#ifdef __cplusplus 39dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandextern "C" { 40dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#endif /* __cplusplus */ 41dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 42dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 43dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 44dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Each OMX header must include all required header files to allow the 45dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * header to compile without errors. The includes below are required 466eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * for this header file to compile successfully 47dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 48dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 49dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#include <OMX_IVCommon.h> 50dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 51dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 52dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 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 59dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * up to the codec to handle this. 60dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 61dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_CODINGTYPE { 62dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_CodingUnused, /**< Value when coding is N/A */ 63dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_CodingAutoDetect, /**< Autodetection of coding type */ 64dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_CodingMPEG2, /**< AKA: H.262 */ 65dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_CodingH263, /**< H.263 */ 66dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_CodingMPEG4, /**< MPEG-4 */ 67dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_CodingWMV, /**< all versions of Windows Media Video */ 68dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_CodingRV, /**< all versions of Real Video */ 69dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_CodingAVC, /**< H.264/AVC */ 70dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_CodingMJPEG, /**< Motion JPEG */ 716eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 72dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 73dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_CodingMax = 0x7FFFFFFF 74dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_CODINGTYPE; 75dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 76dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 77dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 786eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Data structure used to define a video path. The number of Video paths for 796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * input and output will vary by type of the Video component. 806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 81dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Input (aka Source) : zero Inputs, one Output, 82dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Splitter : one Input, 2 or more Outputs, 83dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Processing Element : one Input, one output, 84dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Mixer : 2 or more inputs, one output, 85dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Output (aka Sink) : one Input, zero outputs. 866eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 876eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * The PortDefinition structure is used to define all of the parameters 886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * necessary for the compliant component to setup an input or an output video 896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * path. If additional vendor specific data is required, it should be 906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * transmitted to the component using the CustomCommand function. Compliant 916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * components will prepopulate this structure with optimal values during the 92dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * GetDefaultInitParams command. 93dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 94dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 95dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * cMIMEType : MIME type of data for the port 966eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * pNativeRender : Platform specific reference for a display if a 97dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * sync, otherwise this field is 0 986eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nFrameWidth : Width of frame to be used on channel if 99dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * uncompressed format is used. Use 0 for unknown, 100dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * don't care or variable 1016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nFrameHeight : Height of frame to be used on channel if 102dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * uncompressed format is used. Use 0 for unknown, 103dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * don't care or variable 1046eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nStride : Number of bytes per span of an image 105dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * (i.e. indicates the number of bytes to get 106dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * from span N to span N+1, where negative stride 107dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * indicates the image is bottom up 108dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSliceHeight : Height used when encoding in slices 1096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nBitrate : Bit rate of frame to be used on channel if 1106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * compressed format is used. Use 0 for unknown, 111dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * don't care or variable 1126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * xFramerate : Frame rate to be used on channel if uncompressed 1136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * format is used. Use 0 for unknown, don't care or 114dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * variable. Units are Q16 frames per second. 1156eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bFlagErrorConcealment : Turns on error concealment if it is supported by 116dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * the OMX component 1176eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * eCompressionFormat : Compression format used in this instance of the 1186eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * component. When OMX_VIDEO_CodingUnused is 119dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * specified, eColorFormat is used 120dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eColorFormat : Decompressed format used by this component 1216eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * pNativeWindow : Platform specific reference for a window object if a 1226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * display sink , otherwise this field is 0x0. 123dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 124dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PORTDEFINITIONTYPE { 125dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_STRING cMIMEType; 126dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_NATIVE_DEVICETYPE pNativeRender; 127dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nFrameWidth; 128dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nFrameHeight; 129dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_S32 nStride; 130dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSliceHeight; 131dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nBitrate; 132dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 xFramerate; 133dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bFlagErrorConcealment; 134dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_CODINGTYPE eCompressionFormat; 135dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_COLOR_FORMATTYPE eColorFormat; 136dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_NATIVE_WINDOWTYPE pNativeWindow; 137dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PORTDEFINITIONTYPE; 138dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 1396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 1406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Port format parameter. This structure is used to enumerate the various 141dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * data input/output format supported by the port. 1426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 143dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 144dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 145dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX specification version information 146dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Indicates which port to set 1476eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nIndex : Indicates the enumeration index for the format from 148dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 0x0 to N-1 1496eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * eCompressionFormat : Compression format used in this instance of the 1506eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * component. When OMX_VIDEO_CodingUnused is specified, 1516eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * eColorFormat is used 152dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eColorFormat : Decompressed format used by this component 153dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * xFrameRate : Indicates the video frame rate in Q16 format 154dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 155dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PARAM_PORTFORMATTYPE { 156dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 157dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 158dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 159dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nIndex; 1606eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_CODINGTYPE eCompressionFormat; 161dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_COLOR_FORMATTYPE eColorFormat; 162dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 xFramerate; 163dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PARAM_PORTFORMATTYPE; 164dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 165dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 166dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 1676eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * This is a structure for configuring video compression quantization 168dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * parameter values. Codecs may support different QP values for different 169dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * frame types. 170dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 171dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 172dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 173dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX specification version info 174dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 175dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nQpI : QP value to use for index frames 176dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nQpP : QP value to use for P frames 1776eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nQpB : QP values to use for bidirectional frames 178dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 179dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PARAM_QUANTIZATIONTYPE { 1806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 181dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 182dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 183dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nQpI; 184dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nQpP; 185dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nQpB; 186dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PARAM_QUANTIZATIONTYPE; 187dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 188dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 1896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 1906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure for configuration of video fast update parameters. 1916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 192dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 193dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 1946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion : OMX specification version info 195dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 196dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bEnableVFU : Enable/Disable video fast update 197dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nFirstGOB : Specifies the number of the first macroblock row 198dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nFirstMB : specifies the first MB relative to the specified first GOB 1996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nNumMBs : Specifies the number of MBs to be refreshed from nFirstGOB 200dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * and nFirstMB 201dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 202dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PARAM_VIDEOFASTUPDATETYPE { 2036eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 2046eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; 2056eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPortIndex; 2066eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bEnableVFU; 2076eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nFirstGOB; 2086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nFirstMB; 2096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nNumMBs; 210dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PARAM_VIDEOFASTUPDATETYPE; 211dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 212dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 2136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 2146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Enumeration of possible bitrate control types 215dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 216dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_CONTROLRATETYPE { 217dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_Video_ControlRateDisable, 218dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_Video_ControlRateVariable, 219dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_Video_ControlRateConstant, 220dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_Video_ControlRateVariableSkipFrames, 221dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_Video_ControlRateConstantSkipFrames, 2226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_Video_ControlRateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 223dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_Video_ControlRateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 224dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_Video_ControlRateMax = 0x7FFFFFFF 225dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_CONTROLRATETYPE; 226dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 227dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 2286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 2296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure for configuring bitrate mode of a codec. 230dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 231dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 232dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the struct in bytes 233dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX spec version info 234dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this struct applies to 235dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eControlRate : Control rate type enum 236dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nTargetBitrate : Target bitrate to encode with 237dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 238dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PARAM_BITRATETYPE { 2396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 2406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; 2416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPortIndex; 2426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_CONTROLRATETYPE eControlRate; 2436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nTargetBitrate; 244dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PARAM_BITRATETYPE; 245dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 246dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 2476eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 2486eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Enumeration of possible motion vector (MV) types 249dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 250dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_MOTIONVECTORTYPE { 251dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_Video_MotionVectorPixel, 252dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_Video_MotionVectorHalfPel, 253dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_Video_MotionVectorQuarterPel, 254dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_Video_MotionVectorEighthPel, 2556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_Video_MotionVectorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 256dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_Video_MotionVectorVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 257dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_Video_MotionVectorMax = 0x7FFFFFFF 258dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_MOTIONVECTORTYPE; 259dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 260dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 261dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 262dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Structure for configuring the number of motion vectors used as well 263dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * as their accuracy. 2646eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 265dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 266dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the struct in bytes 267dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX spec version info 268dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : port that this structure applies to 269dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eAccuracy : Enumerated MV accuracy 270dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bUnrestrictedMVs : Allow unrestricted MVs 271dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bFourMV : Allow use of 4 MVs 272dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * sXSearchRange : Search range in horizontal direction for MVs 273dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * sYSearchRange : Search range in vertical direction for MVs 274dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 275dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PARAM_MOTIONVECTORTYPE { 276dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 277dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 278dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 279dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_MOTIONVECTORTYPE eAccuracy; 280dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bUnrestrictedMVs; 281dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bFourMV; 282dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_S32 sXSearchRange; 283dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_S32 sYSearchRange; 284dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PARAM_MOTIONVECTORTYPE; 285dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 286dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 2876eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 2886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Enumeration of possible methods to use for Intra Refresh 289dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 290dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_INTRAREFRESHTYPE { 291dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_IntraRefreshCyclic, 292dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_IntraRefreshAdaptive, 293dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_IntraRefreshBoth, 2946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_IntraRefreshKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 295dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_IntraRefreshVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 296dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_IntraRefreshMax = 0x7FFFFFFF 297dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_INTRAREFRESHTYPE; 298dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 299dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 300dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 3016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure for configuring intra refresh mode 3026eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 303dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 304dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 305dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX specification version information 306dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 307dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eRefreshMode : Cyclic, Adaptive, or Both 3086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nAirMBs : Number of intra macroblocks to refresh in a frame when 309dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * AIR is enabled 3106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nAirRef : Number of times a motion marked macroblock has to be 311dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * intra coded 3126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nCirMBs : Number of consecutive macroblocks to be coded as "intra" 313dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * when CIR is enabled 314dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 315dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PARAM_INTRAREFRESHTYPE { 316dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 317dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 318dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 319dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_INTRAREFRESHTYPE eRefreshMode; 320dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nAirMBs; 321dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nAirRef; 322dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nCirMBs; 323dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PARAM_INTRAREFRESHTYPE; 324dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 325dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 326dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 3276eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure for enabling various error correction methods for video 328dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * compression. 329dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 330dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 331dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 3326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion : OMX specification version information 3336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nPortIndex : Port that this structure applies to 334dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bEnableHEC : Enable/disable header extension codes (HEC) 335dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bEnableResync : Enable/disable resynchronization markers 3366eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nResynchMarkerSpacing : Resynch markers interval (in bits) to be 3376eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * applied in the stream 3386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bEnableDataPartitioning : Enable/disable data partitioning 3396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bEnableRVLC : Enable/disable reversible variable length 340dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * coding 341dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 342dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE { 343dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 344dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 345dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 346dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bEnableHEC; 347dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bEnableResync; 348dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nResynchMarkerSpacing; 349dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bEnableDataPartitioning; 350dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bEnableRVLC; 351dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE; 352dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 353dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 3546eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 3556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Configuration of variable block-size motion compensation (VBSMC) 3566eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 357dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 358dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 3596eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion : OMX specification version information 360dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 361dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * b16x16 : Enable inter block search 16x16 362dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * b16x8 : Enable inter block search 16x8 363dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * b8x16 : Enable inter block search 8x16 364dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * b8x8 : Enable inter block search 8x8 365dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * b8x4 : Enable inter block search 8x4 366dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * b4x8 : Enable inter block search 4x8 367dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * b4x4 : Enable inter block search 4x4 368dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 369dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PARAM_VBSMCTYPE { 3706eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 3716eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; 3726eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPortIndex; 3736eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL b16x16; 3746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL b16x8; 375dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL b8x16; 376dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL b8x8; 377dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL b8x4; 378dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL b4x8; 379dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL b4x4; 380dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PARAM_VBSMCTYPE; 381dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 382dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 3836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 3846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * H.263 profile types, each profile indicates support for various 385dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * performance bounds and different annexes. 386dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 387dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * ENUMS: 3886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Baseline : Baseline Profile: H.263 (V1), no optional modes 3896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * H320 Coding : H.320 Coding Efficiency Backward Compatibility 390dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Profile: H.263+ (V2), includes annexes I, J, L.4 391dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * and T 3926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * BackwardCompatible : Backward Compatibility Profile: H.263 (V1), 3936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * includes annex F 3946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * ISWV2 : Interactive Streaming Wireless Profile: H.263+ 3956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * (V2), includes annexes I, J, K and T 3966eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * ISWV3 : Interactive Streaming Wireless Profile: H.263++ 3976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * (V3), includes profile 3 and annexes V and W.6.3.8 3986eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * HighCompression : Conversational High Compression Profile: H.263++ 3996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * (V3), includes profiles 1 & 2 and annexes D and U 4006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Internet : Conversational Internet Profile: H.263++ (V3), 4016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * includes profile 5 and annex K 4026eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Interlace : Conversational Interlace Profile: H.263++ (V3), 4036eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * includes profile 5 and annex W.6.3.11 4046eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * HighLatency : High Latency Profile: H.263++ (V3), includes 4056eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * profile 6 and annexes O.1 and P.5 406dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 407dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_H263PROFILETYPE { 4086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileBaseline = 0x01, 4096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileH320Coding = 0x02, 4106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileBackwardCompatible = 0x04, 4116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileISWV2 = 0x08, 4126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileISWV3 = 0x10, 4136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileHighCompression = 0x20, 4146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileInternet = 0x40, 4156eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileInterlace = 0x80, 4166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileHighLatency = 0x100, 4176eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 418dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_H263ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 4196eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263ProfileMax = 0x7FFFFFFF 420dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_H263PROFILETYPE; 421dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 422dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 4236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 4246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * H.263 level types, each level indicates support for various frame sizes, 425dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bit rates, decoder frame rates. 426dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 427dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_H263LEVELTYPE { 4286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263Level10 = 0x01, 4296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263Level20 = 0x02, 4306eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263Level30 = 0x04, 4316eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263Level40 = 0x08, 4326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263Level45 = 0x10, 4336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263Level50 = 0x20, 4346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263Level60 = 0x40, 4356eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263Level70 = 0x80, 4366eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 437dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_H263LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 4386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_H263LevelMax = 0x7FFFFFFF 439dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_H263LEVELTYPE; 440dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 441dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 4426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 4436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Specifies the picture type. These values should be OR'd to signal all 444dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * pictures types which are allowed. 445dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 446dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * ENUMS: 447dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Generic Picture Types: I, P and B 448dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * H.263 Specific Picture Types: SI and SP 449dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * H.264 Specific Picture Types: EI and EP 450dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * MPEG-4 Specific Picture Types: S 451dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 452dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_PICTURETYPE { 453dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_PictureTypeI = 0x01, 454dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_PictureTypeP = 0x02, 455dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_PictureTypeB = 0x04, 456dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_PictureTypeSI = 0x08, 457dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_PictureTypeSP = 0x10, 458dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_PictureTypeEI = 0x11, 459dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_PictureTypeEP = 0x12, 460dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_PictureTypeS = 0x14, 4616eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_PictureTypeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 462dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_PictureTypeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 463dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_PictureTypeMax = 0x7FFFFFFF 464dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PICTURETYPE; 465dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 466dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 4676eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 4686eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * H.263 Params 469dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 470dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 471dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 4726eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion : OMX specification version information 473dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 474dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPFrames : Number of P frames between each I frame 475dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nBFrames : Number of B frames between each I frame 476dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eProfile : H.263 profile(s) to use 477dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eLevel : H.263 level(s) to use 4786eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bPLUSPTYPEAllowed : Indicating that it is allowed to use PLUSPTYPE 4796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * (specified in the 1998 version of H.263) to 4806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * indicate custom picture sizes or clock 4816eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * frequencies 4826eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nAllowedPictureTypes : Specifies the picture types allowed in the 483dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bitstream 4846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bForceRoundingTypeToZero : value of the RTYPE bit (bit 6 of MPPTYPE) is 4856eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * not constrained. It is recommended to change 4866eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * the value of the RTYPE bit for each reference 487dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * picture in error-free communication 4886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nPictureHeaderRepetition : Specifies the frequency of picture header 489dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * repetition 4906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nGOBHeaderInterval : Specifies the interval of non-empty GOB 491dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * headers in units of GOBs 492dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 493dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PARAM_H263TYPE { 494dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 495dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 496dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 497dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPFrames; 498dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nBFrames; 499dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_H263PROFILETYPE eProfile; 500dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_H263LEVELTYPE eLevel; 501dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bPLUSPTYPEAllowed; 502dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nAllowedPictureTypes; 503dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bForceRoundingTypeToZero; 504dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPictureHeaderRepetition; 505dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nGOBHeaderInterval; 506dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PARAM_H263TYPE; 507dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 508dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 5096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 5106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * MPEG-2 profile types, each profile indicates support for various 511dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * performance bounds and different annexes. 512dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 513dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_MPEG2PROFILETYPE { 514dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_MPEG2ProfileSimple = 0, /**< Simple Profile */ 515dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_MPEG2ProfileMain, /**< Main Profile */ 516dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_MPEG2Profile422, /**< 4:2:2 Profile */ 517dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_MPEG2ProfileSNR, /**< SNR Profile */ 518dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_MPEG2ProfileSpatial, /**< Spatial Profile */ 519dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_MPEG2ProfileHigh, /**< High Profile */ 5206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 521dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_MPEG2ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 5226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2ProfileMax = 0x7FFFFFFF 523dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_MPEG2PROFILETYPE; 524dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 525dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 5266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 5276eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * MPEG-2 level types, each level indicates support for various frame 5286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * sizes, bit rates, decoder frame rates. No need 529dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 530dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_MPEG2LEVELTYPE { 5316eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2LevelLL = 0, /**< Low Level */ 5326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2LevelML, /**< Main Level */ 5336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2LevelH14, /**< High 1440 */ 5346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2LevelHL, /**< High Level */ 5356eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 536dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_MPEG2LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 5376eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2LevelMax = 0x7FFFFFFF 538dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_MPEG2LEVELTYPE; 539dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 540dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 5416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 5426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * MPEG-2 params 543dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 544dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 545dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 546dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX specification version information 547dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 548dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPFrames : Number of P frames between each I frame 549dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nBFrames : Number of B frames between each I frame 550dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eProfile : MPEG-2 profile(s) to use 551dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eLevel : MPEG-2 levels(s) to use 552dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 553dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PARAM_MPEG2TYPE { 5546eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 555dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 5566eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPortIndex; 5576eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPFrames; 5586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nBFrames; 559dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_MPEG2PROFILETYPE eProfile; 5606eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG2LEVELTYPE eLevel; 561dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PARAM_MPEG2TYPE; 562dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 563dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 5646eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 5656eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * MPEG-4 profile types, each profile indicates support for various 566dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * performance bounds and different annexes. 5676eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * 568dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * ENUMS: 569dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * - Simple Profile, Levels 1-3 570dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * - Simple Scalable Profile, Levels 1-2 571dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * - Core Profile, Levels 1-2 572dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * - Main Profile, Levels 2-4 573dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * - N-bit Profile, Level 2 574dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * - Scalable Texture Profile, Level 1 575dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * - Simple Face Animation Profile, Levels 1-2 576dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * - Simple Face and Body Animation (FBA) Profile, Levels 1-2 577dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * - Basic Animated Texture Profile, Levels 1-2 578dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * - Hybrid Profile, Levels 1-2 579dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * - Advanced Real Time Simple Profiles, Levels 1-4 580dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * - Core Scalable Profile, Levels 1-3 581dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * - Advanced Coding Efficiency Profile, Levels 1-4 582dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * - Advanced Core Profile, Levels 1-2 583dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * - Advanced Scalable Texture, Levels 2-3 584dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 585dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_MPEG4PROFILETYPE { 5866eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileSimple = 0x01, 5876eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileSimpleScalable = 0x02, 5886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileCore = 0x04, 5896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileMain = 0x08, 5906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileNbit = 0x10, 5916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileScalableTexture = 0x20, 5926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileSimpleFace = 0x40, 5936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileSimpleFBA = 0x80, 5946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileBasicAnimated = 0x100, 5956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileHybrid = 0x200, 5966eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileAdvancedRealTime = 0x400, 5976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileCoreScalable = 0x800, 5986eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileAdvancedCoding = 0x1000, 5996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileAdvancedCore = 0x2000, 600dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_MPEG4ProfileAdvancedScalable = 0x4000, 601dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_MPEG4ProfileAdvancedSimple = 0x8000, 6026eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 603dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_MPEG4ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 6046eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4ProfileMax = 0x7FFFFFFF 605dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_MPEG4PROFILETYPE; 606dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 607dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 6086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 6096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * MPEG-4 level types, each level indicates support for various frame 6106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * sizes, bit rates, decoder frame rates. No need 611dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 612dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_MPEG4LEVELTYPE { 6136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4Level0 = 0x01, /**< Level 0 */ 6146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4Level0b = 0x02, /**< Level 0b */ 6156eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4Level1 = 0x04, /**< Level 1 */ 6166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4Level2 = 0x08, /**< Level 2 */ 6176eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4Level3 = 0x10, /**< Level 3 */ 6186eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4Level4 = 0x20, /**< Level 4 */ 6196eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4Level4a = 0x40, /**< Level 4a */ 6206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4Level5 = 0x80, /**< Level 5 */ 6216eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 622dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_MPEG4LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 6236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_MPEG4LevelMax = 0x7FFFFFFF 624dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_MPEG4LEVELTYPE; 625dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 626dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 6276eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 628dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * MPEG-4 configuration. This structure handles configuration options 629dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * which are specific to MPEG4 algorithms 630dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 631dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 632dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 633dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX specification version information 634dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 6356eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nSliceHeaderSpacing : Number of macroblocks between slice header (H263+ 636dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Annex K). Put zero if not used 637dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bSVH : Enable Short Video Header mode 638dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bGov : Flag to enable GOV 6396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nPFrames : Number of P frames between each I frame (also called 640dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * GOV period) 641dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nBFrames : Number of B frames between each I frame 642dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nIDCVLCThreshold : Value of intra DC VLC threshold 643dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bACPred : Flag to use ac prediction 644dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nMaxPacketSize : Maximum size of packet in bytes. 6456eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nTimeIncRes : Used to pass VOP time increment resolution for MPEG4. 646dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Interpreted as described in MPEG4 standard. 647dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eProfile : MPEG-4 profile(s) to use. 648dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eLevel : MPEG-4 level(s) to use. 649dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nAllowedPictureTypes : Specifies the picture types allowed in the bitstream 650dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nHeaderExtension : Specifies the number of consecutive video packet 651dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * headers within a VOP 6526eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bReversibleVLC : Specifies whether reversible variable length coding 653dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * is in use 654dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 655dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PARAM_MPEG4TYPE { 656dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 657dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 658dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 659dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSliceHeaderSpacing; 660dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bSVH; 661dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bGov; 662dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPFrames; 663dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nBFrames; 664dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nIDCVLCThreshold; 665dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bACPred; 666dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nMaxPacketSize; 667dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nTimeIncRes; 668dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_MPEG4PROFILETYPE eProfile; 669dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_MPEG4LEVELTYPE eLevel; 670dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nAllowedPictureTypes; 671dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nHeaderExtension; 672dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bReversibleVLC; 673dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PARAM_MPEG4TYPE; 674dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 675dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 6766eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 6776eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * WMV Versions 678dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 679dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_WMVFORMATTYPE { 680dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_WMVFormatUnused = 0x01, /**< Format unused or unknown */ 681dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_WMVFormat7 = 0x02, /**< Windows Media Video format 7 */ 682dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_WMVFormat8 = 0x04, /**< Windows Media Video format 8 */ 683dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_WMVFormat9 = 0x08, /**< Windows Media Video format 9 */ 6846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_WMFFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 685dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_WMFFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 686dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_WMVFormatMax = 0x7FFFFFFF 687dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_WMVFORMATTYPE; 688dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 689dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 6906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 6916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * WMV Params 692dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 693dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 694dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 695dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX specification version information 696dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 697dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eFormat : Version of WMV stream / data 698dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 699dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PARAM_WMVTYPE { 7006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 701dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 702dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 703dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_WMVFORMATTYPE eFormat; 704dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PARAM_WMVTYPE; 705dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 706dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 7076eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 7086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Real Video Version 709dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 710dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_RVFORMATTYPE { 711dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_RVFormatUnused = 0, /**< Format unused or unknown */ 712dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_RVFormat8, /**< Real Video format 8 */ 713dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_RVFormat9, /**< Real Video format 9 */ 714dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_RVFormatG2, /**< Real Video Format G2 */ 7156eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_RVFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 716dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_RVFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 717dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_RVFormatMax = 0x7FFFFFFF 718dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_RVFORMATTYPE; 719dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 720dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 7216eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 7226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Real Video Params 723dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 724dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STUCT MEMBERS: 725dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 7266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion : OMX specification version information 727dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 728dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eFormat : Version of RV stream / data 729dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nBitsPerPixel : Bits per pixel coded in the frame 730dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPaddedWidth : Padded width in pixel of a video frame 731dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPaddedHeight : Padded Height in pixels of a video frame 732dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nFrameRate : Rate of video in frames per second 733dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nBitstreamFlags : Flags which internal information about the bitstream 734dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nBitstreamVersion : Bitstream version 735dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nMaxEncodeFrameSize: Max encoded frame size 736dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bEnablePostFilter : Turn on/off post filter 737dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bEnableTemporalInterpolation : Turn on/off temporal interpolation 7386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bEnableLatencyMode : When enabled, the decoder does not display a decoded 7396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * frame until it has detected that no enhancement layer 7406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * frames or dependent B frames will be coming. This 7416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * detection usually occurs when a subsequent non-B 7426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * frame is encountered 743dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 744dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PARAM_RVTYPE { 745dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 746dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 747dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 748dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_RVFORMATTYPE eFormat; 749dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U16 nBitsPerPixel; 750dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U16 nPaddedWidth; 751dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U16 nPaddedHeight; 752dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nFrameRate; 753dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nBitstreamFlags; 754dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nBitstreamVersion; 755dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nMaxEncodeFrameSize; 756dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bEnablePostFilter; 757dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bEnableTemporalInterpolation; 758dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bEnableLatencyMode; 759dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PARAM_RVTYPE; 760dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 761dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 7626eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 7636eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * AVC profile types, each profile indicates support for various 764dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * performance bounds and different annexes. 765dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 766dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_AVCPROFILETYPE { 767dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCProfileBaseline = 0x01, /**< Baseline profile */ 768dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCProfileMain = 0x02, /**< Main profile */ 769dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCProfileExtended = 0x04, /**< Extended profile */ 770dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCProfileHigh = 0x08, /**< High profile */ 771dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCProfileHigh10 = 0x10, /**< High 10 profile */ 772dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCProfileHigh422 = 0x20, /**< High 4:2:2 profile */ 773dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCProfileHigh444 = 0x40, /**< High 4:4:4 profile */ 7746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_AVCProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 775dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 7766eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_AVCProfileMax = 0x7FFFFFFF 777dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_AVCPROFILETYPE; 778dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 779dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 7806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 7816eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * AVC level types, each level indicates support for various frame sizes, 7826eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bit rates, decoder frame rates. No need 783dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 784dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_AVCLEVELTYPE { 785dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevel1 = 0x01, /**< Level 1 */ 786dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevel1b = 0x02, /**< Level 1b */ 787dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevel11 = 0x04, /**< Level 1.1 */ 788dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevel12 = 0x08, /**< Level 1.2 */ 789dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevel13 = 0x10, /**< Level 1.3 */ 790dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevel2 = 0x20, /**< Level 2 */ 791dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevel21 = 0x40, /**< Level 2.1 */ 792dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevel22 = 0x80, /**< Level 2.2 */ 793dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevel3 = 0x100, /**< Level 3 */ 794dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevel31 = 0x200, /**< Level 3.1 */ 795dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevel32 = 0x400, /**< Level 3.2 */ 796dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevel4 = 0x800, /**< Level 4 */ 797dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevel41 = 0x1000, /**< Level 4.1 */ 798dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevel42 = 0x2000, /**< Level 4.2 */ 799dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevel5 = 0x4000, /**< Level 5 */ 800dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevel51 = 0x8000, /**< Level 5.1 */ 8016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_AVCLevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 802dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 8036eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_AVCLevelMax = 0x7FFFFFFF 804dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_AVCLEVELTYPE; 805dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 806dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 8076eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 8086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * AVC loop filter modes 809dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 810dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OMX_VIDEO_AVCLoopFilterEnable : Enable 811dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OMX_VIDEO_AVCLoopFilterDisable : Disable 812dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OMX_VIDEO_AVCLoopFilterDisableSliceBoundary : Disabled on slice boundaries 813dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 814dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_AVCLOOPFILTERTYPE { 815dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLoopFilterEnable = 0, 816dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLoopFilterDisable, 817dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLoopFilterDisableSliceBoundary, 8186eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_AVCLoopFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 819dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLoopFilterVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 820dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLoopFilterMax = 0x7FFFFFFF 821dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_AVCLOOPFILTERTYPE; 822dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 823dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 8246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 8256eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * AVC params 826dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 827dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 828dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 829dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX specification version information 830dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 8316eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nSliceHeaderSpacing : Number of macroblocks between slice header, put 832dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * zero if not used 833dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPFrames : Number of P frames between each I frame 834dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nBFrames : Number of B frames between each I frame 835dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bUseHadamard : Enable/disable Hadamard transform 836dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nRefFrames : Max number of reference frames to use for inter 837dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * motion search (1-16) 838dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nRefIdxTrailing : Pic param set ref frame index (index into ref 839dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * frame buffer of trailing frames list), B frame 840dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * support 841dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nRefIdxForward : Pic param set ref frame index (index into ref 842dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * frame buffer of forward frames list), B frame 843dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * support 8446eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bEnableUEP : Enable/disable unequal error protection. This 845dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * is only valid of data partitioning is enabled. 846dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bEnableFMO : Enable/disable flexible macroblock ordering 847dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bEnableASO : Enable/disable arbitrary slice ordering 848dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bEnableRS : Enable/disable sending of redundant slices 849dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eProfile : AVC profile(s) to use 850dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eLevel : AVC level(s) to use 8516eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nAllowedPictureTypes : Specifies the picture types allowed in the 852dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bitstream 8536eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bFrameMBsOnly : specifies that every coded picture of the 8546eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * coded video sequence is a coded frame 855dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * containing only frame macroblocks 8566eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bMBAFF : Enable/disable switching between frame and 857dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * field macroblocks within a picture 8586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bEntropyCodingCABAC : Entropy decoding method to be applied for the 8596eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * syntax elements for which two descriptors appear 860dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * in the syntax tables 8616eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bWeightedPPrediction : Enable/disable weighted prediction shall not 862dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * be applied to P and SP slices 8636eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nWeightedBipredicitonMode : Default weighted prediction is applied to B 8646eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * slices 865dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bconstIpred : Enable/disable intra prediction 8666eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bDirect8x8Inference : Specifies the method used in the derivation 8676eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * process for luma motion vectors for B_Skip, 8686eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * B_Direct_16x16 and B_Direct_8x8 as specified 8696eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * in subclause 8.4.1.2 of the AVC spec 870dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * bDirectSpatialTemporal : Flag indicating spatial or temporal direct 8716eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * mode used in B slice coding (related to 8726eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * bDirect8x8Inference) . Spatial direct mode is 873dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * more common and should be the default. 874dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nCabacInitIdx : Index used to init CABAC contexts 875dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eLoopFilterMode : Enable/disable loop filter 876dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 877dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PARAM_AVCTYPE { 8786eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 8796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; 8806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPortIndex; 8816eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSliceHeaderSpacing; 8826eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPFrames; 8836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nBFrames; 884dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bUseHadamard; 8856eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nRefFrames; 886dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nRefIdx10ActiveMinus1; 887dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nRefIdx11ActiveMinus1; 8886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bEnableUEP; 8896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bEnableFMO; 8906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bEnableASO; 8916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bEnableRS; 892dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCPROFILETYPE eProfile; 8936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_AVCLEVELTYPE eLevel; 8946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nAllowedPictureTypes; 89561a2c6a19dbd06a317a419623020e02056661876Praveen Chavan OMX_BOOL bFrameMBsOnly; 8966eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bMBAFF; 8976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bEntropyCodingCABAC; 8986eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bWeightedPPrediction; 8996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nWeightedBipredicitonMode; 900dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bconstIpred ; 9016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_BOOL bDirect8x8Inference; 902dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bDirectSpatialTemporal; 903dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nCabacInitIdc; 904dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCLOOPFILTERTYPE eLoopFilterMode; 905dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PARAM_AVCTYPE; 906dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 907dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PARAM_PROFILELEVELTYPE { 9086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 9096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; 9106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPortIndex; 9116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 eProfile; /**< type is OMX_VIDEO_AVCPROFILETYPE, OMX_VIDEO_H263PROFILETYPE, 912dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand or OMX_VIDEO_MPEG4PROFILETYPE depending on context */ 9136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 eLevel; /**< type is OMX_VIDEO_AVCLEVELTYPE, OMX_VIDEO_H263LEVELTYPE, 914dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand or OMX_VIDEO_MPEG4PROFILETYPE depending on context */ 915dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nProfileIndex; /**< Used to query for individual profile support information, 9166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal This parameter is valid only for 917dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IndexParamVideoProfileLevelQuerySupported index, 918dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand For all other indices this parameter is to be ignored. */ 919dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PARAM_PROFILELEVELTYPE; 920dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 9216eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 9226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Structure for dynamically configuring bitrate mode of a codec. 923dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 924dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 925dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the struct in bytes 926dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX spec version info 927dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this struct applies to 928dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nEncodeBitrate : Target average bitrate to be generated in bps 929dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 930dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_CONFIG_BITRATETYPE { 9316eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 9326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VERSIONTYPE nVersion; 9336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nPortIndex; 9346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nEncodeBitrate; 935dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_CONFIG_BITRATETYPE; 936dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 9376eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 938dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Defines Encoder Frame Rate setting 939dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 940dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 941dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 9426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * nVersion : OMX specification version information 943dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 944dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * xEncodeFramerate : Encoding framerate represented in Q16 format 945dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 946dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_FRAMERATETYPE { 947dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 948dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 949dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 950dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 xEncodeFramerate; /* Q16 format */ 951dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_FRAMERATETYPE; 952dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 953dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_INTRAREFRESHVOPTYPE { 954dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 955dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 956dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 957dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL IntraRefreshVOP; 958dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_INTRAREFRESHVOPTYPE; 959dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 960dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_MACROBLOCKERRORMAPTYPE { 961dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 962dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 963dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 964dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nErrMapSize; /* Size of the Error Map in bytes */ 965dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U8 ErrMap[1]; /* Error map hint */ 966dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_MACROBLOCKERRORMAPTYPE; 967dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 968dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_CONFIG_MBERRORREPORTINGTYPE { 969dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 970dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 971dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 972dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bEnabled; 973dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_CONFIG_MBERRORREPORTINGTYPE; 974dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 975dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_PARAM_MACROBLOCKSTYPE { 976dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 977dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 978dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 979dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nMacroblocks; 980dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_PARAM_MACROBLOCKSTYPE; 981dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 9826eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 9836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * AVC Slice Mode modes 984dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 985dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OMX_VIDEO_SLICEMODE_AVCDefault : Normal frame encoding, one slice per frame 986dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OMX_VIDEO_SLICEMODE_AVCMBSlice : NAL mode, number of MBs per frame 987dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OMX_VIDEO_SLICEMODE_AVCByteSlice : NAL mode, number of bytes per frame 988dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 989dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_VIDEO_AVCSLICEMODETYPE { 990dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_SLICEMODE_AVCDefault = 0, 991dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_SLICEMODE_AVCMBSlice, 992dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_SLICEMODE_AVCByteSlice, 9936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_VIDEO_SLICEMODE_AVCKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 994dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_SLICEMODE_AVCVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 995dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_SLICEMODE_AVCLevelMax = 0x7FFFFFFF 996dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_AVCSLICEMODETYPE; 997dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 9986eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 9996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * AVC FMO Slice Mode Params 1000dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 1001dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 1002dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 1003dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX specification version information 1004dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 1005dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nNumSliceGroups : Specifies the number of slice groups 1006dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSliceGroupMapType : Specifies the type of slice groups 1007dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eSliceMode : Specifies the type of slice 1008dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 1009dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_PARAM_AVCSLICEFMO { 10106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 1011dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 1012dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 1013dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U8 nNumSliceGroups; 1014dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U8 nSliceGroupMapType; 1015dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_AVCSLICEMODETYPE eSliceMode; 1016dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_PARAM_AVCSLICEFMO; 1017dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 10186eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 1019dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * AVC IDR Period Configs 1020dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 1021dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 1022dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 1023dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX specification version information 1024dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 1025dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nIDRPeriod : Specifies periodicity of IDR frames 1026dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPFrames : Specifies internal of coding Intra frames 1027dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 1028dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_CONFIG_AVCINTRAPERIOD { 10296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 1030dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 1031dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 1032dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nIDRPeriod; 1033dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPFrames; 1034dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_CONFIG_AVCINTRAPERIOD; 1035dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 10366eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/** 1037dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * AVC NAL Size Configs 1038dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 1039dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 1040dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 1041dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX specification version information 1042dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 1043dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nNaluBytes : Specifies the NAL unit size 1044dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 1045dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VIDEO_CONFIG_NALSIZE { 10466eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal OMX_U32 nSize; 1047dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 1048dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 1049dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nNaluBytes; 1050dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VIDEO_CONFIG_NALSIZE; 1051dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 1052dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** @} */ 1053dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 1054dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#ifdef __cplusplus 1055dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} 1056dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#endif /* __cplusplus */ 1057dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 1058dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#endif 1059dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/* File EOF */ 1060dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 1061