1dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/*-------------------------------------------------------------------------- 26eec4d1ea65df853450a6e158718981cba900bf6Shashank MittalCopyright (c) 2009, The Linux Foundation. All rights reserved. 3dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 4dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandRedistribution and use in source and binary forms, with or without 5dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandmodification, are permitted provided that the following conditions are met: 6dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Redistributions of source code must retain the above copyright 7dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand notice, this list of conditions and the following disclaimer. 8dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Redistributions in binary form must reproduce the above copyright 9dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand notice, this list of conditions and the following disclaimer in the 10dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand documentation and/or other materials provided with the distribution. 116eec4d1ea65df853450a6e158718981cba900bf6Shashank Mittal * Neither the name of The Linux Foundation nor 12dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand the names of its contributors may be used to endorse or promote 13dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand products derived from this software without specific prior written 14dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand permission. 15dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 16dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandIMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 19dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandNON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 20dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 21dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 22dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 23dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandOR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 24dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 25dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandOTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 26dd5743ee305c8db17facba3e0176a3d07adc7499Rom LemarchandADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand--------------------------------------------------------------------------*/ 28dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#ifndef __OMX_QCOM_EXTENSIONS_H__ 29dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define __OMX_QCOM_EXTENSIONS_H__ 30dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 31dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/*============================================================================ 32dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand*//** @file OMX_QCOMExtns.h 33dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand This header contains constants and type definitions that specify the 34dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand extensions added to the OpenMAX Vendor specific APIs. 35dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 36dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand*//*========================================================================*/ 37dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 38dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 39dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand////////////////////////////////////////////////////////////////////////////// 40dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand// Include Files 41dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand////////////////////////////////////////////////////////////////////////////// 42dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#include "OMX_Core.h" 43dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#include "OMX_Video.h" 44dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 45dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 46dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * This extension is used to register mapping of a virtual 47dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * address to a physical address. This extension is a parameter 48dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * which can be set using the OMX_SetParameter macro. The data 49dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * pointer corresponding to this extension is 50dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OMX_QCOM_MemMapEntry. This parameter is a 'write only' 51dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * parameter (Current value cannot be queried using 52dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OMX_GetParameter macro). 53dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 54dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_EXTN_REGISTER_MMAP "OMX.QCOM.index.param.register_mmap" 55dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 56dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 57dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * This structure describes the data pointer corresponding to 58dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * the OMX_QCOM_MMAP_REGISTER_EXTN extension. This parameter 59dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * must be set only 'after' populating a port with a buffer 60dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * using OMX_UseBuffer, wherein the data pointer of the buffer 61dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * corresponds to the virtual address as specified in this 62dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * structure. 63dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 64dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandstruct OMX_QCOM_PARAM_MEMMAPENTRYTYPE 65dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 66dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; /** Size of the structure in bytes */ 67dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 68dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; /**< Port number the structure applies to */ 69dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 70dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /** 71dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * The virtual address of memory block 72dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 73dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U64 nVirtualAddress; 74dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 75dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /** 76dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * The physical address corresponding to the virtual address. The physical 77dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * address is contiguous for the entire valid range of the virtual 78dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * address. 79dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 80dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U64 nPhysicalAddress; 81dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand}; 82dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 83dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define QOMX_VIDEO_IntraRefreshRandom (OMX_VIDEO_IntraRefreshVendorStartUnused + 0) 84dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 85dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_PORTDEFN_EXTN "OMX.QCOM.index.param.portdefn" 86dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/* Allowed APIs on the above Index: OMX_GetParameter() and OMX_SetParameter() */ 87dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 88dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_QCOMMemoryRegion 89dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 90dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_MemRegionInvalid, 91dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_MemRegionEBI1, 92dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_MemRegionSMI, 93dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_MemRegionMax = 0X7FFFFFFF 94dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOMMemoryRegion; 95dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 96dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_QCOMCacheAttr 97dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 98dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_CacheAttrNone, 99dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_CacheAttrWriteBack, 100dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_CacheAttrWriteThrough, 101dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_CacheAttrMAX = 0X7FFFFFFF 102dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOMCacheAttr; 103dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 104dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_QCOMRectangle 105dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 106dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_S32 x; 107dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_S32 y; 108dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_S32 dx; 109dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_S32 dy; 110dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOMRectangle; 111dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 112dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** OMX_QCOMFramePackingFormat 113dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Input or output buffer format 114dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 115dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_QCOMFramePackingFormat 116dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 117dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /* 0 - unspecified 118dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 119dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_FramePacking_Unspecified, 120dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 121dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /* 1 - Partial frames may be present OMX IL 1.1.1 Figure 2-10: 122dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Case 1??Each Buffer Filled In Whole or In Part 123dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 124dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_FramePacking_Arbitrary, 125dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 126dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /* 2 - Multiple complete frames per buffer (integer number) 127dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OMX IL 1.1.1 Figure 2-11: Case 2�Each Buffer Filled with 128dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Only Complete Frames of Data 129dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 130dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_FramePacking_CompleteFrames, 131dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 132dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /* 3 - Only one complete frame per buffer, no partial frame 133dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OMX IL 1.1.1 Figure 2-12: Case 3�Each Buffer Filled with 134dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Only One Frame of Compressed Data. Usually at least one 135dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * complete unit of data will be delivered in a buffer for 136dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * uncompressed data formats. 137dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 138dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_FramePacking_OnlyOneCompleteFrame, 139dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 140dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /* 4 - Only one complete subframe per buffer, no partial subframe 141dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Example: In H264, one complete NAL per buffer, where one frame 142dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * can contatin multiple NAL 143dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 144dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_FramePacking_OnlyOneCompleteSubFrame, 145dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 146dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_FramePacking_MAX = 0X7FFFFFFF 147dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOMFramePackingFormat; 148dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 149dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_QCOM_PARAM_PORTDEFINITIONTYPE { 150dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; /** Size of the structure in bytes */ 151dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion;/** OMX specification version information */ 152dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 153dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 154dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /** Platform specific memory region EBI1, SMI, etc.,*/ 155dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOMMemoryRegion nMemRegion; 156dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 157dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOMCacheAttr nCacheAttr; /** Cache attributes */ 158dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 159dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /** Input or output buffer format */ 160dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nFramePackingFormat; 161dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 162dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOM_PARAM_PORTDEFINITIONTYPE; 163dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 164dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_PLATFORMPVT_EXTN "OMX.QCOM.index.param.platformprivate" 165dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** Allowed APIs on the above Index: OMX_SetParameter() */ 166dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 167dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE 168dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 169dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /** Enum for PMEM information */ 170dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_PLATFORM_PRIVATE_PMEM = 0x1 171dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE; 172dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 173dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** IL client will set the following structure. A failure 174dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * code will be returned if component does not support the 175dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * value provided for 'type'. 176dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 177dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandstruct OMX_QCOM_PLATFORMPRIVATE_EXTN 178dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 179dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; /** Size of the structure in bytes */ 180dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; /** OMX spec version information */ 181dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; /** Port number on which usebuffer extn is applied */ 182dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 183dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /** Type of extensions should match an entry from 184dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE 185dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 186dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE type; 187dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand}; 188dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 189dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO 190dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 191dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /** pmem file descriptor */ 192dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 pmem_fd; 193dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /** Offset from pmem device base address */ 194dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 offset; 195dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand}OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO; 196dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 197dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_QCOM_PLATFORM_PRIVATE_ENTRY 198dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 199dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /** Entry type */ 200dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE type; 201dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 202dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /** Pointer to platform specific entry */ 203dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand void* entry; 204dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand}OMX_QCOM_PLATFORM_PRIVATE_ENTRY; 205dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 206dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_QCOM_PLATFORM_PRIVATE_LIST 207dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 208dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /** Number of entries */ 209dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nEntries; 210dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 211dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /** Pointer to array of platform specific entries * 212dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Contiguous block of OMX_QCOM_PLATFORM_PRIVATE_ENTRY element 213dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 214dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_PLATFORM_PRIVATE_ENTRY* entryList; 215dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand}OMX_QCOM_PLATFORM_PRIVATE_LIST; 216dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 217dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_QCOM_FRAME_PACKING_FORMAT "OMX.QCOM.index.param.framepackfmt" 218dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/* Allowed API call: OMX_GetParameter() */ 219dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/* IL client can use this index to rerieve the list of frame formats * 220dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * supported by the component */ 221dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 222dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_QCOM_FRAME_PACKINGFORMAT_TYPE { 223dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 224dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 225dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 226dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nIndex; 227dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOMFramePackingFormat eframePackingFormat; 228dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOM_FRAME_PACKINGFORMAT_TYPE; 229dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 230dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 231dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 232dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Following is the enum for color formats supported on Qualcomm 233dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * MSMs YVU420SemiPlanar color format is not defined in OpenMAX 234dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 1.1.1 and prior versions of OpenMAX specification. 235dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 236dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 237dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandenum OMX_QCOM_COLOR_FORMATTYPE 238dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 239dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 240dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** YVU420SemiPlanar: YVU planar format, organized with a first 241dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * plane containing Y pixels, and a second plane containing 242dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * interleaved V and U pixels. V and U pixels are sub-sampled 243dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * by a factor of two both horizontally and vertically. 244dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 245dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_COLOR_FormatYVU420SemiPlanar = 0x7FA30C00, 246dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_COLOR_FormatYVU420PackedSemiPlanar32m4ka, 247dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_COLOR_FormatYUV420PackedSemiPlanar16m2ka, 248dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka 249dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand}; 250dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 251dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandenum OMX_QCOM_VIDEO_CODINGTYPE 252dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 253dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** Codecs support by qualcomm which are not listed in OMX 1.1.x 254dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * spec 255dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * */ 256dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_VIDEO_CodingVC1 = 0x7FA30C00 , 257dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_VIDEO_CodingWMV9 = 0x7FA30C01, 258dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_CodingDivx = 0x7FA30C02, /**< Value when coding is Divx */ 259dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_CodingSpark = 0x7FA30C03, /**< Value when coding is Sorenson Spark */ 260dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_CodingVp = 0x7FA30C04 261dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand}; 262dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 263dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandenum OMX_QCOM_EXTN_INDEXTYPE 264dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 265dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /** Qcom proprietary extension index list */ 266dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 267dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /* "OMX.QCOM.index.param.register_mmap" */ 268dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QcomIndexRegmmap = 0x7F000000, 269dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 270dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /* "OMX.QCOM.index.param.platformprivate" */ 271dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QcomIndexPlatformPvt = 0x7F000001, 272dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 273dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /* "OMX.QCOM.index.param.portdefn" */ 274dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QcomIndexPortDefn = 0x7F000002, 275dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 276dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /* "OMX.QCOM.index.param.framepackingformat" */ 277dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QcomIndexPortFramePackFmt = 0x7F000003, 278dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 279dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /*"OMX.QCOM.index.param.Interlaced */ 280dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QcomIndexParamInterlaced = 0x7F000004, 281dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 282dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /*"OMX.QCOM.index.config.interlaceformat */ 283dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QcomIndexConfigInterlaced = 0x7F000005, 284dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 285dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /*"OMX.QCOM.index.param.syntaxhdr" */ 286dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_IndexParamVideoSyntaxHdr = 0x7F000006, 287dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 288dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /*"OMX.QCOM.index.config.intraperiod" */ 289dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_IndexConfigVideoIntraperiod = 0x7F000007, 290dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 291dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /*"OMX.QCOM.index.config.randomIntrarefresh" */ 292dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_IndexConfigVideoIntraRefresh = 0x7F000008, 293dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 294dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /*"OMX.QCOM.index.config.video.TemporalSpatialTradeOff" */ 295dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_IndexConfigVideoTemporalSpatialTradeOff = 0x7F000009, 296dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 297dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /*"OMX.QCOM.index.param.video.EncoderMode" */ 298dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_IndexParamVideoEncoderMode = 0x7F00000A, 299dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 300dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /*"OMX.QCOM.index.param.Divxtype */ 301dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QcomIndexParamVideoDivx = 0x7F00000B, 302dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 303dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /*"OMX.QCOM.index.param.Sparktype */ 304dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QcomIndexParamVideoSpark = 0x7F00000C, 305dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 306dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /*"OMX.QCOM.index.param.Vptype */ 307dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QcomIndexParamVideoVp = 0x7F00000D, 308dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 309dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QcomIndexQueryNumberOfVideoDecInstance = 0x7F00000E 310dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand}; 311dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 312dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 313dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Enumeration used to define the video encoder modes 314dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 315dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * ENUMS: 316dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * EncoderModeDefault : Default video recording mode. 317dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * All encoder settings made through 318dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OMX_SetParameter/OMX_SetConfig are applied. No 319dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * parameter is overridden. 320dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * EncoderModeMMS : Video recording mode for MMS (Multimedia Messaging 321dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Service). This mode is similar to EncoderModeDefault 322dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * except that here the Rate control mode is overridden 323dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * internally and set as a variant of variable bitrate with 324dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * variable frame rate. After this mode is set if the IL 325dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * client tries to set OMX_VIDEO_CONTROLRATETYPE via 326dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OMX_IndexParamVideoBitrate that would be rejected. For 327dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * this, client should set mode back to EncoderModeDefault 328dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * first and then change OMX_VIDEO_CONTROLRATETYPE. 329dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 330dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_ENCODERMODETYPE 331dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 332dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_EncoderModeDefault = 0x00, 333dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_EncoderModeMMS = 0x01, 334dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_EncoderModeMax = 0x7FFFFFFF 335dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_ENCODERMODETYPE; 336dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 337dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 338dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * This structure is used to set the video encoder mode. 339dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 340dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 341dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 342dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX specification version info 343dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 344dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nMode : defines the video encoder mode 345dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 346dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_PARAM_ENCODERMODETYPE { 347dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 348dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 349dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 350dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_ENCODERMODETYPE nMode; 351dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_PARAM_ENCODERMODETYPE; 352dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 353dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 354dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * This structure describes the parameters corresponding to the 355dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * QOMX_VIDEO_SYNTAXHDRTYPE extension. This parameter can be queried 356dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * during the loaded state. 357dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 358dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 359dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_SYNTAXHDRTYPE 360dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 361dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; /** Size of the structure in bytes */ 362dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion;/** OMX specification version information */ 363dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 364dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nBytes; /** The number of bytes filled in to the buffer */ 365dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U8 data[1]; /** Buffer to store the header information */ 366dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_SYNTAXHDRTYPE; 367dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 368dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 369dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * This structure describes the parameters corresponding to the 370dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * QOMX_VIDEO_TEMPORALSPATIALTYPE extension. This parameter can be set 371dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * dynamically during any state except the state invalid. This is primarily 372dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * used for setting MaxQP from the application. This is set on the out port. 373dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 374dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 375dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_TEMPORALSPATIALTYPE 376dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 377dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; /** Size of the structure in bytes */ 378dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion;/** OMX specification version information */ 379dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 380dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nTSFactor; /** Temoral spatial tradeoff factor value in 0-100 */ 381dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_TEMPORALSPATIALTYPE; 382dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 383dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 384dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * This structure describes the parameters corresponding to the 385dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OMX_QCOM_VIDEO_CONFIG_INTRAPERIODTYPE extension. This parameter can be set 386dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * dynamically during any state except the state invalid. This is set on the out port. 387dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 388dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 389dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_INTRAPERIODTYPE 390dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 391dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; /** Size of the structure in bytes */ 392dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion;/** OMX specification version information */ 393dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 394dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nIDRPeriod; /** This specifies coding a frame as IDR after every nPFrames 395dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand of intra frames. If this parameter is set to 0, only the 396dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand first frame of the encode session is an IDR frame. This 397dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand field is ignored for non-AVC codecs and is used only for 398dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand codecs that support IDR Period */ 399dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPFrames; /** The number of "P" frames between two "I" frames */ 400dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nBFrames; /** The number of "B" frames between two "I" frames */ 401dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_INTRAPERIODTYPE; 402dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 403dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 404dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * This structure describes the parameters corresponding to the 405dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OMX_QCOM_VIDEO_CONFIG_ULBUFFEROCCUPANCYTYPE extension. This parameter can be set 406dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * dynamically during any state except the state invalid. This is used for the buffer negotiation 407dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * with other clients. This is set on the out port. 408dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 409dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_QCOM_VIDEO_CONFIG_ULBUFFEROCCUPANCYTYPE 410dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 411dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; /** Size of the structure in bytes */ 412dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; /** OMX specification version information */ 413dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 414dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nBufferOccupancy; /** The number of bytes to be set for the buffer occupancy */ 415dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOM_VIDEO_CONFIG_ULBUFFEROCCUPANCYTYPE; 416dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 417dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 418dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * This structure describes the parameters corresponding to the 419dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OMX_QCOM_VIDEO_CONFIG_RANDOMINTRAREFRESHTYPE extension. This parameter can be set 420dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * dynamically during any state except the state invalid. This is primarily used for the dynamic/random 421dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * intrarefresh. This is set on the out port. 422dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 423dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_QCOM_VIDEO_CONFIG_RANDOMINTRAREFRESHTYPE 424dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 425dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; /** Size of the structure in bytes */ 426dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion;/** OMX specification version information */ 427dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 428dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nRirMBs; /** The number of MBs to be set for intrarefresh */ 429dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOM_VIDEO_CONFIG_RANDOMINTRAREFRESHTYPE; 430dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 431dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 432dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 433dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * This structure describes the parameters corresponding to the 434dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * OMX_QCOM_VIDEO_CONFIG_QPRANGE extension. This parameter can be set 435dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * dynamically during any state except the state invalid. This is primarily 436dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * used for the min/max QP to be set from the application. This 437dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * is set on the out port. 438dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 439dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_QCOM_VIDEO_CONFIG_QPRANGE 440dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 441dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; /** Size of the structure in bytes */ 442dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion;/** OMX specification version information */ 443dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 444dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nMinQP; /** The number for minimum quantization parameter */ 445dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nMaxQP; /** The number for maximum quantization parameter */ 446dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOM_VIDEO_CONFIG_QPRANGE; 447dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 448dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 449dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_VENDOR_EXTRADATATYPE { 450dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 451dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nDataSize; 452dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U8 *pData; // cdata (codec_data/extradata) 453dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_VENDOR_EXTRADATATYPE; 454dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 455dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_INDEXVENDORTYPE { 456dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IndexVendorFileReadInputFilename = 0xFF000001, 457dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IndexVendorParser3gpInputFilename = 0xFF000002, 458dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IndexVendorVideoExtraData = 0xFF000003, 459dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_IndexVendorAudioExtraData = 0xFF000004 460dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_INDEXVENDORTYPE; 461dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 462dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_QCOM_VC1RESOLUTIONTYPE 463dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 464dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_VC1_PICTURE_RES_1x1, 465dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_VC1_PICTURE_RES_2x1, 466dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_VC1_PICTURE_RES_1x2, 467dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_VC1_PICTURE_RES_2x2 468dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOM_VC1RESOLUTIONTYPE; 469dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 470dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_QCOM_INTERLACETYPE 471dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 472dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_InterlaceFrameProgressive, 473dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst, 474dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst, 475dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_InterlaceFrameTopFieldFirst, 476dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_InterlaceFrameBottomFieldFirst, 477dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_InterlaceFieldTop, 478dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_InterlaceFieldBottom 479dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand}OMX_QCOM_INTERLACETYPE; 480dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 481dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_QCOM_PARAM_VIDEO_INTERLACETYPE 482dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 483dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; /** Size of the structure in bytes */ 484dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion;/** OMX specification version information */ 485dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 486dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_BOOL bInterlace; /** Interlace content **/ 487dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand}OMX_QCOM_PARAM_VIDEO_INTERLACETYPE; 488dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 489dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_QCOM_CONFIG_INTERLACETYPE 490dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 491dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 492dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 493dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 494dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nIndex; 495dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_INTERLACETYPE eInterlaceType; 496dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand}OMX_QCOM_CONFIG_INTERLACETYPE; 497dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 498dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define MAX_PAN_SCAN_WINDOWS 4 499dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 500dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_QCOM_PANSCAN 501dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 502dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 numWindows; 503dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOMRectangle window[MAX_PAN_SCAN_WINDOWS]; 504dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOM_PANSCAN; 505dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 506dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_QCOM_EXTRADATA_FRAMEINFO 507dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 508dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand // common frame meta data. interlace related info removed 509dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VIDEO_PICTURETYPE ePicType; 510dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_INTERLACETYPE interlaceType; 511dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_PANSCAN panScan; 512dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nConcealedMacroblocks; 513dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOM_EXTRADATA_FRAMEINFO; 514dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 515dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_QCOM_EXTRADATA_FRAMEDIMENSION 516dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 517dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand /** Frame Dimensions added to each YUV buffer */ 518dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nDecWidth; /** Width rounded to multiple of 16 */ 519dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nDecHeight; /** Height rounded to multiple of 16 */ 520dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nActualWidth; /** Actual Frame Width */ 521dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nActualHeight; /** Actual Frame Height */ 522dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 523dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand}OMX_QCOM_EXTRADATA_FRAMEDIMENSION; 524dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 525dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_QCOM_H264EXTRADATA 526dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 527dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U64 seiTimeStamp; 528dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOM_H264EXTRADATA; 529dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 530dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct OMX_QCOM_VC1EXTRADATA 531dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 532dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nVC1RangeY; 533dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nVC1RangeUV; 534dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_VC1RESOLUTIONTYPE eVC1PicResolution; 535dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOM_VC1EXTRADATA; 536dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 537dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef union OMX_QCOM_EXTRADATA_CODEC_DATA 538dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 539dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_H264EXTRADATA h264ExtraData; 540dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_QCOM_VC1EXTRADATA vc1ExtraData; 541dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOM_EXTRADATA_CODEC_DATA; 542dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 543dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum OMX_QCOM_EXTRADATATYPE 544dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand{ 545dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ExtraDataFrameInfo = 0x7F000001, 546dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ExtraDataH264 = 0x7F000002, 547dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ExtraDataVC1 = 0x7F000003, 548dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ExtraDataFrameDimension = 0x7F000004, 549dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_ExtraDataVideoEncoderSliceInfo = 0x7F000005 550dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} OMX_QCOM_EXTRADATATYPE; 551dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 552dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 553dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#define OMX_EXTRADATA_HEADER_SIZE 20 554dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 555dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 556dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * DivX Versions 557dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 558dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_DIVXFORMATTYPE { 559dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DIVXFormatUnused = 0x01, /**< Format unused or unknown */ 560dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DIVXFormat311 = 0x02, /**< DivX 3.11 */ 561dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DIVXFormat4 = 0x04, /**< DivX 4 */ 562dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DIVXFormat5 = 0x08, /**< DivX 5 */ 563dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DIVXFormat6 = 0x10, /**< DivX 6 */ 564dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DIVXFormatKhronosExtensions = 0x6F000000, 565dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DIVXFormatVendorStartUnused = 0x7F000000, 566dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DIVXFormatMax = 0x7FFFFFFF 567dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_DIVXFORMATTYPE; 568dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 569dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 570dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * DivX profile types, each profile indicates support for 571dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * various performance bounds. 572dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 573dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_DIVXPROFILETYPE { 574dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DivXProfileqMobile = 0x01, /**< qMobile Profile */ 575dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DivXProfileMobile = 0x02, /**< Mobile Profile */ 576dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DivXProfileMT = 0x04, /**< Mobile Theatre Profile */ 577dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DivXProfileHT = 0x08, /**< Home Theatre Profile */ 578dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DivXProfileHD = 0x10, /**< High Definition Profile */ 579dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DIVXProfileKhronosExtensions = 0x6F000000, 580dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DIVXProfileVendorStartUnused = 0x7F000000, 581dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DIVXProfileMax = 0x7FFFFFFF 582dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_DIVXPROFILETYPE; 583dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 584dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 585dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * DivX Video Params 586dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 587dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 588dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 589dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX specification version information 590dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 591dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eFormat : Version of DivX stream / data 592dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eProfile : Profile of DivX stream / data 593dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 594dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_PARAM_DIVXTYPE { 595dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 596dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 597dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 598dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DIVXFORMATTYPE eFormat; 599dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_DIVXPROFILETYPE eProfile; 600dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_PARAM_DIVXTYPE; 601dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 602dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 603dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 604dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 605dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * VP Versions 606dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 607dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_VPFORMATTYPE { 608dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPFormatUnused = 0x01, /**< Format unused or unknown */ 609dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPFormat6 = 0x02, /**< VP6 Video Format */ 610dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPFormat7 = 0x04, /**< VP7 Video Format */ 611dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPFormat8 = 0x08, /**< VP8 Video Format */ 612dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPFormatKhronosExtensions = 0x6F000000, 613dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPFormatVendorStartUnused = 0x7F000000, 614dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPFormatMax = 0x7FFFFFFF 615dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_VPFORMATTYPE; 616dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 617dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 618dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * VP profile types, each profile indicates support for various 619dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * encoding tools. 620dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 621dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_VPPROFILETYPE { 622dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPProfileSimple = 0x01, /**< Simple Profile, applies to VP6 only */ 623dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPProfileAdvanced = 0x02, /**< Advanced Profile, applies to VP6 only */ 624dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPProfileVersion0 = 0x04, /**< Version 0, applies to VP7 and VP8 */ 625dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPProfileVersion1 = 0x08, /**< Version 1, applies to VP7 and VP8 */ 626dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPProfileVersion2 = 0x10, /**< Version 2, applies to VP8 only */ 627dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPProfileVersion3 = 0x20, /**< Version 3, applies to VP8 only */ 628dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPProfileKhronosExtensions = 0x6F000000, 629dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPProfileVendorStartUnused = 0x7F000000, 630dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPProfileMax = 0x7FFFFFFF 631dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_VPPROFILETYPE; 632dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 633dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 634dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * VP Video Params 635dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 636dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 637dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 638dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX specification version information 639dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 640dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eFormat : Format of VP stream / data 641dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eProfile : Profile or Version of VP stream / data 642dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 643dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_PARAM_VPTYPE { 644dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 645dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 646dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 647dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPFORMATTYPE eFormat; 648dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_VPPROFILETYPE eProfile; 649dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_PARAM_VPTYPE; 650dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 651dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 652dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Spark Versions 653dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 654dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef enum QOMX_VIDEO_SPARKFORMATTYPE { 655dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_SparkFormatUnused = 0x01, /**< Format unused or unknown */ 656dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_SparkFormat0 = 0x02, /**< Video Format Version 0 */ 657dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_SparkFormat1 = 0x04, /**< Video Format Version 1 */ 658dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_SparkFormatKhronosExtensions = 0x6F000000, 659dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_SparkFormatVendorStartUnused = 0x7F000000, 660dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_SparkFormatMax = 0x7FFFFFFF 661dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_SPARKFORMATTYPE; 662dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 663dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand/** 664dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * Spark Video Params 665dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * 666dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * STRUCT MEMBERS: 667dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nSize : Size of the structure in bytes 668dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nVersion : OMX specification version information 669dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * nPortIndex : Port that this structure applies to 670dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand * eFormat : Version of Spark stream / data 671dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand */ 672dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_PARAM_SPARKTYPE { 673dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 674dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 675dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 676dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand QOMX_VIDEO_SPARKFORMATTYPE eFormat; 677dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_PARAM_SPARKTYPE; 678dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 679dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 680dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchandtypedef struct QOMX_VIDEO_QUERY_DECODER_INSTANCES { 681dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nSize; 682dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_VERSIONTYPE nVersion; 683dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nPortIndex; 684dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand OMX_U32 nNumOfInstances; 685dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand} QOMX_VIDEO_QUERY_DECODER_INSTANCES; 686dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 687dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 688dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand 689dd5743ee305c8db17facba3e0176a3d07adc7499Rom Lemarchand#endif /* __OMX_QCOM_EXTENSIONS_H__ */ 690