1826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/*--------------------------------------------------------------------------
28767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen ChavanCopyright (c) 2009-2014, The Linux Foundation. All rights reserved.
3826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
4826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevRedistribution and use in source and binary forms, with or without
5826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevmodification, are permitted provided that the following conditions are met:
6826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    * Redistributions of source code must retain the above copyright
7826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev      notice, this list of conditions and the following disclaimer.
8826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    * Redistributions in binary form must reproduce the above copyright
9826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev      notice, this list of conditions and the following disclaimer in the
10826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev      documentation and/or other materials provided with the distribution.
116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    * Neither the name of The Linux Foundation nor
12826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev      the names of its contributors may be used to endorse or promote
13826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev      products derived from this software without specific prior written
14826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev      permission.
15826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
16826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
17826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevIMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevNON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
20826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
21826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
22826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
23826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
24826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
25826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevOTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
26826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan MalchevADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev--------------------------------------------------------------------------*/
28826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifndef __OMX_QCOM_EXTENSIONS_H__
29826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define __OMX_QCOM_EXTENSIONS_H__
30826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
31826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifdef __cplusplus
32826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevextern "C" {
33826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif /* __cplusplus */
34826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
35826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/*============================================================================
36826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev*//** @file OMX_QCOMExtns.h
37826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  This header contains constants and type definitions that specify the
38826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  extensions added to the OpenMAX Vendor specific APIs.
39826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
40826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev*//*========================================================================*/
41826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
42826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
43826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev///////////////////////////////////////////////////////////////////////////////
44826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev//                             Include Files
45826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev///////////////////////////////////////////////////////////////////////////////
46826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#include "OMX_Core.h"
47826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#include "OMX_Video.h"
48826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
49826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
50826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * This extension is used to register mapping of a virtual
51826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * address to a physical address. This extension is a parameter
52826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * which can be set using the OMX_SetParameter macro. The data
53826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * pointer corresponding to this extension is
54826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OMX_QCOM_MemMapEntry. This parameter is a 'write only'
55826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * parameter (Current value cannot be queried using
56826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OMX_GetParameter macro).
57826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
58826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_QCOM_EXTN_REGISTER_MMAP     "OMX.QCOM.index.param.register_mmap"
59826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
60826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
61826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * This structure describes the data pointer corresponding to
62826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * the OMX_QCOM_MMAP_REGISTER_EXTN extension. This parameter
63826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * must be set only 'after' populating a port with a buffer
64826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * using OMX_UseBuffer, wherein the data pointer of the buffer
65826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * corresponds to the virtual address as specified in this
66826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * structure.
67826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
68826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevstruct OMX_QCOM_PARAM_MEMMAPENTRYTYPE
69826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
70826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;              /** Size of the structure in bytes */
71826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;   /**< OMX specification version information */
72826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;         /**< Port number the structure applies to */
73826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
74826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /**
75826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev     * The virtual address of memory block
76826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev     */
77826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U64 nVirtualAddress;
78826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
79826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /**
80826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev     * The physical address corresponding to the virtual address. The physical
81826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev     * address is contiguous for the entire valid range of the virtual
82826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev     * address.
83826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev     */
84826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U64 nPhysicalAddress;
85826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev};
86826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
87826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define QOMX_VIDEO_IntraRefreshRandom (OMX_VIDEO_IntraRefreshVendorStartUnused + 0)
88826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/* This error event is used for H.264 long-term reference (LTR) encoding.
906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * When IL client specifies an LTR frame with its identifier via
916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * OMX_QCOM_INDEX_CONFIG_VIDEO_LTRUSE to the encoder, if the specified
926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * LTR frame can not be located by the encoder in its LTR list, the encoder
936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * issues this error event to IL client to notify the failure of LTRUse config.
946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal#define QOMX_ErrorLTRUseFailed        (OMX_ErrorVendorStartUnused + 1)
966eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
97826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define QOMX_VIDEO_BUFFERFLAG_BFRAME 0x00100000
98826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
99826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define QOMX_VIDEO_BUFFERFLAG_EOSEQ  0x00200000
100826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1018767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define QOMX_VIDEO_BUFFERFLAG_MBAFF  0x00400000
1028767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
103826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_QCOM_PORTDEFN_EXTN   "OMX.QCOM.index.param.portdefn"
104826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/* Allowed APIs on the above Index: OMX_GetParameter() and OMX_SetParameter() */
105826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
106826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_QCOMMemoryRegion
107826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
108826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_MemRegionInvalid,
109826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_MemRegionEBI1,
110826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_MemRegionSMI,
111826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_MemRegionMax = 0X7FFFFFFF
112826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOMMemoryRegion;
113826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
114826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_QCOMCacheAttr
115826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
116826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_CacheAttrNone,
117826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_CacheAttrWriteBack,
118826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_CacheAttrWriteThrough,
119826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_CacheAttrMAX = 0X7FFFFFFF
120826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOMCacheAttr;
121826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
122826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOMRectangle
123826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
124826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_S32 x;
125826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_S32 y;
126826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_S32 dx;
127826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_S32 dy;
128826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOMRectangle;
129826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
130826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** OMX_QCOMFramePackingFormat
131826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  * Input or output buffer format
132826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  */
133826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_QCOMFramePackingFormat
134826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
135826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  /* 0 - unspecified
136826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   */
137826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_QCOM_FramePacking_Unspecified,
138826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
139826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  /*  1 - Partial frames may be present OMX IL 1.1.1 Figure 2-10:
140826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   *  Case 1??Each Buffer Filled In Whole or In Part
141826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   */
142826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_QCOM_FramePacking_Arbitrary,
143826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
144826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  /*  2 - Multiple complete frames per buffer (integer number)
145826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   *  OMX IL 1.1.1 Figure 2-11: Case 2�Each Buffer Filled with
146826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   *  Only Complete Frames of Data
147826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   */
148826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_QCOM_FramePacking_CompleteFrames,
149826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
150826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  /*  3 - Only one complete frame per buffer, no partial frame
151826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   *  OMX IL 1.1.1 Figure 2-12: Case 3�Each Buffer Filled with
152826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   *  Only One Frame of Compressed Data. Usually at least one
153826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   *  complete unit of data will be delivered in a buffer for
154826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   *  uncompressed data formats.
155826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   */
156826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_QCOM_FramePacking_OnlyOneCompleteFrame,
157826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
158826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  /*  4 - Only one complete subframe per buffer, no partial subframe
159826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   *  Example: In H264, one complete NAL per buffer, where one frame
160826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   *  can contatin multiple NAL
161826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   */
162826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_QCOM_FramePacking_OnlyOneCompleteSubFrame,
163826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
164826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_QCOM_FramePacking_MAX = 0X7FFFFFFF
165826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOMFramePackingFormat;
166826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
167826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_PARAM_PORTDEFINITIONTYPE {
168826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nSize;           /** Size of the structure in bytes */
169826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_VERSIONTYPE nVersion;/** OMX specification version information */
170826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nPortIndex;    /** Portindex which is extended by this structure */
171826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
172826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev /** Platform specific memory region EBI1, SMI, etc.,*/
173826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_QCOMMemoryRegion nMemRegion;
174826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
175826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_QCOMCacheAttr nCacheAttr; /** Cache attributes */
176826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
177826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev /** Input or output buffer format */
178826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev OMX_U32 nFramePackingFormat;
179826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
180826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_PARAM_PORTDEFINITIONTYPE;
181826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1826eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct OMX_QCOM_VIDEO_PARAM_QPRANGETYPE {
1836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nSize;
1846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
1856eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nPortIndex;
1866eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 minQP;
1876eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 maxQP;
1886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} OMX_QCOM_VIDEO_PARAM_QPRANGETYPE;
1896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
190826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_QCOM_PLATFORMPVT_EXTN   "OMX.QCOM.index.param.platformprivate"
191826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** Allowed APIs on the above Index: OMX_SetParameter() */
192826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
193826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE
194826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
195826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /** Enum for PMEM information */
196826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_PLATFORM_PRIVATE_PMEM = 0x1
197826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE;
198826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
199826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** IL client will set the following structure. A failure
200826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  code will be returned if component does not support the
201826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  value provided for 'type'.
202826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
203826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevstruct OMX_QCOM_PLATFORMPRIVATE_EXTN
204826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
205826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;        /** Size of the structure in bytes */
206826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion; /** OMX spec version information */
207826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;  /** Port number on which usebuffer extn is applied */
208826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
209826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /** Type of extensions should match an entry from
210826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev     OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE
211826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    */
212826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE type;
213826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev};
214826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
215826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO
216826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
217826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /** pmem file descriptor */
2188767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    unsigned long pmem_fd;
219826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /** Offset from pmem device base address */
220826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 offset;
2218767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 size;
2228767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 mapped_size;
2238767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_PTR buffer;
224826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO;
225826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
226826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_PLATFORM_PRIVATE_ENTRY
227826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
228826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /** Entry type */
229826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE type;
230826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
231826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /** Pointer to platform specific entry */
232826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    void* entry;
233826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_QCOM_PLATFORM_PRIVATE_ENTRY;
234826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
235826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_PLATFORM_PRIVATE_LIST
236826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
237826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /** Number of entries */
238826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nEntries;
239826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
240826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /** Pointer to array of platform specific entries *
241826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev     * Contiguous block of OMX_QCOM_PLATFORM_PRIVATE_ENTRY element
242826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    */
243826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_PLATFORM_PRIVATE_ENTRY* entryList;
244826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_QCOM_PLATFORM_PRIVATE_LIST;
245826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
246826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_QCOM_FRAME_PACKING_FORMAT   "OMX.QCOM.index.param.framepackfmt"
247826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/* Allowed API call: OMX_GetParameter() */
248826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/* IL client can use this index to rerieve the list of frame formats *
249826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * supported by the component */
250826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
251826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_FRAME_PACKINGFORMAT_TYPE {
252826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
253826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
254826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
255826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nIndex;
256826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOMFramePackingFormat eframePackingFormat;
257826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_FRAME_PACKINGFORMAT_TYPE;
258826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
259826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
260826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
261826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Following is the enum for color formats supported on Qualcomm
262826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * MSMs YVU420SemiPlanar color format is not defined in OpenMAX
263826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * 1.1.1 and prior versions of OpenMAX specification.
264826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
265826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
266826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevenum OMX_QCOM_COLOR_FORMATTYPE
267826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
268826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
269826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** YVU420SemiPlanar: YVU planar format, organized with a first
270826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  plane containing Y pixels, and a second plane containing
271826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  interleaved V and U pixels. V and U pixels are sub-sampled
272826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  by a factor of two both horizontally and vertically.
273826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
2746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_COLOR_FormatYVU420SemiPlanar = 0x7FA30C00,
275826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_COLOR_FormatYVU420PackedSemiPlanar32m4ka,
276826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_COLOR_FormatYUV420PackedSemiPlanar16m2ka,
277826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka,
2786eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m,
2798767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_COLOR_FORMATYUV420PackedSemiPlanar32mMultiView,
280826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_COLOR_FormatAndroidOpaque = (OMX_COLOR_FORMATTYPE) OMX_COLOR_FormatVendorStartUnused  + 0x789,
281826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev};
282826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
283826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevenum OMX_QCOM_VIDEO_CODINGTYPE
284826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
285826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/** Codecs support by qualcomm which are not listed in OMX 1.1.x
286826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  spec
287826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *   */
288826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_VIDEO_CodingVC1  = 0x7FA30C00 ,
289826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_VIDEO_CodingWMV9 = 0x7FA30C01,
290826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_CodingDivx = 0x7FA30C02,     /**< Value when coding is Divx */
291826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_CodingSpark = 0x7FA30C03,     /**< Value when coding is Sorenson Spark */
292826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_CodingVp = 0x7FA30C04,
2935aa03230fef7a43a61e1ac5f19a2c5a71e5d6df7Praveen Chavan    QOMX_VIDEO_CodingVp8 = OMX_VIDEO_CodingVP8,   /**< keeping old enum for backwards compatibility*/
2945aa03230fef7a43a61e1ac5f19a2c5a71e5d6df7Praveen Chavan    QOMX_VIDEO_CodingHevc = OMX_VIDEO_CodingHEVC, /**< keeping old enum for backwards compatibility*/
2958767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_CodingMVC = 0x7FA30C07,
296826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev};
297826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
298826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevenum OMX_QCOM_EXTN_INDEXTYPE
299826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
300826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /** Qcom proprietary extension index list */
301826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
302826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /* "OMX.QCOM.index.param.register_mmap" */
303826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexRegmmap = 0x7F000000,
304826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
305826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /* "OMX.QCOM.index.param.platformprivate" */
306826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexPlatformPvt = 0x7F000001,
307826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
308826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /* "OMX.QCOM.index.param.portdefn" */
309826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexPortDefn = 0x7F000002,
310826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
311826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /* "OMX.QCOM.index.param.framepackingformat" */
312826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexPortFramePackFmt = 0x7F000003,
313826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
314826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /*"OMX.QCOM.index.param.Interlaced */
315826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexParamInterlaced = 0x7F000004,
316826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
317826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /*"OMX.QCOM.index.config.interlaceformat */
318826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexConfigInterlaced = 0x7F000005,
319826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
320826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /*"OMX.QCOM.index.param.syntaxhdr" */
321826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_IndexParamVideoSyntaxHdr = 0x7F000006,
322826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
323826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /*"OMX.QCOM.index.config.intraperiod" */
324826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_IndexConfigVideoIntraperiod = 0x7F000007,
325826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
326826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /*"OMX.QCOM.index.config.randomIntrarefresh" */
327826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_IndexConfigVideoIntraRefresh = 0x7F000008,
328826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
329826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /*"OMX.QCOM.index.config.video.TemporalSpatialTradeOff" */
330826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_IndexConfigVideoTemporalSpatialTradeOff = 0x7F000009,
331826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
332826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /*"OMX.QCOM.index.param.video.EncoderMode" */
333826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_IndexParamVideoEncoderMode = 0x7F00000A,
334826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
335826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /*"OMX.QCOM.index.param.Divxtype */
336826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexParamVideoDivx = 0x7F00000B,
337826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
338826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /*"OMX.QCOM.index.param.Sparktype */
339826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexParamVideoSpark = 0x7F00000C,
340826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
341826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /*"OMX.QCOM.index.param.Vptype */
342826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexParamVideoVp = 0x7F00000D,
343826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
344826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexQueryNumberOfVideoDecInstance = 0x7F00000E,
345826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
346826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexParamVideoSyncFrameDecodingMode = 0x7F00000F,
347826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
348826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexParamVideoDecoderPictureOrder = 0x7F000010,
349826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
3508767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* "OMX.QCOM.index.config.video.FramePackingInfo" */
351826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexConfigVideoFramePackingArrangement = 0x7F000011,
352826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
353826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexParamConcealMBMapExtraData = 0x7F000012,
354826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
355826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexParamFrameInfoExtraData = 0x7F000013,
356826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
357826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexParamInterlaceExtraData = 0x7F000014,
358826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
359826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexParamH264TimeInfo = 0x7F000015,
360826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
361826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexParamIndexExtraDataType = 0x7F000016,
362826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
363826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_GoogleAndroidIndexEnableAndroidNativeBuffers = 0x7F000017,
364826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
365826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_GoogleAndroidIndexUseAndroidNativeBuffer = 0x7F000018,
366826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
367826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage = 0x7F000019,
368826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
369826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /*"OMX.QCOM.index.config.video.QPRange" */
370826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexConfigVideoQPRange = 0x7F00001A,
371826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
372826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /*"OMX.QCOM.index.param.EnableTimeStampReoder"*/
373826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexParamEnableTimeStampReorder = 0x7F00001B,
374826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
375826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /*"OMX.google.android.index.storeMetaDataInBuffers"*/
3768e9fdc3254721b488ebdb9e9e62fb2d99eac392dVineeta Srivastava    OMX_QcomIndexParamVideoMetaBufferMode = 0x7F00001C,
377826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
378826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /*"OMX.google.android.index.useAndroidNativeBuffer2"*/
379826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_GoogleAndroidIndexUseAndroidNativeBuffer2 = 0x7F00001D,
380826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
381826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    /*"OMX.QCOM.index.param.VideoMaxAllowedBitrateCheck"*/
382826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexParamVideoMaxAllowedBitrateCheck = 0x7F00001E,
383826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
384826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QcomIndexEnableSliceDeliveryMode = 0x7F00001F,
3853145f89c1398e32bb7fc6cc03866388f42d2bad3Deva Ramasubramanian
3868767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* "OMX.QCOM.index.param.video.ExtnUserExtraData" */
3876eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_QcomIndexEnableExtnUserData = 0x7F000020,
3886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
3896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    /*"OMX.QCOM.index.param.video.EnableSmoothStreaming"*/
3906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_QcomIndexParamEnableSmoothStreaming = 0x7F000021,
3916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
3926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    /*"OMX.QCOM.index.param.video.QPRange" */
3936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_QcomIndexParamVideoQPRange = 0x7F000022,
3946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
3956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_QcomIndexEnableH263PlusPType = 0x7F000023,
3962d1c6fa918d6d3afcb93a25c0e6d60cac8365275Deva Ramasubramanian
3976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    /*"OMX.QCOM.index.param.video.LTRCountRangeSupported"*/
3986eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_IndexParamVideoLTRCountRangeSupported = 0x7F000024,
3996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
4006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    /*"OMX.QCOM.index.param.video.LTRMode"*/
4016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_IndexParamVideoLTRMode = 0x7F000025,
4026eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
4036eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    /*"OMX.QCOM.index.param.video.LTRCount"*/
4046eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_IndexParamVideoLTRCount = 0x7F000026,
4056eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
4066eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    /*"OMX.QCOM.index.config.video.LTRPeriod"*/
4076eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_IndexConfigVideoLTRPeriod = 0x7F000027,
4086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
4096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    /*"OMX.QCOM.index.config.video.LTRUse"*/
4106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_IndexConfigVideoLTRUse = 0x7F000028,
4116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
4126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    /*"OMX.QCOM.index.config.video.LTRMark"*/
4136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_IndexConfigVideoLTRMark = 0x7F000029,
414e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan
4158767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* OMX.google.android.index.prependSPSPPSToIDRFrames */
416e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan    OMX_QcomIndexParamSequenceHeaderWithIDR = 0x7F00002A,
417e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan
4188767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* backwards compatibility */
4198767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexParamEnableVUIStreamRestrictFlag = 0x7F10002B,
4208767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4218767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexParamH264AUDelimiter = 0x7F00002B,
4228767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4238767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexParamVideoDownScalar = 0x7F00002C,
4248767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4258767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* "OMX.QCOM.index.param.video.FramePackingExtradata" */
4268767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexParamVideoFramePackingExtradata = 0x7F00002D,
4278767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4288767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* "OMX.QCOM.index.config.activeregiondetection" */
4298767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexConfigActiveRegionDetection = 0x7F00002E,
4308767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4318767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* "OMX.QCOM.index.config.activeregiondetectionstatus" */
4328767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexConfigActiveRegionDetectionStatus = 0x7F00002F,
4338767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4348767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* "OMX.QCOM.index.config.scalingmode" */
4358767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexConfigScalingMode = 0x7F000030,
4368767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4378767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* "OMX.QCOM.index.config.noisereduction" */
4388767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexConfigNoiseReduction = 0x7F000031,
4398767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4408767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* "OMX.QCOM.index.config.imageenhancement" */
4418767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexConfigImageEnhancement = 0x7F000032,
4428767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4438767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* google smooth-streaming support */
4448767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexParamVideoAdaptivePlaybackMode = 0x7F000033,
4458767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4468767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* H.264 MVC codec index */
4478767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_IndexParamVideoMvc = 0x7F000034,
4488767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4498767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* "OMX.QCOM.index.param.video.QPExtradata" */
4508767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexParamVideoQPExtraData = 0x7F000035,
4518767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4528767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* "OMX.QCOM.index.param.video.InputBitsInfoExtradata" */
4538767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexParamVideoInputBitsInfoExtraData = 0x7F000036,
4548767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4558767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* VP8 Hierarchical P support */
4568767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexHierarchicalStructure = 0x7F000037,
4578767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4588767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexParamPerfLevel = 0x7F000038,
459ac64d24c26fd060fb3e2b1c9a1db4ab18dbf7c5dPraveen Chavan
4608767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexParamH264VUITimingInfo = 0x7F000039,
4618767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4628767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexParamPeakBitrate = 0x7F00003A,
4638767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4648767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /*"OMX.QCOM.index.config.video.LTRMark"*/
4658767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexConfigVideoLTRMark = QOMX_IndexConfigVideoLTRMark,
4668767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4678767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* Enable InitialQP index */
4688767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_IndexParamVideoInitialQp = 0x7F00003B,
4698767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4708767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexParamSetMVSearchrange = 0x7F00003C,
471709179c13220590b748a585a698f8c57f0f59b75Praveen Chavan
472709179c13220590b748a585a698f8c57f0f59b75Praveen Chavan    OMX_QcomIndexFlexibleYUVDescription = 0x7F00003D,
473826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev};
474826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
475826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
4768767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * Initial QP parameter.  This structure is used to enable
4778767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * vendor specific extension to let client enable setting
4788767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * initial QP values to I P B Frames
4798767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *
4808767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * STRUCT MEMBERS:
4818767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  nSize              : Size of Structure in bytes
4828767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  nVersion           : OpenMAX IL specification version information
4838767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  nPortIndex         : Index of the port to which this structure applies
4848767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  OMX_U32 nQpI       : First Iframe QP
4858767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  OMX_U32 nQpP       : First Pframe QP
4868767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  OMX_U32 nQpB       : First Bframe QP
4878767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  OMX_U32 bEnableInitQp : Bit field indicating which frame type(s) shall
4888767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *                             use the specified initial QP.
4898767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *                          Bit 0: Enable initial QP for I/IDR
4908767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *                                 and use value specified in nInitQpI
4918767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *                          Bit 1: Enable initial QP for P
4928767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *                                 and use value specified in nInitQpP
4938767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *                          Bit 2: Enable initial QP for B
4948767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *                                 and use value specified in nInitQpB
4958767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan */
4968767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4978767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_EXTNINDEX_VIDEO_INITIALQP {
4988767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
4998767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
5008767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPortIndex;
5018767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nQpI;
5028767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nQpP;
5038767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nQpB;
5048767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 bEnableInitQp;
5058767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_EXTNINDEX_VIDEO_INITIALQP;
5068767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
5078767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
508826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Extension index parameter.  This structure is used to enable
509826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * vendor specific extension on input/output port and
510826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * to pass the required flags and data, if any.
511826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * The format of flags and data being passed is known to
512826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * the client and component apriori.
513826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
514826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
515826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize              : Size of Structure plus pData size
516826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion           : OMX specification version information
517826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex         : Indicates which port to set
518826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bEnable            : Extension index enable (1) or disable (0)
519826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nFlags             : Extension index flags, if any
520826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nDataSize          : Size of the extension index data to follow
521826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  pData              : Extension index data, if present.
522826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
523826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_EXTNINDEX_PARAMTYPE {
524826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
525826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
526826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
527826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bEnable;
528826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nFlags;
529826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nDataSize;
530826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_PTR pData;
531826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_EXTNINDEX_PARAMTYPE;
532826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
533826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
5346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Range index parameter.  This structure is used to enable
5356eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * vendor specific extension on input/output port and
5366eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to pass the required minimum and maximum values
5376eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *
5386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * STRUCT MEMBERS:
5396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize              : Size of Structure in bytes
5406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion           : OpenMAX IL specification version information
5416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex         : Index of the port to which this structure applies
5426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nMin               : Minimum value
5436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nMax               : Maximum value
5446eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSteSize           : Step size
5456eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
5466eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct QOMX_EXTNINDEX_RANGETYPE {
5476eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nSize;
5486eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
5496eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nPortIndex;
5506eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_S32 nMin;
5516eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_S32 nMax;
5526eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_S32 nStepSize;
5536eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} QOMX_EXTNINDEX_RANGETYPE;
5546eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
5556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5566eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *   Specifies LTR mode types.
5576eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
5586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef enum QOMX_VIDEO_LTRMODETYPE
5596eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal{
5606eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_VIDEO_LTRMode_Disable    = 0x0, /**< LTR encoding is disabled */
5616eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_VIDEO_LTRMode_Manual     = 0x1, /**< In this mode, IL client configures
5626eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           **  the encoder the LTR count and manually
5636eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           **  controls the marking and use of LTR
5646eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           **  frames during video encoding.
5656eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           */
5666eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_VIDEO_LTRMode_Auto       = 0x2, /**< In this mode, IL client configures
5676eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           **  the encoder the LTR count and LTR
5686eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           **  period. The encoder marks LTR frames
5696eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           **  automatically based on the LTR period
5706eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           **  during video encoding. IL client controls
5716eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           **  the use of LTR frames.
5726eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           */
5736eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_VIDEO_LTRMode_MAX    = 0x7FFFFFFF /** Maximum LTR Mode type */
5746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} QOMX_VIDEO_LTRMODETYPE;
5756eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
5766eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5776eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * LTR mode index parameter.  This structure is used
5786eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to enable vendor specific extension on output port
5796eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to pass the LTR mode information.
5806eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *
5816eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * STRUCT MEMBERS:
5826eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize              : Size of Structure in bytes
5836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion           : OpenMAX IL specification version information
5846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex         : Index of the port to which this structure applies
5856eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eLTRMode           : Specifies the LTR mode used in encoder
5866eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
5876eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct QOMX_VIDEO_PARAM_LTRMODE_TYPE {
5886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nSize;
5896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
5906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nPortIndex;
5916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_VIDEO_LTRMODETYPE eLTRMode;
5926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} QOMX_VIDEO_PARAM_LTRMODE_TYPE;
5936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
5946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
5956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * LTR count index parameter.  This structure is used
5966eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to enable vendor specific extension on output port
5976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to pass the LTR count information.
5986eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *
5996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * STRUCT MEMBERS:
6006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize              : Size of Structure in bytes
6016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion           : OpenMAX IL specification version information
6026eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex         : Index of the port to which this structure applies
6036eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nCount             : Specifies the number of LTR frames stored in the
6046eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *                       encoder component
6056eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
6066eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct QOMX_VIDEO_PARAM_LTRCOUNT_TYPE {
6076eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nSize;
6086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
6096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nPortIndex;
6106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nCount;
6116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} QOMX_VIDEO_PARAM_LTRCOUNT_TYPE;
6126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
6136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * LTR period index parameter.  This structure is used
6156eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to enable vendor specific extension on output port
6166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to pass the LTR period information.
6176eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *
6186eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * STRUCT MEMBERS:
6196eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize              : Size of Structure in bytes
6206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion           : OpenMAX IL specification version information
6216eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex         : Index of the port to which this structure applies
6226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nFrames            : Specifies the number of frames between two consecutive
6236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *                       LTR frames.
6246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
6256eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE {
6266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nSize;
6276eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
6286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nPortIndex;
6296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nFrames;
6306eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE;
6316eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
6326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Marks the next encoded frame as an LTR frame.
6346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * STRUCT MEMBERS:
6356eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize              : Size of Structure in bytes
6366eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion           : OpenMAX IL specification version information
6376eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex         : Index of the port to which this structure applies
6386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
6396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct QOMX_VIDEO_CONFIG_LTRMARK_TYPE {
6406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nSize;
6416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
6426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nPortIndex;
6436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} QOMX_VIDEO_CONFIG_LTRMARK_TYPE;
6446eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
6456eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6466eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Specifies an LTR frame to encode subsequent frames.
6476eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * STRUCT MEMBERS:
6486eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize              : Size of Structure in bytes
6496eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion           : OpenMAX IL specification version information
6506eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex         : Index of the port to which this structure applies
6516eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nID                : Specifies the identifier of the LTR frame to be used
6526eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                         as reference frame for encoding subsequent frames.
6536eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nFrames            : Specifies the number of subsequent frames to be
6546eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                         encoded using the LTR frame with its identifier
6556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                         nID as reference frame. Short-term reference frames
6566eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                         will be used thereafter. The value of 0xFFFFFFFF
6576eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                         indicates that all subsequent frames will be
6586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                         encodedusing this LTR frame as reference frame.
6596eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
6606eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct QOMX_VIDEO_CONFIG_LTRUSE_TYPE {
6616eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nSize;
6626eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
6636eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nPortIndex;
6646eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nID;
6656eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nFrames;
6666eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} QOMX_VIDEO_CONFIG_LTRUSE_TYPE;
6676eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
6686eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
669826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Enumeration used to define the video encoder modes
670826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
671826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * ENUMS:
672826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  EncoderModeDefault : Default video recording mode.
673826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                       All encoder settings made through
674826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                       OMX_SetParameter/OMX_SetConfig are applied. No
675826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                       parameter is overridden.
676826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  EncoderModeMMS : Video recording mode for MMS (Multimedia Messaging
677826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                   Service). This mode is similar to EncoderModeDefault
678826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                   except that here the Rate control mode is overridden
679826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                   internally and set as a variant of variable bitrate with
680826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                   variable frame rate. After this mode is set if the IL
681826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                   client tries to set OMX_VIDEO_CONTROLRATETYPE via
682826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                   OMX_IndexParamVideoBitrate that would be rejected. For
683826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                   this, client should set mode back to EncoderModeDefault
684826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                   first and then change OMX_VIDEO_CONTROLRATETYPE.
685826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
686826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum QOMX_VIDEO_ENCODERMODETYPE
687826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
688826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_EncoderModeDefault        = 0x00,
689826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_EncoderModeMMS            = 0x01,
690826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_EncoderModeMax            = 0x7FFFFFFF
691826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_ENCODERMODETYPE;
692826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
693826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
694826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * This structure is used to set the video encoder mode.
695826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
696826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
697826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize      : Size of the structure in bytes
698826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version info
699826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
700826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nMode : defines the video encoder mode
701826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
702826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_PARAM_ENCODERMODETYPE {
703826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
704826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
705826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
706826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_ENCODERMODETYPE nMode;
707826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_PARAM_ENCODERMODETYPE;
708826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
709826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
710826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * This structure describes the parameters corresponding to the
711826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * QOMX_VIDEO_SYNTAXHDRTYPE extension. This parameter can be queried
712826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * during the loaded state.
713826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
714826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
715826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_SYNTAXHDRTYPE
716826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
717826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nSize;           /** Size of the structure in bytes */
718826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_VERSIONTYPE nVersion;/** OMX specification version information */
719826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nPortIndex;      /** Portindex which is extended by this structure */
720826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nBytes;    	    /** The number of bytes filled in to the buffer */
721826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U8 data[1];          /** Buffer to store the header information */
722826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_SYNTAXHDRTYPE;
723826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
724826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
725826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * This structure describes the parameters corresponding to the
726826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * QOMX_VIDEO_TEMPORALSPATIALTYPE extension. This parameter can be set
727826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * dynamically during any state except the state invalid.  This is primarily
728826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * used for setting MaxQP from the application.  This is set on the out port.
729826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
730826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
731826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_TEMPORALSPATIALTYPE
732826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
733826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nSize;           /** Size of the structure in bytes */
734826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_VERSIONTYPE nVersion;/** OMX specification version information */
735826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nPortIndex;      /** Portindex which is extended by this structure */
736826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nTSFactor;       /** Temoral spatial tradeoff factor value in 0-100 */
737826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_TEMPORALSPATIALTYPE;
738826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
739826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
740826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * This structure describes the parameters corresponding to the
741826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OMX_QCOM_VIDEO_CONFIG_INTRAPERIODTYPE extension. This parameter can be set
742826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * dynamically during any state except the state invalid.  This is set on the out port.
743826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
744826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
745826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_INTRAPERIODTYPE
746826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
747826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nSize;           /** Size of the structure in bytes */
748826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_VERSIONTYPE nVersion;/** OMX specification version information */
749826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nPortIndex;      /** Portindex which is extended by this structure */
750826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nIDRPeriod;      /** This specifies coding a frame as IDR after every nPFrames
751826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev			        of intra frames. If this parameter is set to 0, only the
752826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev				first frame of the encode session is an IDR frame. This
753826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev				field is ignored for non-AVC codecs and is used only for
754826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev				codecs that support IDR Period */
755826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nPFrames;         /** The number of "P" frames between two "I" frames */
756826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nBFrames;         /** The number of "B" frames between two "I" frames */
757826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_INTRAPERIODTYPE;
758826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
759826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
760826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * This structure describes the parameters corresponding to the
761826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OMX_QCOM_VIDEO_CONFIG_ULBUFFEROCCUPANCYTYPE extension. This parameter can be set
762826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * dynamically during any state except the state invalid. This is used for the buffer negotiation
763826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * with other clients.  This is set on the out port.
764826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
765826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_VIDEO_CONFIG_ULBUFFEROCCUPANCYTYPE
766826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
767826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nSize;            /** Size of the structure in bytes */
768826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_VERSIONTYPE nVersion; /** OMX specification version information */
769826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nPortIndex;       /** Portindex which is extended by this structure */
770826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nBufferOccupancy; /** The number of bytes to be set for the buffer occupancy */
771826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_VIDEO_CONFIG_ULBUFFEROCCUPANCYTYPE;
772826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
773826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
774826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * This structure describes the parameters corresponding to the
775826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OMX_QCOM_VIDEO_CONFIG_RANDOMINTRAREFRESHTYPE extension. This parameter can be set
776826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * dynamically during any state except the state invalid. This is primarily used for the dynamic/random
777826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * intrarefresh.  This is set on the out port.
778826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
779826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_VIDEO_CONFIG_RANDOMINTRAREFRESHTYPE
780826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
781826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nSize;           /** Size of the structure in bytes */
782826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_VERSIONTYPE nVersion;/** OMX specification version information */
783826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nPortIndex;      /** Portindex which is extended by this structure */
784826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nRirMBs;         /** The number of MBs to be set for intrarefresh */
785826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_VIDEO_CONFIG_RANDOMINTRAREFRESHTYPE;
786826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
787826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
788826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
789826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * This structure describes the parameters corresponding to the
790826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OMX_QCOM_VIDEO_CONFIG_QPRANGE extension. This parameter can be set
791826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * dynamically during any state except the state invalid. This is primarily
792826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * used for the min/max QP to be set from the application.  This
793826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * is set on the out port.
794826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
795826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_VIDEO_CONFIG_QPRANGE
796826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
797826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nSize;           /** Size of the structure in bytes */
798826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_VERSIONTYPE nVersion;/** OMX specification version information */
799826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nPortIndex;      /** Portindex which is extended by this structure */
800826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nMinQP;          /** The number for minimum quantization parameter */
801826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nMaxQP;          /** The number for maximum quantization parameter */
802826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_VIDEO_CONFIG_QPRANGE;
803826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
8048767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
8058767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * This structure describes the parameters for the
8068767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * OMX_QcomIndexParamH264AUDelimiter extension.  It enables/disables
8078767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * the AU delimiters in the H264 stream, which is used by WFD.
8088767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan */
8098767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_QCOM_VIDEO_CONFIG_H264_AUD
8108767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan{
8118767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U32 nSize;           /** Size of the structure in bytes */
8128767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_VERSIONTYPE nVersion;/** OMX specification version information */
8138767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_BOOL bEnable;        /** Enable/disable the setting */
8148767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_QCOM_VIDEO_CONFIG_H264_AUD;
8158767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
8168767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef enum QOMX_VIDEO_PERF_LEVEL
8178767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan{
8188767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QCOM_PerfLevelNominal,
8198767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QCOM_PerfLevelTurbo
8208767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_VIDEO_PERF_LEVEL;
8218767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
8228767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
8238767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * This structure describes the parameters corresponding
8248767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * to OMX_QcomIndexParamPerfLevel extension. It will set
8258767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * the performance mode specified as QOMX_VIDEO_PERF_LEVEL.
8268767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan */
8278767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_QCOM_VIDEO_PARAM_PERF_LEVEL {
8288767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;                      /** Size of the structure in bytes */
8298767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;           /** OMX specification version information */
8308767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_PERF_LEVEL ePerfLevel;   /** Performance level */
8318767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_QCOM_VIDEO_PARAM_PERF_LEVEL;
8328767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
8338767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
8348767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * This structure describes the parameters corresponding
8358767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * to OMX_QcomIndexParamH264VUITimingInfo extension. It
8368767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * will enable/disable the VUI timing info.
8378767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan */
8388767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_QCOM_VIDEO_PARAM_VUI_TIMING_INFO {
8398767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;              /** Size of the structure in bytes */
8408767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;   /** OMX specification version information */
8418767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_BOOL bEnable;           /** Enable/disable the setting */
8428767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_QCOM_VIDEO_PARAM_VUI_TIMING_INFO;
8438767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
8448767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
8458767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * This structure describes the parameters corresponding
8468767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * to OMX_QcomIndexParamPeakBitrate extension. It will
8478767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * set the peak bitrate specified by nPeakBitrate.
8488767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan */
8498767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_QCOM_VIDEO_PARAM_PEAK_BITRATE {
8508767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;              /** Size of the structure in bytes */
8518767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;   /** OMX specification version information */
8528767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPeakBitrate;       /** Peak bitrate value */
8538767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_QCOM_VIDEO_PARAM_PEAK_BITRATE;
854826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
855826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VENDOR_EXTRADATATYPE  {
856826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
857826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nDataSize;
858826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U8  *pData;     // cdata (codec_data/extradata)
859826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VENDOR_EXTRADATATYPE;
860826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
86161a2c6a19dbd06a317a419623020e02056661876Praveen Chavan/**
86261a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * This structure describes the parameters corresponding to the
86361a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * OMX_VENDOR_VIDEOFRAMERATE extension. This parameter can be set
86461a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * dynamically during any state except the state invalid. This is
86561a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * used for frame rate to be set from the application. This
86661a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * is set on the in port.
86761a2c6a19dbd06a317a419623020e02056661876Praveen Chavan */
86861a2c6a19dbd06a317a419623020e02056661876Praveen Chavantypedef struct OMX_VENDOR_VIDEOFRAMERATE  {
86961a2c6a19dbd06a317a419623020e02056661876Praveen Chavan   OMX_U32 nSize;           /** Size of the structure in bytes */
87061a2c6a19dbd06a317a419623020e02056661876Praveen Chavan   OMX_VERSIONTYPE nVersion;/** OMX specification version information */
87161a2c6a19dbd06a317a419623020e02056661876Praveen Chavan   OMX_U32 nPortIndex;      /** Portindex which is extended by this structure */
87261a2c6a19dbd06a317a419623020e02056661876Praveen Chavan   OMX_U32 nFps;            /** Frame rate value */
87361a2c6a19dbd06a317a419623020e02056661876Praveen Chavan   OMX_BOOL bEnabled;       /** Flag to enable or disable client's frame rate value */
87461a2c6a19dbd06a317a419623020e02056661876Praveen Chavan} OMX_VENDOR_VIDEOFRAMERATE;
87561a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
876826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_INDEXVENDORTYPE {
877826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_IndexVendorFileReadInputFilename = 0xFF000001,
878826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_IndexVendorParser3gpInputFilename = 0xFF000002,
879826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_IndexVendorVideoExtraData = 0xFF000003,
88061a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    OMX_IndexVendorAudioExtraData = 0xFF000004,
88161a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    OMX_IndexVendorVideoFrameRate = 0xFF000005,
882826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_INDEXVENDORTYPE;
883826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
884826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_QCOM_VC1RESOLUTIONTYPE
885826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
886826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_VC1_PICTURE_RES_1x1,
887826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_VC1_PICTURE_RES_2x1,
888826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_VC1_PICTURE_RES_1x2,
889826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_VC1_PICTURE_RES_2x2
890826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_VC1RESOLUTIONTYPE;
891826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
892826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_QCOM_INTERLACETYPE
893826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
894826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_InterlaceFrameProgressive,
895826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst,
896826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst,
897826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_InterlaceFrameTopFieldFirst,
898826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_InterlaceFrameBottomFieldFirst,
899826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_InterlaceFieldTop,
900826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_InterlaceFieldBottom
901826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_QCOM_INTERLACETYPE;
902826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
903826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_PARAM_VIDEO_INTERLACETYPE
904826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
905826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;           /** Size of the structure in bytes */
906826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;/** OMX specification version information */
907826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;    /** Portindex which is extended by this structure */
908826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bInterlace;  /** Interlace content **/
909826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_QCOM_PARAM_VIDEO_INTERLACETYPE;
910826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
911826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_CONFIG_INTERLACETYPE
912826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
913826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
914826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
915826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
916826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nIndex;
917826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_INTERLACETYPE eInterlaceType;
918826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_QCOM_CONFIG_INTERLACETYPE;
919826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
920826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define MAX_PAN_SCAN_WINDOWS 4
921826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
922826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_PANSCAN
923826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
924826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 numWindows;
925826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOMRectangle window[MAX_PAN_SCAN_WINDOWS];
926826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_PANSCAN;
927826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
928826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_ASPECT_RATIO
929826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
930826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 aspectRatioX;
931826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 aspectRatioY;
932826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_ASPECT_RATIO;
933826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
9346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct OMX_QCOM_DISPLAY_ASPECT_RATIO
9356eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal{
9366eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal   OMX_U32 displayVerticalSize;
9376eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal   OMX_U32 displayHorizontalSize;
9386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} OMX_QCOM_DISPLAY_ASPECT_RATIO;
9396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
940826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_FRAME_PACK_ARRANGEMENT
941826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
942826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 nSize;
943826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_VERSIONTYPE nVersion;
944826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 nPortIndex;
945826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 id;
946826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 cancel_flag;
947826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 type;
948826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 quincunx_sampling_flag;
949826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 content_interpretation_type;
950826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 spatial_flipping_flag;
951826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 frame0_flipped_flag;
952826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 field_views_flag;
953826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 current_frame_is_frame0_flag;
954826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 frame0_self_contained_flag;
955826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 frame1_self_contained_flag;
956826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 frame0_grid_position_x;
957826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 frame0_grid_position_y;
958826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 frame1_grid_position_x;
959826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 frame1_grid_position_y;
960826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 reserved_byte;
961826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 repetition_period;
962826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 extension_flag;
963826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_FRAME_PACK_ARRANGEMENT;
964826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
9658767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_QCOM_EXTRADATA_QP
9668767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan{
9678767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U32        nQP;
9688767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_QCOM_EXTRADATA_QP;
9698767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
9708767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_QCOM_EXTRADATA_BITS_INFO
9718767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan{
9728767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U32 header_bits;
9738767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U32 frame_bits;
9748767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_QCOM_EXTRADATA_BITS_INFO;
9758767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
9768767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_QCOM_EXTRADATA_USERDATA {
9778767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U32 type;
9788767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U32 data[1];
9798767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_QCOM_EXTRADATA_USERDATA;
9808767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
981826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_EXTRADATA_FRAMEINFO
982826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
983826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   // common frame meta data. interlace related info removed
984826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_VIDEO_PICTURETYPE  ePicType;
985826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_INTERLACETYPE interlaceType;
986826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_PANSCAN       panScan;
987826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_ASPECT_RATIO  aspectRatio;
9886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal   OMX_QCOM_DISPLAY_ASPECT_RATIO displayAspectRatio;
989826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32                nConcealedMacroblocks;
990826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32                nFrameRate;
9918767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_TICKS              nTimeStamp;
992826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_EXTRADATA_FRAMEINFO;
993826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
994826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_EXTRADATA_FRAMEDIMENSION
995826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
996826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   /** Frame Dimensions added to each YUV buffer */
997826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32   nDecWidth;  /** Width  rounded to multiple of 16 */
998826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32   nDecHeight; /** Height rounded to multiple of 16 */
999826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32   nActualWidth; /** Actual Frame Width */
1000826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32   nActualHeight; /** Actual Frame Height */
1001826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1002826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_QCOM_EXTRADATA_FRAMEDIMENSION;
1003826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1004826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_H264EXTRADATA
1005826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
1006826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U64 seiTimeStamp;
1007826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_H264EXTRADATA;
1008826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1009826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_VC1EXTRADATA
1010826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
1011826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32                     nVC1RangeY;
1012826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32                     nVC1RangeUV;
1013826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_VC1RESOLUTIONTYPE eVC1PicResolution;
1014826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_VC1EXTRADATA;
1015826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1016826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef union OMX_QCOM_EXTRADATA_CODEC_DATA
1017826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
1018826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_H264EXTRADATA h264ExtraData;
1019826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_VC1EXTRADATA vc1ExtraData;
1020826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_EXTRADATA_CODEC_DATA;
1021826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
10228767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_QCOM_EXTRADATA_MBINFO
10238767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan{
10248767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U32 nFormat;
10258767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U32 nDataSize;
10268767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U8  data[0];
10278767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_QCOM_EXTRADATA_MBINFO;
10288767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
1029826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_QCOM_EXTRADATATYPE
1030826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
1031826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_ExtraDataFrameInfo = 0x7F000001,
1032826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_ExtraDataH264 = 0x7F000002,
1033826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_ExtraDataVC1 = 0x7F000003,
1034826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_ExtraDataFrameDimension = 0x7F000004,
1035826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_ExtraDataVideoEncoderSliceInfo = 0x7F000005,
1036826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_ExtraDataConcealMB = 0x7F000006,
1037826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_ExtraDataInterlaceFormat = 0x7F000007,
10386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal   OMX_ExtraDataPortDef = 0x7F000008,
10396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal   OMX_ExtraDataMP2ExtnData = 0x7F000009,
10406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal   OMX_ExtraDataMP2UserData = 0x7F00000a,
10416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal   OMX_ExtraDataVideoLTRInfo = 0x7F00000b,
10428767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_ExtraDataFramePackingArrangement = 0x7F00000c,
10438767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_ExtraDataQP =                      0x7F00000d,
10448767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_ExtraDataInputBitsInfo =           0x7F00000e,
10458767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_ExtraDataVideoEncoderMBInfo =      0x7F00000f,
1046826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_EXTRADATATYPE;
1047826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1048826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct  OMX_STREAMINTERLACEFORMATTYPE {
1049826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
1050826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1051826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
1052826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bInterlaceFormat;
1053826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nInterlaceFormats;
1054826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_STREAMINTERLACEFORMAT;
1055826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1056826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_INTERLACETYPE
1057826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
1058826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_InterlaceFrameProgressive,
1059826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_InterlaceInterleaveFrameTopFieldFirst,
1060826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_InterlaceInterleaveFrameBottomFieldFirst,
1061826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_InterlaceFrameTopFieldFirst,
1062826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_InterlaceFrameBottomFieldFirst
1063826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_INTERLACEs;
1064826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1065826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1066826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_EXTRADATA_HEADER_SIZE 20
1067826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1068826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
10698767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * AVC profile types, each profile indicates support for various
10708767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * performance bounds and different annexes.
10718767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan */
10728767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef enum QOMX_VIDEO_AVCPROFILETYPE {
10738767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_AVCProfileBaseline      = OMX_VIDEO_AVCProfileBaseline,
10748767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_AVCProfileMain          = OMX_VIDEO_AVCProfileMain,
10758767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_AVCProfileExtended      = OMX_VIDEO_AVCProfileExtended,
10768767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_AVCProfileHigh          = OMX_VIDEO_AVCProfileHigh,
10778767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_AVCProfileHigh10        = OMX_VIDEO_AVCProfileHigh10,
10788767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_AVCProfileHigh422       = OMX_VIDEO_AVCProfileHigh422,
10798767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_AVCProfileHigh444       = OMX_VIDEO_AVCProfileHigh444,
10808767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* QCom specific profile indexes */
10818767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_AVCProfileConstrainedBaseline   = OMX_VIDEO_AVCProfileVendorStartUnused + 1,
10828767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_VIDEO_AVCPROFILETYPE;
10838767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
10848767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
10858767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
10868767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * H.264 MVC Profiles
10878767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan  */
10888767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef enum QOMX_VIDEO_MVCPROFILETYPE {
10898767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCProfileStereoHigh = 0x1,
10908767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCProfileMultiViewHigh = 0x2,
10918767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCProfileKhronosExtensions = 0x6F000000,
10928767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCProfileVendorStartUnused = 0x7F000000,
10938767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCProfileMax = 0x7FFFFFFF
10948767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_VIDEO_MVCPROFILETYPE;
10958767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
10968767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
10978767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * H.264 MVC Levels
10988767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan  */
10998767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef enum QOMX_VIDEO_MVCLEVELTYPE {
11008767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel1   = 0x01,     /**< Level 1 */
11018767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel1b  = 0x02,     /**< Level 1b */
11028767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel11  = 0x04,     /**< Level 1.1 */
11038767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel12  = 0x08,     /**< Level 1.2 */
11048767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel13  = 0x10,     /**< Level 1.3 */
11058767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel2   = 0x20,     /**< Level 2 */
11068767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel21  = 0x40,     /**< Level 2.1 */
11078767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel22  = 0x80,     /**< Level 2.2 */
11088767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel3   = 0x100,    /**< Level 3 */
11098767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel31  = 0x200,    /**< Level 3.1 */
11108767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel32  = 0x400,    /**< Level 3.2 */
11118767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel4   = 0x800,    /**< Level 4 */
11128767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel41  = 0x1000,   /**< Level 4.1 */
11138767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel42  = 0x2000,   /**< Level 4.2 */
11148767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel5   = 0x4000,   /**< Level 5 */
11158767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel51  = 0x8000,   /**< Level 5.1 */
11168767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevelKhronosExtensions = 0x6F000000,
11178767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevelVendorStartUnused = 0x7F000000,
11188767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevelMax = 0x7FFFFFFF
11198767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_VIDEO_MVCLEVELTYPE;
11208767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
11218767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
1122826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * DivX Versions
1123826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
1124826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum  QOMX_VIDEO_DIVXFORMATTYPE {
1125826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFormatUnused = 0x01, /**< Format unused or unknown */
1126826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFormat311    = 0x02, /**< DivX 3.11 */
1127826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFormat4      = 0x04, /**< DivX 4 */
1128826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFormat5      = 0x08, /**< DivX 5 */
1129826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFormat6      = 0x10, /**< DivX 6 */
1130826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFormatKhronosExtensions = 0x6F000000,
1131826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFormatVendorStartUnused = 0x7F000000,
1132826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFormatMax = 0x7FFFFFFF
1133826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_DIVXFORMATTYPE;
1134826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1135826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
1136826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * DivX profile types, each profile indicates support for
1137826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * various performance bounds.
1138826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
1139826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum QOMX_VIDEO_DIVXPROFILETYPE {
1140826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DivXProfileqMobile = 0x01, /**< qMobile Profile */
1141826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DivXProfileMobile  = 0x02, /**< Mobile Profile */
1142826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DivXProfileMT      = 0x04, /**< Mobile Theatre Profile */
1143826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DivXProfileHT      = 0x08, /**< Home Theatre Profile */
1144826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DivXProfileHD      = 0x10, /**< High Definition Profile */
1145826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXProfileKhronosExtensions = 0x6F000000,
1146826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXProfileVendorStartUnused = 0x7F000000,
1147826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXProfileMax = 0x7FFFFFFF
1148826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_DIVXPROFILETYPE;
1149826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1150826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
1151826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * DivX Video Params
1152826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
1153826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  STRUCT MEMBERS:
1154826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize      : Size of the structure in bytes
1155826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
1156826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
1157826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  eFormat    : Version of DivX stream / data
1158826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  eProfile   : Profile of DivX stream / data
1159826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
1160826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_PARAM_DIVXTYPE {
1161826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
1162826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1163826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
1164826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFORMATTYPE eFormat;
1165826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXPROFILETYPE eProfile;
1166826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_PARAM_DIVXTYPE;
1167826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1168826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1169826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1170826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
1171826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  VP Versions
1172826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
1173826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum QOMX_VIDEO_VPFORMATTYPE {
1174826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPFormatUnused = 0x01, /**< Format unused or unknown */
1175826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPFormat6      = 0x02, /**< VP6 Video Format */
1176826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPFormat7      = 0x04, /**< VP7 Video Format */
1177826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPFormat8      = 0x08, /**< VP8 Video Format */
1178826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPFormatKhronosExtensions = 0x6F000000,
1179826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPFormatVendorStartUnused = 0x7F000000,
1180826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPFormatMax = 0x7FFFFFFF
1181826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_VPFORMATTYPE;
1182826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1183826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
1184826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * VP profile types, each profile indicates support for various
1185826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * encoding tools.
1186826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
1187826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum QOMX_VIDEO_VPPROFILETYPE {
1188826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileSimple   = 0x01, /**< Simple Profile, applies to VP6 only */
1189826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileAdvanced = 0x02, /**< Advanced Profile, applies to VP6 only */
1190826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileVersion0 = 0x04, /**< Version 0, applies to VP7 and VP8 */
1191826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileVersion1 = 0x08, /**< Version 1, applies to VP7 and VP8 */
1192826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileVersion2 = 0x10, /**< Version 2, applies to VP8 only */
1193826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileVersion3 = 0x20, /**< Version 3, applies to VP8 only */
1194826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileKhronosExtensions = 0x6F000000,
1195826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileVendorStartUnused = 0x7F000000,
1196826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileMax = 0x7FFFFFFF
1197826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_VPPROFILETYPE;
1198826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1199826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
1200826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * VP Video Params
1201826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
1202826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  STRUCT MEMBERS:
1203826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize      : Size of the structure in bytes
1204826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
1205826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
1206826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  eFormat    : Format of VP stream / data
1207826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  eProfile   : Profile or Version of VP stream / data
1208826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
1209826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_PARAM_VPTYPE {
1210826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
1211826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1212826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
1213826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPFORMATTYPE eFormat;
1214826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPPROFILETYPE eProfile;
1215826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_PARAM_VPTYPE;
1216826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1217826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
1218826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Spark Versions
1219826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
1220826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum QOMX_VIDEO_SPARKFORMATTYPE {
1221826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_SparkFormatUnused = 0x01, /**< Format unused or unknown */
1222826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_SparkFormat0      = 0x02, /**< Video Format Version 0 */
1223826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_SparkFormat1      = 0x04, /**< Video Format Version 1 */
1224826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_SparkFormatKhronosExtensions = 0x6F000000,
1225826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_SparkFormatVendorStartUnused = 0x7F000000,
1226826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_SparkFormatMax = 0x7FFFFFFF
1227826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_SPARKFORMATTYPE;
1228826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1229826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
1230826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Spark Video Params
1231826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
1232826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  STRUCT MEMBERS:
1233826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize      : Size of the structure in bytes
1234826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
1235826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
1236826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  eFormat    : Version of Spark stream / data
1237826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
1238826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_PARAM_SPARKTYPE {
1239826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
1240826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1241826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
1242826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_SPARKFORMATTYPE eFormat;
1243826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_PARAM_SPARKTYPE;
1244826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1245826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1246826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_QUERY_DECODER_INSTANCES {
1247826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
1248826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1249826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
1250826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nNumOfInstances;
1251826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_QUERY_DECODER_INSTANCES;
1252826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1253826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_ENABLETYPE {
1254826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bEnable;
1255826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_ENABLETYPE;
1256826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1257826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum QOMX_VIDEO_EVENTS {
1258826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EventIndexsettingChanged = OMX_EventVendorStartUnused
1259826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_EVENTS;
1260826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1261826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum QOMX_VIDEO_PICTURE_ORDER {
1262826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DISPLAY_ORDER = 0x1,
1263826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DECODE_ORDER = 0x2
1264826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_PICTURE_ORDER;
1265826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1266826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_DECODER_PICTURE_ORDER {
1267826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
1268826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1269826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
1270826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_PICTURE_ORDER eOutputPictureOrder;
1271826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_DECODER_PICTURE_ORDER;
1272826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1273826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_INDEXEXTRADATATYPE {
1274826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
1275826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1276826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
1277826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bEnabled;
1278826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_INDEXTYPE nIndex;
1279826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_INDEXEXTRADATATYPE;
1280826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1281826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_INDEXTIMESTAMPREORDER {
1282826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev	OMX_U32 nSize;
1283826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev	OMX_VERSIONTYPE nVersion;
1284826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev	OMX_U32 nPortIndex;
1285826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev	OMX_BOOL bEnable;
1286826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_INDEXTIMESTAMPREORDER;
1287826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
12888767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_INDEXDOWNSCALAR {
12898767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan        OMX_U32 nSize;
12908767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan        OMX_VERSIONTYPE nVersion;
12918767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan        OMX_U32 nPortIndex;
12928767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan        OMX_BOOL bEnable;
12938767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_INDEXDOWNSCALAR;
12948767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
12958767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
1296826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_QCOM_INDEX_PARAM_VIDEO_SYNCFRAMEDECODINGMODE "OMX.QCOM.index.param.video.SyncFrameDecodingMode"
1297826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_QCOM_INDEX_PARAM_INDEXEXTRADATA "OMX.QCOM.index.param.IndexExtraData"
1298826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_QCOM_INDEX_PARAM_VIDEO_SLICEDELIVERYMODE "OMX.QCOM.index.param.SliceDeliveryMode"
12998767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_PARAM_VIDEO_FRAMEPACKING_EXTRADATA "OMX.QCOM.index.param.video.FramePackingExtradata"
13008767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_PARAM_VIDEO_QP_EXTRADATA "OMX.QCOM.index.param.video.QPExtradata"
13018767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_PARAM_VIDEO_INPUTBITSINFO_EXTRADATA "OMX.QCOM.index.param.video.InputBitsInfoExtradata"
13028767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_PARAM_VIDEO_EXTNUSER_EXTRADATA "OMX.QCOM.index.param.video.ExtnUserExtraData"
13038767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_CONFIG_VIDEO_FRAMEPACKING_INFO "OMX.QCOM.index.config.video.FramePackingInfo"
1304826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1305826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum {
1306826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_FRAME_PACKING_CHECKERBOARD = 0,
1307826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_FRAME_PACKING_COLUMN_INTERLEAVE = 1,
1308826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_FRAME_PACKING_ROW_INTERLEAVE = 2,
1309826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_FRAME_PACKING_SIDE_BY_SIDE = 3,
1310826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_FRAME_PACKING_TOP_BOTTOM = 4,
1311826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_FRAME_PACKING_TEMPORAL = 5,
1312826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_FRAME_PACKING_ARRANGEMENT;
1313826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1314826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum {
1315826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_CONTENT_UNSPECIFIED = 0,
1316826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_CONTENT_LR_VIEW = 1,
1317826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_CONTENT_RL_VIEW = 2,
1318826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_CONTENT_INTERPRETATION;
1319826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1320e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan// A pointer to this struct is passed to OMX_SetParameter when the extension
1321e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan// index for the 'OMX.google.android.index.setVUIStreamRestrictFlag' extension
1322e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan// is given.
1323e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavantypedef struct QOMX_VUI_BITSTREAM_RESTRICT {
1324e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan    OMX_U32 nSize;
1325e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan    OMX_VERSIONTYPE nVersion;
1326e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan    OMX_BOOL bEnable;
1327e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan} QOMX_VUI_BITSTREAM_RESTRICT;
1328e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan
132961a2c6a19dbd06a317a419623020e02056661876Praveen Chavan/**
133061a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * Specifies the extended picture types. These values should be
133161a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * OR'd along with the types defined in OMX_VIDEO_PICTURETYPE to
133261a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * signal all pictures types which are allowed.
133361a2c6a19dbd06a317a419623020e02056661876Praveen Chavan *
133461a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * ENUMS:
133561a2c6a19dbd06a317a419623020e02056661876Praveen Chavan *  H.264 Specific Picture Types:   IDR
133661a2c6a19dbd06a317a419623020e02056661876Praveen Chavan */
133761a2c6a19dbd06a317a419623020e02056661876Praveen Chavantypedef enum QOMX_VIDEO_PICTURETYPE {
133861a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    QOMX_VIDEO_PictureTypeIDR = OMX_VIDEO_PictureTypeVendorStartUnused + 0x1000
133961a2c6a19dbd06a317a419623020e02056661876Praveen Chavan} QOMX_VIDEO_PICTURETYPE;
1340dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
13418767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_CONFIG_ACTIVE_REGION_DETECTION           "OMX.QCOM.index.config.activeregiondetection"
13428767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_CONFIG_ACTIVE_REGION_DETECTION_STATUS    "OMX.QCOM.index.config.activeregiondetectionstatus"
13438767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_CONFIG_SCALING_MODE                      "OMX.QCOM.index.config.scalingmode"
13448767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_CONFIG_NOISEREDUCTION                    "OMX.QCOM.index.config.noisereduction"
13458767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_CONFIG_IMAGEENHANCEMENT                  "OMX.QCOM.index.config.imageenhancement"
13468767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_PARAM_HELDBUFFERCOUNT                    "OMX.QCOM.index.param.HeldBufferCount" /**< reference: QOMX_HELDBUFFERCOUNTTYPE */
13478767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
13488767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
13498767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_RECTTYPE {
13508767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_S32 nLeft;
13518767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_S32 nTop;
13528767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nWidth;
13538767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nHeight;
13548767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_RECTTYPE;
13558767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
13568767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_ACTIVEREGIONDETECTIONTYPE {
13578767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
13588767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
13598767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPortIndex;
13608767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_BOOL bEnable;
13618767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_RECTTYPE sROI;
13628767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nNumExclusionRegions;
13638767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_RECTTYPE sExclusionRegions[1];
13648767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_ACTIVEREGIONDETECTIONTYPE;
13658767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
13668767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_ACTIVEREGIONDETECTION_STATUSTYPE {
13678767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
13688767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
13698767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPortIndex;
13708767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_BOOL bDetected;
13718767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_RECTTYPE sDetectedRegion;
13728767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_ACTIVEREGIONDETECTION_STATUSTYPE;
13738767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
13748767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef enum QOMX_SCALE_MODETYPE {
13758767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_SCALE_MODE_Normal,
13768767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_SCALE_MODE_Anamorphic,
13778767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_SCALE_MODE_Max = 0x7FFFFFFF
13788767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_SCALE_MODETYPE;
13798767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
13808767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_SCALINGMODETYPE {
13818767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
13828767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
13838767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_SCALE_MODETYPE  eScaleMode;
13848767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_SCALINGMODETYPE;
13858767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
13868767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_NOISEREDUCTIONTYPE {
13878767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
13888767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
13898767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPortIndex;
13908767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_BOOL bEnable;
13918767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_BOOL bAutoMode;
13928767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_S32 nNoiseReduction;
13938767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_NOISEREDUCTIONTYPE;
13948767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
13958767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_IMAGEENHANCEMENTTYPE {
13968767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
13978767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
13988767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPortIndex;
13998767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_BOOL bEnable;
14008767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_BOOL bAutoMode;
14018767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_S32 nImageEnhancement;
14028767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_IMAGEENHANCEMENTTYPE;
14038767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
14048767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/*
14058767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * these are part of OMX1.2 but JB MR2 branch doesn't have them defined
14068767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * OMX_IndexParamInterlaceFormat
14078767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * OMX_INTERLACEFORMATTYPE
14088767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan */
14098767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#ifndef OMX_IndexParamInterlaceFormat
14108767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_IndexParamInterlaceFormat (0x7FF00000)
14118767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_INTERLACEFORMATTYPE {
14128767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
14138767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
14148767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPortIndex;
14158767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nFormat;
14168767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_TICKS nTimeStamp;
14178767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_INTERLACEFORMATTYPE;
14188767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#endif
14198767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
14208767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
14218767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * This structure is used to indicate the maximum number of buffers
14228767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * that a port will hold during data flow.
14238767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *
14248767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * STRUCT MEMBERS:
14258767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  nSize              : Size of the structure in bytes
14268767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  nVersion           : OMX specification version info
14278767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  nPortIndex         : Port that this structure applies to
14288767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  nHeldBufferCount   : Read-only, maximum number of buffers that will be held
14298767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan */
14308767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_HELDBUFFERCOUNTTYPE {
14318767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
14328767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
14338767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPortIndex;
14348767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nHeldBufferCount;
14358767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_HELDBUFFERCOUNTTYPE;
14368767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
14378767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef enum QOMX_VIDEO_HIERARCHICALCODINGTYPE {
14388767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_HIERARCHICALCODING_P = 0x01,
14398767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_HIERARCHICALCODING_B = 0x02,
14408767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_VIDEO_HIERARCHICALCODINGTYPE;
14418767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
14428767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_VIDEO_HIERARCHICALLAYERS {
14438767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
14448767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
14458767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPortIndex;
14468767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nNumLayers;
14478767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_HIERARCHICALCODINGTYPE eHierarchicalCodingType;
14488767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_VIDEO_HIERARCHICALLAYERS;
14498767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
14508767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
1451826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifdef __cplusplus
1452826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}
1453826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif /* __cplusplus */
1454826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1455826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif /* __OMX_QCOM_EXTENSIONS_H__ */
1456