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