1334de520b0369215b7931fefa424fb92d295f0ebJames Dong/* ------------------------------------------------------------------ 2334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Copyright (C) 1998-2009 PacketVideo 3334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 4334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Licensed under the Apache License, Version 2.0 (the "License"); 5334de520b0369215b7931fefa424fb92d295f0ebJames Dong * you may not use this file except in compliance with the License. 6334de520b0369215b7931fefa424fb92d295f0ebJames Dong * You may obtain a copy of the License at 7334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 8334de520b0369215b7931fefa424fb92d295f0ebJames Dong * http://www.apache.org/licenses/LICENSE-2.0 9334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 10334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Unless required by applicable law or agreed to in writing, software 11334de520b0369215b7931fefa424fb92d295f0ebJames Dong * distributed under the License is distributed on an "AS IS" BASIS, 12334de520b0369215b7931fefa424fb92d295f0ebJames Dong * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either 13334de520b0369215b7931fefa424fb92d295f0ebJames Dong * express or implied. 14334de520b0369215b7931fefa424fb92d295f0ebJames Dong * See the License for the specific language governing permissions 15334de520b0369215b7931fefa424fb92d295f0ebJames Dong * and limitations under the License. 16334de520b0369215b7931fefa424fb92d295f0ebJames Dong * ------------------------------------------------------------------- 17334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 18334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** 19a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Copyright (c) 2008 The Khronos Group Inc. 20a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * 21334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Permission is hereby granted, free of charge, to any person obtaining 22334de520b0369215b7931fefa424fb92d295f0ebJames Dong * a copy of this software and associated documentation files (the 23334de520b0369215b7931fefa424fb92d295f0ebJames Dong * "Software"), to deal in the Software without restriction, including 24334de520b0369215b7931fefa424fb92d295f0ebJames Dong * without limitation the rights to use, copy, modify, merge, publish, 25334de520b0369215b7931fefa424fb92d295f0ebJames Dong * distribute, sublicense, and/or sell copies of the Software, and to 26334de520b0369215b7931fefa424fb92d295f0ebJames Dong * permit persons to whom the Software is furnished to do so, subject 27a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * to the following conditions: 28334de520b0369215b7931fefa424fb92d295f0ebJames Dong * The above copyright notice and this permission notice shall be included 29a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * in all copies or substantial portions of the Software. 30a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * 31334de520b0369215b7931fefa424fb92d295f0ebJames Dong * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 32334de520b0369215b7931fefa424fb92d295f0ebJames Dong * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 33334de520b0369215b7931fefa424fb92d295f0ebJames Dong * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 34334de520b0369215b7931fefa424fb92d295f0ebJames Dong * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 35334de520b0369215b7931fefa424fb92d295f0ebJames Dong * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 36334de520b0369215b7931fefa424fb92d295f0ebJames Dong * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 37a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 38334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 39334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 40334de520b0369215b7931fefa424fb92d295f0ebJames Dong 41a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 42334de520b0369215b7931fefa424fb92d295f0ebJames Dong * @file OMX_Video.h - OpenMax IL version 1.1.2 43a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * The structures is needed by Video components to exchange parameters 44334de520b0369215b7931fefa424fb92d295f0ebJames Dong * and configuration data with OMX components. 45334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 46334de520b0369215b7931fefa424fb92d295f0ebJames Dong#ifndef OMX_Video_h 47334de520b0369215b7931fefa424fb92d295f0ebJames Dong#define OMX_Video_h 48334de520b0369215b7931fefa424fb92d295f0ebJames Dong 49334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @defgroup video OpenMAX IL Video Domain 50334de520b0369215b7931fefa424fb92d295f0ebJames Dong * @ingroup iv 51334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Structures for OpenMAX IL Video domain 52334de520b0369215b7931fefa424fb92d295f0ebJames Dong * @{ 53334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 54334de520b0369215b7931fefa424fb92d295f0ebJames Dong 55334de520b0369215b7931fefa424fb92d295f0ebJames Dong#ifdef __cplusplus 56334de520b0369215b7931fefa424fb92d295f0ebJames Dongextern "C" { 57334de520b0369215b7931fefa424fb92d295f0ebJames Dong#endif /* __cplusplus */ 58334de520b0369215b7931fefa424fb92d295f0ebJames Dong 59334de520b0369215b7931fefa424fb92d295f0ebJames Dong 60334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** 61334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Each OMX header must include all required header files to allow the 62334de520b0369215b7931fefa424fb92d295f0ebJames Dong * header to compile without errors. The includes below are required 63a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * for this header file to compile successfully 64334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 65334de520b0369215b7931fefa424fb92d295f0ebJames Dong 66334de520b0369215b7931fefa424fb92d295f0ebJames Dong#include <OMX_IVCommon.h> 67334de520b0369215b7931fefa424fb92d295f0ebJames Dong 68334de520b0369215b7931fefa424fb92d295f0ebJames Dong 69334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** 70a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Enumeration used to define the possible video compression codings. 71a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * NOTE: This essentially refers to file extensions. If the coding is 72a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * being used to specify the ENCODE type, then additional work 73a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * must be done to configure the exact flavor of the compression 74a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * to be used. For decode cases where the user application can 75a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * not differentiate between MPEG-4 and H.264 bit streams, it is 76334de520b0369215b7931fefa424fb92d295f0ebJames Dong * up to the codec to handle this. 77334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 78334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_CODINGTYPE { 79334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_CodingUnused, /**< Value when coding is N/A */ 80334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_CodingAutoDetect, /**< Autodetection of coding type */ 81334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_CodingMPEG2, /**< AKA: H.262 */ 82334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_CodingH263, /**< H.263 */ 83334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_CodingMPEG4, /**< MPEG-4 */ 84334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_CodingWMV, /**< all versions of Windows Media Video */ 85334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_CodingRV, /**< all versions of Real Video */ 86334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_CodingAVC, /**< H.264/AVC */ 87334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_CodingMJPEG, /**< Motion JPEG */ 885195e0808bbc0438f076c1ca92d3c257d64b7ca1hkuang OMX_VIDEO_CodingVP8, /**< Google VP8, formerly known as On2 VP8 */ 895195e0808bbc0438f076c1ca92d3c257d64b7ca1hkuang OMX_VIDEO_CodingVP9, /**< Google VP9 */ 90184077dee460d235c2f9ed3e6ecf9a6df06ae80cRachad OMX_VIDEO_CodingHEVC, /**< ITU H.265/HEVC */ 91a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_CodingKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 92334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_CodingVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 93334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_CodingMax = 0x7FFFFFFF 94334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_CODINGTYPE; 95334de520b0369215b7931fefa424fb92d295f0ebJames Dong 96334de520b0369215b7931fefa424fb92d295f0ebJames Dong 97334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** 98a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Data structure used to define a video path. The number of Video paths for 99a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * input and output will vary by type of the Video component. 100a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * 101334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Input (aka Source) : zero Inputs, one Output, 102334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Splitter : one Input, 2 or more Outputs, 103334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Processing Element : one Input, one output, 104334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Mixer : 2 or more inputs, one output, 105334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Output (aka Sink) : one Input, zero outputs. 106a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * 107a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * The PortDefinition structure is used to define all of the parameters 108a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * necessary for the compliant component to setup an input or an output video 109a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * path. If additional vendor specific data is required, it should be 110a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * transmitted to the component using the CustomCommand function. Compliant 111a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * components will prepopulate this structure with optimal values during the 112334de520b0369215b7931fefa424fb92d295f0ebJames Dong * GetDefaultInitParams command. 113334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 114334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 115334de520b0369215b7931fefa424fb92d295f0ebJames Dong * cMIMEType : MIME type of data for the port 116a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * pNativeRender : Platform specific reference for a display if a 117334de520b0369215b7931fefa424fb92d295f0ebJames Dong * sync, otherwise this field is 0 118a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nFrameWidth : Width of frame to be used on channel if 119334de520b0369215b7931fefa424fb92d295f0ebJames Dong * uncompressed format is used. Use 0 for unknown, 120334de520b0369215b7931fefa424fb92d295f0ebJames Dong * don't care or variable 121a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nFrameHeight : Height of frame to be used on channel if 122334de520b0369215b7931fefa424fb92d295f0ebJames Dong * uncompressed format is used. Use 0 for unknown, 123334de520b0369215b7931fefa424fb92d295f0ebJames Dong * don't care or variable 124a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nStride : Number of bytes per span of an image 125334de520b0369215b7931fefa424fb92d295f0ebJames Dong * (i.e. indicates the number of bytes to get 126334de520b0369215b7931fefa424fb92d295f0ebJames Dong * from span N to span N+1, where negative stride 127334de520b0369215b7931fefa424fb92d295f0ebJames Dong * indicates the image is bottom up 128334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSliceHeight : Height used when encoding in slices 129a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nBitrate : Bit rate of frame to be used on channel if 130a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * compressed format is used. Use 0 for unknown, 131334de520b0369215b7931fefa424fb92d295f0ebJames Dong * don't care or variable 132a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * xFramerate : Frame rate to be used on channel if uncompressed 133a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * format is used. Use 0 for unknown, don't care or 134334de520b0369215b7931fefa424fb92d295f0ebJames Dong * variable. Units are Q16 frames per second. 135a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * bFlagErrorConcealment : Turns on error concealment if it is supported by 136334de520b0369215b7931fefa424fb92d295f0ebJames Dong * the OMX component 137a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * eCompressionFormat : Compression format used in this instance of the 138a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * component. When OMX_VIDEO_CodingUnused is 139334de520b0369215b7931fefa424fb92d295f0ebJames Dong * specified, eColorFormat is used 140334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eColorFormat : Decompressed format used by this component 141a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * pNativeWindow : Platform specific reference for a window object if a 142a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * display sink , otherwise this field is 0x0. 143334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 144334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PORTDEFINITIONTYPE { 145334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_STRING cMIMEType; 146334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_NATIVE_DEVICETYPE pNativeRender; 147334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nFrameWidth; 148334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nFrameHeight; 149334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_S32 nStride; 150334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSliceHeight; 151334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nBitrate; 152334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 xFramerate; 153334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bFlagErrorConcealment; 154334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_CODINGTYPE eCompressionFormat; 155334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_COLOR_FORMATTYPE eColorFormat; 156334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_NATIVE_WINDOWTYPE pNativeWindow; 157334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PORTDEFINITIONTYPE; 158334de520b0369215b7931fefa424fb92d295f0ebJames Dong 159a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 160a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Port format parameter. This structure is used to enumerate the various 161334de520b0369215b7931fefa424fb92d295f0ebJames Dong * data input/output format supported by the port. 162a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * 163334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 164334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the structure in bytes 165334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nVersion : OMX specification version information 166334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Indicates which port to set 167a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nIndex : Indicates the enumeration index for the format from 168334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 0x0 to N-1 169a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * eCompressionFormat : Compression format used in this instance of the 170a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * component. When OMX_VIDEO_CodingUnused is specified, 171a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * eColorFormat is used 172334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eColorFormat : Decompressed format used by this component 173334de520b0369215b7931fefa424fb92d295f0ebJames Dong * xFrameRate : Indicates the video frame rate in Q16 format 174334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 175334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PARAM_PORTFORMATTYPE { 176334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 177334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 178334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 179334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nIndex; 180a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_CODINGTYPE eCompressionFormat; 181334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_COLOR_FORMATTYPE eColorFormat; 182334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 xFramerate; 183334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PARAM_PORTFORMATTYPE; 184334de520b0369215b7931fefa424fb92d295f0ebJames Dong 185334de520b0369215b7931fefa424fb92d295f0ebJames Dong 186334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** 187a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * This is a structure for configuring video compression quantization 188334de520b0369215b7931fefa424fb92d295f0ebJames Dong * parameter values. Codecs may support different QP values for different 189334de520b0369215b7931fefa424fb92d295f0ebJames Dong * frame types. 190334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 191334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 192334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the structure in bytes 193334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nVersion : OMX specification version info 194334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Port that this structure applies to 195334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nQpI : QP value to use for index frames 196334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nQpP : QP value to use for P frames 197a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nQpB : QP values to use for bidirectional frames 198334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 199334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PARAM_QUANTIZATIONTYPE { 200a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSize; 201334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 202334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 203334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nQpI; 204334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nQpP; 205334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nQpB; 206334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PARAM_QUANTIZATIONTYPE; 207334de520b0369215b7931fefa424fb92d295f0ebJames Dong 208334de520b0369215b7931fefa424fb92d295f0ebJames Dong 209a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 210a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Structure for configuration of video fast update parameters. 211a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * 212334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 213334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the structure in bytes 214a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nVersion : OMX specification version info 215334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Port that this structure applies to 216334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bEnableVFU : Enable/Disable video fast update 217334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nFirstGOB : Specifies the number of the first macroblock row 218334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nFirstMB : specifies the first MB relative to the specified first GOB 219a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nNumMBs : Specifies the number of MBs to be refreshed from nFirstGOB 220334de520b0369215b7931fefa424fb92d295f0ebJames Dong * and nFirstMB 221334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 222334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PARAM_VIDEOFASTUPDATETYPE { 223a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSize; 224a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VERSIONTYPE nVersion; 225a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nPortIndex; 226a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL bEnableVFU; 227a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nFirstGOB; 228a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nFirstMB; 229a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nNumMBs; 230334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PARAM_VIDEOFASTUPDATETYPE; 231334de520b0369215b7931fefa424fb92d295f0ebJames Dong 232334de520b0369215b7931fefa424fb92d295f0ebJames Dong 233a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 234a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Enumeration of possible bitrate control types 235334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 236334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_CONTROLRATETYPE { 237334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_Video_ControlRateDisable, 238334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_Video_ControlRateVariable, 239334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_Video_ControlRateConstant, 240334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_Video_ControlRateVariableSkipFrames, 241334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_Video_ControlRateConstantSkipFrames, 242a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_Video_ControlRateKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 243334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_Video_ControlRateVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 244334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_Video_ControlRateMax = 0x7FFFFFFF 245334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_CONTROLRATETYPE; 246334de520b0369215b7931fefa424fb92d295f0ebJames Dong 247334de520b0369215b7931fefa424fb92d295f0ebJames Dong 248a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 249a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Structure for configuring bitrate mode of a codec. 250334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 251334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 252334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the struct in bytes 253334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nVersion : OMX spec version info 254334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Port that this struct applies to 255334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eControlRate : Control rate type enum 256334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nTargetBitrate : Target bitrate to encode with 257334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 258334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PARAM_BITRATETYPE { 259a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSize; 260a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VERSIONTYPE nVersion; 261a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nPortIndex; 262a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_CONTROLRATETYPE eControlRate; 263a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nTargetBitrate; 264334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PARAM_BITRATETYPE; 265334de520b0369215b7931fefa424fb92d295f0ebJames Dong 266334de520b0369215b7931fefa424fb92d295f0ebJames Dong 267a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 268a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Enumeration of possible motion vector (MV) types 269334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 270334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_MOTIONVECTORTYPE { 271334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_Video_MotionVectorPixel, 272334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_Video_MotionVectorHalfPel, 273334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_Video_MotionVectorQuarterPel, 274334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_Video_MotionVectorEighthPel, 275a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_Video_MotionVectorKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 276334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_Video_MotionVectorVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 277334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_Video_MotionVectorMax = 0x7FFFFFFF 278334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_MOTIONVECTORTYPE; 279334de520b0369215b7931fefa424fb92d295f0ebJames Dong 280334de520b0369215b7931fefa424fb92d295f0ebJames Dong 281334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** 282334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Structure for configuring the number of motion vectors used as well 283334de520b0369215b7931fefa424fb92d295f0ebJames Dong * as their accuracy. 284a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * 285334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 286334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the struct in bytes 287334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nVersion : OMX spec version info 288334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : port that this structure applies to 289334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eAccuracy : Enumerated MV accuracy 290334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bUnrestrictedMVs : Allow unrestricted MVs 291334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bFourMV : Allow use of 4 MVs 292334de520b0369215b7931fefa424fb92d295f0ebJames Dong * sXSearchRange : Search range in horizontal direction for MVs 293334de520b0369215b7931fefa424fb92d295f0ebJames Dong * sYSearchRange : Search range in vertical direction for MVs 294334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 295334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PARAM_MOTIONVECTORTYPE { 296334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 297334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 298334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 299334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_MOTIONVECTORTYPE eAccuracy; 300334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bUnrestrictedMVs; 301334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bFourMV; 302334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_S32 sXSearchRange; 303334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_S32 sYSearchRange; 304334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PARAM_MOTIONVECTORTYPE; 305334de520b0369215b7931fefa424fb92d295f0ebJames Dong 306334de520b0369215b7931fefa424fb92d295f0ebJames Dong 307a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 308a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Enumeration of possible methods to use for Intra Refresh 309334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 310334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_INTRAREFRESHTYPE { 311334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_IntraRefreshCyclic, 312334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_IntraRefreshAdaptive, 313334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_IntraRefreshBoth, 314a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_IntraRefreshKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 315334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_IntraRefreshVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 316334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_IntraRefreshMax = 0x7FFFFFFF 317334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_INTRAREFRESHTYPE; 318334de520b0369215b7931fefa424fb92d295f0ebJames Dong 319334de520b0369215b7931fefa424fb92d295f0ebJames Dong 320334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** 321a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Structure for configuring intra refresh mode 322a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * 323334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 324334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the structure in bytes 325334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nVersion : OMX specification version information 326334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Port that this structure applies to 327334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eRefreshMode : Cyclic, Adaptive, or Both 328a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nAirMBs : Number of intra macroblocks to refresh in a frame when 329334de520b0369215b7931fefa424fb92d295f0ebJames Dong * AIR is enabled 330a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nAirRef : Number of times a motion marked macroblock has to be 331334de520b0369215b7931fefa424fb92d295f0ebJames Dong * intra coded 332a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nCirMBs : Number of consecutive macroblocks to be coded as "intra" 333334de520b0369215b7931fefa424fb92d295f0ebJames Dong * when CIR is enabled 334334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 335334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PARAM_INTRAREFRESHTYPE { 336334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 337334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 338334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 339334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_INTRAREFRESHTYPE eRefreshMode; 340334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nAirMBs; 341334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nAirRef; 342334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nCirMBs; 343334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PARAM_INTRAREFRESHTYPE; 344334de520b0369215b7931fefa424fb92d295f0ebJames Dong 345334de520b0369215b7931fefa424fb92d295f0ebJames Dong 346334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** 347a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Structure for enabling various error correction methods for video 348334de520b0369215b7931fefa424fb92d295f0ebJames Dong * compression. 349334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 350334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 351334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the structure in bytes 352a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nVersion : OMX specification version information 353a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nPortIndex : Port that this structure applies to 354334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bEnableHEC : Enable/disable header extension codes (HEC) 355334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bEnableResync : Enable/disable resynchronization markers 356a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nResynchMarkerSpacing : Resynch markers interval (in bits) to be 357a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * applied in the stream 358a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * bEnableDataPartitioning : Enable/disable data partitioning 359a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * bEnableRVLC : Enable/disable reversible variable length 360334de520b0369215b7931fefa424fb92d295f0ebJames Dong * coding 361334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 362334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE { 363334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 364334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 365334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 366334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bEnableHEC; 367334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bEnableResync; 368334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nResynchMarkerSpacing; 369334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bEnableDataPartitioning; 370334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bEnableRVLC; 371334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PARAM_ERRORCORRECTIONTYPE; 372334de520b0369215b7931fefa424fb92d295f0ebJames Dong 373334de520b0369215b7931fefa424fb92d295f0ebJames Dong 374a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 375a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Configuration of variable block-size motion compensation (VBSMC) 376a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * 377334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 378334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the structure in bytes 379a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nVersion : OMX specification version information 380334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Port that this structure applies to 381334de520b0369215b7931fefa424fb92d295f0ebJames Dong * b16x16 : Enable inter block search 16x16 382334de520b0369215b7931fefa424fb92d295f0ebJames Dong * b16x8 : Enable inter block search 16x8 383334de520b0369215b7931fefa424fb92d295f0ebJames Dong * b8x16 : Enable inter block search 8x16 384334de520b0369215b7931fefa424fb92d295f0ebJames Dong * b8x8 : Enable inter block search 8x8 385334de520b0369215b7931fefa424fb92d295f0ebJames Dong * b8x4 : Enable inter block search 8x4 386334de520b0369215b7931fefa424fb92d295f0ebJames Dong * b4x8 : Enable inter block search 4x8 387334de520b0369215b7931fefa424fb92d295f0ebJames Dong * b4x4 : Enable inter block search 4x4 388334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 389334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PARAM_VBSMCTYPE { 390a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSize; 391a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VERSIONTYPE nVersion; 392a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nPortIndex; 393a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL b16x16; 394a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL b16x8; 395334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL b8x16; 396334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL b8x8; 397334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL b8x4; 398334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL b4x8; 399334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL b4x4; 400334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PARAM_VBSMCTYPE; 401334de520b0369215b7931fefa424fb92d295f0ebJames Dong 402334de520b0369215b7931fefa424fb92d295f0ebJames Dong 403a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 404a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * H.263 profile types, each profile indicates support for various 405334de520b0369215b7931fefa424fb92d295f0ebJames Dong * performance bounds and different annexes. 406334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 407334de520b0369215b7931fefa424fb92d295f0ebJames Dong * ENUMS: 408a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Baseline : Baseline Profile: H.263 (V1), no optional modes 409a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * H320 Coding : H.320 Coding Efficiency Backward Compatibility 410334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Profile: H.263+ (V2), includes annexes I, J, L.4 411334de520b0369215b7931fefa424fb92d295f0ebJames Dong * and T 412a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * BackwardCompatible : Backward Compatibility Profile: H.263 (V1), 413a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * includes annex F 414a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * ISWV2 : Interactive Streaming Wireless Profile: H.263+ 415a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * (V2), includes annexes I, J, K and T 416a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * ISWV3 : Interactive Streaming Wireless Profile: H.263++ 417a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * (V3), includes profile 3 and annexes V and W.6.3.8 418a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * HighCompression : Conversational High Compression Profile: H.263++ 419a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * (V3), includes profiles 1 & 2 and annexes D and U 420a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Internet : Conversational Internet Profile: H.263++ (V3), 421a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * includes profile 5 and annex K 422a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Interlace : Conversational Interlace Profile: H.263++ (V3), 423a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * includes profile 5 and annex W.6.3.11 424a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * HighLatency : High Latency Profile: H.263++ (V3), includes 425a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * profile 6 and annexes O.1 and P.5 426334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 427334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_H263PROFILETYPE { 428a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263ProfileBaseline = 0x01, 429a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263ProfileH320Coding = 0x02, 430a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263ProfileBackwardCompatible = 0x04, 431a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263ProfileISWV2 = 0x08, 432a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263ProfileISWV3 = 0x10, 433a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263ProfileHighCompression = 0x20, 434a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263ProfileInternet = 0x40, 435a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263ProfileInterlace = 0x80, 436a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263ProfileHighLatency = 0x100, 437a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 438334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_H263ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 439a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263ProfileMax = 0x7FFFFFFF 440334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_H263PROFILETYPE; 441334de520b0369215b7931fefa424fb92d295f0ebJames Dong 442334de520b0369215b7931fefa424fb92d295f0ebJames Dong 443a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 444a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * H.263 level types, each level indicates support for various frame sizes, 445334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bit rates, decoder frame rates. 446334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 447334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_H263LEVELTYPE { 448a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263Level10 = 0x01, 449a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263Level20 = 0x02, 450a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263Level30 = 0x04, 451a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263Level40 = 0x08, 452a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263Level45 = 0x10, 453a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263Level50 = 0x20, 454a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263Level60 = 0x40, 455a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263Level70 = 0x80, 456a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 457334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_H263LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 458a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263LevelMax = 0x7FFFFFFF 459334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_H263LEVELTYPE; 460334de520b0369215b7931fefa424fb92d295f0ebJames Dong 461334de520b0369215b7931fefa424fb92d295f0ebJames Dong 462a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 463a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Specifies the picture type. These values should be OR'd to signal all 464334de520b0369215b7931fefa424fb92d295f0ebJames Dong * pictures types which are allowed. 465334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 466334de520b0369215b7931fefa424fb92d295f0ebJames Dong * ENUMS: 467334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Generic Picture Types: I, P and B 468334de520b0369215b7931fefa424fb92d295f0ebJames Dong * H.263 Specific Picture Types: SI and SP 469334de520b0369215b7931fefa424fb92d295f0ebJames Dong * H.264 Specific Picture Types: EI and EP 470334de520b0369215b7931fefa424fb92d295f0ebJames Dong * MPEG-4 Specific Picture Types: S 471334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 472334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_PICTURETYPE { 473334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_PictureTypeI = 0x01, 474334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_PictureTypeP = 0x02, 475334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_PictureTypeB = 0x04, 476334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_PictureTypeSI = 0x08, 477334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_PictureTypeSP = 0x10, 478334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_PictureTypeEI = 0x11, 479334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_PictureTypeEP = 0x12, 480334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_PictureTypeS = 0x14, 481a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_PictureTypeKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 482334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_PictureTypeVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 483334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_PictureTypeMax = 0x7FFFFFFF 484334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PICTURETYPE; 485334de520b0369215b7931fefa424fb92d295f0ebJames Dong 486334de520b0369215b7931fefa424fb92d295f0ebJames Dong 487a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 488a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * H.263 Params 489334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 490334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 491334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the structure in bytes 492a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nVersion : OMX specification version information 493334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Port that this structure applies to 494334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPFrames : Number of P frames between each I frame 495334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nBFrames : Number of B frames between each I frame 496334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eProfile : H.263 profile(s) to use 497334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eLevel : H.263 level(s) to use 498a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * bPLUSPTYPEAllowed : Indicating that it is allowed to use PLUSPTYPE 499a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * (specified in the 1998 version of H.263) to 500a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * indicate custom picture sizes or clock 501a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * frequencies 502a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nAllowedPictureTypes : Specifies the picture types allowed in the 503334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bitstream 504a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * bForceRoundingTypeToZero : value of the RTYPE bit (bit 6 of MPPTYPE) is 505a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * not constrained. It is recommended to change 506a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * the value of the RTYPE bit for each reference 507334de520b0369215b7931fefa424fb92d295f0ebJames Dong * picture in error-free communication 508a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nPictureHeaderRepetition : Specifies the frequency of picture header 509334de520b0369215b7931fefa424fb92d295f0ebJames Dong * repetition 510a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nGOBHeaderInterval : Specifies the interval of non-empty GOB 511334de520b0369215b7931fefa424fb92d295f0ebJames Dong * headers in units of GOBs 512334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 513334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PARAM_H263TYPE { 514334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 515334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 516334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 517334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPFrames; 518334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nBFrames; 519334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_H263PROFILETYPE eProfile; 520a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_H263LEVELTYPE eLevel; 521334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bPLUSPTYPEAllowed; 522334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nAllowedPictureTypes; 523334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bForceRoundingTypeToZero; 524334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPictureHeaderRepetition; 525334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nGOBHeaderInterval; 526334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PARAM_H263TYPE; 527334de520b0369215b7931fefa424fb92d295f0ebJames Dong 528334de520b0369215b7931fefa424fb92d295f0ebJames Dong 529a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 530a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * MPEG-2 profile types, each profile indicates support for various 531334de520b0369215b7931fefa424fb92d295f0ebJames Dong * performance bounds and different annexes. 532334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 533334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_MPEG2PROFILETYPE { 534334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_MPEG2ProfileSimple = 0, /**< Simple Profile */ 535334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_MPEG2ProfileMain, /**< Main Profile */ 536334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_MPEG2Profile422, /**< 4:2:2 Profile */ 537334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_MPEG2ProfileSNR, /**< SNR Profile */ 538334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_MPEG2ProfileSpatial, /**< Spatial Profile */ 539334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_MPEG2ProfileHigh, /**< High Profile */ 540a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG2ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 541334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_MPEG2ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 542a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG2ProfileMax = 0x7FFFFFFF 543334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_MPEG2PROFILETYPE; 544334de520b0369215b7931fefa424fb92d295f0ebJames Dong 545334de520b0369215b7931fefa424fb92d295f0ebJames Dong 546a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 547a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * MPEG-2 level types, each level indicates support for various frame 548a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * sizes, bit rates, decoder frame rates. No need 549334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 550334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_MPEG2LEVELTYPE { 551a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG2LevelLL = 0, /**< Low Level */ 552a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG2LevelML, /**< Main Level */ 553a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG2LevelH14, /**< High 1440 */ 554a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG2LevelHL, /**< High Level */ 555a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG2LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 556334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_MPEG2LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 557a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG2LevelMax = 0x7FFFFFFF 558334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_MPEG2LEVELTYPE; 559334de520b0369215b7931fefa424fb92d295f0ebJames Dong 560334de520b0369215b7931fefa424fb92d295f0ebJames Dong 561a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 562a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * MPEG-2 params 563334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 564334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 565334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the structure in bytes 566334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nVersion : OMX specification version information 567334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Port that this structure applies to 568334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPFrames : Number of P frames between each I frame 569334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nBFrames : Number of B frames between each I frame 570334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eProfile : MPEG-2 profile(s) to use 571334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eLevel : MPEG-2 levels(s) to use 572334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 573334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PARAM_MPEG2TYPE { 574a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSize; 575334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 576a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nPortIndex; 577a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nPFrames; 578a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nBFrames; 579334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_MPEG2PROFILETYPE eProfile; 580a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG2LEVELTYPE eLevel; 581334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PARAM_MPEG2TYPE; 582334de520b0369215b7931fefa424fb92d295f0ebJames Dong 583334de520b0369215b7931fefa424fb92d295f0ebJames Dong 584a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 585a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * MPEG-4 profile types, each profile indicates support for various 586334de520b0369215b7931fefa424fb92d295f0ebJames Dong * performance bounds and different annexes. 587a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * 588334de520b0369215b7931fefa424fb92d295f0ebJames Dong * ENUMS: 589334de520b0369215b7931fefa424fb92d295f0ebJames Dong * - Simple Profile, Levels 1-3 590334de520b0369215b7931fefa424fb92d295f0ebJames Dong * - Simple Scalable Profile, Levels 1-2 591334de520b0369215b7931fefa424fb92d295f0ebJames Dong * - Core Profile, Levels 1-2 592334de520b0369215b7931fefa424fb92d295f0ebJames Dong * - Main Profile, Levels 2-4 593334de520b0369215b7931fefa424fb92d295f0ebJames Dong * - N-bit Profile, Level 2 594334de520b0369215b7931fefa424fb92d295f0ebJames Dong * - Scalable Texture Profile, Level 1 595334de520b0369215b7931fefa424fb92d295f0ebJames Dong * - Simple Face Animation Profile, Levels 1-2 596334de520b0369215b7931fefa424fb92d295f0ebJames Dong * - Simple Face and Body Animation (FBA) Profile, Levels 1-2 597334de520b0369215b7931fefa424fb92d295f0ebJames Dong * - Basic Animated Texture Profile, Levels 1-2 598334de520b0369215b7931fefa424fb92d295f0ebJames Dong * - Hybrid Profile, Levels 1-2 599334de520b0369215b7931fefa424fb92d295f0ebJames Dong * - Advanced Real Time Simple Profiles, Levels 1-4 600334de520b0369215b7931fefa424fb92d295f0ebJames Dong * - Core Scalable Profile, Levels 1-3 601334de520b0369215b7931fefa424fb92d295f0ebJames Dong * - Advanced Coding Efficiency Profile, Levels 1-4 602334de520b0369215b7931fefa424fb92d295f0ebJames Dong * - Advanced Core Profile, Levels 1-2 603334de520b0369215b7931fefa424fb92d295f0ebJames Dong * - Advanced Scalable Texture, Levels 2-3 604334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 605334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_MPEG4PROFILETYPE { 606a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4ProfileSimple = 0x01, 607a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4ProfileSimpleScalable = 0x02, 608a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4ProfileCore = 0x04, 609a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4ProfileMain = 0x08, 610a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4ProfileNbit = 0x10, 611a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4ProfileScalableTexture = 0x20, 612a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4ProfileSimpleFace = 0x40, 613a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4ProfileSimpleFBA = 0x80, 614a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4ProfileBasicAnimated = 0x100, 615a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4ProfileHybrid = 0x200, 616a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4ProfileAdvancedRealTime = 0x400, 617a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4ProfileCoreScalable = 0x800, 618a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4ProfileAdvancedCoding = 0x1000, 619a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4ProfileAdvancedCore = 0x2000, 620334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_MPEG4ProfileAdvancedScalable = 0x4000, 621334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_MPEG4ProfileAdvancedSimple = 0x8000, 622a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4ProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 623334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_MPEG4ProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 624a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4ProfileMax = 0x7FFFFFFF 625334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_MPEG4PROFILETYPE; 626334de520b0369215b7931fefa424fb92d295f0ebJames Dong 627334de520b0369215b7931fefa424fb92d295f0ebJames Dong 628a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 629a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * MPEG-4 level types, each level indicates support for various frame 630a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * sizes, bit rates, decoder frame rates. No need 631334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 632334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_MPEG4LEVELTYPE { 633a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4Level0 = 0x01, /**< Level 0 */ 634a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4Level0b = 0x02, /**< Level 0b */ 635a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4Level1 = 0x04, /**< Level 1 */ 636a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4Level2 = 0x08, /**< Level 2 */ 637a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4Level3 = 0x10, /**< Level 3 */ 638a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4Level4 = 0x20, /**< Level 4 */ 639a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4Level4a = 0x40, /**< Level 4a */ 640a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4Level5 = 0x80, /**< Level 5 */ 641a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4LevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 642334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_MPEG4LevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 643a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_MPEG4LevelMax = 0x7FFFFFFF 644334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_MPEG4LEVELTYPE; 645334de520b0369215b7931fefa424fb92d295f0ebJames Dong 646334de520b0369215b7931fefa424fb92d295f0ebJames Dong 647a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 648334de520b0369215b7931fefa424fb92d295f0ebJames Dong * MPEG-4 configuration. This structure handles configuration options 649334de520b0369215b7931fefa424fb92d295f0ebJames Dong * which are specific to MPEG4 algorithms 650334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 651334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 652334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the structure in bytes 653334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nVersion : OMX specification version information 654334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Port that this structure applies to 655a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nSliceHeaderSpacing : Number of macroblocks between slice header (H263+ 656334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Annex K). Put zero if not used 657334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bSVH : Enable Short Video Header mode 658334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bGov : Flag to enable GOV 659a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nPFrames : Number of P frames between each I frame (also called 660334de520b0369215b7931fefa424fb92d295f0ebJames Dong * GOV period) 661334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nBFrames : Number of B frames between each I frame 662334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nIDCVLCThreshold : Value of intra DC VLC threshold 663334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bACPred : Flag to use ac prediction 664334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nMaxPacketSize : Maximum size of packet in bytes. 665a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nTimeIncRes : Used to pass VOP time increment resolution for MPEG4. 666334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Interpreted as described in MPEG4 standard. 667334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eProfile : MPEG-4 profile(s) to use. 668334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eLevel : MPEG-4 level(s) to use. 669334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nAllowedPictureTypes : Specifies the picture types allowed in the bitstream 670334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nHeaderExtension : Specifies the number of consecutive video packet 671334de520b0369215b7931fefa424fb92d295f0ebJames Dong * headers within a VOP 672a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * bReversibleVLC : Specifies whether reversible variable length coding 673334de520b0369215b7931fefa424fb92d295f0ebJames Dong * is in use 674334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 675334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PARAM_MPEG4TYPE { 676334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 677334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 678334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 679334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSliceHeaderSpacing; 680334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bSVH; 681334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bGov; 682334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPFrames; 683334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nBFrames; 684334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nIDCVLCThreshold; 685334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bACPred; 686334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nMaxPacketSize; 687334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nTimeIncRes; 688334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_MPEG4PROFILETYPE eProfile; 689334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_MPEG4LEVELTYPE eLevel; 690334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nAllowedPictureTypes; 691334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nHeaderExtension; 692334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bReversibleVLC; 693334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PARAM_MPEG4TYPE; 694334de520b0369215b7931fefa424fb92d295f0ebJames Dong 695334de520b0369215b7931fefa424fb92d295f0ebJames Dong 696a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 697a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * WMV Versions 698334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 699334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_WMVFORMATTYPE { 700334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_WMVFormatUnused = 0x01, /**< Format unused or unknown */ 701334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_WMVFormat7 = 0x02, /**< Windows Media Video format 7 */ 702334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_WMVFormat8 = 0x04, /**< Windows Media Video format 8 */ 703334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_WMVFormat9 = 0x08, /**< Windows Media Video format 9 */ 704a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_WMFFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 705334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_WMFFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 706334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_WMVFormatMax = 0x7FFFFFFF 707334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_WMVFORMATTYPE; 708334de520b0369215b7931fefa424fb92d295f0ebJames Dong 709334de520b0369215b7931fefa424fb92d295f0ebJames Dong 710a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 711a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * WMV Params 712334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 713334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 714334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the structure in bytes 715334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nVersion : OMX specification version information 716334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Port that this structure applies to 717334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eFormat : Version of WMV stream / data 718334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 719334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PARAM_WMVTYPE { 720a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSize; 721334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 722334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 723334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_WMVFORMATTYPE eFormat; 724334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PARAM_WMVTYPE; 725334de520b0369215b7931fefa424fb92d295f0ebJames Dong 726334de520b0369215b7931fefa424fb92d295f0ebJames Dong 727a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 728a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Real Video Version 729334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 730334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_RVFORMATTYPE { 731334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_RVFormatUnused = 0, /**< Format unused or unknown */ 732334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_RVFormat8, /**< Real Video format 8 */ 733334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_RVFormat9, /**< Real Video format 9 */ 734334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_RVFormatG2, /**< Real Video Format G2 */ 735a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_RVFormatKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 736334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_RVFormatVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 737334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_RVFormatMax = 0x7FFFFFFF 738334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_RVFORMATTYPE; 739334de520b0369215b7931fefa424fb92d295f0ebJames Dong 740334de520b0369215b7931fefa424fb92d295f0ebJames Dong 741a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 742a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Real Video Params 743334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 744334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STUCT MEMBERS: 745334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the structure in bytes 746a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nVersion : OMX specification version information 747334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Port that this structure applies to 748334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eFormat : Version of RV stream / data 749334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nBitsPerPixel : Bits per pixel coded in the frame 750334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPaddedWidth : Padded width in pixel of a video frame 751334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPaddedHeight : Padded Height in pixels of a video frame 752334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nFrameRate : Rate of video in frames per second 753334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nBitstreamFlags : Flags which internal information about the bitstream 754334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nBitstreamVersion : Bitstream version 755334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nMaxEncodeFrameSize: Max encoded frame size 756334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bEnablePostFilter : Turn on/off post filter 757334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bEnableTemporalInterpolation : Turn on/off temporal interpolation 758a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * bEnableLatencyMode : When enabled, the decoder does not display a decoded 759a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * frame until it has detected that no enhancement layer 760a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * frames or dependent B frames will be coming. This 761a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * detection usually occurs when a subsequent non-B 762a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * frame is encountered 763334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 764334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PARAM_RVTYPE { 765334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 766334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 767334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 768334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_RVFORMATTYPE eFormat; 769334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U16 nBitsPerPixel; 770334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U16 nPaddedWidth; 771334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U16 nPaddedHeight; 772334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nFrameRate; 773334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nBitstreamFlags; 774334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nBitstreamVersion; 775334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nMaxEncodeFrameSize; 776334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bEnablePostFilter; 777334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bEnableTemporalInterpolation; 778334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bEnableLatencyMode; 779334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PARAM_RVTYPE; 780334de520b0369215b7931fefa424fb92d295f0ebJames Dong 781334de520b0369215b7931fefa424fb92d295f0ebJames Dong 782a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 783a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * AVC profile types, each profile indicates support for various 784334de520b0369215b7931fefa424fb92d295f0ebJames Dong * performance bounds and different annexes. 785334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 786334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_AVCPROFILETYPE { 787334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCProfileBaseline = 0x01, /**< Baseline profile */ 788334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCProfileMain = 0x02, /**< Main profile */ 789334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCProfileExtended = 0x04, /**< Extended profile */ 790334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCProfileHigh = 0x08, /**< High profile */ 791334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCProfileHigh10 = 0x10, /**< High 10 profile */ 792334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCProfileHigh422 = 0x20, /**< High 4:2:2 profile */ 793334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCProfileHigh444 = 0x40, /**< High 4:4:4 profile */ 794a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_AVCProfileKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 795334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCProfileVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 796a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_AVCProfileMax = 0x7FFFFFFF 797334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_AVCPROFILETYPE; 798334de520b0369215b7931fefa424fb92d295f0ebJames Dong 799334de520b0369215b7931fefa424fb92d295f0ebJames Dong 800a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 801a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * AVC level types, each level indicates support for various frame sizes, 802a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * bit rates, decoder frame rates. No need 803334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 804334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_AVCLEVELTYPE { 805334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevel1 = 0x01, /**< Level 1 */ 806334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevel1b = 0x02, /**< Level 1b */ 807334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevel11 = 0x04, /**< Level 1.1 */ 808334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevel12 = 0x08, /**< Level 1.2 */ 809334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevel13 = 0x10, /**< Level 1.3 */ 810334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevel2 = 0x20, /**< Level 2 */ 811334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevel21 = 0x40, /**< Level 2.1 */ 812334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevel22 = 0x80, /**< Level 2.2 */ 813334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevel3 = 0x100, /**< Level 3 */ 814334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevel31 = 0x200, /**< Level 3.1 */ 815334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevel32 = 0x400, /**< Level 3.2 */ 816334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevel4 = 0x800, /**< Level 4 */ 817334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevel41 = 0x1000, /**< Level 4.1 */ 818334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevel42 = 0x2000, /**< Level 4.2 */ 819334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevel5 = 0x4000, /**< Level 5 */ 820334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevel51 = 0x8000, /**< Level 5.1 */ 821cd57b41db4b92ec04a1618c863060c821de12a5cLajos Molnar OMX_VIDEO_AVCLevel52 = 0x10000, /**< Level 5.2 */ 822a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_AVCLevelKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 823334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLevelVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 824a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_AVCLevelMax = 0x7FFFFFFF 825334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_AVCLEVELTYPE; 826334de520b0369215b7931fefa424fb92d295f0ebJames Dong 827334de520b0369215b7931fefa424fb92d295f0ebJames Dong 828a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 829a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * AVC loop filter modes 830334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 831334de520b0369215b7931fefa424fb92d295f0ebJames Dong * OMX_VIDEO_AVCLoopFilterEnable : Enable 832334de520b0369215b7931fefa424fb92d295f0ebJames Dong * OMX_VIDEO_AVCLoopFilterDisable : Disable 833334de520b0369215b7931fefa424fb92d295f0ebJames Dong * OMX_VIDEO_AVCLoopFilterDisableSliceBoundary : Disabled on slice boundaries 834334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 835334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_AVCLOOPFILTERTYPE { 836334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLoopFilterEnable = 0, 837334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLoopFilterDisable, 838334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLoopFilterDisableSliceBoundary, 839a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_AVCLoopFilterKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 840334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLoopFilterVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 841334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCLoopFilterMax = 0x7FFFFFFF 842334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_AVCLOOPFILTERTYPE; 843334de520b0369215b7931fefa424fb92d295f0ebJames Dong 844334de520b0369215b7931fefa424fb92d295f0ebJames Dong 845a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 846a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * AVC params 847334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 848334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 849334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the structure in bytes 850334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nVersion : OMX specification version information 851334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Port that this structure applies to 852a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nSliceHeaderSpacing : Number of macroblocks between slice header, put 853334de520b0369215b7931fefa424fb92d295f0ebJames Dong * zero if not used 854334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPFrames : Number of P frames between each I frame 855334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nBFrames : Number of B frames between each I frame 856334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bUseHadamard : Enable/disable Hadamard transform 857334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nRefFrames : Max number of reference frames to use for inter 858334de520b0369215b7931fefa424fb92d295f0ebJames Dong * motion search (1-16) 859334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nRefIdxTrailing : Pic param set ref frame index (index into ref 860334de520b0369215b7931fefa424fb92d295f0ebJames Dong * frame buffer of trailing frames list), B frame 861334de520b0369215b7931fefa424fb92d295f0ebJames Dong * support 862334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nRefIdxForward : Pic param set ref frame index (index into ref 863334de520b0369215b7931fefa424fb92d295f0ebJames Dong * frame buffer of forward frames list), B frame 864334de520b0369215b7931fefa424fb92d295f0ebJames Dong * support 865a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * bEnableUEP : Enable/disable unequal error protection. This 866334de520b0369215b7931fefa424fb92d295f0ebJames Dong * is only valid of data partitioning is enabled. 867334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bEnableFMO : Enable/disable flexible macroblock ordering 868334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bEnableASO : Enable/disable arbitrary slice ordering 869334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bEnableRS : Enable/disable sending of redundant slices 870334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eProfile : AVC profile(s) to use 871334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eLevel : AVC level(s) to use 872a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nAllowedPictureTypes : Specifies the picture types allowed in the 873334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bitstream 874a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * bFrameMBsOnly : specifies that every coded picture of the 875a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * coded video sequence is a coded frame 876334de520b0369215b7931fefa424fb92d295f0ebJames Dong * containing only frame macroblocks 877a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * bMBAFF : Enable/disable switching between frame and 878334de520b0369215b7931fefa424fb92d295f0ebJames Dong * field macroblocks within a picture 879a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * bEntropyCodingCABAC : Entropy decoding method to be applied for the 880a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * syntax elements for which two descriptors appear 881334de520b0369215b7931fefa424fb92d295f0ebJames Dong * in the syntax tables 882a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * bWeightedPPrediction : Enable/disable weighted prediction shall not 883334de520b0369215b7931fefa424fb92d295f0ebJames Dong * be applied to P and SP slices 884a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nWeightedBipredicitonMode : Default weighted prediction is applied to B 885a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * slices 886334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bconstIpred : Enable/disable intra prediction 887a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * bDirect8x8Inference : Specifies the method used in the derivation 888a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * process for luma motion vectors for B_Skip, 889a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * B_Direct_16x16 and B_Direct_8x8 as specified 890a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * in subclause 8.4.1.2 of the AVC spec 891334de520b0369215b7931fefa424fb92d295f0ebJames Dong * bDirectSpatialTemporal : Flag indicating spatial or temporal direct 892a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * mode used in B slice coding (related to 893a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * bDirect8x8Inference) . Spatial direct mode is 894334de520b0369215b7931fefa424fb92d295f0ebJames Dong * more common and should be the default. 895334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nCabacInitIdx : Index used to init CABAC contexts 896334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eLoopFilterMode : Enable/disable loop filter 897334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 898334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PARAM_AVCTYPE { 899a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSize; 900a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VERSIONTYPE nVersion; 901a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nPortIndex; 902a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSliceHeaderSpacing; 903a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nPFrames; 904a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nBFrames; 905334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bUseHadamard; 906a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nRefFrames; 907a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nRefIdx10ActiveMinus1; 908a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nRefIdx11ActiveMinus1; 909a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL bEnableUEP; 910a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL bEnableFMO; 911a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL bEnableASO; 912a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL bEnableRS; 913334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCPROFILETYPE eProfile; 914a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_AVCLEVELTYPE eLevel; 915a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nAllowedPictureTypes; 916a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL bFrameMBsOnly; 917a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL bMBAFF; 918a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL bEntropyCodingCABAC; 919a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL bWeightedPPrediction; 920a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nWeightedBipredicitonMode; 921334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bconstIpred ; 922a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL bDirect8x8Inference; 923a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_BOOL bDirectSpatialTemporal; 924a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nCabacInitIdc; 925a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_AVCLOOPFILTERTYPE eLoopFilterMode; 926334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PARAM_AVCTYPE; 927334de520b0369215b7931fefa424fb92d295f0ebJames Dong 928334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PARAM_PROFILELEVELTYPE { 929a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSize; 930a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VERSIONTYPE nVersion; 931a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nPortIndex; 932a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 eProfile; /**< type is OMX_VIDEO_AVCPROFILETYPE, OMX_VIDEO_H263PROFILETYPE, 933334de520b0369215b7931fefa424fb92d295f0ebJames Dong or OMX_VIDEO_MPEG4PROFILETYPE depending on context */ 934a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 eLevel; /**< type is OMX_VIDEO_AVCLEVELTYPE, OMX_VIDEO_H263LEVELTYPE, 935334de520b0369215b7931fefa424fb92d295f0ebJames Dong or OMX_VIDEO_MPEG4PROFILETYPE depending on context */ 936334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nProfileIndex; /**< Used to query for individual profile support information, 937a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar This parameter is valid only for 938334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_IndexParamVideoProfileLevelQuerySupported index, 939334de520b0369215b7931fefa424fb92d295f0ebJames Dong For all other indices this parameter is to be ignored. */ 940334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PARAM_PROFILELEVELTYPE; 941334de520b0369215b7931fefa424fb92d295f0ebJames Dong 942a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 943a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * Structure for dynamically configuring bitrate mode of a codec. 944334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 945334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 946334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the struct in bytes 947334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nVersion : OMX spec version info 948334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Port that this struct applies to 949334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nEncodeBitrate : Target average bitrate to be generated in bps 950334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 951334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_CONFIG_BITRATETYPE { 952a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSize; 953a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VERSIONTYPE nVersion; 954a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nPortIndex; 955a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nEncodeBitrate; 956334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_CONFIG_BITRATETYPE; 957334de520b0369215b7931fefa424fb92d295f0ebJames Dong 958a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 959334de520b0369215b7931fefa424fb92d295f0ebJames Dong * Defines Encoder Frame Rate setting 960334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 961334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 962334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the structure in bytes 963a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * nVersion : OMX specification version information 964334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Port that this structure applies to 965334de520b0369215b7931fefa424fb92d295f0ebJames Dong * xEncodeFramerate : Encoding framerate represented in Q16 format 966334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 967334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_CONFIG_FRAMERATETYPE { 968334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 969334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 970334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 971334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 xEncodeFramerate; /* Q16 format */ 972334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_CONFIG_FRAMERATETYPE; 973334de520b0369215b7931fefa424fb92d295f0ebJames Dong 974334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_CONFIG_INTRAREFRESHVOPTYPE { 975334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 976334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 977334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 978334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL IntraRefreshVOP; 979334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_CONFIG_INTRAREFRESHVOPTYPE; 980334de520b0369215b7931fefa424fb92d295f0ebJames Dong 981334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_CONFIG_MACROBLOCKERRORMAPTYPE { 982334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 983334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 984334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 985334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nErrMapSize; /* Size of the Error Map in bytes */ 986334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U8 ErrMap[1]; /* Error map hint */ 987334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_CONFIG_MACROBLOCKERRORMAPTYPE; 988334de520b0369215b7931fefa424fb92d295f0ebJames Dong 989334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_CONFIG_MBERRORREPORTINGTYPE { 990334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 991334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 992334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 993334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_BOOL bEnabled; 994334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_CONFIG_MBERRORREPORTINGTYPE; 995334de520b0369215b7931fefa424fb92d295f0ebJames Dong 996334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_PARAM_MACROBLOCKSTYPE { 997334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nSize; 998334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 999334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 1000334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nMacroblocks; 1001334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_PARAM_MACROBLOCKSTYPE; 1002334de520b0369215b7931fefa424fb92d295f0ebJames Dong 1003a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 1004a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * AVC Slice Mode modes 1005334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 1006334de520b0369215b7931fefa424fb92d295f0ebJames Dong * OMX_VIDEO_SLICEMODE_AVCDefault : Normal frame encoding, one slice per frame 1007334de520b0369215b7931fefa424fb92d295f0ebJames Dong * OMX_VIDEO_SLICEMODE_AVCMBSlice : NAL mode, number of MBs per frame 1008334de520b0369215b7931fefa424fb92d295f0ebJames Dong * OMX_VIDEO_SLICEMODE_AVCByteSlice : NAL mode, number of bytes per frame 1009334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 1010334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef enum OMX_VIDEO_AVCSLICEMODETYPE { 1011334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_SLICEMODE_AVCDefault = 0, 1012334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_SLICEMODE_AVCMBSlice, 1013334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_SLICEMODE_AVCByteSlice, 1014a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_VIDEO_SLICEMODE_AVCKhronosExtensions = 0x6F000000, /**< Reserved region for introducing Khronos Standard Extensions */ 1015334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_SLICEMODE_AVCVendorStartUnused = 0x7F000000, /**< Reserved region for introducing Vendor Extensions */ 1016334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_SLICEMODE_AVCLevelMax = 0x7FFFFFFF 1017334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_AVCSLICEMODETYPE; 1018334de520b0369215b7931fefa424fb92d295f0ebJames Dong 1019a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 1020a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar * AVC FMO Slice Mode Params 1021334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 1022334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 1023334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the structure in bytes 1024334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nVersion : OMX specification version information 1025334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Port that this structure applies to 1026334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nNumSliceGroups : Specifies the number of slice groups 1027334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSliceGroupMapType : Specifies the type of slice groups 1028334de520b0369215b7931fefa424fb92d295f0ebJames Dong * eSliceMode : Specifies the type of slice 1029334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 1030334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_PARAM_AVCSLICEFMO { 1031a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSize; 1032334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 1033334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 1034334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U8 nNumSliceGroups; 1035334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U8 nSliceGroupMapType; 1036334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VIDEO_AVCSLICEMODETYPE eSliceMode; 1037334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_PARAM_AVCSLICEFMO; 1038334de520b0369215b7931fefa424fb92d295f0ebJames Dong 1039a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 1040334de520b0369215b7931fefa424fb92d295f0ebJames Dong * AVC IDR Period Configs 1041334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 1042334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 1043334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the structure in bytes 1044334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nVersion : OMX specification version information 1045334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Port that this structure applies to 1046334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nIDRPeriod : Specifies periodicity of IDR frames 1047334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPFrames : Specifies internal of coding Intra frames 1048334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 1049334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_CONFIG_AVCINTRAPERIOD { 1050a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSize; 1051334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 1052334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 1053334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nIDRPeriod; 1054334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPFrames; 1055334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_CONFIG_AVCINTRAPERIOD; 1056334de520b0369215b7931fefa424fb92d295f0ebJames Dong 1057a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar/** 1058334de520b0369215b7931fefa424fb92d295f0ebJames Dong * AVC NAL Size Configs 1059334de520b0369215b7931fefa424fb92d295f0ebJames Dong * 1060334de520b0369215b7931fefa424fb92d295f0ebJames Dong * STRUCT MEMBERS: 1061334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nSize : Size of the structure in bytes 1062334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nVersion : OMX specification version information 1063334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nPortIndex : Port that this structure applies to 1064334de520b0369215b7931fefa424fb92d295f0ebJames Dong * nNaluBytes : Specifies the NAL unit size 1065334de520b0369215b7931fefa424fb92d295f0ebJames Dong */ 1066334de520b0369215b7931fefa424fb92d295f0ebJames Dongtypedef struct OMX_VIDEO_CONFIG_NALSIZE { 1067a1ae5a4fe52192525f510dc14ecf1f7d4fb107f5Lajos Molnar OMX_U32 nSize; 1068334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_VERSIONTYPE nVersion; 1069334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nPortIndex; 1070334de520b0369215b7931fefa424fb92d295f0ebJames Dong OMX_U32 nNaluBytes; 1071334de520b0369215b7931fefa424fb92d295f0ebJames Dong} OMX_VIDEO_CONFIG_NALSIZE; 1072334de520b0369215b7931fefa424fb92d295f0ebJames Dong 1073334de520b0369215b7931fefa424fb92d295f0ebJames Dong/** @} */ 1074334de520b0369215b7931fefa424fb92d295f0ebJames Dong 1075334de520b0369215b7931fefa424fb92d295f0ebJames Dong#ifdef __cplusplus 1076334de520b0369215b7931fefa424fb92d295f0ebJames Dong} 1077334de520b0369215b7931fefa424fb92d295f0ebJames Dong#endif /* __cplusplus */ 1078334de520b0369215b7931fefa424fb92d295f0ebJames Dong 1079334de520b0369215b7931fefa424fb92d295f0ebJames Dong#endif 1080334de520b0369215b7931fefa424fb92d295f0ebJames Dong/* File EOF */ 1081334de520b0369215b7931fefa424fb92d295f0ebJames Dong 1082