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