1dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/*--------------------------------------------------------------------------
2e4010605f233a213cf0d972397bb33c34c364227Patrick TjinCopyright (c) 2011,2015 The Linux Foundation. All rights reserved.
3dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
4dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandRedistribution and use in source and binary forms, with or without
5dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandmodification, are permitted provided that the following conditions are met:
6dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    * Redistributions of source code must retain the above copyright
7dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand      notice, this list of conditions and the following disclaimer.
8dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    * Redistributions in binary form must reproduce the above copyright
9dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand      notice, this list of conditions and the following disclaimer in the
10dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand      documentation and/or other materials provided with the distribution.
1161a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    * Neither the name of The Linux Foundation nor
12dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand      the names of its contributors may be used to endorse or promote
13dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand      products derived from this software without specific prior written
14dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand      permission.
15dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
16dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandIMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandNON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
23dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandOR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandOTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand--------------------------------------------------------------------------*/
28dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
29dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#ifndef __H_QOMX_VIDEOEXTENSIONS_H__
30e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin#define __H_QOMX_VIDEOEXTENSIONS_H__
31dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
32dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/*========================================================================
33dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
34e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin*//** @file QOMX_VideoExtensions.h
35dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
36dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand@par FILE SERVICES:
37dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand      Qualcomm extensions API for OpenMax IL Video.
38dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
39dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand      This file contains the description of the Qualcomm OpenMax IL
40e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin      video extention interface, through which the IL client and OpenMax
41dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand      components can access additional video capabilities.
42e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin
43dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand*//*====================================================================== */
44dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
45dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
46dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/*========================================================================== */
47e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin
48e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/*========================================================================
49e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin
50e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin                     INCLUDE FILES FOR MODULE
51e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin
52e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin========================================================================== */
53dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#include <OMX_Core.h>
54dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#include <OMX_Video.h>
55dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
56dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/*========================================================================
57dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
58dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand                      DEFINITIONS AND DECLARATIONS
59dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
60dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand========================================================================== */
61dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
62dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#if defined( __cplusplus )
63dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandextern "C"
64dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{
65dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#endif /* end of macro __cplusplus */
66dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
67e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/* Video extension strings */
68dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_INDEX_PARAM_VIDEO_SYNTAXHDR                "OMX.QCOM.index.param.video.SyntaxHdr"
69dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_INDEX_PARAM_VIDEO_ENCODERMODE              "OMX.QCOM.index.param.video.EncoderMode"
70dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_INDEX_CONFIG_VIDEO_INTRAREFRESH            "OMX.QCOM.index.config.video.IntraRefresh"
71dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_INDEX_CONFIG_VIDEO_INTRAPERIOD             "OMX.QCOM.index.config.video.IntraPeriod"
72dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_INDEX_CONFIG_VIDEO_TEMPORALSPATIALTRADEOFF "OMX.QCOM.index.config.video.TemporalSpatialTradeOff"
73dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_INDEX_CONFIG_VIDEO_MBCONCEALMENTREPORTING  "OMX.QCOM.index.config.video.MBConcealmentReporting"
74dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_INDEX_PARAM_VIDEO_EXTRADATAMULTISLICEINFO  "OMX.QCOM.index.param.video.ExtraDataMultiSliceInfo" /**< reference: QOMX_ENABLETYPE */
75e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin#define OMX_QCOM_INDEX_CONFIG_VIDEO_FLOWSTATUS              "OMX.QCOM.index.config.video.FlowStatus"             /**< reference: QOMX_FLOWSTATUSTYPE */
76dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_INDEX_PARAM_VIDEO_PICTURETYPEDECODE        "OMX.QCOM.index.param.video.PictureTypeDecode"       /**< reference: QOMX_VIDEO_DECODEPICTURETYPE */
77dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_INDEX_PARAM_VIDEO_SAMPLEASPECTRATIO        "OMX.QCOM.index.param.video.SampleAspectRatio"       /**< reference: QOMX_VIDEO_SAMPLEASPECTRATIO */
7861a2c6a19dbd06a317a419623020e02056661876Praveen Chavan#define OMX_QCOM_INDEX_PARAM_VIDEO_EXTRADATALTRINFO         "OMX.QCOM.index.param.video.ExtraDataLTRInfo"        /**< reference: QOMX_ENABLETYPE */
79dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
80dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/* Video coding types */
81dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_INDEX_PARAM_VIDEO_DIVX                     "OMX.QCOM.index.param.video.DivX"
82dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_INDEX_PARAM_VIDEO_VP                       "OMX.QCOM.index.param.video.VP"
83dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_INDEX_PARAM_VIDEO_SPARK                    "OMX.QCOM.index.param.video.Spark"
84dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_INDEX_PARAM_VIDEO_VC1                      "OMX.QCOM.index.param.video.VC1"
85dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
86dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/**
87dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Enumeration used to define the extended video compression
88dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * codings, not present in the OpenMax IL 1.1.2 specification.
89dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * NOTE:  This essentially refers to file extensions. If the
90dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *        coding is being used to specify the ENCODE type, then
91dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *        additional work must be done to configure the exact
92dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *        flavor of the compression to be used.
93dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
94e4010605f233a213cf0d972397bb33c34c364227Patrick Tjintypedef enum QOMX_VIDEO_CODINGTYPE
95dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{
96dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_CodingDivX   = 0x7F000001, /**< all versions of DivX */
97dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_CodingVP     = 0x7F000002, /**< all versions of On2 VP codec */
98dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_CodingSpark  = 0x7F000003, /**< Sorenson Spark */
99dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_CodingVC1    = 0x7F000004, /**< VC-1 */
100dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_MPEG1        = 0x7F000005  /**< MPEG-1 */
101dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_CODINGTYPE;
102dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
103e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/**
104dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * DivX Versions
105dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
106dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_DIVXFORMATTYPE {
107dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_DIVXFormatUnused = 0x01, /**< Format unused or unknown */
108dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_DIVXFormat311    = 0x02, /**< DivX 3.11 */
109dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_DIVXFormat4      = 0x04, /**< DivX 4 */
110dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_DIVXFormat5      = 0x08, /**< DivX 5 */
111dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_DIVXFormat6      = 0x10, /**< DivX 6 */
112e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    QOMX_VIDEO_DIVXFormatKhronosExtensions = 0x6F000000,
113dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_DIVXFormatVendorStartUnused = 0x7F000000,
114dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_DIVXFormatMax = 0x7FFFFFFF
115dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_DIVXFORMATTYPE;
116dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
117e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/**
118dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * DivX profile types, each profile indicates support for
119dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * various performance bounds.
120dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
121dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_DIVXPROFILETYPE {
122dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_DivXProfileqMobile = 0x01, /**< qMobile Profile */
123dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_DivXProfileMobile  = 0x02, /**< Mobile Profile */
124dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_DivXProfileMT      = 0x04, /**< Mobile Theatre Profile */
125dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_DivXProfileHT      = 0x08, /**< Home Theatre Profile */
126dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_DivXProfileHD      = 0x10, /**< High Definition Profile */
127e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    QOMX_VIDEO_DIVXProfileKhronosExtensions = 0x6F000000,
128dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_DIVXProfileVendorStartUnused = 0x7F000000,
129dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_DIVXProfileMax = 0x7FFFFFFF
130dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_DIVXPROFILETYPE;
131dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
132e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/**
133dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * DivX Video Params
134e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *
135dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  STRUCT MEMBERS:
136dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize      : Size of the structure in bytes
137dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion   : OMX specification version information
138dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex : Port that this structure applies to
139dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  eFormat    : Version of DivX stream / data
140dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  eProfile   : Profile of DivX stream / data
141dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
142dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_PARAM_DIVXTYPE {
143e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    OMX_U32 nSize;
144dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
145dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
146dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_DIVXFORMATTYPE eFormat;
147dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_DIVXPROFILETYPE eProfile;
148dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_PARAM_DIVXTYPE;
149dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
150e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/**
151dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * VP Versions
152dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
153dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_VPFORMATTYPE {
154dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VPFormatUnused = 0x01, /**< Format unused or unknown */
155dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VPFormat6      = 0x02, /**< VP6 Video Format */
156dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VPFormat7      = 0x04, /**< VP7 Video Format */
157dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VPFormat8      = 0x08, /**< VP8 Video Format */
158e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    QOMX_VIDEO_VPFormat9      = 0x10, /**< VP9 Video Format */
159e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    QOMX_VIDEO_VPFormatKhronosExtensions = 0x6F000000,
160dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VPFormatVendorStartUnused = 0x7F000000,
161dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VPFormatMax = 0x7FFFFFFF
162dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_VPFORMATTYPE;
163dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
164e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/**
165dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * VP profile types, each profile indicates support for various
166dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * encoding tools.
167dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
168dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_VPPROFILETYPE {
169dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VPProfileSimple   = 0x01, /**< Simple Profile, applies to VP6 only */
170dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VPProfileAdvanced = 0x02, /**< Advanced Profile, applies to VP6 only */
171dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VPProfileVersion0 = 0x04, /**< Version 0, applies to VP7 and VP8 */
172dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VPProfileVersion1 = 0x08, /**< Version 1, applies to VP7 and VP8 */
173dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VPProfileVersion2 = 0x10, /**< Version 2, applies to VP8 only */
174dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VPProfileVersion3 = 0x20, /**< Version 3, applies to VP8 only */
175e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    QOMX_VIDEO_VPProfileKhronosExtensions = 0x6F000000,
176dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VPProfileVendorStartUnused = 0x7F000000,
177dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VPProfileMax = 0x7FFFFFFF
178dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_VPPROFILETYPE;
179dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
180e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/**
181dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * VP Video Params
182e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *
183dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  STRUCT MEMBERS:
184dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize      : Size of the structure in bytes
185dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion   : OMX specification version information
186dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex : Port that this structure applies to
187dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  eFormat    : Format of VP stream / data
188dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  eProfile   : Profile or Version of VP stream / data
189e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin */
190dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_PARAM_VPTYPE {
191e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    OMX_U32 nSize;
192dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
193dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
194dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VPFORMATTYPE eFormat;
195dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VPPROFILETYPE eProfile;
196dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_PARAM_VPTYPE;
197dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
198e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/**
199dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Spark Versions
200dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
201dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_SPARKFORMATTYPE {
202dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_SparkFormatUnused = 0x01, /**< Format unused or unknown */
203dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_SparkFormat0      = 0x02, /**< Video Format Version 0 */
204dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_SparkFormat1      = 0x04, /**< Video Format Version 1 */
205e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    QOMX_VIDEO_SparkFormatKhronosExtensions = 0x6F000000,
206dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_SparkFormatVendorStartUnused = 0x7F000000,
207dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_SparkFormatMax = 0x7FFFFFFF
208dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_SPARKFORMATTYPE;
209dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
210e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/**
211dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Spark Video Params
212e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *
213dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  STRUCT MEMBERS:
214dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize      : Size of the structure in bytes
215dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion   : OMX specification version information
216dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex : Port that this structure applies to
217dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  eFormat    : Version of Spark stream / data
218dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
219dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_PARAM_SPARKTYPE {
220e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    OMX_U32 nSize;
221dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
222dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
223dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_SPARKFORMATTYPE eFormat;
224dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_PARAM_SPARKTYPE;
225dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
226e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/**
227dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * VC-1 profile types, each profile indicates support for
228dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * various encoding tools.
229dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
230dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_VC1PROFILETYPE {
231dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1ProfileSimple   = 0x01, /**< Simple Profile */
232dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1ProfileMain     = 0x02, /**< Main Profile */
233dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1ProfileAdvanced = 0x04, /**< Advanced Profile */
234e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    QOMX_VIDEO_VC1ProfileKhronosExtensions = 0x6F000000,
235dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1ProfileVendorStartUnused = 0x7F000000,
236dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1ProfileMax = 0x7FFFFFFF
237dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_VC1PROFILETYPE;
238dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
239e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/**
240dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * VC-1 level types, each level indicates support for various
241dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * performance bounds.
242dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
243dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_VC1LEVELTYPE {
244dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1LevelLow    = 0x01, /**< Low Level, applies to simple and main profiles*/
245dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1LevelMedium = 0x02, /**< Medium Level, applies to simple and main profiles */
246dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1LevelHigh   = 0x04, /**< High Level, applies to main profile only */
247dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1Level0      = 0x08, /**< Level 0, applies to advanced profile only */
248dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1Level1      = 0x10, /**< Level 1, applies to advanced profile only */
249dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1Level2      = 0x20, /**< Level 2, applies to advanced profile only */
250dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1Level3      = 0x40, /**< Level 3, applies to advanced profile only */
251dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1Level4      = 0x80, /**< Level 4, applies to advanced profile only */
252e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    QOMX_VIDEO_VC1LevelKhronosExtensions = 0x6F000000,
253dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1LevelVendorStartUnused = 0x7F000000,
254dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1LevelMax = 0x7FFFFFFF
255dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_VC1LEVELTYPE;
256dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
257e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/**
258dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * VC-1 Video Params
259e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *
260dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  STRUCT MEMBERS:
261dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize      : Size of the structure in bytes
262dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion   : OMX specification version information
263dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex : Port that this structure applies to
264dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  eProfile   : Profile of VC-1 stream / data
265dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  eLevel     : Level of VC-1 stream / data
266dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
267dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_PARAM_VC1TYPE {
268e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    OMX_U32 nSize;
269dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
270dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
271dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1PROFILETYPE eProfile;
272dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_VC1LEVELTYPE eLevel;
273dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_PARAM_VC1TYPE;
274dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
275e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/**
276dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Extended MPEG-4 level types not defined in the OpenMax IL
277dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 1.1.2 specification, each level indicates support for various
278dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * frame sizes, bit rates, decoder frame rates.
279dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
280dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_MPEG4LEVELTYPE {
281e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    QOMX_VIDEO_MPEG4Level6 = 0x7F000001, /**< Level 6 */
282e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    QOMX_VIDEO_MPEG4Level7 = 0x7F000002, /**< Level 7 */
283e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    QOMX_VIDEO_MPEG4Level8 = 0x7F000003, /**< Level 8 */
284e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    QOMX_VIDEO_MPEG4Level9 = 0x7F000004, /**< Level 9 */
285e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin    QOMX_VIDEO_MPEG4LevelMax = 0x7FFFFFFF
286dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_MPEG4LEVELTYPE;
287dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
288dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/**
289dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * This structure is used in retrieving the syntax header from a
290dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * video encoder component, or setting the out of band syntax
291dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * header configuration data on a video decoder component.
292e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *
293dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
294dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize      : Size of the structure in bytes
295dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion   : OMX specification version info
296dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex : Port that this structure applies to
297dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nBytes     : When used with OMX_GetParameter for the encoder
298dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               component, it is a read-write field. When
299dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               QOMX_VIDEO_SYNTAXHDRTYPE is passed in
300dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               OMX_GetParameter this is the size of the buffer
301dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               array pointed by data field. When the
302dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               OMX_GetParameter call returns this is the
303dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               amount of data within the buffer array.
304dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
305dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               The IL client needs to allocate the buffer
306dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               array and then request for the syntax header.
307dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               If the size of buffer array to allocate is
308dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               unknown to the IL client, then it can call
309dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               OMX_GetParamter with nBytes set to 0. In this
310dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               case, when OMX_GetParameter returns, the nBytes
311dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               field will be set to the size of the syntax
312dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               header. IL Client can then allocate a buffer of
313dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               this size and call OMX_GetParamter again.
314e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *
315dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               When used with OMX_SetParameter for the decoder
316dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               component, it is a read-only field specifying
317dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               the amount of data in the buffer array.
318dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  data       : The syntax header data. The format of the
319dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               syntax header is specific to the video codec,
320dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               and is described below.
321dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
322dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *   H.263      : N/A
323dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *   H.264      : The SPS and PPS parameter sets
324dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *   MPEG-4     : The VO, VOS, and VOL header
325dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *   WMV7       : The "Extra Data" info, in the ASF Stream
326dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                Properties Object.
327dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *   WMV8       : The "Extra Data" info, in the ASF Stream
328dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                Properties Object.
329dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *   WMV9 SP/MP : The STRUCT_C portion of the sequence layer
330dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                meta data, defined in Table 263 of the VC-1
331dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                specification.
332dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *   VC-1 SP/MP : The STRUCT_C portion of the sequence layer
333dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                meta data, defined in Table 263 of the VC-1
334dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                specification.
335dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *   VC-1 AP    : The sequence and entry point header
336dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *   DivX 3     : N/A
337dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *   DivX 4.x   : The VO, VOS, and VOL header
338dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *   DivX 5.x   : The VO, VOS, and VOL header
339dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *   DivX 6.x   : The VO, VOS, and VOL header
340dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *   VP6        : N/A
341dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *   Spark      : N/A
342dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
343dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_SYNTAXHDRTYPE {
344dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
345dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
346dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
347dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nBytes;
348dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U8  data[1];
349dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_SYNTAXHDRTYPE;
350dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
351dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
352e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/**
353e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin * Enumeration used to define the extended video intra refresh types, not
354e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin * present in the OpenMax IL 1.1.2 specification.
355dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
356dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * ENUMS:
357dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  IntraRefreshRandom         : Random intra refresh mode.
358dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
359dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_INTRAREFRESHTYPE
360dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{
361dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_IntraRefreshRandom      = 0x7F100000
362dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_INTRAREFRESHTYPE;
363dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
364dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
365dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/**
366dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * This structure is used to configure the intra periodicity for encoder.
367e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *
368dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
369dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize      : Size of the structure in bytes
370dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion   : OMX specification version info
371dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex : Port that this structure applies to
372dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nIDRPeriod : Defines the periodicity of IDR occurrence. This specifies
373dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               coding a frame as IDR after a specific number of intra
374dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               frames. The periodicity of intra frame coding is specified by
375dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               the nPFrames.  If nIDRPeriod is set to 0, only the first
376dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               frame of the encode session is an IDR frame. This field is
377dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               ignored for non-AVC codecs and is used only for codecs that
378dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               support IDR Period.
379dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPFrames : Specifies the number of P frames between each I Frame.
380dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nBFrames : Specifies the number of B frames between each I Frame.
381dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
382dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_INTRAPERIODTYPE  {
383dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
384dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
385dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
386dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nIDRPeriod;
387dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPFrames;
388dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nBFrames;
389dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_INTRAPERIODTYPE;
390dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
391dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
392dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/**
393e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin * Enumeration used to define the extended video extra data payload types not
394e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin * present in the OpenMax IL 1.1.2 specification.
395dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
396dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * ENUMS:
397dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  VideoMultiSliceInfo : Multi slice layout information
398e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *
399dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  Slice information layout:
400dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  First 4 bytes = Number of Slice Entries
401dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
402dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  Then individual slice entries: 8 bytes per entry.
403dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  Slice1 information: offset (4 bytes), Length (4 bytes)
404dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  Slice2 information: offset (4 bytes), Length (4 bytes)
405dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  Slice3 information: offset (4 bytes), Length (4 bytes)
406dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  ...................................
407dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  ...................................
408dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  SliceN information: offset (4 bytes), Length (4 bytes)
409e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *
410e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *
411dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  VideoNumConcealedMB : Number of concealed MBs
412e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *
413dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  The data array consists of an unsigned 32-bit size field
414dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  indicating the number of concealed macroblocks in the
415dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  uncompressed frame.
416dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
417dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
418e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *  QOMX_ExtraDataOMXIndex : Indicates that the data payload contains an
419dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  OpenMax index and associated payload.
420dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
421e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *  The data of the extra data payload shall contain the value of the
422e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *  OMX_INDEXTYPE corresponding to the requested operation as an unsigned
423e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *  32 bit number occupying the first four bytes of the payload. The index
424dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  will be immediately followed by the associated structure. Padding bytes
425e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *  are appended to ensure 32 bit address alignment if needed.
426dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
427dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_EXTRADATATYPE
428dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{
429dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand   QOMX_ExtraDataVideoMultiSliceInfo = 0x7F100000,
430dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand   QOMX_ExtraDataVideoNumConcealedMB,
431dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand   QOMX_ExtraDataOMXIndex,
432dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand   QOMX_ExtraDataHDCPEncryptionInfo
433dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_EXTRADATATYPE;
434dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
435dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
436e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/**
437e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin * Enumeration used to define the video encoder modes
438dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
439dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * ENUMS:
440dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  EncoderModeDefault : Default video recording mode.
441dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                       All encoder settings made through
442dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                       OMX_SetParameter/OMX_SetConfig are applied. No
443dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                       parameter is overridden.
444dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  EncoderModeMMS : Video recording mode for MMS (Multimedia Messaging
445dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                   Service). This mode is similar to EncoderModeDefault
446dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                   except that here the Rate control mode is overridden
447dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                   internally and set as a variant of variable bitrate with
448dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                   variable frame rate. After this mode is set if the IL
449dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                   client tries to set OMX_VIDEO_CONTROLRATETYPE via
450dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                   OMX_IndexParamVideoBitrate that would be rejected. For
451dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                   this, client should set mode back to EncoderModeDefault
452dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                   first and then change OMX_VIDEO_CONTROLRATETYPE.
453dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
454dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_ENCODERMODETYPE
455dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{
456dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_EncoderModeDefault        = 0x01,
457dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_EncoderModeMMS            = 0x02,
458dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_EncoderModeMax            = 0x7FFFFFFF
459dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_ENCODERMODETYPE;
460dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
461dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/**
462e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin * This structure is used to set the video encoder mode.
463e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *
464dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
465dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize      : Size of the structure in bytes
466dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion   : OMX specification version info
467dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex : Port that this structure applies to
468dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nMode : defines the video encoder mode
469dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
470dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_PARAM_ENCODERMODETYPE {
471dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
472dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
473dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
474dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_ENCODERMODETYPE nMode;
475dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_PARAM_ENCODERMODETYPE;
476dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
477dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
478dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/**
479e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin * This structure is used to set the temporal (picture rate) - spatial
480e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin * (picture quality) trade-off factor.
481e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin * This setting is only valid when rate control is enabled and set to a mode
482dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * with variable frame rate. For all other rate control modes this setting is
483e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin * ignored.
484e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *
485dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
486dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize      : Size of the structure in bytes
487dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion   : OMX specification version info
488dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex : Port that this structure applies to
489dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nTSFactor : temporal-spatial tradeoff factor value in the range of 0-100.
490dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *              A factor of 0 won't emphasizes picture rate in rate
491dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  control decisions at all i.e only picture quality is emphasized. For
492dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  increasing values from 1 to 99 the emphasis of picture rate in rate
493dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  control decisions increases. A factor of 100 emphasizes only picture rate
494dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  in rate control decisions.
495dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
496dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_TEMPORALSPATIALTYPE {
497dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
498dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
499dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
500dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nTSFactor;
501dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_TEMPORALSPATIALTYPE;
502dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
503dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/**
504e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin * This structure is used to enable or disable the MB concealmenet reporting
505dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * for the uncompressed frames emitted from the port.
506e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *
507dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
508dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize      : Size of the structure in bytes
509dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion   : OMX specification version info
510dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex : Port that this structure applies to
511dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  bEnableMBConcealmentReporting : Flag indicating whether MB concealment
512dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               reporting is enabled or disabled.
513dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               OMX_TRUE: Enables MB concealment reporting
514dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *               OMX_FALSE: Disables MB concealment reporting
515dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
516dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_MBCONCEALMENTREPORTINGTYPE {
517dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
518dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
519dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
520dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_BOOL bEnableMBConcealmentReporting;
521dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_MBCONCEALMENTREPORTINGTYPE;
522dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
523e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin/**
524dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Specifies the extended picture types. These values should be
525dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OR'd along with the types defined in OMX_VIDEO_PICTURETYPE to
526dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * signal all pictures types which are allowed.
527dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *
528dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * ENUMS:
529dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  H.264 Specific Picture Types:   IDR
530dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
531dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_PICTURETYPE {
532dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    QOMX_VIDEO_PictureTypeIDR = OMX_VIDEO_PictureTypeVendorStartUnused + 0x1000
533dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_PICTURETYPE;
534dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
535dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/**
536dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * This structure is used to configure the processing of
537dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * specific picture types.
538e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *
539dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
540dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize         : Size of the structure in bytes
541dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion      : OMX specification version info
542dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex    : Port that this structure applies to
543dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPictureTypes : Specifies the picture type(s)
544dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                  that shall be processed. The value consists
545dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                  of the desired picture types, defined by the
546dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                  OMX_VIDEO_PICTURETYPE and
547dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                  QOMX_VIDEO_PICTURETYPE enumerations, OR'd to
548dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                  signal all the pictures types which are
549dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                  allowed.
550dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
551dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_DECODEPICTURETYPE {
552dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
553dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
554dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
555dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPictureTypes;
556dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_DECODEPICTURETYPE;
557dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
558dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/**
559dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * This structure describes the sample aspect ratio information.
560e4010605f233a213cf0d972397bb33c34c364227Patrick Tjin *
561dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS:
562dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nSize        : Size of the structure in bytes
563dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nVersion     : OMX specification version info
564dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nPortIndex   : Port that this structure applies to
565dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nWidth       : Specifies the horizontal aspect size of
566dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                 the sample
567dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *  nHeight      : Specifies the vertical aspect size of the
568dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand *                 sample
569dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */
570dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_SAMPLEASPECTRATIO {
571dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nSize;
572dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_VERSIONTYPE nVersion;
573dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U32 nPortIndex;
574dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U16 nWidth;
575dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand    OMX_U16 nHeight;
576dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_SAMPLEASPECTRATIO;
577dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
578dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#if defined( __cplusplus )
579dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand}
580dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#endif /* end of macro __cplusplus */
581dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
582dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#endif /* end of macro __H_QOMX_VIDEOEXTENSIONS_H__ */
583