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