1826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/*--------------------------------------------------------------------------
216ee85d1d456a4b694fd32baa5f52341e638b5d8Praveen ChavanCopyright (c) 2009-2016, 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 */
232f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_PTR 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    /* Enable InitialQP index */
4658767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_IndexParamVideoInitialQp = 0x7F00003B,
4668767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
4678767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QcomIndexParamSetMVSearchrange = 0x7F00003C,
468709179c13220590b748a585a698f8c57f0f59b75Praveen Chavan
469f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_QcomIndexConfigPerfLevel = 0x7F00003D,
470f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
471f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    /*"OMX.QCOM.index.param.video.LTRCount"*/
472f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_QcomIndexParamVideoLTRCount = QOMX_IndexParamVideoLTRCount,
473f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
474f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    /*"OMX.QCOM.index.config.video.LTRUse"*/
475f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_QcomIndexConfigVideoLTRUse = QOMX_IndexConfigVideoLTRUse,
476f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
477f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    /*"OMX.QCOM.index.config.video.LTRMark"*/
478f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_QcomIndexConfigVideoLTRMark = QOMX_IndexConfigVideoLTRMark,
479f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
480f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    /*"OMX.QCOM.index.param.video.CustomBufferSize"*/
481f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_QcomIndexParamVideoCustomBufferSize = 0x7F00003E,
482f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
483f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    /*"OMX.QCOM.index.param.video.Mpeg2SeqDispExtraData"*/
484f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_QcomIndexParamMpeg2SeqDispExtraData = 0x7F000040,
485f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
486f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    /* Max Hierarchical P layers */
487f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_QcomIndexMaxHierarchicallayers = 0x7F000041,
488f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
489f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    /* Set Encoder Performance Index */
490f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_QcomIndexConfigVideoVencPerfMode = 0x7F000042,
491f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
492f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    /* Set Hybrid Hier-p layers */
493f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_QcomIndexParamVideoHybridHierpMode = 0x7F000043,
494f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
495f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_QcomIndexFlexibleYUVDescription = 0x7F000044,
4969841688286f54c2267446b04d5386574a73502b7Shivaprasad Hongal
4979841688286f54c2267446b04d5386574a73502b7Shivaprasad Hongal    /*"OMX.google.android.index.allocateNativeHandle"*/
4989841688286f54c2267446b04d5386574a73502b7Shivaprasad Hongal    OMX_GoogleAndroidIndexAllocateNativeHandle = 0x7F000045,
499826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev};
500826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
501826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
502f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan* This is custom extension to configure Hybrid Hier-p settings.
503f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan* This mode is different from enabling Hier-p mode. This
504f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan* property enables Hier-p encoding with LTR referencing in each
505f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan* sub-GOP.
506f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan*
507f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan* STRUCT MEMBERS
508f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan*
509f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan* nSize         : Size of Structure in bytes
510f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan* nVersion      : OpenMAX IL specification version information
511f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan* nHpLayers     : Set the number of Hier-p layers for the session
512f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan*                  - This should be <= 6. (1 Base layer +
513f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan*                    5 Enhancement layers)
514f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan*/
515f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
516f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavantypedef struct QOMX_EXTNINDEX_VIDEO_HYBRID_HP_MODE {
517f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan   OMX_U32 nSize;
518f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan   OMX_VERSIONTYPE nVersion;
519f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan   OMX_U32 nHpLayers;
520f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan} QOMX_EXTNINDEX_VIDEO_HYBRID_HP_MODE;
521f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
522f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan/**
523f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan * Encoder Performance Mode.  This structure is used to set
524f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan * performance mode or power save mode when encoding. The search
525f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan * range is modified to save power or improve quality.
526f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan *
527f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan * STRUCT MEMBERS:
528f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan * OMX_U32 nPerfMode  : Performance mode:
529f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan *                                      1: MAX_QUALITY
530f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan *                                      2: POWER_SAVE
531f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan */
532f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
533f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavantypedef struct QOMX_EXTNINDEX_VIDEO_PERFMODE {
534f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_U32 nSize;
535f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_VERSIONTYPE nVersion;
536f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_U32 nPerfMode;
537f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan} QOMX_EXTNINDEX_VIDEO_PERFMODE;
538f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
539f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan/**
5408767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * Initial QP parameter.  This structure is used to enable
5418767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * vendor specific extension to let client enable setting
5428767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * initial QP values to I P B Frames
5438767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *
5448767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * STRUCT MEMBERS:
5458767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  nSize              : Size of Structure in bytes
5468767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  nVersion           : OpenMAX IL specification version information
5478767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  nPortIndex         : Index of the port to which this structure applies
5488767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  OMX_U32 nQpI       : First Iframe QP
5498767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  OMX_U32 nQpP       : First Pframe QP
5508767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  OMX_U32 nQpB       : First Bframe QP
5518767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  OMX_U32 bEnableInitQp : Bit field indicating which frame type(s) shall
5528767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *                             use the specified initial QP.
5538767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *                          Bit 0: Enable initial QP for I/IDR
5548767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *                                 and use value specified in nInitQpI
5558767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *                          Bit 1: Enable initial QP for P
5568767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *                                 and use value specified in nInitQpP
5578767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *                          Bit 2: Enable initial QP for B
5588767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *                                 and use value specified in nInitQpB
5598767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan */
5608767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
5618767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_EXTNINDEX_VIDEO_INITIALQP {
5628767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
5638767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
5648767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPortIndex;
5658767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nQpI;
5668767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nQpP;
5678767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nQpB;
5688767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 bEnableInitQp;
5698767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_EXTNINDEX_VIDEO_INITIALQP;
5708767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
5718767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
572826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Extension index parameter.  This structure is used to enable
573826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * vendor specific extension on input/output port and
574826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * to pass the required flags and data, if any.
575826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * The format of flags and data being passed is known to
576826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * the client and component apriori.
577826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
578826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
579826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize              : Size of Structure plus pData size
580826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion           : OMX specification version information
581826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex         : Indicates which port to set
582826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  bEnable            : Extension index enable (1) or disable (0)
583826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nFlags             : Extension index flags, if any
584826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nDataSize          : Size of the extension index data to follow
585826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  pData              : Extension index data, if present.
586826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
587826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_EXTNINDEX_PARAMTYPE {
588826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
589826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
590826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
591826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bEnable;
592826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nFlags;
593826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nDataSize;
594826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_PTR pData;
595826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_EXTNINDEX_PARAMTYPE;
596826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
597826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
5986eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Range index parameter.  This structure is used to enable
5996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * vendor specific extension on input/output port and
6006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to pass the required minimum and maximum values
6016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *
6026eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * STRUCT MEMBERS:
6036eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize              : Size of Structure in bytes
6046eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion           : OpenMAX IL specification version information
6056eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex         : Index of the port to which this structure applies
6066eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nMin               : Minimum value
6076eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nMax               : Maximum value
6086eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSteSize           : Step size
6096eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
6106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct QOMX_EXTNINDEX_RANGETYPE {
6116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nSize;
6126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
6136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nPortIndex;
6146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_S32 nMin;
6156eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_S32 nMax;
6166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_S32 nStepSize;
6176eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} QOMX_EXTNINDEX_RANGETYPE;
6186eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
6196eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6206eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *   Specifies LTR mode types.
6216eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
6226eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef enum QOMX_VIDEO_LTRMODETYPE
6236eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal{
6246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_VIDEO_LTRMode_Disable    = 0x0, /**< LTR encoding is disabled */
6256eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_VIDEO_LTRMode_Manual     = 0x1, /**< In this mode, IL client configures
6266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           **  the encoder the LTR count and manually
6276eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           **  controls the marking and use of LTR
6286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           **  frames during video encoding.
6296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           */
6306eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_VIDEO_LTRMode_Auto       = 0x2, /**< In this mode, IL client configures
6316eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           **  the encoder the LTR count and LTR
6326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           **  period. The encoder marks LTR frames
6336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           **  automatically based on the LTR period
6346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           **  during video encoding. IL client controls
6356eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           **  the use of LTR frames.
6366eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                                           */
6376eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_VIDEO_LTRMode_MAX    = 0x7FFFFFFF /** Maximum LTR Mode type */
6386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} QOMX_VIDEO_LTRMODETYPE;
6396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
6406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * LTR mode index parameter.  This structure is used
6426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to enable vendor specific extension on output port
6436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to pass the LTR mode information.
6446eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *
6456eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * STRUCT MEMBERS:
6466eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize              : Size of Structure in bytes
6476eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion           : OpenMAX IL specification version information
6486eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex         : Index of the port to which this structure applies
6496eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  eLTRMode           : Specifies the LTR mode used in encoder
6506eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
6516eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct QOMX_VIDEO_PARAM_LTRMODE_TYPE {
6526eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nSize;
6536eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
6546eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nPortIndex;
6556eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    QOMX_VIDEO_LTRMODETYPE eLTRMode;
6566eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} QOMX_VIDEO_PARAM_LTRMODE_TYPE;
6576eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
6586eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6596eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * LTR count index parameter.  This structure is used
6606eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to enable vendor specific extension on output port
6616eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to pass the LTR count information.
6626eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *
6636eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * STRUCT MEMBERS:
6646eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize              : Size of Structure in bytes
6656eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion           : OpenMAX IL specification version information
6666eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex         : Index of the port to which this structure applies
6676eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nCount             : Specifies the number of LTR frames stored in the
6686eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *                       encoder component
6696eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
6706eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct QOMX_VIDEO_PARAM_LTRCOUNT_TYPE {
6716eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nSize;
6726eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
6736eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nPortIndex;
6746eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nCount;
6756eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} QOMX_VIDEO_PARAM_LTRCOUNT_TYPE;
6766eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
677f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
678f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan/**
679f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan * This should be used with OMX_QcomIndexParamVideoLTRCount extension.
680f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan */
681f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavantypedef QOMX_VIDEO_PARAM_LTRCOUNT_TYPE OMX_QCOM_VIDEO_PARAM_LTRCOUNT_TYPE;
682f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
6836eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
6846eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * LTR period index parameter.  This structure is used
6856eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to enable vendor specific extension on output port
6866eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * to pass the LTR period information.
6876eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *
6886eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * STRUCT MEMBERS:
6896eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize              : Size of Structure in bytes
6906eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion           : OpenMAX IL specification version information
6916eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex         : Index of the port to which this structure applies
6926eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nFrames            : Specifies the number of frames between two consecutive
6936eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *                       LTR frames.
6946eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
6956eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE {
6966eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nSize;
6976eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
6986eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nPortIndex;
6996eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nFrames;
7006eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE;
7016eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
7026eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
7036eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Marks the next encoded frame as an LTR frame.
7046eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * STRUCT MEMBERS:
7056eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize              : Size of Structure in bytes
7066eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion           : OpenMAX IL specification version information
7076eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex         : Index of the port to which this structure applies
708f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan *  nID                : Specifies the identifier of the LTR frame to be marked
709f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan *                       as reference frame for encoding subsequent frames.
7106eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
7116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct QOMX_VIDEO_CONFIG_LTRMARK_TYPE {
7126eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nSize;
7136eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
7146eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nPortIndex;
715f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_U32 nID;
7166eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} QOMX_VIDEO_CONFIG_LTRMARK_TYPE;
7176eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
7186eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
719f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan * This should be used with OMX_QcomIndexConfigVideoLTRMark extension.
720f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan */
721f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavantypedef QOMX_VIDEO_CONFIG_LTRMARK_TYPE OMX_QCOM_VIDEO_CONFIG_LTRMARK_TYPE;
722f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
723f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan/**
7246eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Specifies an LTR frame to encode subsequent frames.
7256eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * STRUCT MEMBERS:
7266eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nSize              : Size of Structure in bytes
7276eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nVersion           : OpenMAX IL specification version information
7286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nPortIndex         : Index of the port to which this structure applies
7296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nID                : Specifies the identifier of the LTR frame to be used
7306eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                         as reference frame for encoding subsequent frames.
7316eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal *  nFrames            : Specifies the number of subsequent frames to be
7326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                         encoded using the LTR frame with its identifier
7336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                         nID as reference frame. Short-term reference frames
7346eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                         will be used thereafter. The value of 0xFFFFFFFF
7356eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                         indicates that all subsequent frames will be
7366eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal                         encodedusing this LTR frame as reference frame.
7376eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal */
7386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct QOMX_VIDEO_CONFIG_LTRUSE_TYPE {
7396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nSize;
7406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_VERSIONTYPE nVersion;
7416eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nPortIndex;
7426eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nID;
7436eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal    OMX_U32 nFrames;
7446eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} QOMX_VIDEO_CONFIG_LTRUSE_TYPE;
7456eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
7466eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal/**
747f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan * This should be used with OMX_QcomIndexConfigVideoLTRUse extension.
748f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan */
749f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavantypedef QOMX_VIDEO_CONFIG_LTRUSE_TYPE OMX_QCOM_VIDEO_CONFIG_LTRUSE_TYPE;
750f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
751f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan/**
752826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Enumeration used to define the video encoder modes
753826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
754826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * ENUMS:
755826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  EncoderModeDefault : Default video recording mode.
756826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                       All encoder settings made through
757826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                       OMX_SetParameter/OMX_SetConfig are applied. No
758826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                       parameter is overridden.
759826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  EncoderModeMMS : Video recording mode for MMS (Multimedia Messaging
760826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                   Service). This mode is similar to EncoderModeDefault
761826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                   except that here the Rate control mode is overridden
762826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                   internally and set as a variant of variable bitrate with
763826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                   variable frame rate. After this mode is set if the IL
764826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                   client tries to set OMX_VIDEO_CONTROLRATETYPE via
765826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                   OMX_IndexParamVideoBitrate that would be rejected. For
766826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                   this, client should set mode back to EncoderModeDefault
767826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *                   first and then change OMX_VIDEO_CONTROLRATETYPE.
768826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
769826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum QOMX_VIDEO_ENCODERMODETYPE
770826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
771826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_EncoderModeDefault        = 0x00,
772826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_EncoderModeMMS            = 0x01,
773826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_EncoderModeMax            = 0x7FFFFFFF
774826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_ENCODERMODETYPE;
775826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
776826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
777826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * This structure is used to set the video encoder mode.
778826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
779826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * STRUCT MEMBERS:
780826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize      : Size of the structure in bytes
781826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version info
782826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
783826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nMode : defines the video encoder mode
784826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
785826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_PARAM_ENCODERMODETYPE {
786826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
787826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
788826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
789826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_ENCODERMODETYPE nMode;
790826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_PARAM_ENCODERMODETYPE;
791826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
792826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
793826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * This structure describes the parameters corresponding to the
794826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * QOMX_VIDEO_SYNTAXHDRTYPE extension. This parameter can be queried
795826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * during the loaded state.
796826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
797826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
798826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_SYNTAXHDRTYPE
799826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
800826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nSize;           /** Size of the structure in bytes */
801826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_VERSIONTYPE nVersion;/** OMX specification version information */
802826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nPortIndex;      /** Portindex which is extended by this structure */
803826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nBytes;    	    /** The number of bytes filled in to the buffer */
804826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U8 data[1];          /** Buffer to store the header information */
805826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_SYNTAXHDRTYPE;
806826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
807826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
808826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * This structure describes the parameters corresponding to the
809826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * QOMX_VIDEO_TEMPORALSPATIALTYPE extension. This parameter can be set
810826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * dynamically during any state except the state invalid.  This is primarily
811826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * used for setting MaxQP from the application.  This is set on the out port.
812826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
813826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
814826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_TEMPORALSPATIALTYPE
815826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
816826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nSize;           /** Size of the structure in bytes */
817826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_VERSIONTYPE nVersion;/** OMX specification version information */
818826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nPortIndex;      /** Portindex which is extended by this structure */
819826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nTSFactor;       /** Temoral spatial tradeoff factor value in 0-100 */
820826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_TEMPORALSPATIALTYPE;
821826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
822826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
823826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * This structure describes the parameters corresponding to the
824826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OMX_QCOM_VIDEO_CONFIG_INTRAPERIODTYPE extension. This parameter can be set
825826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * dynamically during any state except the state invalid.  This is set on the out port.
826826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
827826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
828826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_INTRAPERIODTYPE
829826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
830826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nSize;           /** Size of the structure in bytes */
831826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_VERSIONTYPE nVersion;/** OMX specification version information */
832826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nPortIndex;      /** Portindex which is extended by this structure */
833826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nIDRPeriod;      /** This specifies coding a frame as IDR after every nPFrames
834826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev			        of intra frames. If this parameter is set to 0, only the
835826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev				first frame of the encode session is an IDR frame. This
836826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev				field is ignored for non-AVC codecs and is used only for
837826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev				codecs that support IDR Period */
838826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nPFrames;         /** The number of "P" frames between two "I" frames */
839826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nBFrames;         /** The number of "B" frames between two "I" frames */
840826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_INTRAPERIODTYPE;
841826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
842826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
843826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * This structure describes the parameters corresponding to the
844826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OMX_QCOM_VIDEO_CONFIG_ULBUFFEROCCUPANCYTYPE extension. This parameter can be set
845826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * dynamically during any state except the state invalid. This is used for the buffer negotiation
846826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * with other clients.  This is set on the out port.
847826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
848826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_VIDEO_CONFIG_ULBUFFEROCCUPANCYTYPE
849826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
850826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nSize;            /** Size of the structure in bytes */
851826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_VERSIONTYPE nVersion; /** OMX specification version information */
852826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nPortIndex;       /** Portindex which is extended by this structure */
853826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nBufferOccupancy; /** The number of bytes to be set for the buffer occupancy */
854826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_VIDEO_CONFIG_ULBUFFEROCCUPANCYTYPE;
855826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
856826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
857826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * This structure describes the parameters corresponding to the
858826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OMX_QCOM_VIDEO_CONFIG_RANDOMINTRAREFRESHTYPE extension. This parameter can be set
859826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * dynamically during any state except the state invalid. This is primarily used for the dynamic/random
860826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * intrarefresh.  This is set on the out port.
861826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
862826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_VIDEO_CONFIG_RANDOMINTRAREFRESHTYPE
863826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
864826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nSize;           /** Size of the structure in bytes */
865826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_VERSIONTYPE nVersion;/** OMX specification version information */
866826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nPortIndex;      /** Portindex which is extended by this structure */
867826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nRirMBs;         /** The number of MBs to be set for intrarefresh */
868826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_VIDEO_CONFIG_RANDOMINTRAREFRESHTYPE;
869826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
870826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
871826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
872826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * This structure describes the parameters corresponding to the
873826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * OMX_QCOM_VIDEO_CONFIG_QPRANGE extension. This parameter can be set
874826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * dynamically during any state except the state invalid. This is primarily
875826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * used for the min/max QP to be set from the application.  This
876826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * is set on the out port.
877826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
878826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_VIDEO_CONFIG_QPRANGE
879826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
880826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nSize;           /** Size of the structure in bytes */
881826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_VERSIONTYPE nVersion;/** OMX specification version information */
882826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nPortIndex;      /** Portindex which is extended by this structure */
883826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nMinQP;          /** The number for minimum quantization parameter */
884826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 nMaxQP;          /** The number for maximum quantization parameter */
885826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_VIDEO_CONFIG_QPRANGE;
886826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
8878767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
8888767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * This structure describes the parameters for the
8898767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * OMX_QcomIndexParamH264AUDelimiter extension.  It enables/disables
8908767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * the AU delimiters in the H264 stream, which is used by WFD.
8918767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan */
8928767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_QCOM_VIDEO_CONFIG_H264_AUD
8938767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan{
8948767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U32 nSize;           /** Size of the structure in bytes */
8958767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_VERSIONTYPE nVersion;/** OMX specification version information */
8968767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_BOOL bEnable;        /** Enable/disable the setting */
8978767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_QCOM_VIDEO_CONFIG_H264_AUD;
8988767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
8998767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef enum QOMX_VIDEO_PERF_LEVEL
9008767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan{
9018767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QCOM_PerfLevelNominal,
9028767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_QCOM_PerfLevelTurbo
9038767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_VIDEO_PERF_LEVEL;
9048767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
9058767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
9068767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * This structure describes the parameters corresponding
9078767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * to OMX_QcomIndexParamPerfLevel extension. It will set
9088767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * the performance mode specified as QOMX_VIDEO_PERF_LEVEL.
9098767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan */
9108767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_QCOM_VIDEO_PARAM_PERF_LEVEL {
9118767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;                      /** Size of the structure in bytes */
9128767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;           /** OMX specification version information */
9138767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_PERF_LEVEL ePerfLevel;   /** Performance level */
9148767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_QCOM_VIDEO_PARAM_PERF_LEVEL;
9158767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
9168767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
9178767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * This structure describes the parameters corresponding
918f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan * to OMX_QcomIndexConfigPerfLevel extension. It will set
919f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan * the performance mode specified as QOMX_VIDEO_PERF_LEVEL.
920f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan */
921f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavantypedef struct OMX_QCOM_VIDEO_CONFIG_PERF_LEVEL {
922f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_U32 nSize;                      /** Size of the structure in bytes */
923f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_VERSIONTYPE nVersion;           /** OMX specification version information */
924f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    QOMX_VIDEO_PERF_LEVEL ePerfLevel;   /** Performance level */
925f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan} OMX_QCOM_VIDEO_CONFIG_PERF_LEVEL;
926f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
927f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan/**
928f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan * This structure describes the parameters corresponding
9298767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * to OMX_QcomIndexParamH264VUITimingInfo extension. It
9308767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * will enable/disable the VUI timing info.
9318767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan */
9328767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_QCOM_VIDEO_PARAM_VUI_TIMING_INFO {
9338767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;              /** Size of the structure in bytes */
9348767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;   /** OMX specification version information */
9358767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_BOOL bEnable;           /** Enable/disable the setting */
9368767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_QCOM_VIDEO_PARAM_VUI_TIMING_INFO;
9378767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
9388767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
9398767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * This structure describes the parameters corresponding
9408767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * to OMX_QcomIndexParamPeakBitrate extension. It will
9418767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * set the peak bitrate specified by nPeakBitrate.
9428767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan */
9438767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_QCOM_VIDEO_PARAM_PEAK_BITRATE {
9448767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;              /** Size of the structure in bytes */
9458767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;   /** OMX specification version information */
9468767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPeakBitrate;       /** Peak bitrate value */
9478767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_QCOM_VIDEO_PARAM_PEAK_BITRATE;
948826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
949826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_VENDOR_EXTRADATATYPE  {
950826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
951826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nDataSize;
952826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U8  *pData;     // cdata (codec_data/extradata)
953826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_VENDOR_EXTRADATATYPE;
954826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
95561a2c6a19dbd06a317a419623020e02056661876Praveen Chavan/**
95661a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * This structure describes the parameters corresponding to the
95761a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * OMX_VENDOR_VIDEOFRAMERATE extension. This parameter can be set
95861a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * dynamically during any state except the state invalid. This is
95961a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * used for frame rate to be set from the application. This
96061a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * is set on the in port.
96161a2c6a19dbd06a317a419623020e02056661876Praveen Chavan */
96261a2c6a19dbd06a317a419623020e02056661876Praveen Chavantypedef struct OMX_VENDOR_VIDEOFRAMERATE  {
96361a2c6a19dbd06a317a419623020e02056661876Praveen Chavan   OMX_U32 nSize;           /** Size of the structure in bytes */
96461a2c6a19dbd06a317a419623020e02056661876Praveen Chavan   OMX_VERSIONTYPE nVersion;/** OMX specification version information */
96561a2c6a19dbd06a317a419623020e02056661876Praveen Chavan   OMX_U32 nPortIndex;      /** Portindex which is extended by this structure */
96661a2c6a19dbd06a317a419623020e02056661876Praveen Chavan   OMX_U32 nFps;            /** Frame rate value */
96761a2c6a19dbd06a317a419623020e02056661876Praveen Chavan   OMX_BOOL bEnabled;       /** Flag to enable or disable client's frame rate value */
96861a2c6a19dbd06a317a419623020e02056661876Praveen Chavan} OMX_VENDOR_VIDEOFRAMERATE;
96961a2c6a19dbd06a317a419623020e02056661876Praveen Chavan
970826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_INDEXVENDORTYPE {
971826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_IndexVendorFileReadInputFilename = 0xFF000001,
972826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_IndexVendorParser3gpInputFilename = 0xFF000002,
973826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_IndexVendorVideoExtraData = 0xFF000003,
97461a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    OMX_IndexVendorAudioExtraData = 0xFF000004,
97561a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    OMX_IndexVendorVideoFrameRate = 0xFF000005,
976826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_INDEXVENDORTYPE;
977826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
978826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_QCOM_VC1RESOLUTIONTYPE
979826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
980826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_VC1_PICTURE_RES_1x1,
981826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_VC1_PICTURE_RES_2x1,
982826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_VC1_PICTURE_RES_1x2,
983826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_VC1_PICTURE_RES_2x2
984826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_VC1RESOLUTIONTYPE;
985826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
986826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_QCOM_INTERLACETYPE
987826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
988826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_InterlaceFrameProgressive,
989826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst,
990826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst,
991826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_InterlaceFrameTopFieldFirst,
992826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_InterlaceFrameBottomFieldFirst,
993826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_InterlaceFieldTop,
994826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_InterlaceFieldBottom
995826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_QCOM_INTERLACETYPE;
996826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
997826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_PARAM_VIDEO_INTERLACETYPE
998826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
999826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;           /** Size of the structure in bytes */
1000826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;/** OMX specification version information */
1001826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;    /** Portindex which is extended by this structure */
1002826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bInterlace;  /** Interlace content **/
1003826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_QCOM_PARAM_VIDEO_INTERLACETYPE;
1004826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1005826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_CONFIG_INTERLACETYPE
1006826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
1007826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
1008826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1009826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
1010826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nIndex;
1011826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_QCOM_INTERLACETYPE eInterlaceType;
1012826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_QCOM_CONFIG_INTERLACETYPE;
1013826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1014826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define MAX_PAN_SCAN_WINDOWS 4
1015826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1016826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_PANSCAN
1017826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
1018826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 numWindows;
1019826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOMRectangle window[MAX_PAN_SCAN_WINDOWS];
1020826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_PANSCAN;
1021826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1022826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_ASPECT_RATIO
1023826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
1024826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 aspectRatioX;
1025826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32 aspectRatioY;
1026826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_ASPECT_RATIO;
1027826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
10286eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittaltypedef struct OMX_QCOM_DISPLAY_ASPECT_RATIO
10296eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal{
10306eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal   OMX_U32 displayVerticalSize;
10316eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal   OMX_U32 displayHorizontalSize;
10326eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal} OMX_QCOM_DISPLAY_ASPECT_RATIO;
10336eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal
1034826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_FRAME_PACK_ARRANGEMENT
1035826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
1036826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 nSize;
1037826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_VERSIONTYPE nVersion;
1038826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 nPortIndex;
1039826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 id;
1040826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 cancel_flag;
1041826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 type;
1042826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 quincunx_sampling_flag;
1043826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 content_interpretation_type;
1044826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 spatial_flipping_flag;
1045826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 frame0_flipped_flag;
1046826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 field_views_flag;
1047826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 current_frame_is_frame0_flag;
1048826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 frame0_self_contained_flag;
1049826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 frame1_self_contained_flag;
1050826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 frame0_grid_position_x;
1051826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 frame0_grid_position_y;
1052826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 frame1_grid_position_x;
1053826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 frame1_grid_position_y;
1054826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 reserved_byte;
1055826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 repetition_period;
1056826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev  OMX_U32 extension_flag;
1057826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_FRAME_PACK_ARRANGEMENT;
1058826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
10598767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_QCOM_EXTRADATA_QP
10608767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan{
10618767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U32        nQP;
10628767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_QCOM_EXTRADATA_QP;
10638767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
10648767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_QCOM_EXTRADATA_BITS_INFO
10658767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan{
10668767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U32 header_bits;
10678767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U32 frame_bits;
10688767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_QCOM_EXTRADATA_BITS_INFO;
10698767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
10708767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_QCOM_EXTRADATA_USERDATA {
10718767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U32 type;
10728767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U32 data[1];
10738767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_QCOM_EXTRADATA_USERDATA;
10748767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
1075826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_EXTRADATA_FRAMEINFO
1076826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
1077826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   // common frame meta data. interlace related info removed
1078826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_VIDEO_PICTURETYPE  ePicType;
1079826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_INTERLACETYPE interlaceType;
1080826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_PANSCAN       panScan;
1081826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_ASPECT_RATIO  aspectRatio;
10826eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal   OMX_QCOM_DISPLAY_ASPECT_RATIO displayAspectRatio;
1083826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32                nConcealedMacroblocks;
1084826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32                nFrameRate;
10858767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_TICKS              nTimeStamp;
1086826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_EXTRADATA_FRAMEINFO;
1087826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1088826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_EXTRADATA_FRAMEDIMENSION
1089826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
1090826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   /** Frame Dimensions added to each YUV buffer */
1091826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32   nDecWidth;  /** Width  rounded to multiple of 16 */
1092826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32   nDecHeight; /** Height rounded to multiple of 16 */
1093826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32   nActualWidth; /** Actual Frame Width */
1094826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32   nActualHeight; /** Actual Frame Height */
1095826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1096826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_QCOM_EXTRADATA_FRAMEDIMENSION;
1097826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1098826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_H264EXTRADATA
1099826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
1100826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U64 seiTimeStamp;
1101826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_H264EXTRADATA;
1102826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1103826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct OMX_QCOM_VC1EXTRADATA
1104826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
1105826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32                     nVC1RangeY;
1106826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_U32                     nVC1RangeUV;
1107826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_VC1RESOLUTIONTYPE eVC1PicResolution;
1108826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_VC1EXTRADATA;
1109826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1110826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef union OMX_QCOM_EXTRADATA_CODEC_DATA
1111826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
1112826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_H264EXTRADATA h264ExtraData;
1113826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_QCOM_VC1EXTRADATA vc1ExtraData;
1114826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_EXTRADATA_CODEC_DATA;
1115826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
11168767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_QCOM_EXTRADATA_MBINFO
11178767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan{
11188767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U32 nFormat;
11198767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U32 nDataSize;
11208767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan   OMX_U8  data[0];
11218767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_QCOM_EXTRADATA_MBINFO;
11228767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
1123f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavantypedef struct OMX_QCOM_EXTRADATA_MPEG2SEQDISPLAY {
1124f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_U32 disp_width;
1125f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_U32 disp_height;
1126f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan} OMX_QCOM_EXTRADATA_MPEG2SEQDISPLAY;
1127f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan
1128826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_QCOM_EXTRADATATYPE
1129826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
1130826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_ExtraDataFrameInfo = 0x7F000001,
1131826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_ExtraDataH264 = 0x7F000002,
1132826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_ExtraDataVC1 = 0x7F000003,
1133826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_ExtraDataFrameDimension = 0x7F000004,
1134826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_ExtraDataVideoEncoderSliceInfo = 0x7F000005,
1135826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_ExtraDataConcealMB = 0x7F000006,
1136826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_ExtraDataInterlaceFormat = 0x7F000007,
11376eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal   OMX_ExtraDataPortDef = 0x7F000008,
11386eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal   OMX_ExtraDataMP2ExtnData = 0x7F000009,
11396eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal   OMX_ExtraDataMP2UserData = 0x7F00000a,
11406eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal   OMX_ExtraDataVideoLTRInfo = 0x7F00000b,
11418767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_ExtraDataFramePackingArrangement = 0x7F00000c,
11428767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_ExtraDataQP =                      0x7F00000d,
11438767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_ExtraDataInputBitsInfo =           0x7F00000e,
11448767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_ExtraDataVideoEncoderMBInfo =      0x7F00000f,
1145f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan    OMX_ExtraDataMpeg2SeqDisplay =         0x7F000010,
1146826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_QCOM_EXTRADATATYPE;
1147826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1148826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct  OMX_STREAMINTERLACEFORMATTYPE {
1149826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
1150826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1151826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
1152826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bInterlaceFormat;
1153826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nInterlaceFormats;
1154826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} OMX_STREAMINTERLACEFORMAT;
1155826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1156826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum OMX_INTERLACETYPE
1157826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev{
1158826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_InterlaceFrameProgressive,
1159826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_InterlaceInterleaveFrameTopFieldFirst,
1160826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_InterlaceInterleaveFrameBottomFieldFirst,
1161826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_InterlaceFrameTopFieldFirst,
1162826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev   OMX_InterlaceFrameBottomFieldFirst
1163826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}OMX_INTERLACEs;
1164826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1165826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1166826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_EXTRADATA_HEADER_SIZE 20
1167826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1168826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
11698767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * AVC profile types, each profile indicates support for various
11708767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * performance bounds and different annexes.
11718767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan */
11728767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef enum QOMX_VIDEO_AVCPROFILETYPE {
11738767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_AVCProfileBaseline      = OMX_VIDEO_AVCProfileBaseline,
11748767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_AVCProfileMain          = OMX_VIDEO_AVCProfileMain,
11758767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_AVCProfileExtended      = OMX_VIDEO_AVCProfileExtended,
11768767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_AVCProfileHigh          = OMX_VIDEO_AVCProfileHigh,
11778767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_AVCProfileHigh10        = OMX_VIDEO_AVCProfileHigh10,
11788767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_AVCProfileHigh422       = OMX_VIDEO_AVCProfileHigh422,
11798767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_AVCProfileHigh444       = OMX_VIDEO_AVCProfileHigh444,
11808767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    /* QCom specific profile indexes */
11818767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_AVCProfileConstrainedBaseline   = OMX_VIDEO_AVCProfileVendorStartUnused + 1,
11828767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_VIDEO_AVCPROFILETYPE;
11838767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
11848767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
11858767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
11868767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * H.264 MVC Profiles
11878767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan  */
11888767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef enum QOMX_VIDEO_MVCPROFILETYPE {
11898767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCProfileStereoHigh = 0x1,
11908767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCProfileMultiViewHigh = 0x2,
11918767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCProfileKhronosExtensions = 0x6F000000,
11928767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCProfileVendorStartUnused = 0x7F000000,
11938767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCProfileMax = 0x7FFFFFFF
11948767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_VIDEO_MVCPROFILETYPE;
11958767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
11968767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
11978767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * H.264 MVC Levels
11988767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan  */
11998767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef enum QOMX_VIDEO_MVCLEVELTYPE {
12008767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel1   = 0x01,     /**< Level 1 */
12018767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel1b  = 0x02,     /**< Level 1b */
12028767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel11  = 0x04,     /**< Level 1.1 */
12038767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel12  = 0x08,     /**< Level 1.2 */
12048767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel13  = 0x10,     /**< Level 1.3 */
12058767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel2   = 0x20,     /**< Level 2 */
12068767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel21  = 0x40,     /**< Level 2.1 */
12078767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel22  = 0x80,     /**< Level 2.2 */
12088767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel3   = 0x100,    /**< Level 3 */
12098767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel31  = 0x200,    /**< Level 3.1 */
12108767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel32  = 0x400,    /**< Level 3.2 */
12118767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel4   = 0x800,    /**< Level 4 */
12128767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel41  = 0x1000,   /**< Level 4.1 */
12138767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel42  = 0x2000,   /**< Level 4.2 */
12148767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel5   = 0x4000,   /**< Level 5 */
12158767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevel51  = 0x8000,   /**< Level 5.1 */
12168767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevelKhronosExtensions = 0x6F000000,
12178767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevelVendorStartUnused = 0x7F000000,
12188767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_MVCLevelMax = 0x7FFFFFFF
12198767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_VIDEO_MVCLEVELTYPE;
12208767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
12218767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
1222826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * DivX Versions
1223826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
1224826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum  QOMX_VIDEO_DIVXFORMATTYPE {
1225826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFormatUnused = 0x01, /**< Format unused or unknown */
1226826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFormat311    = 0x02, /**< DivX 3.11 */
1227826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFormat4      = 0x04, /**< DivX 4 */
1228826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFormat5      = 0x08, /**< DivX 5 */
1229826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFormat6      = 0x10, /**< DivX 6 */
1230826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFormatKhronosExtensions = 0x6F000000,
1231826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFormatVendorStartUnused = 0x7F000000,
1232826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFormatMax = 0x7FFFFFFF
1233826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_DIVXFORMATTYPE;
1234826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1235826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
1236826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * DivX profile types, each profile indicates support for
1237826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * various performance bounds.
1238826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
1239826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum QOMX_VIDEO_DIVXPROFILETYPE {
1240826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DivXProfileqMobile = 0x01, /**< qMobile Profile */
1241826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DivXProfileMobile  = 0x02, /**< Mobile Profile */
1242826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DivXProfileMT      = 0x04, /**< Mobile Theatre Profile */
1243826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DivXProfileHT      = 0x08, /**< Home Theatre Profile */
1244826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DivXProfileHD      = 0x10, /**< High Definition Profile */
1245826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXProfileKhronosExtensions = 0x6F000000,
1246826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXProfileVendorStartUnused = 0x7F000000,
1247826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXProfileMax = 0x7FFFFFFF
1248826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_DIVXPROFILETYPE;
1249826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1250826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
1251826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * DivX Video Params
1252826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
1253826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  STRUCT MEMBERS:
1254826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize      : Size of the structure in bytes
1255826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
1256826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
1257826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  eFormat    : Version of DivX stream / data
1258826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  eProfile   : Profile of DivX stream / data
1259826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
1260826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_PARAM_DIVXTYPE {
1261826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
1262826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1263826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
1264826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXFORMATTYPE eFormat;
1265826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DIVXPROFILETYPE eProfile;
1266826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_PARAM_DIVXTYPE;
1267826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1268826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1269826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1270826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
1271826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  VP Versions
1272826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
1273826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum QOMX_VIDEO_VPFORMATTYPE {
1274826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPFormatUnused = 0x01, /**< Format unused or unknown */
1275826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPFormat6      = 0x02, /**< VP6 Video Format */
1276826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPFormat7      = 0x04, /**< VP7 Video Format */
1277826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPFormat8      = 0x08, /**< VP8 Video Format */
1278826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPFormatKhronosExtensions = 0x6F000000,
1279826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPFormatVendorStartUnused = 0x7F000000,
1280826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPFormatMax = 0x7FFFFFFF
1281826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_VPFORMATTYPE;
1282826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1283826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
1284826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * VP profile types, each profile indicates support for various
1285826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * encoding tools.
1286826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
1287826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum QOMX_VIDEO_VPPROFILETYPE {
1288826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileSimple   = 0x01, /**< Simple Profile, applies to VP6 only */
1289826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileAdvanced = 0x02, /**< Advanced Profile, applies to VP6 only */
1290826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileVersion0 = 0x04, /**< Version 0, applies to VP7 and VP8 */
1291826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileVersion1 = 0x08, /**< Version 1, applies to VP7 and VP8 */
1292826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileVersion2 = 0x10, /**< Version 2, applies to VP8 only */
1293826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileVersion3 = 0x20, /**< Version 3, applies to VP8 only */
1294826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileKhronosExtensions = 0x6F000000,
1295826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileVendorStartUnused = 0x7F000000,
1296826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPProfileMax = 0x7FFFFFFF
1297826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_VPPROFILETYPE;
1298826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1299826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
1300826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * VP Video Params
1301826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
1302826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  STRUCT MEMBERS:
1303826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize      : Size of the structure in bytes
1304826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
1305826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
1306826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  eFormat    : Format of VP stream / data
1307826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  eProfile   : Profile or Version of VP stream / data
1308826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
1309826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_PARAM_VPTYPE {
1310826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
1311826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1312826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
1313826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPFORMATTYPE eFormat;
1314826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_VPPROFILETYPE eProfile;
1315826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_PARAM_VPTYPE;
1316826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1317826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
1318826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Spark Versions
1319826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
1320826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum QOMX_VIDEO_SPARKFORMATTYPE {
1321826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_SparkFormatUnused = 0x01, /**< Format unused or unknown */
1322826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_SparkFormat0      = 0x02, /**< Video Format Version 0 */
1323826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_SparkFormat1      = 0x04, /**< Video Format Version 1 */
1324826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_SparkFormatKhronosExtensions = 0x6F000000,
1325826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_SparkFormatVendorStartUnused = 0x7F000000,
1326826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_SparkFormatMax = 0x7FFFFFFF
1327826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_SPARKFORMATTYPE;
1328826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1329826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev/**
1330826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev * Spark Video Params
1331826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *
1332826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  STRUCT MEMBERS:
1333826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nSize      : Size of the structure in bytes
1334826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nVersion   : OMX specification version information
1335826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  nPortIndex : Port that this structure applies to
1336826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev *  eFormat    : Version of Spark stream / data
1337826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev */
1338826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_PARAM_SPARKTYPE {
1339826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
1340826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1341826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
1342826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_SPARKFORMATTYPE eFormat;
1343826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_PARAM_SPARKTYPE;
1344826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1345826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1346826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_QUERY_DECODER_INSTANCES {
1347826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
1348826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1349826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
1350826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nNumOfInstances;
1351826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_QUERY_DECODER_INSTANCES;
1352826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1353826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_ENABLETYPE {
135416ee85d1d456a4b694fd32baa5f52341e638b5d8Praveen Chavan    OMX_U32 nSize;
135516ee85d1d456a4b694fd32baa5f52341e638b5d8Praveen Chavan    OMX_VERSIONTYPE nVersion;
1356826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bEnable;
1357826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_ENABLETYPE;
1358826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1359826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum QOMX_VIDEO_EVENTS {
1360826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_EventIndexsettingChanged = OMX_EventVendorStartUnused
1361826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_EVENTS;
1362826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1363826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum QOMX_VIDEO_PICTURE_ORDER {
1364826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DISPLAY_ORDER = 0x1,
1365826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_DECODE_ORDER = 0x2
1366826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_PICTURE_ORDER;
1367826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1368826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_VIDEO_DECODER_PICTURE_ORDER {
1369826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
1370826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1371826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
1372826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_PICTURE_ORDER eOutputPictureOrder;
1373826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_DECODER_PICTURE_ORDER;
1374826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1375826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_INDEXEXTRADATATYPE {
1376826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nSize;
1377826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_VERSIONTYPE nVersion;
1378826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_U32 nPortIndex;
1379826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_BOOL bEnabled;
1380826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    OMX_INDEXTYPE nIndex;
1381826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_INDEXEXTRADATATYPE;
1382826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1383826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef struct QOMX_INDEXTIMESTAMPREORDER {
1384826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev	OMX_U32 nSize;
1385826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev	OMX_VERSIONTYPE nVersion;
1386826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev	OMX_U32 nPortIndex;
1387826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev	OMX_BOOL bEnable;
1388826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_INDEXTIMESTAMPREORDER;
1389826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
13908767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_INDEXDOWNSCALAR {
13918767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan        OMX_U32 nSize;
13928767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan        OMX_VERSIONTYPE nVersion;
13938767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan        OMX_U32 nPortIndex;
13948767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan        OMX_BOOL bEnable;
13958767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_INDEXDOWNSCALAR;
13968767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
1397f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavantypedef struct QOMX_VIDEO_CUSTOM_BUFFERSIZE {
1398f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan        OMX_U32 nSize;
1399f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan        OMX_VERSIONTYPE nVersion;
1400f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan        OMX_U32 nPortIndex;
1401f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan        OMX_U32 nBufferSize;
1402f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan} QOMX_VIDEO_CUSTOM_BUFFERSIZE;
14038767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
1404826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_QCOM_INDEX_PARAM_VIDEO_SYNCFRAMEDECODINGMODE "OMX.QCOM.index.param.video.SyncFrameDecodingMode"
1405826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_QCOM_INDEX_PARAM_INDEXEXTRADATA "OMX.QCOM.index.param.IndexExtraData"
1406826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#define OMX_QCOM_INDEX_PARAM_VIDEO_SLICEDELIVERYMODE "OMX.QCOM.index.param.SliceDeliveryMode"
14078767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_PARAM_VIDEO_FRAMEPACKING_EXTRADATA "OMX.QCOM.index.param.video.FramePackingExtradata"
14088767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_PARAM_VIDEO_QP_EXTRADATA "OMX.QCOM.index.param.video.QPExtradata"
14098767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_PARAM_VIDEO_INPUTBITSINFO_EXTRADATA "OMX.QCOM.index.param.video.InputBitsInfoExtradata"
14108767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_PARAM_VIDEO_EXTNUSER_EXTRADATA "OMX.QCOM.index.param.video.ExtnUserExtraData"
14118767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_CONFIG_VIDEO_FRAMEPACKING_INFO "OMX.QCOM.index.config.video.FramePackingInfo"
1412f3ca23b5bd0c3d78d321ccf5c5af5eb0d461ff1aPraveen Chavan#define OMX_QCOM_INDEX_PARAM_VIDEO_MPEG2SEQDISP_EXTRADATA "OMX.QCOM.index.param.video.Mpeg2SeqDispExtraData"
1413826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1414826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum {
1415826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_FRAME_PACKING_CHECKERBOARD = 0,
1416826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_FRAME_PACKING_COLUMN_INTERLEAVE = 1,
1417826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_FRAME_PACKING_ROW_INTERLEAVE = 2,
1418826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_FRAME_PACKING_SIDE_BY_SIDE = 3,
1419826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_FRAME_PACKING_TOP_BOTTOM = 4,
1420826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_FRAME_PACKING_TEMPORAL = 5,
1421826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_FRAME_PACKING_ARRANGEMENT;
1422826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1423826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchevtypedef enum {
1424826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_CONTENT_UNSPECIFIED = 0,
1425826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_CONTENT_LR_VIEW = 1,
1426826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev    QOMX_VIDEO_CONTENT_RL_VIEW = 2,
1427826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev} QOMX_VIDEO_CONTENT_INTERPRETATION;
1428826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1429e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan// A pointer to this struct is passed to OMX_SetParameter when the extension
1430e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan// index for the 'OMX.google.android.index.setVUIStreamRestrictFlag' extension
1431e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan// is given.
1432e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavantypedef struct QOMX_VUI_BITSTREAM_RESTRICT {
1433e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan    OMX_U32 nSize;
1434e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan    OMX_VERSIONTYPE nVersion;
1435e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan    OMX_BOOL bEnable;
1436e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan} QOMX_VUI_BITSTREAM_RESTRICT;
1437e0403d8b56d9b2def405981159cddacbdd461ed3Praveen Chavan
143861a2c6a19dbd06a317a419623020e02056661876Praveen Chavan/**
143961a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * Specifies the extended picture types. These values should be
144061a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * OR'd along with the types defined in OMX_VIDEO_PICTURETYPE to
144161a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * signal all pictures types which are allowed.
144261a2c6a19dbd06a317a419623020e02056661876Praveen Chavan *
144361a2c6a19dbd06a317a419623020e02056661876Praveen Chavan * ENUMS:
144461a2c6a19dbd06a317a419623020e02056661876Praveen Chavan *  H.264 Specific Picture Types:   IDR
144561a2c6a19dbd06a317a419623020e02056661876Praveen Chavan */
144661a2c6a19dbd06a317a419623020e02056661876Praveen Chavantypedef enum QOMX_VIDEO_PICTURETYPE {
144761a2c6a19dbd06a317a419623020e02056661876Praveen Chavan    QOMX_VIDEO_PictureTypeIDR = OMX_VIDEO_PictureTypeVendorStartUnused + 0x1000
144861a2c6a19dbd06a317a419623020e02056661876Praveen Chavan} QOMX_VIDEO_PICTURETYPE;
1449dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand
14508767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_CONFIG_ACTIVE_REGION_DETECTION           "OMX.QCOM.index.config.activeregiondetection"
14518767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_CONFIG_ACTIVE_REGION_DETECTION_STATUS    "OMX.QCOM.index.config.activeregiondetectionstatus"
14528767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_CONFIG_SCALING_MODE                      "OMX.QCOM.index.config.scalingmode"
14538767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_CONFIG_NOISEREDUCTION                    "OMX.QCOM.index.config.noisereduction"
14548767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_CONFIG_IMAGEENHANCEMENT                  "OMX.QCOM.index.config.imageenhancement"
14558767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_QCOM_INDEX_PARAM_HELDBUFFERCOUNT                    "OMX.QCOM.index.param.HeldBufferCount" /**< reference: QOMX_HELDBUFFERCOUNTTYPE */
14568767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
14578767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
14588767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_RECTTYPE {
145916ee85d1d456a4b694fd32baa5f52341e638b5d8Praveen Chavan    OMX_U32 nSize;
146016ee85d1d456a4b694fd32baa5f52341e638b5d8Praveen Chavan    OMX_VERSIONTYPE nVersion;
14618767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_S32 nLeft;
14628767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_S32 nTop;
14638767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nWidth;
14648767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nHeight;
14658767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_RECTTYPE;
14668767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
14678767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_ACTIVEREGIONDETECTIONTYPE {
14688767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
14698767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
14708767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPortIndex;
14718767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_BOOL bEnable;
14728767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_RECTTYPE sROI;
14738767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nNumExclusionRegions;
14748767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_RECTTYPE sExclusionRegions[1];
14758767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_ACTIVEREGIONDETECTIONTYPE;
14768767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
14778767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_ACTIVEREGIONDETECTION_STATUSTYPE {
14788767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
14798767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
14808767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPortIndex;
14818767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_BOOL bDetected;
14828767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_RECTTYPE sDetectedRegion;
14838767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_ACTIVEREGIONDETECTION_STATUSTYPE;
14848767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
14858767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef enum QOMX_SCALE_MODETYPE {
14868767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_SCALE_MODE_Normal,
14878767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_SCALE_MODE_Anamorphic,
14888767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_SCALE_MODE_Max = 0x7FFFFFFF
14898767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_SCALE_MODETYPE;
14908767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
14918767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_SCALINGMODETYPE {
14928767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
14938767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
14948767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_SCALE_MODETYPE  eScaleMode;
14958767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_SCALINGMODETYPE;
14968767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
14978767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_NOISEREDUCTIONTYPE {
14988767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
14998767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
15008767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPortIndex;
15018767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_BOOL bEnable;
15028767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_BOOL bAutoMode;
15038767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_S32 nNoiseReduction;
15048767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_NOISEREDUCTIONTYPE;
15058767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
15068767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_IMAGEENHANCEMENTTYPE {
15078767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
15088767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
15098767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPortIndex;
15108767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_BOOL bEnable;
15118767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_BOOL bAutoMode;
15128767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_S32 nImageEnhancement;
15138767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_IMAGEENHANCEMENTTYPE;
15148767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
15158767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/*
15168767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * these are part of OMX1.2 but JB MR2 branch doesn't have them defined
15178767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * OMX_IndexParamInterlaceFormat
15188767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * OMX_INTERLACEFORMATTYPE
15198767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan */
15208767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#ifndef OMX_IndexParamInterlaceFormat
15218767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#define OMX_IndexParamInterlaceFormat (0x7FF00000)
15228767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct OMX_INTERLACEFORMATTYPE {
15238767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
15248767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
15258767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPortIndex;
15268767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nFormat;
15278767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_TICKS nTimeStamp;
15288767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} OMX_INTERLACEFORMATTYPE;
15298767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan#endif
15308767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
15318767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan/**
15328767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * This structure is used to indicate the maximum number of buffers
15338767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * that a port will hold during data flow.
15348767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *
15358767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan * STRUCT MEMBERS:
15368767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  nSize              : Size of the structure in bytes
15378767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  nVersion           : OMX specification version info
15388767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  nPortIndex         : Port that this structure applies to
15398767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan *  nHeldBufferCount   : Read-only, maximum number of buffers that will be held
15408767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan */
15418767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_HELDBUFFERCOUNTTYPE {
15428767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
15438767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
15448767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPortIndex;
15458767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nHeldBufferCount;
15468767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_HELDBUFFERCOUNTTYPE;
15478767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
15488767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef enum QOMX_VIDEO_HIERARCHICALCODINGTYPE {
15498767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_HIERARCHICALCODING_P = 0x01,
15508767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_HIERARCHICALCODING_B = 0x02,
15518767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_VIDEO_HIERARCHICALCODINGTYPE;
15528767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
15538767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavantypedef struct QOMX_VIDEO_HIERARCHICALLAYERS {
15548767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nSize;
15558767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_VERSIONTYPE nVersion;
15568767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nPortIndex;
15578767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    OMX_U32 nNumLayers;
15588767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan    QOMX_VIDEO_HIERARCHICALCODINGTYPE eHierarchicalCodingType;
15598767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan} QOMX_VIDEO_HIERARCHICALLAYERS;
15608767726b6d6b2194cbb3704d7d82f0c7ef34eeb3Praveen Chavan
1561826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#ifdef __cplusplus
1562826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev}
1563826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif /* __cplusplus */
1564826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev
1565826ececcbea342f7a0b92ec61847f1c95d384e05Iliyan Malchev#endif /* __OMX_QCOM_EXTENSIONS_H__ */
1566