111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/*-------------------------------------------------------------------------- 22e1e93b75bc282dafdff24eb3b473af177e3e35bThierry StrudelCopyright (c) 2009-2017, The Linux Foundation. All rights reserved. 311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelRedistribution and use in source and binary forms, with or without 511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelmodification, are permitted provided that the following conditions are met: 611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Redistributions of source code must retain the above copyright 711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel notice, this list of conditions and the following disclaimer. 811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Redistributions in binary form must reproduce the above copyright 911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel notice, this list of conditions and the following disclaimer in the 1011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel documentation and/or other materials provided with the distribution. 1111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Neither the name of The Linux Foundation nor 1211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel the names of its contributors may be used to endorse or promote 1311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel products derived from this software without specific prior written 1411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel permission. 1511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 1611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 1711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelIMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 1911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelNON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 2011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelCONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 2111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 2211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 2311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 2411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelWHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 2511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelOTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 2611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry StrudelADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 2711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel--------------------------------------------------------------------------*/ 2811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#ifndef __OMX_QCOM_EXTENSIONS_H__ 2911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define __OMX_QCOM_EXTENSIONS_H__ 3011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 3111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#ifdef __cplusplus 3211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelextern "C" { 3311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#endif /* __cplusplus */ 3411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 3511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/*============================================================================ 3611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel*//** @file OMX_QCOMExtns.h 3711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel This header contains constants and type definitions that specify the 3811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel extensions added to the OpenMAX Vendor specific APIs. 3911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 4011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel*//*========================================================================*/ 4111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 4211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 4311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/////////////////////////////////////////////////////////////////////////////// 4411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel// Include Files 4511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/////////////////////////////////////////////////////////////////////////////// 4611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#include "OMX_Core.h" 4711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#include "OMX_Video.h" 4811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 4911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_VIDEO_MAX_HP_LAYERS 6 502601808ee2992a94c325d05e4065aba60b01840bThierry Strudel 512601808ee2992a94c325d05e4065aba60b01840bThierry Strudel/** 522601808ee2992a94c325d05e4065aba60b01840bThierry Strudel * These MACROS used by Camera and Video to decide buffer count. 532601808ee2992a94c325d05e4065aba60b01840bThierry Strudel * This is to avoid mismatch of buffer count between Camera and Video. 542601808ee2992a94c325d05e4065aba60b01840bThierry Strudel * In Meta mode, read this count as buffer count in Camera and Header 552601808ee2992a94c325d05e4065aba60b01840bThierry Strudel * count in Video. 562601808ee2992a94c325d05e4065aba60b01840bThierry Strudel * 1) Number of buffers in Non-DCVS mode. 572601808ee2992a94c325d05e4065aba60b01840bThierry Strudel * 2) DCVS resolution. 582601808ee2992a94c325d05e4065aba60b01840bThierry Strudel * 3) Buffer count when Current resolution is greater than DCVS resolution 592601808ee2992a94c325d05e4065aba60b01840bThierry Strudel * defined in 2) 602601808ee2992a94c325d05e4065aba60b01840bThierry Strudel */ 612601808ee2992a94c325d05e4065aba60b01840bThierry Strudel 622601808ee2992a94c325d05e4065aba60b01840bThierry Strudel#define OMX_VIDEO_MIN_CAMERA_BUFFERS 9 632601808ee2992a94c325d05e4065aba60b01840bThierry Strudel#define OMX_VIDEO_ENC_DCVS_RESOLUTION 3840 * 2160 642601808ee2992a94c325d05e4065aba60b01840bThierry Strudel#define OMX_VIDEO_MIN_CAMERA_BUFFERS_DCVS 11 652601808ee2992a94c325d05e4065aba60b01840bThierry Strudel 662601808ee2992a94c325d05e4065aba60b01840bThierry Strudel/** 672601808ee2992a94c325d05e4065aba60b01840bThierry Strudel * This count indicates the number of Ints in the legacy Camera payload 682601808ee2992a94c325d05e4065aba60b01840bThierry Strudel * used for HAL1 692601808ee2992a94c325d05e4065aba60b01840bThierry Strudel */ 702601808ee2992a94c325d05e4065aba60b01840bThierry Strudel 712601808ee2992a94c325d05e4065aba60b01840bThierry Strudel#define VIDEO_METADATA_NUM_COMMON_INTS 1 722601808ee2992a94c325d05e4065aba60b01840bThierry Strudel 7311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 7411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This extension is used to register mapping of a virtual 7511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * address to a physical address. This extension is a parameter 7611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * which can be set using the OMX_SetParameter macro. The data 7711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * pointer corresponding to this extension is 7811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_QCOM_MemMapEntry. This parameter is a 'write only' 7911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * parameter (Current value cannot be queried using 8011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_GetParameter macro). 8111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 8211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_EXTN_REGISTER_MMAP "OMX.QCOM.index.param.register_mmap" 8311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 8411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 8511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the data pointer corresponding to 8611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * the OMX_QCOM_MMAP_REGISTER_EXTN extension. This parameter 8711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * must be set only 'after' populating a port with a buffer 8811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * using OMX_UseBuffer, wherein the data pointer of the buffer 8911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * corresponds to the virtual address as specified in this 9011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * structure. 9111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 9211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelstruct OMX_QCOM_PARAM_MEMMAPENTRYTYPE 9311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 9411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 9511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; /**< OMX specification version information */ 9611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; /**< Port number the structure applies to */ 9711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 9811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /** 9911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * The virtual address of memory block 10011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 10111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U64 nVirtualAddress; 10211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 10311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /** 10411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * The physical address corresponding to the virtual address. The physical 10511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * address is contiguous for the entire valid range of the virtual 10611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * address. 10711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 10811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U64 nPhysicalAddress; 10911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel}; 11011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 11111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define QOMX_VIDEO_IntraRefreshRandom (OMX_VIDEO_IntraRefreshVendorStartUnused + 0) 11211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 11311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/* This error event is used for H.264 long-term reference (LTR) encoding. 11411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * When IL client specifies an LTR frame with its identifier via 11511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_QCOM_INDEX_CONFIG_VIDEO_LTRUSE to the encoder, if the specified 11611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * LTR frame can not be located by the encoder in its LTR list, the encoder 11711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * issues this error event to IL client to notify the failure of LTRUse config. 11811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 11911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define QOMX_ErrorLTRUseFailed (OMX_ErrorVendorStartUnused + 1) 12011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 1212601808ee2992a94c325d05e4065aba60b01840bThierry Strudel/* 1222601808ee2992a94c325d05e4065aba60b01840bThierry Strudel * This rate control will be used for low bitrate applications to get better 1232601808ee2992a94c325d05e4065aba60b01840bThierry Strudel * video quality for a given bitrate. 1242601808ee2992a94c325d05e4065aba60b01840bThierry Strudel */ 1252601808ee2992a94c325d05e4065aba60b01840bThierry Strudel#define QOMX_Video_ControlRateMaxBitrate (OMX_Video_ControlRateVendorStartUnused + 1) 1262601808ee2992a94c325d05e4065aba60b01840bThierry Strudel 1272601808ee2992a94c325d05e4065aba60b01840bThierry Strudel#define QOMX_Video_ControlRateMaxBitrateSkipFrames (OMX_Video_ControlRateVendorStartUnused + 2) 1282601808ee2992a94c325d05e4065aba60b01840bThierry Strudel 12911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define QOMX_VIDEO_BUFFERFLAG_BFRAME 0x00100000 13011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 13111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define QOMX_VIDEO_BUFFERFLAG_EOSEQ 0x00200000 13211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 13311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define QOMX_VIDEO_BUFFERFLAG_MBAFF 0x00400000 13411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 13511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define QOMX_VIDEO_BUFFERFLAG_CANCEL 0x00800000 13611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 13711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_PORTDEFN_EXTN "OMX.QCOM.index.param.portdefn" 13811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/* Allowed APIs on the above Index: OMX_GetParameter() and OMX_SetParameter() */ 13911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 14011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum OMX_QCOMMemoryRegion 14111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 14211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_MemRegionInvalid, 14311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_MemRegionEBI1, 14411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_MemRegionSMI, 14511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_MemRegionMax = 0X7FFFFFFF 14611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOMMemoryRegion; 14711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 14811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum OMX_QCOMCacheAttr 14911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 15011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_CacheAttrNone, 15111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_CacheAttrWriteBack, 15211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_CacheAttrWriteThrough, 15311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_CacheAttrMAX = 0X7FFFFFFF 15411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOMCacheAttr; 15511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 15611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOMRectangle 15711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 15811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_S32 x; 15911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_S32 y; 16011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_S32 dx; 16111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_S32 dy; 16211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOMRectangle; 16311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 16411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** OMX_QCOMFramePackingFormat 16511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Input or output buffer format 16611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 16711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum OMX_QCOMFramePackingFormat 16811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 16911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* 0 - unspecified 17011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 17111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_FramePacking_Unspecified, 17211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 17311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* 1 - Partial frames may be present OMX IL 1.1.1 Figure 2-10: 17411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Case 1??Each Buffer Filled In Whole or In Part 17511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 17611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_FramePacking_Arbitrary, 17711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 17811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* 2 - Multiple complete frames per buffer (integer number) 17911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX IL 1.1.1 Figure 2-11: Case 2�Each Buffer Filled with 18011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Only Complete Frames of Data 18111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 18211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_FramePacking_CompleteFrames, 18311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 18411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* 3 - Only one complete frame per buffer, no partial frame 18511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX IL 1.1.1 Figure 2-12: Case 3�Each Buffer Filled with 18611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Only One Frame of Compressed Data. Usually at least one 18711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * complete unit of data will be delivered in a buffer for 18811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * uncompressed data formats. 18911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 19011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_FramePacking_OnlyOneCompleteFrame, 19111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 19211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* 4 - Only one complete subframe per buffer, no partial subframe 19311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Example: In H264, one complete NAL per buffer, where one frame 19411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * can contatin multiple NAL 19511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 19611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_FramePacking_OnlyOneCompleteSubFrame, 19711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 19811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_FramePacking_MAX = 0X7FFFFFFF 19911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOMFramePackingFormat; 20011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 20111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_PARAM_PORTDEFINITIONTYPE { 20211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 20311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion;/** OMX specification version information */ 20411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 20511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 20611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /** Platform specific memory region EBI1, SMI, etc.,*/ 20711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOMMemoryRegion nMemRegion; 20811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 20911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOMCacheAttr nCacheAttr; /** Cache attributes */ 21011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 21111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /** Input or output buffer format */ 21211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nFramePackingFormat; 21311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 21411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_PARAM_PORTDEFINITIONTYPE; 21511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 21611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_VIDEO_PARAM_QPRANGETYPE { 21711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 21811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 21911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 22011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 minQP; 22111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 maxQP; 22211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_VIDEO_PARAM_QPRANGETYPE; 22311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 2242601808ee2992a94c325d05e4065aba60b01840bThierry Strudeltypedef struct OMX_QCOM_VIDEO_PARAM_IPB_QPRANGETYPE { 2252601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_U32 nSize; 2262601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_VERSIONTYPE nVersion; 2272601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_U32 nPortIndex; 2282601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_U32 minIQP; 2292601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_U32 maxIQP; 2302601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_U32 minPQP; 2312601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_U32 maxPQP; 2322601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_U32 minBQP; 2332601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_U32 maxBQP; 2342601808ee2992a94c325d05e4065aba60b01840bThierry Strudel} OMX_QCOM_VIDEO_PARAM_IPB_QPRANGETYPE; 2352601808ee2992a94c325d05e4065aba60b01840bThierry Strudel 23611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_PLATFORMPVT_EXTN "OMX.QCOM.index.param.platformprivate" 23711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** Allowed APIs on the above Index: OMX_SetParameter() */ 23811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 23911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE 24011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 24111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /** Enum for PMEM information */ 24211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_PLATFORM_PRIVATE_PMEM = 0x1 24311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE; 24411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 24511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** IL client will set the following structure. A failure 24611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * code will be returned if component does not support the 24711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * value provided for 'type'. 24811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 24911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelstruct OMX_QCOM_PLATFORMPRIVATE_EXTN 25011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 25111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 25211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; /** OMX spec version information */ 25311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; /** Port number on which usebuffer extn is applied */ 25411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 25511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /** Type of extensions should match an entry from 25611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE 25711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 25811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE type; 25911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel}; 26011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 26111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO 26211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 26311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /** pmem file descriptor */ 26411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel unsigned long pmem_fd; 26511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /** Offset from pmem device base address */ 26611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 offset; 26711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 size; 26811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 mapped_size; 26911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_PTR buffer; 27011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel}OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO; 27111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 27211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_PLATFORM_PRIVATE_ENTRY 27311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 27411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /** Entry type */ 27511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE type; 27611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 27711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /** Pointer to platform specific entry */ 27811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_PTR entry; 27911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel}OMX_QCOM_PLATFORM_PRIVATE_ENTRY; 28011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 28111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_PLATFORM_PRIVATE_LIST 28211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 28311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /** Number of entries */ 28411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nEntries; 28511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 28611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /** Pointer to array of platform specific entries * 28711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Contiguous block of OMX_QCOM_PLATFORM_PRIVATE_ENTRY element 28811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 28911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_PLATFORM_PRIVATE_ENTRY* entryList; 29011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel}OMX_QCOM_PLATFORM_PRIVATE_LIST; 29111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 29211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_FRAME_PACKING_FORMAT "OMX.QCOM.index.param.framepackfmt" 29311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/* Allowed API call: OMX_GetParameter() */ 29411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/* IL client can use this index to rerieve the list of frame formats * 29511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * supported by the component */ 29611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 29711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_FRAME_PACKINGFORMAT_TYPE { 29811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 29911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 30011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 30111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nIndex; 30211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOMFramePackingFormat eframePackingFormat; 30311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_FRAME_PACKINGFORMAT_TYPE; 30411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 30511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 30611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 30711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Following is the enum for color formats supported on Qualcomm 30811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * MSMs YVU420SemiPlanar color format is not defined in OpenMAX 30911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 1.1.1 and prior versions of OpenMAX specification. 31011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 31111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 31211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelenum OMX_QCOM_COLOR_FORMATTYPE 31311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 31411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 31511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** YVU420SemiPlanar: YVU planar format, organized with a first 31611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * plane containing Y pixels, and a second plane containing 31711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * interleaved V and U pixels. V and U pixels are sub-sampled 31811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * by a factor of two both horizontally and vertically. 31911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 32011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_COLOR_FormatYVU420SemiPlanar = 0x7FA30C00, 32111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_COLOR_FormatYVU420PackedSemiPlanar32m4ka, 32211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_COLOR_FormatYUV420PackedSemiPlanar16m2ka, 32311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka, 32411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m, 32511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_COLOR_FORMATYUV420PackedSemiPlanar32mMultiView, 32611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_COLOR_FORMATYUV420PackedSemiPlanar32mCompressed, 32711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_COLOR_Format32bitRGBA8888, 32811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_COLOR_Format32bitRGBA8888Compressed, 329b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m10bitCompressed, 33011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_COLOR_FormatAndroidOpaque = (OMX_COLOR_FORMATTYPE) OMX_COLOR_FormatVendorStartUnused + 0x789, 33111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel}; 33211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 33311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelenum OMX_QCOM_VIDEO_CODINGTYPE 33411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 33511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** Codecs support by qualcomm which are not listed in OMX 1.1.x 33611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * spec 33711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * */ 33811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_VIDEO_CodingVC1 = 0x7FA30C00 , 33911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_VIDEO_CodingWMV9 = 0x7FA30C01, 34011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_CodingDivx = 0x7FA30C02, /**< Value when coding is Divx */ 34111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_CodingSpark = 0x7FA30C03, /**< Value when coding is Sorenson Spark */ 34211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_CodingVp = 0x7FA30C04, 34311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_CodingVp8 = OMX_VIDEO_CodingVP8, /**< keeping old enum for backwards compatibility*/ 34411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_CodingHevc = OMX_VIDEO_CodingHEVC, /**< keeping old enum for backwards compatibility*/ 34511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_CodingMVC = 0x7FA30C07, 34611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_CodingVp9 = OMX_VIDEO_CodingVP9, /**< keeping old enum for backwards compatibility*/ 34711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel}; 34811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 34911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudelenum OMX_QCOM_EXTN_INDEXTYPE 35011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 35111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /** Qcom proprietary extension index list */ 35211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 35311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* "OMX.QCOM.index.param.register_mmap" */ 35411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexRegmmap = 0x7F000000, 35511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 35611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* "OMX.QCOM.index.param.platformprivate" */ 35711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexPlatformPvt = 0x7F000001, 35811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 35911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* "OMX.QCOM.index.param.portdefn" */ 36011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexPortDefn = 0x7F000002, 36111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 36211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* "OMX.QCOM.index.param.framepackingformat" */ 36311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexPortFramePackFmt = 0x7F000003, 36411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 36511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.param.Interlaced */ 36611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamInterlaced = 0x7F000004, 36711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 36811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.config.interlaceformat */ 36911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigInterlaced = 0x7F000005, 37011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 37111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.param.syntaxhdr" */ 37211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_IndexParamVideoSyntaxHdr = 0x7F000006, 37311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 37411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.config.intraperiod" */ 37511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_IndexConfigVideoIntraperiod = 0x7F000007, 37611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 37711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.config.randomIntrarefresh" */ 37811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_IndexConfigVideoIntraRefresh = 0x7F000008, 37911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 38011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.config.video.TemporalSpatialTradeOff" */ 38111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_IndexConfigVideoTemporalSpatialTradeOff = 0x7F000009, 38211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 38311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.param.video.EncoderMode" */ 38411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_IndexParamVideoEncoderMode = 0x7F00000A, 38511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 38611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.param.Divxtype */ 38711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVideoDivx = 0x7F00000B, 38811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 38911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.param.Sparktype */ 39011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVideoSpark = 0x7F00000C, 39111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 39211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.param.Vptype */ 39311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVideoVp = 0x7F00000D, 39411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 39511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexQueryNumberOfVideoDecInstance = 0x7F00000E, 39611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 39711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVideoSyncFrameDecodingMode = 0x7F00000F, 39811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 39911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVideoDecoderPictureOrder = 0x7F000010, 40011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 40111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* "OMX.QCOM.index.config.video.FramePackingInfo" */ 40211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigVideoFramePackingArrangement = 0x7F000011, 40311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 40411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamConcealMBMapExtraData = 0x7F000012, 40511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 40611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamFrameInfoExtraData = 0x7F000013, 40711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 40811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamInterlaceExtraData = 0x7F000014, 40911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 41011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamH264TimeInfo = 0x7F000015, 41111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 41211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamIndexExtraDataType = 0x7F000016, 41311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 41411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_GoogleAndroidIndexEnableAndroidNativeBuffers = 0x7F000017, 41511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 41611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_GoogleAndroidIndexUseAndroidNativeBuffer = 0x7F000018, 41711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 41811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage = 0x7F000019, 41911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 42011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.config.video.QPRange" */ 42111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigVideoQPRange = 0x7F00001A, 42211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 42311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.param.EnableTimeStampReoder"*/ 42411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamEnableTimeStampReorder = 0x7F00001B, 42511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 42611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.google.android.index.storeMetaDataInBuffers"*/ 42711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVideoMetaBufferMode = 0x7F00001C, 42811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 42911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.google.android.index.useAndroidNativeBuffer2"*/ 43011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_GoogleAndroidIndexUseAndroidNativeBuffer2 = 0x7F00001D, 43111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 43211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.param.VideoMaxAllowedBitrateCheck"*/ 43311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVideoMaxAllowedBitrateCheck = 0x7F00001E, 43411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 43511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexEnableSliceDeliveryMode = 0x7F00001F, 43611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 43711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* "OMX.QCOM.index.param.video.ExtnUserExtraData" */ 43811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexEnableExtnUserData = 0x7F000020, 43911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 44011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.param.video.EnableSmoothStreaming"*/ 44111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamEnableSmoothStreaming = 0x7F000021, 44211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 44311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.param.video.QPRange" */ 44411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVideoQPRange = 0x7F000022, 44511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 44611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexEnableH263PlusPType = 0x7F000023, 44711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 44811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.param.video.LTRCountRangeSupported"*/ 44911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_IndexParamVideoLTRCountRangeSupported = 0x7F000024, 45011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 45111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.param.video.LTRMode"*/ 45211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_IndexParamVideoLTRMode = 0x7F000025, 45311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 45411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.param.video.LTRCount"*/ 45511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_IndexParamVideoLTRCount = 0x7F000026, 45611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 45711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.config.video.LTRPeriod"*/ 45811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_IndexConfigVideoLTRPeriod = 0x7F000027, 45911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 46011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.config.video.LTRUse"*/ 46111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_IndexConfigVideoLTRUse = 0x7F000028, 46211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 46311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.config.video.LTRMark"*/ 46411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_IndexConfigVideoLTRMark = 0x7F000029, 46511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 46611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* OMX.google.android.index.prependSPSPPSToIDRFrames */ 46711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamSequenceHeaderWithIDR = 0x7F00002A, 46811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 46911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamH264AUDelimiter = 0x7F00002B, 47011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 47111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVideoDownScalar = 0x7F00002C, 47211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 47311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* "OMX.QCOM.index.param.video.FramePackingExtradata" */ 47411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVideoFramePackingExtradata = 0x7F00002D, 47511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 47611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* "OMX.QCOM.index.config.activeregiondetection" */ 47711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigActiveRegionDetection = 0x7F00002E, 47811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 47911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* "OMX.QCOM.index.config.activeregiondetectionstatus" */ 48011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigActiveRegionDetectionStatus = 0x7F00002F, 48111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 48211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* "OMX.QCOM.index.config.scalingmode" */ 48311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigScalingMode = 0x7F000030, 48411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 48511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* "OMX.QCOM.index.config.noisereduction" */ 48611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigNoiseReduction = 0x7F000031, 48711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 48811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* "OMX.QCOM.index.config.imageenhancement" */ 48911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigImageEnhancement = 0x7F000032, 49011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 49111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* google smooth-streaming support */ 49211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVideoAdaptivePlaybackMode = 0x7F000033, 49311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 49411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* H.264 MVC codec index */ 49511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_IndexParamVideoMvc = 0x7F000034, 49611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 49711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* "OMX.QCOM.index.param.video.QPExtradata" */ 49811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVideoQPExtraData = 0x7F000035, 49911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 50011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* "OMX.QCOM.index.param.video.InputBitsInfoExtradata" */ 50111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVideoInputBitsInfoExtraData = 0x7F000036, 50211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 50311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* VP8 Hierarchical P support */ 50411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexHierarchicalStructure = 0x7F000037, 50511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 50611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamPerfLevel = 0x7F000038, 50711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 50811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamH264VUITimingInfo = 0x7F000039, 50911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 51011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamPeakBitrate = 0x7F00003A, 51111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 51211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Enable InitialQP index */ 51311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_IndexParamVideoInitialQp = 0x7F00003B, 51411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 51511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamSetMVSearchrange = 0x7F00003C, 51611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 51711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigPerfLevel = 0x7F00003D, 51811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 51911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.param.video.LTRCount"*/ 52011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVideoLTRCount = QOMX_IndexParamVideoLTRCount, 52111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 52211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.config.video.LTRUse"*/ 52311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigVideoLTRUse = QOMX_IndexConfigVideoLTRUse, 52411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 52511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.config.video.LTRMark"*/ 52611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigVideoLTRMark = QOMX_IndexConfigVideoLTRMark, 52711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 52811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /*"OMX.QCOM.index.param.video.CustomBufferSize"*/ 52911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVideoCustomBufferSize = 0x7F00003E, 53011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 53111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Max Hierarchical P layers */ 53211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexMaxHierarchicallayers = 0x7F000041, 53311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 53411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Set Encoder Performance Index */ 53511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigVideoVencPerfMode = 0x7F000042, 53611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 53711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Set Hybrid Hier-p layers */ 53811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVideoHybridHierpMode = 0x7F000043, 53911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 54011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexFlexibleYUVDescription = 0x7F000044, 54111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 54211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Vpp Hqv Control Type */ 54311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVppHqvControl = 0x7F000045, 54411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 54511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Enable VPP */ 54611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamEnableVpp = 0x7F000046, 54711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 54811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* MBI statistics mode */ 54911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamMBIStatisticsMode = 0x7F000047, 55011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 55111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Set PictureTypeDecode */ 55211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigPictureTypeDecode = 0x7F000048, 55311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 55411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigH264EntropyCodingCabac = 0x7F000049, 55511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 55611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* "OMX.QCOM.index.param.video.InputBatch" */ 55711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamBatchSize = 0x7F00004A, 55811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 55911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigNumHierPLayers = 0x7F00004B, 56011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 56111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigRectType = 0x7F00004C, 56211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 56311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigBaseLayerId = 0x7F00004E, 56411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 56511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamDriverVersion = 0x7F00004F, 56611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 56711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigQp = 0x7F000050, 56811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 56911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexParamVencAspectRatio = 0x7F000051, 57011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 57111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QTIIndexParamVQZipSEIExtraData = 0x7F000052, 57211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 57311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Enable VQZIP SEI NAL type */ 57411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QTIIndexParamVQZIPSEIType = 0x7F000053, 57511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 57611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QTIIndexParamPassInputBufferFd = 0x7F000054, 57711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 57811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Set Prefer-adaptive playback*/ 57911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* "OMX.QTI.index.param.video.PreferAdaptivePlayback" */ 58011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QTIIndexParamVideoPreferAdaptivePlayback = 0x7F000055, 58111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 58211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Set time params */ 58311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QTIIndexConfigSetTimeData = 0x7F000056, 58411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Force Compressed format for DPB when resolution <=1080p 58511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * and OPB is cpu_access */ 58611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* OMX.QTI.index.param.video.ForceCompressedForDPB */ 58711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QTIIndexParamForceCompressedForDPB = 0x7F000057, 58811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 58911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Enable ROI info */ 59011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QTIIndexParamVideoEnableRoiInfo = 0x7F000058, 59111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 59211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Configure ROI info */ 59311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QTIIndexConfigVideoRoiInfo = 0x7F000059, 59411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 59511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Encoder Low Latency mode */ 59611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QcomIndexConfigVideoVencLowLatencyMode = 0x7F00005A, 59711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 59811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Set Low Latency Mode */ 59911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QTIIndexParamLowLatencyMode = 0x7F00005B, 60011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 60111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Force OPB to UnCompressed mode */ 60211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QTIIndexParamForceUnCompressedForOPB = 0x7F00005C, 60311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 60411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* OMX.google.android.index.allocateNativeHandle */ 60511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_GoogleAndroidIndexAllocateNativeHandle = 0x7F00005D, 60611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 60711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* Configure BLUR resolution for encode */ 60811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QTIIndexConfigVideoBlurResolution = 0x7F00005E, 6092601808ee2992a94c325d05e4065aba60b01840bThierry Strudel 6102601808ee2992a94c325d05e4065aba60b01840bThierry Strudel /* QP range for I frame B frame P frame */ 6112601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_QcomIndexParamVideoIPBQPRange = 0x7F00005F, 6122601808ee2992a94c325d05e4065aba60b01840bThierry Strudel 6132601808ee2992a94c325d05e4065aba60b01840bThierry Strudel /* Enable client extradata */ 6142601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_QTIIndexParamVideoClientExtradata = 0x7F000060, 6152601808ee2992a94c325d05e4065aba60b01840bThierry Strudel 6162601808ee2992a94c325d05e4065aba60b01840bThierry Strudel /* H264 transform 8x8 mode */ 6172601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_QcomIndexConfigH264Transform8x8 = 0x7F000061, 618fbc0b4aac30717e1ea0293751b1ac08fcb6fd0b3Thierry Strudel 619fbc0b4aac30717e1ea0293751b1ac08fcb6fd0b3Thierry Strudel /*"OMX.google.android.index.describeColorAspects"*/ 620fbc0b4aac30717e1ea0293751b1ac08fcb6fd0b3Thierry Strudel OMX_QTIIndexConfigDescribeColorAspects = 0x7F000062, 621fbc0b4aac30717e1ea0293751b1ac08fcb6fd0b3Thierry Strudel 622fbc0b4aac30717e1ea0293751b1ac08fcb6fd0b3Thierry Strudel OMX_QTIIndexParamVUIExtraDataExtraData = 0x7F000063, 623fbc0b4aac30717e1ea0293751b1ac08fcb6fd0b3Thierry Strudel 624fbc0b4aac30717e1ea0293751b1ac08fcb6fd0b3Thierry Strudel OMX_QTIIndexParamMPEG2SeqDispExtraData = 0x7F000064, 625fbc0b4aac30717e1ea0293751b1ac08fcb6fd0b3Thierry Strudel 626fbc0b4aac30717e1ea0293751b1ac08fcb6fd0b3Thierry Strudel OMX_QTIIndexParamVC1SeqDispExtraData = 0x7F000065, 627fbc0b4aac30717e1ea0293751b1ac08fcb6fd0b3Thierry Strudel 628fbc0b4aac30717e1ea0293751b1ac08fcb6fd0b3Thierry Strudel OMX_QTIIndexParamVPXColorSpaceExtraData = 0x7F000066, 629fbc0b4aac30717e1ea0293751b1ac08fcb6fd0b3Thierry Strudel 630fa202b9b18f17f7835fd602db5fff530e61112b4Thierry Strudel /*"OMX.google.android.index.describeHDRStaticInfo"*/ 631fa202b9b18f17f7835fd602db5fff530e61112b4Thierry Strudel OMX_QTIIndexConfigDescribeHDRColorInfo = 0x7F000067, 632fa202b9b18f17f7835fd602db5fff530e61112b4Thierry Strudel 633fa202b9b18f17f7835fd602db5fff530e61112b4Thierry Strudel /* Configure to disable PQ*/ 634fa202b9b18f17f7835fd602db5fff530e61112b4Thierry Strudel OMX_QTIIndexParamDisablePQ = 0x7F000068, 635af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudel 636af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudel /* Dither control for 10bit */ 637af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudel OMX_QTIIndexParamDitherControl = 0x7F000069, 638af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudel 639a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel /* Suggest how big Iframe sizes should be */ 640a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel OMX_QTIIndexParamIframeSizeType = 0x7F000070, 64111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel}; 64211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 64311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 64411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* This is custom extension to configure Low Latency Mode. 64511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* 64611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* STRUCT MEMBERS 64711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* 64811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* nSize : Size of Structure in bytes 64911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* nVersion : OpenMAX IL specification version information 65011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* bLowLatencyMode : Enable/Disable Low Latency mode 65111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel*/ 65211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 65311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_EXTNINDEX_VIDEO_VENC_LOW_LATENCY_MODE 65411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 65511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 65611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 65711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bLowLatencyMode; 65811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_EXTNINDEX_VIDEO_VENC_LOW_LATENCY_MODE; 65911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 66011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 66111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* This is custom extension to configure Encoder Aspect Ratio. 66211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* 66311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* STRUCT MEMBERS 66411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* 66511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* nSize : Size of Structure in bytes 66611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* nVersion : OpenMAX IL specification version information 66711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* nSARWidth : Horizontal aspect size 66811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* nSARHeight : Vertical aspect size 66911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel*/ 67011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 67111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_EXTNINDEX_VIDEO_VENC_SAR 67211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 67311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 67411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 67511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSARWidth; 67611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSARHeight; 67711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_EXTNINDEX_VIDEO_VENC_SAR; 67811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 67911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 68011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* This is custom extension to configure Hier-p layers. 68111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* This mode configures Hier-p layers dynamically. 68211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* 68311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* STRUCT MEMBERS 68411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* 68511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* nSize : Size of Structure in bytes 68611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* nVersion : OpenMAX IL specification version information 68711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* nNumHierLayers: Set the number of Hier-p layers for the session 68811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* - This should be less than the MAX Hier-P 68911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* layers set for the session. 69011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel*/ 69111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 69211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_EXTNINDEX_VIDEO_HIER_P_LAYERS { 69311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 69411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 69511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nNumHierLayers; 69611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_EXTNINDEX_VIDEO_HIER_P_LAYERS; 69711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 69811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 69911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 70011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* This is custom extension to configure Hybrid Hier-p settings. 70111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* This mode is different from enabling Hier-p mode. This 70211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* property enables Hier-p encoding with LTR referencing in each 70311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* sub-GOP. 70411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* 70511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* STRUCT MEMBERS 70611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* 70711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* nSize : Size of Structure in bytes 70811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* nVersion : OpenMAX IL specification version information 70911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* nKeyFrameInterval : Indicates the I frame interval 71011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* nHpLayers : Set the number of Hier-p layers for the session 71111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* - This should be <= 6. (1 Base layer + 71211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* 5 Enhancement layers) 71311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* nTemporalLayerBitrateRatio[OMX_VIDEO_MAX_HP_LAYERS] : Bitrate to 71411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* be set for each enhancement layer 71511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* nMinQuantizer : minimum session QP 71611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel* nMaxQuantizer : Maximun session QP 71711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel*/ 71811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 71911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_EXTNINDEX_VIDEO_HYBRID_HP_MODE { 72011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 72111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 72211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nKeyFrameInterval; 72311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nTemporalLayerBitrateRatio[OMX_VIDEO_MAX_HP_LAYERS]; 72411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nMinQuantizer; 72511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nMaxQuantizer; 72611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nHpLayers; 72711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_EXTNINDEX_VIDEO_HYBRID_HP_MODE; 72811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 72911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 73011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Encoder Performance Mode. This structure is used to set 73111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * performance mode or power save mode when encoding. The search 73211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * range is modified to save power or improve quality. 73311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 73411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * STRUCT MEMBERS: 73511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_U32 nPerfMode : Performance mode: 73611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 1: MAX_QUALITY 73711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 2: POWER_SAVE 73811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 73911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 74011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_EXTNINDEX_VIDEO_PERFMODE { 74111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 74211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 74311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPerfMode; 74411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_EXTNINDEX_VIDEO_PERFMODE; 74511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 74611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 74711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Initial QP parameter. This structure is used to enable 74811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * vendor specific extension to let client enable setting 74911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * initial QP values to I P B Frames 75011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 75111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * STRUCT MEMBERS: 75211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nSize : Size of Structure in bytes 75311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nVersion : OpenMAX IL specification version information 75411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nPortIndex : Index of the port to which this structure applies 75511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_U32 nQpI : First Iframe QP 75611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_U32 nQpP : First Pframe QP 75711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_U32 nQpB : First Bframe QP 75811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_U32 bEnableInitQp : Bit field indicating which frame type(s) shall 75911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * use the specified initial QP. 76011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Bit 0: Enable initial QP for I/IDR 76111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * and use value specified in nInitQpI 76211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Bit 1: Enable initial QP for P 76311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * and use value specified in nInitQpP 76411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Bit 2: Enable initial QP for B 76511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * and use value specified in nInitQpB 76611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 76711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 76811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_EXTNINDEX_VIDEO_INITIALQP { 76911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 77011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 77111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 77211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nQpI; 77311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nQpP; 77411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nQpB; 77511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 bEnableInitQp; 77611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_EXTNINDEX_VIDEO_INITIALQP; 77711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 77811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 77911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Extension index parameter. This structure is used to enable 78011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * vendor specific extension on input/output port and 78111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * to pass the required flags and data, if any. 78211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * The format of flags and data being passed is known to 78311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * the client and component apriori. 78411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 78511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * STRUCT MEMBERS: 78611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nSize : Size of Structure plus pData size 78711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nVersion : OMX specification version information 78811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nPortIndex : Indicates which port to set 78911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * bEnable : Extension index enable (1) or disable (0) 79011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nFlags : Extension index flags, if any 79111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nDataSize : Size of the extension index data to follow 79211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * pData : Extension index data, if present. 79311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 79411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_EXTNINDEX_PARAMTYPE { 79511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 79611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 79711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 79811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bEnable; 79911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nFlags; 80011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nDataSize; 80111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_PTR pData; 80211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_EXTNINDEX_PARAMTYPE; 80311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 80411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 80511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Range index parameter. This structure is used to enable 80611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * vendor specific extension on input/output port and 80711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * to pass the required minimum and maximum values 80811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 80911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * STRUCT MEMBERS: 81011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nSize : Size of Structure in bytes 81111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nVersion : OpenMAX IL specification version information 81211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nPortIndex : Index of the port to which this structure applies 81311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nMin : Minimum value 81411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nMax : Maximum value 81511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nSteSize : Step size 81611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 81711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_EXTNINDEX_RANGETYPE { 81811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 81911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 82011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 82111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_S32 nMin; 82211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_S32 nMax; 82311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_S32 nStepSize; 82411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_EXTNINDEX_RANGETYPE; 82511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 82611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 82711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Specifies LTR mode types. 82811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 82911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VIDEO_LTRMODETYPE 83011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 83111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_LTRMode_Disable = 0x0, /**< LTR encoding is disabled */ 83211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_LTRMode_Manual = 0x1, /**< In this mode, IL client configures 83311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel ** the encoder the LTR count and manually 83411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel ** controls the marking and use of LTR 83511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel ** frames during video encoding. 83611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 83711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_LTRMode_Auto = 0x2, /**< In this mode, IL client configures 83811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel ** the encoder the LTR count and LTR 83911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel ** period. The encoder marks LTR frames 84011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel ** automatically based on the LTR period 84111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel ** during video encoding. IL client controls 84211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel ** the use of LTR frames. 84311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 84411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_LTRMode_MAX = 0x7FFFFFFF /** Maximum LTR Mode type */ 84511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_LTRMODETYPE; 84611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 84711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 84811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * LTR mode index parameter. This structure is used 84911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * to enable vendor specific extension on output port 85011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * to pass the LTR mode information. 85111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 85211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * STRUCT MEMBERS: 85311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nSize : Size of Structure in bytes 85411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nVersion : OpenMAX IL specification version information 85511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nPortIndex : Index of the port to which this structure applies 85611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * eLTRMode : Specifies the LTR mode used in encoder 85711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 85811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_PARAM_LTRMODE_TYPE { 85911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 86011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 86111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 86211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_LTRMODETYPE eLTRMode; 86311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_PARAM_LTRMODE_TYPE; 86411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 86511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 86611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * LTR count index parameter. This structure is used 86711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * to enable vendor specific extension on output port 86811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * to pass the LTR count information. 86911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 87011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * STRUCT MEMBERS: 87111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nSize : Size of Structure in bytes 87211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nVersion : OpenMAX IL specification version information 87311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nPortIndex : Index of the port to which this structure applies 87411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nCount : Specifies the number of LTR frames stored in the 87511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * encoder component 87611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 87711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_PARAM_LTRCOUNT_TYPE { 87811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 87911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 88011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 88111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nCount; 88211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_PARAM_LTRCOUNT_TYPE; 88311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 88411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 88511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 88611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This should be used with OMX_QcomIndexParamVideoLTRCount extension. 88711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 88811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef QOMX_VIDEO_PARAM_LTRCOUNT_TYPE OMX_QCOM_VIDEO_PARAM_LTRCOUNT_TYPE; 88911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 89011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 89111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * LTR period index parameter. This structure is used 89211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * to enable vendor specific extension on output port 89311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * to pass the LTR period information. 89411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 89511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * STRUCT MEMBERS: 89611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nSize : Size of Structure in bytes 89711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nVersion : OpenMAX IL specification version information 89811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nPortIndex : Index of the port to which this structure applies 89911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nFrames : Specifies the number of frames between two consecutive 90011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * LTR frames. 90111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 90211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE { 90311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 90411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 90511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 90611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nFrames; 90711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE; 90811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 90911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 91011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Marks the next encoded frame as an LTR frame. 91111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * STRUCT MEMBERS: 91211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nSize : Size of Structure in bytes 91311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nVersion : OpenMAX IL specification version information 91411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nPortIndex : Index of the port to which this structure applies 91511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nID : Specifies the identifier of the LTR frame to be marked 91611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * as reference frame for encoding subsequent frames. 91711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 91811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_CONFIG_LTRMARK_TYPE { 91911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 92011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 92111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 92211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nID; 92311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_CONFIG_LTRMARK_TYPE; 92411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 92511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 92611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This should be used with OMX_QcomIndexConfigVideoLTRMark extension. 92711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 92811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef QOMX_VIDEO_CONFIG_LTRMARK_TYPE OMX_QCOM_VIDEO_CONFIG_LTRMARK_TYPE; 92911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 93011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 93111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Specifies an LTR frame to encode subsequent frames. 93211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * STRUCT MEMBERS: 93311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nSize : Size of Structure in bytes 93411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nVersion : OpenMAX IL specification version information 93511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nPortIndex : Index of the port to which this structure applies 93611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nID : Specifies the identifier of the LTR frame to be used 93711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel as reference frame for encoding subsequent frames. 93811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nFrames : Specifies the number of subsequent frames to be 93911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel encoded using the LTR frame with its identifier 94011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel nID as reference frame. Short-term reference frames 94111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel will be used thereafter. The value of 0xFFFFFFFF 94211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel indicates that all subsequent frames will be 94311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel encodedusing this LTR frame as reference frame. 94411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 94511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_CONFIG_LTRUSE_TYPE { 94611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 94711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 94811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 94911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nID; 95011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nFrames; 95111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_CONFIG_LTRUSE_TYPE; 95211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 95311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 95411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This should be used with OMX_QcomIndexConfigVideoLTRUse extension. 95511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 95611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef QOMX_VIDEO_CONFIG_LTRUSE_TYPE OMX_QCOM_VIDEO_CONFIG_LTRUSE_TYPE; 95711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 95811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 95911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Enumeration used to define the video encoder modes 96011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 96111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * ENUMS: 96211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * EncoderModeDefault : Default video recording mode. 96311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * All encoder settings made through 96411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_SetParameter/OMX_SetConfig are applied. No 96511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * parameter is overridden. 96611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * EncoderModeMMS : Video recording mode for MMS (Multimedia Messaging 96711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Service). This mode is similar to EncoderModeDefault 96811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * except that here the Rate control mode is overridden 96911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * internally and set as a variant of variable bitrate with 97011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * variable frame rate. After this mode is set if the IL 97111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * client tries to set OMX_VIDEO_CONTROLRATETYPE via 97211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_IndexParamVideoBitrate that would be rejected. For 97311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * this, client should set mode back to EncoderModeDefault 97411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * first and then change OMX_VIDEO_CONTROLRATETYPE. 97511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 97611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VIDEO_ENCODERMODETYPE 97711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 97811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_EncoderModeDefault = 0x00, 97911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_EncoderModeMMS = 0x01, 98011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_EncoderModeMax = 0x7FFFFFFF 98111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_ENCODERMODETYPE; 98211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 98311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 98411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure is used to set the video encoder mode. 98511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 98611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * STRUCT MEMBERS: 98711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nSize : Size of the structure in bytes 98811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nVersion : OMX specification version info 98911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nPortIndex : Port that this structure applies to 99011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nMode : defines the video encoder mode 99111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 99211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_PARAM_ENCODERMODETYPE { 99311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 99411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 99511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 99611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_ENCODERMODETYPE nMode; 99711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_PARAM_ENCODERMODETYPE; 99811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 99911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 100011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the parameters corresponding to the 100111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * QOMX_VIDEO_SYNTAXHDRTYPE extension. This parameter can be queried 100211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * during the loaded state. 100311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 100411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 100511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_SYNTAXHDRTYPE 100611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 100711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 100811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion;/** OMX specification version information */ 100911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 101011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nBytes; /** The number of bytes filled in to the buffer */ 101111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U8 data[1]; /** Buffer to store the header information */ 101211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_SYNTAXHDRTYPE; 101311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 101411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 101511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the parameters corresponding to the 101611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * QOMX_VIDEO_TEMPORALSPATIALTYPE extension. This parameter can be set 101711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * dynamically during any state except the state invalid. This is primarily 101811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * used for setting MaxQP from the application. This is set on the out port. 101911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 102011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 102111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_TEMPORALSPATIALTYPE 102211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 102311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 102411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion;/** OMX specification version information */ 102511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 102611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nTSFactor; /** Temoral spatial tradeoff factor value in 0-100 */ 102711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_TEMPORALSPATIALTYPE; 102811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 102911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 103011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the parameters corresponding to the 103111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_QCOM_VIDEO_CONFIG_INTRAPERIODTYPE extension. This parameter can be set 103211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * dynamically during any state except the state invalid. This is set on the out port. 103311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 103411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 103511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_INTRAPERIODTYPE 103611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 103711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 103811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion;/** OMX specification version information */ 103911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 104011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nIDRPeriod; /** This specifies coding a frame as IDR after every nPFrames 104111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel of intra frames. If this parameter is set to 0, only the 104211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel first frame of the encode session is an IDR frame. This 104311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel field is ignored for non-AVC codecs and is used only for 104411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel codecs that support IDR Period */ 104511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPFrames; /** The number of "P" frames between two "I" frames */ 104611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nBFrames; /** The number of "B" frames between two "I" frames */ 104711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_INTRAPERIODTYPE; 104811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 104911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 105011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the parameters corresponding to the 105111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_QCOM_VIDEO_CONFIG_ULBUFFEROCCUPANCYTYPE extension. This parameter can be set 105211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * dynamically during any state except the state invalid. This is used for the buffer negotiation 105311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * with other clients. This is set on the out port. 105411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 105511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_VIDEO_CONFIG_ULBUFFEROCCUPANCYTYPE 105611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 105711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 105811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; /** OMX specification version information */ 105911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 106011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nBufferOccupancy; /** The number of bytes to be set for the buffer occupancy */ 106111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_VIDEO_CONFIG_ULBUFFEROCCUPANCYTYPE; 106211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 106311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 106411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the parameters corresponding to the 106511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_QCOM_VIDEO_CONFIG_RANDOMINTRAREFRESHTYPE extension. This parameter can be set 106611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * dynamically during any state except the state invalid. This is primarily used for the dynamic/random 106711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * intrarefresh. This is set on the out port. 106811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 106911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_VIDEO_CONFIG_RANDOMINTRAREFRESHTYPE 107011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 107111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 107211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion;/** OMX specification version information */ 107311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 107411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nRirMBs; /** The number of MBs to be set for intrarefresh */ 107511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_VIDEO_CONFIG_RANDOMINTRAREFRESHTYPE; 107611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 107711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 107811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 107911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the parameters corresponding to the 108011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_QCOM_VIDEO_CONFIG_QPRANGE extension. This parameter can be set 108111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * dynamically during any state except the state invalid. This is primarily 108211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * used for the min/max QP to be set from the application. This 108311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * is set on the out port. 108411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 108511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_VIDEO_CONFIG_QPRANGE 108611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 108711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 108811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion;/** OMX specification version information */ 108911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 109011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nMinQP; /** The number for minimum quantization parameter */ 109111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nMaxQP; /** The number for maximum quantization parameter */ 109211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_VIDEO_CONFIG_QPRANGE; 109311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 109411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 109511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the parameters for the 109611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_QcomIndexParamH264AUDelimiter extension. It enables/disables 109711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * the AU delimiters in the H264 stream, which is used by WFD. 109811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 109911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_VIDEO_CONFIG_H264_AUD 110011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 110111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 110211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion;/** OMX specification version information */ 110311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bEnable; /** Enable/disable the setting */ 110411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_VIDEO_CONFIG_H264_AUD; 110511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 110611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VIDEO_PERF_LEVEL 110711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 110811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_PerfLevelNominal, 110911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_PerfLevelTurbo 111011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_PERF_LEVEL; 111111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 111211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 111311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the parameters corresponding 111411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * to OMX_QcomIndexParamPerfLevel extension. It will set 111511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * the performance mode specified as QOMX_VIDEO_PERF_LEVEL. 111611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 111711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_VIDEO_PARAM_PERF_LEVEL { 111811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 111911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; /** OMX specification version information */ 112011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_PERF_LEVEL ePerfLevel; /** Performance level */ 112111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_VIDEO_PARAM_PERF_LEVEL; 112211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 112311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 112411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the parameters corresponding 112511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * to OMX_QcomIndexConfigPerfLevel extension. It will set 112611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * the performance mode specified as QOMX_VIDEO_PERF_LEVEL. 112711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 112811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_VIDEO_CONFIG_PERF_LEVEL { 112911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 113011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; /** OMX specification version information */ 113111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_PERF_LEVEL ePerfLevel; /** Performance level */ 113211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_VIDEO_CONFIG_PERF_LEVEL; 113311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 113411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VIDEO_PICTURE_TYPE_DECODE 113511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 113611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_PictypeDecode_IPB, 113711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_PictypeDecode_I 113811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_PICTURE_TYPE_DECODE; 113911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 114011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 114111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the parameters corresponding 114211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * to OMX_QcomIndexConfigPictureTypeDecode extension. It 114311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * will set the picture type decode specified by eDecodeType. 114411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 114511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_VIDEO_CONFIG_PICTURE_TYPE_DECODE { 114611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 114711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; /** OMX specification version information */ 114811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_PICTURE_TYPE_DECODE eDecodeType; /** Decode type */ 114911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_VIDEO_CONFIG_PICTURE_TYPE_DECODE; 115011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 115111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 115211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the parameters corresponding 115311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * to OMX_QcomIndexParamH264VUITimingInfo extension. It 115411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * will enable/disable the VUI timing info. 115511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 115611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_VIDEO_PARAM_VUI_TIMING_INFO { 115711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 115811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; /** OMX specification version information */ 115911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bEnable; /** Enable/disable the setting */ 116011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_VIDEO_PARAM_VUI_TIMING_INFO; 116111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 116211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 116311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the parameters corresponding 116411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * to OMX_QcomIndexParamVQZIPSEIType extension. It 116511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * will enable/disable the VQZIP SEI info. 116611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 116711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QTI_VIDEO_PARAM_VQZIP_SEI_TYPE { 116811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 116911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; /** OMX specification version information */ 117011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bEnable; /** Enable/disable the setting */ 117111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QTI_VIDEO_PARAM_VQZIP_SEI_TYPE; 117211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 117311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 117411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the parameters corresponding 117511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * to OMX_QcomIndexParamPeakBitrate extension. It will 117611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * set the peak bitrate specified by nPeakBitrate. 117711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 117811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_VIDEO_PARAM_PEAK_BITRATE { 117911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 118011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; /** OMX specification version information */ 118111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPeakBitrate; /** Peak bitrate value */ 118211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_VIDEO_PARAM_PEAK_BITRATE; 118311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 118411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 118511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the parameters corresponding 118611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * to OMX_QTIIndexParamForceCompressedForDPB extension. Enabling 118711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * this extension will force the split mode DPB(compressed)/OPB(Linear) 118811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * for all resolutions.On some chipsets preferred mode would be combined 118911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Linear for both DPB/OPB to save memory. For example on 8996 preferred mode 119011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * would be combined linear for resolutions <= 1080p . 119111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Enabling this might save power but with the cost 119211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * of increased memory i.e almost double the number on output YUV buffers. 119311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 119411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QTI_VIDEO_PARAM_FORCE_COMPRESSED_FOR_DPB_TYPE { 119511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 119611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; /** OMX specification version information */ 119711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bEnable; /** Enable/disable the setting */ 119811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QTI_VIDEO_PARAM_FORCE_COMPRESSED_FOR_DPB_TYPE; 119911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 120011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 120111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the parameters corresponding 120211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * to OMX_QTIIndexParamForceUnCompressedForOPB extension. Enabling this 120311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * extension will force the OPB to be linear for the current video session. 120411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * If this property is not set, then the OPB will be set to linear or compressed 120511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * based on resolution selected and/or if cpu access is requested on the 120611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OPB buffer. 120711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 120811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QTI_VIDEO_PARAM_FORCE_UNCOMPRESSED_FOR_OPB_TYPE { 120911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Sizeo f the structure in bytes */ 121011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; /** OMX specification version information */ 121111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bEnable; /** Enable/disable the setting */ 121211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QTI_VIDEO_PARAM_FORCE_UNCOMPRESSED_FOR_OPB_TYPE; 121311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 121411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_VENDOR_EXTRADATATYPE { 121511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 121611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nDataSize; 121711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U8 *pData; // cdata (codec_data/extradata) 121811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_VENDOR_EXTRADATATYPE; 121911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 122011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 122111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure describes the parameters corresponding to the 122211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_VENDOR_VIDEOFRAMERATE extension. This parameter can be set 122311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * dynamically during any state except the state invalid. This is 122411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * used for frame rate to be set from the application. This 122511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * is set on the in port. 122611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 122711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_VENDOR_VIDEOFRAMERATE { 122811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 122911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion;/** OMX specification version information */ 123011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 123111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nFps; /** Frame rate value */ 123211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bEnabled; /** Flag to enable or disable client's frame rate value */ 123311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_VENDOR_VIDEOFRAMERATE; 123411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 123511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum OMX_INDEXVENDORTYPE { 123611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IndexVendorFileReadInputFilename = 0xFF000001, 123711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IndexVendorParser3gpInputFilename = 0xFF000002, 123811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IndexVendorVideoExtraData = 0xFF000003, 123911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IndexVendorAudioExtraData = 0xFF000004, 124011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_IndexVendorVideoFrameRate = 0xFF000005, 124111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_INDEXVENDORTYPE; 124211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 124311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum OMX_QCOM_VC1RESOLUTIONTYPE 124411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 124511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_VC1_PICTURE_RES_1x1, 124611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_VC1_PICTURE_RES_2x1, 124711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_VC1_PICTURE_RES_1x2, 124811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_VC1_PICTURE_RES_2x2 124911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_VC1RESOLUTIONTYPE; 125011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 125111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum OMX_QCOM_INTERLACETYPE 125211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 125311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_InterlaceFrameProgressive, 125411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst, 125511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst, 125611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_InterlaceFrameTopFieldFirst, 125711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_InterlaceFrameBottomFieldFirst, 125811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_InterlaceFieldTop, 125911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_InterlaceFieldBottom 126011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel}OMX_QCOM_INTERLACETYPE; 126111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 126211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_PARAM_VIDEO_INTERLACETYPE 126311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 126411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; /** Size of the structure in bytes */ 126511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion;/** OMX specification version information */ 126611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; /** Portindex which is extended by this structure */ 126711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bInterlace; /** Interlace content **/ 126811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel}OMX_QCOM_PARAM_VIDEO_INTERLACETYPE; 126911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 127011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_CONFIG_INTERLACETYPE 127111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 127211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 127311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 127411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 127511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nIndex; 127611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_INTERLACETYPE eInterlaceType; 127711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel}OMX_QCOM_CONFIG_INTERLACETYPE; 127811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 127911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define MAX_PAN_SCAN_WINDOWS 4 128011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 128111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_PANSCAN 128211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 128311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 numWindows; 128411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOMRectangle window[MAX_PAN_SCAN_WINDOWS]; 128511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_PANSCAN; 128611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 128711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_ASPECT_RATIO 128811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 128911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 aspectRatioX; 129011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 aspectRatioY; 129111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_ASPECT_RATIO; 129211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 129311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_DISPLAY_ASPECT_RATIO 129411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 129511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 displayVerticalSize; 129611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 displayHorizontalSize; 129711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_DISPLAY_ASPECT_RATIO; 129811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 129911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_FRAME_PACK_ARRANGEMENT 130011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 130111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 130211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 130311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 130411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 id; 130511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 cancel_flag; 130611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 type; 130711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 quincunx_sampling_flag; 130811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 content_interpretation_type; 130911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 spatial_flipping_flag; 131011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 frame0_flipped_flag; 131111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 field_views_flag; 131211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 current_frame_is_frame0_flag; 131311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 frame0_self_contained_flag; 131411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 frame1_self_contained_flag; 131511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 frame0_grid_position_x; 131611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 frame0_grid_position_y; 131711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 frame1_grid_position_x; 131811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 frame1_grid_position_y; 131911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 reserved_byte; 132011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 repetition_period; 132111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 extension_flag; 132211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_FRAME_PACK_ARRANGEMENT; 132311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 132411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_EXTRADATA_QP 132511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 132611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nQP; 132711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_EXTRADATA_QP; 132811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 132911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_EXTRADATA_BITS_INFO 133011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 133111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 header_bits; 133211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 frame_bits; 133311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_EXTRADATA_BITS_INFO; 133411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 133511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_EXTRADATA_USERDATA { 133611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 type; 133711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 data[1]; 133811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_EXTRADATA_USERDATA; 133911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 134011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_EXTRADATA_FRAMEINFO 134111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 134211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel // common frame meta data. interlace related info removed 134311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VIDEO_PICTURETYPE ePicType; 134411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_INTERLACETYPE interlaceType; 134511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_PANSCAN panScan; 134611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_ASPECT_RATIO aspectRatio; 134711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_DISPLAY_ASPECT_RATIO displayAspectRatio; 134811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nConcealedMacroblocks; 1349a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel OMX_U32 nRecoverySeiFlag; 135011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nFrameRate; 135111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_TICKS nTimeStamp; 135211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_EXTRADATA_FRAMEINFO; 135311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 135411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_EXTRADATA_FRAMEDIMENSION 135511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 135611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /** Frame Dimensions added to each YUV buffer */ 135711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nDecWidth; /** Width rounded to multiple of 16 */ 135811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nDecHeight; /** Height rounded to multiple of 16 */ 135911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nActualWidth; /** Actual Frame Width */ 136011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nActualHeight; /** Actual Frame Height */ 136111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 136211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_EXTRADATA_FRAMEDIMENSION; 136311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 136411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_H264EXTRADATA 136511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 136611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U64 seiTimeStamp; 136711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_H264EXTRADATA; 136811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 136911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_VC1EXTRADATA 137011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 137111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nVC1RangeY; 137211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nVC1RangeUV; 137311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_VC1RESOLUTIONTYPE eVC1PicResolution; 137411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_VC1EXTRADATA; 137511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 137611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef union OMX_QCOM_EXTRADATA_CODEC_DATA 137711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 137811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_H264EXTRADATA h264ExtraData; 137911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QCOM_VC1EXTRADATA vc1ExtraData; 138011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_EXTRADATA_CODEC_DATA; 138111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 138211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_EXTRADATA_MBINFO 138311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 138411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nFormat; 138511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nDataSize; 138611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U8 data[0]; 138711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_EXTRADATA_MBINFO; 138811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 138911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QCOM_EXTRADATA_VQZIPSEI { 139011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 139111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U8 data[0]; 139211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_EXTRADATA_VQZIPSEI; 139311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 139411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QTI_VIDEO_PARAM_ENABLE_ROIINFO { 139511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 139611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 139711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 139811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bEnableRoiInfo; 139911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QTI_VIDEO_PARAM_ENABLE_ROIINFO; 140011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 140111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QTI_VIDEO_CONFIG_ROIINFO { 140211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 140311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 140411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 140511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_S32 nUpperQpOffset; 140611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_S32 nLowerQpOffset; 140711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bUseRoiInfo; 140811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_S32 nRoiMBInfoSize; 140911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_PTR pRoiMBInfo; 141011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QTI_VIDEO_CONFIG_ROIINFO; 141111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 141211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum OMX_QTI_VIDEO_BLUR_RESOLUTION { 141311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel BLUR_RESOL_DISABLED = 0, 141411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel BLUR_RESOL_240 = 1, 141511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel BLUR_RESOL_480 = 2, 141611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel BLUR_RESOL_720 = 3, 141711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel BLUR_RESOL_1080 = 4, 141811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QTI_VIDEO_BLUR_RESOLUTION; 141911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 142011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QTI_VIDEO_CONFIG_BLURINFO { 142111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 142211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 142311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 142411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QTI_VIDEO_BLUR_RESOLUTION eTargetResol; 142511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QTI_VIDEO_CONFIG_BLURINFO; 142611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 142711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum OMX_QCOM_EXTRADATATYPE 142811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 142911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ExtraDataFrameInfo = 0x7F000001, 143011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ExtraDataH264 = 0x7F000002, 143111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ExtraDataVC1 = 0x7F000003, 143211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ExtraDataFrameDimension = 0x7F000004, 143311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ExtraDataVideoEncoderSliceInfo = 0x7F000005, 143411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ExtraDataConcealMB = 0x7F000006, 143511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ExtraDataInterlaceFormat = 0x7F000007, 143611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ExtraDataPortDef = 0x7F000008, 143711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ExtraDataMP2ExtnData = 0x7F000009, 143811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ExtraDataMP2UserData = 0x7F00000a, 143911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ExtraDataVideoLTRInfo = 0x7F00000b, 144011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ExtraDataFramePackingArrangement = 0x7F00000c, 144111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ExtraDataQP = 0x7F00000d, 144211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ExtraDataInputBitsInfo = 0x7F00000e, 144311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ExtraDataVideoEncoderMBInfo = 0x7F00000f, 144411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_ExtraDataVQZipSEI = 0x7F000010, 1445fbc0b4aac30717e1ea0293751b1ac08fcb6fd0b3Thierry Strudel OMX_ExtraDataDisplayColourSEI = 0x7F000011, 1446fbc0b4aac30717e1ea0293751b1ac08fcb6fd0b3Thierry Strudel OMX_ExtraDataLightLevelSEI = 0x7F000012, 1447fbc0b4aac30717e1ea0293751b1ac08fcb6fd0b3Thierry Strudel OMX_ExtraDataEncoderOverrideQPInfo = 0x7F000013, 144811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QCOM_EXTRADATATYPE; 144911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 145011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_STREAMINTERLACEFORMATTYPE { 145111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 145211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 145311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 145411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bInterlaceFormat; 145511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nInterlaceFormats; 145611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_STREAMINTERLACEFORMAT; 145711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 145811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum OMX_INTERLACETYPE 145911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel{ 146011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_InterlaceFrameProgressive, 146111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_InterlaceInterleaveFrameTopFieldFirst, 146211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_InterlaceInterleaveFrameBottomFieldFirst, 146311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_InterlaceFrameTopFieldFirst, 146411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_InterlaceFrameBottomFieldFirst 146511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_INTERLACES; 146611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 1467a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudeltypedef enum QOMX_VIDEO_RECOVERYSEITYPE { 1468a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel/* 1469a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel * 0: Frame reconstruction is incorrect 1470a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel * a) Open Gop, frames before recovery point SEI 1471a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel * 1: Frame reconstruction is correct. 1472a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel * a) Closed Gop, When decoding starts from the top of closed GOP at IDR 1473a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel * b) Open Gop, Output at and subsequent to recovery point SEI with 1474a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel * exact_match_flag = true 1475a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel * 2: Frame reconstruction is approximately correct: 1476a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel * a) Closed Gop, When decoding starts from a P/B/I frames wihtout 1477a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel * any recovery point SEI information 1478a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel * b) Open Gop, Output at and subsequent to recovery point SEI with 1479a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel * exact_match_flag = false 1480a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel * In case flag is set to 0 or 2, DATACORRUPT shall be enabled 1481a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel * for buffer (nFlags) in FILL_BUFFER_DONE 1482a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel */ 1483a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel OMX_FRAME_RECONSTRUCTION_INCORRECT = 0, 1484a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel OMX_FRAME_RECONSTRUCTION_CORRECT = 1, 1485a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel OMX_FRAME_RECONSTRUCTION_APPROXIMATELY_CORRECT = 2 1486a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel} QOMX_VIDEO_RECOVERYSEI; 148711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 148811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_EXTRADATA_HEADER_SIZE 20 148911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 149011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 149111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * AVC profile types, each profile indicates support for various 149211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * performance bounds and different annexes. 149311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 149411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VIDEO_AVCPROFILETYPE { 149511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_AVCProfileBaseline = OMX_VIDEO_AVCProfileBaseline, 149611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_AVCProfileMain = OMX_VIDEO_AVCProfileMain, 149711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_AVCProfileExtended = OMX_VIDEO_AVCProfileExtended, 149811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_AVCProfileHigh = OMX_VIDEO_AVCProfileHigh, 149911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_AVCProfileHigh10 = OMX_VIDEO_AVCProfileHigh10, 150011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_AVCProfileHigh422 = OMX_VIDEO_AVCProfileHigh422, 150111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_AVCProfileHigh444 = OMX_VIDEO_AVCProfileHigh444, 150211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel /* QCom specific profile indexes */ 150311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_AVCProfileConstrained = OMX_VIDEO_AVCProfileVendorStartUnused, 150411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_AVCProfileConstrainedBaseline, 150511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_AVCProfileConstrainedHigh, 150611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_AVCPROFILETYPE; 150711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 150811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 150911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 151011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * H.264 MVC Profiles 151111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 151211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VIDEO_MVCPROFILETYPE { 151311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCProfileStereoHigh = 0x1, 151411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCProfileMultiViewHigh = 0x2, 151511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCProfileKhronosExtensions = 0x6F000000, 151611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCProfileVendorStartUnused = 0x7F000000, 151711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCProfileMax = 0x7FFFFFFF 151811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_MVCPROFILETYPE; 151911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 152011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 152111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * H.264 MVC Levels 152211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 152311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VIDEO_MVCLEVELTYPE { 152411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevel1 = 0x01, /**< Level 1 */ 152511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevel1b = 0x02, /**< Level 1b */ 152611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevel11 = 0x04, /**< Level 1.1 */ 152711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevel12 = 0x08, /**< Level 1.2 */ 152811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevel13 = 0x10, /**< Level 1.3 */ 152911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevel2 = 0x20, /**< Level 2 */ 153011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevel21 = 0x40, /**< Level 2.1 */ 153111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevel22 = 0x80, /**< Level 2.2 */ 153211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevel3 = 0x100, /**< Level 3 */ 153311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevel31 = 0x200, /**< Level 3.1 */ 153411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevel32 = 0x400, /**< Level 3.2 */ 153511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevel4 = 0x800, /**< Level 4 */ 153611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevel41 = 0x1000, /**< Level 4.1 */ 153711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevel42 = 0x2000, /**< Level 4.2 */ 153811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevel5 = 0x4000, /**< Level 5 */ 153911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevel51 = 0x8000, /**< Level 5.1 */ 154011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevelKhronosExtensions = 0x6F000000, 154111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevelVendorStartUnused = 0x7F000000, 154211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_MVCLevelMax = 0x7FFFFFFF 154311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_MVCLEVELTYPE; 154411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 154511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 154611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * DivX Versions 154711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 154811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VIDEO_DIVXFORMATTYPE { 154911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DIVXFormatUnused = 0x01, /**< Format unused or unknown */ 155011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DIVXFormat311 = 0x02, /**< DivX 3.11 */ 155111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DIVXFormat4 = 0x04, /**< DivX 4 */ 155211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DIVXFormat5 = 0x08, /**< DivX 5 */ 155311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DIVXFormat6 = 0x10, /**< DivX 6 */ 155411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DIVXFormatKhronosExtensions = 0x6F000000, 155511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DIVXFormatVendorStartUnused = 0x7F000000, 155611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DIVXFormatMax = 0x7FFFFFFF 155711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_DIVXFORMATTYPE; 155811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 155911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 156011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * DivX profile types, each profile indicates support for 156111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * various performance bounds. 156211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 156311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VIDEO_DIVXPROFILETYPE { 156411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DivXProfileqMobile = 0x01, /**< qMobile Profile */ 156511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DivXProfileMobile = 0x02, /**< Mobile Profile */ 156611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DivXProfileMT = 0x04, /**< Mobile Theatre Profile */ 156711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DivXProfileHT = 0x08, /**< Home Theatre Profile */ 156811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DivXProfileHD = 0x10, /**< High Definition Profile */ 156911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DIVXProfileKhronosExtensions = 0x6F000000, 157011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DIVXProfileVendorStartUnused = 0x7F000000, 157111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DIVXProfileMax = 0x7FFFFFFF 157211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_DIVXPROFILETYPE; 157311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 157411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 157511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * DivX Video Params 157611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 157711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * STRUCT MEMBERS: 157811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nSize : Size of the structure in bytes 157911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nVersion : OMX specification version information 158011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nPortIndex : Port that this structure applies to 158111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * eFormat : Version of DivX stream / data 158211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * eProfile : Profile of DivX stream / data 158311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 158411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_PARAM_DIVXTYPE { 158511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 158611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 158711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 158811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DIVXFORMATTYPE eFormat; 158911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DIVXPROFILETYPE eProfile; 159011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_PARAM_DIVXTYPE; 159111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 159211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 159311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 159411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 159511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * VP Versions 159611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 159711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VIDEO_VPFORMATTYPE { 159811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPFormatUnused = 0x01, /**< Format unused or unknown */ 159911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPFormat6 = 0x02, /**< VP6 Video Format */ 160011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPFormat7 = 0x04, /**< VP7 Video Format */ 160111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPFormat8 = 0x08, /**< VP8 Video Format */ 160211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPFormat9 = 0x10, /**< VP9 Video Format */ 160311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPFormatKhronosExtensions = 0x6F000000, 160411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPFormatVendorStartUnused = 0x7F000000, 160511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPFormatMax = 0x7FFFFFFF 160611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_VPFORMATTYPE; 160711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 160811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 160911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * VP profile types, each profile indicates support for various 161011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * encoding tools. 161111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 161211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VIDEO_VPPROFILETYPE { 161311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPProfileSimple = 0x01, /**< Simple Profile, applies to VP6 only */ 161411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPProfileAdvanced = 0x02, /**< Advanced Profile, applies to VP6 only */ 161511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPProfileVersion0 = 0x04, /**< Version 0, applies to VP7 and VP8 */ 161611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPProfileVersion1 = 0x08, /**< Version 1, applies to VP7 and VP8 */ 161711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPProfileVersion2 = 0x10, /**< Version 2, applies to VP8 only */ 161811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPProfileVersion3 = 0x20, /**< Version 3, applies to VP8 only */ 161911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPProfileKhronosExtensions = 0x6F000000, 162011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPProfileVendorStartUnused = 0x7F000000, 162111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPProfileMax = 0x7FFFFFFF 162211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_VPPROFILETYPE; 162311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 162411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 162511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * VP Video Params 162611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 162711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * STRUCT MEMBERS: 162811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nSize : Size of the structure in bytes 162911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nVersion : OMX specification version information 163011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nPortIndex : Port that this structure applies to 163111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * eFormat : Format of VP stream / data 163211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * eProfile : Profile or Version of VP stream / data 163311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 163411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_PARAM_VPTYPE { 163511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 163611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 163711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 163811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPFORMATTYPE eFormat; 163911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_VPPROFILETYPE eProfile; 164011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_PARAM_VPTYPE; 164111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 164211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 164311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Spark Versions 164411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 164511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VIDEO_SPARKFORMATTYPE { 164611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_SparkFormatUnused = 0x01, /**< Format unused or unknown */ 164711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_SparkFormat0 = 0x02, /**< Video Format Version 0 */ 164811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_SparkFormat1 = 0x04, /**< Video Format Version 1 */ 164911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_SparkFormatKhronosExtensions = 0x6F000000, 165011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_SparkFormatVendorStartUnused = 0x7F000000, 165111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_SparkFormatMax = 0x7FFFFFFF 165211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_SPARKFORMATTYPE; 165311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 165411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 165511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Spark Video Params 165611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 165711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * STRUCT MEMBERS: 165811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nSize : Size of the structure in bytes 165911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nVersion : OMX specification version information 166011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nPortIndex : Port that this structure applies to 166111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * eFormat : Version of Spark stream / data 166211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 166311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_PARAM_SPARKTYPE { 166411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 166511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 166611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 166711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_SPARKFORMATTYPE eFormat; 166811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_PARAM_SPARKTYPE; 166911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 167011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 167111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_QUERY_DECODER_INSTANCES { 167211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 167311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 167411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 167511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nNumOfInstances; 167611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_QUERY_DECODER_INSTANCES; 167711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 167811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_ENABLETYPE { 167911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 168011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 168111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bEnable; 168211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_ENABLETYPE; 168311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 1684fa202b9b18f17f7835fd602db5fff530e61112b4Thierry Strudeltypedef struct QOMX_DISABLETYPE { 1685fa202b9b18f17f7835fd602db5fff530e61112b4Thierry Strudel OMX_U32 nSize; 1686fa202b9b18f17f7835fd602db5fff530e61112b4Thierry Strudel OMX_VERSIONTYPE nVersion; 1687fa202b9b18f17f7835fd602db5fff530e61112b4Thierry Strudel OMX_BOOL bDisable; 1688fa202b9b18f17f7835fd602db5fff530e61112b4Thierry Strudel} QOMX_DISABLETYPE; 1689fa202b9b18f17f7835fd602db5fff530e61112b4Thierry Strudel 169011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VIDEO_EVENTS { 169111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_EventIndexsettingChanged = OMX_EventVendorStartUnused 169211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_EVENTS; 169311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 169411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VIDEO_PICTURE_ORDER { 169511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DISPLAY_ORDER = 0x1, 169611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_DECODE_ORDER = 0x2 169711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_PICTURE_ORDER; 169811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 169911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_DECODER_PICTURE_ORDER { 170011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 170111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 170211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 170311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_PICTURE_ORDER eOutputPictureOrder; 170411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_DECODER_PICTURE_ORDER; 170511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 170611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_INDEXEXTRADATATYPE { 170711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 170811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 170911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 171011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bEnabled; 171111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_INDEXTYPE nIndex; 171211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_INDEXEXTRADATATYPE; 171311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 171411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_INDEXTIMESTAMPREORDER { 171511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 171611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 171711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 171811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bEnable; 171911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_INDEXTIMESTAMPREORDER; 172011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 172111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_INDEXDOWNSCALAR { 172211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 172311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 172411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 172511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bEnable; 172611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_INDEXDOWNSCALAR; 172711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 172811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_CUSTOM_BUFFERSIZE { 172911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 173011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 173111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 173211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nBufferSize; 173311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_CUSTOM_BUFFERSIZE; 173411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 173511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_PARAM_VIDEO_SYNCFRAMEDECODINGMODE "OMX.QCOM.index.param.video.SyncFrameDecodingMode" 173611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_PARAM_INDEXEXTRADATA "OMX.QCOM.index.param.IndexExtraData" 173711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_PARAM_VIDEO_SLICEDELIVERYMODE "OMX.QCOM.index.param.SliceDeliveryMode" 173811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_PARAM_VIDEO_FRAMEPACKING_EXTRADATA "OMX.QCOM.index.param.video.FramePackingExtradata" 173911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_PARAM_VIDEO_QP_EXTRADATA "OMX.QCOM.index.param.video.QPExtradata" 174011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_PARAM_VIDEO_INPUTBITSINFO_EXTRADATA "OMX.QCOM.index.param.video.InputBitsInfoExtradata" 174111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_PARAM_VIDEO_EXTNUSER_EXTRADATA "OMX.QCOM.index.param.video.ExtnUserExtraData" 174211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_CONFIG_VIDEO_FRAMEPACKING_INFO "OMX.QCOM.index.config.video.FramePackingInfo" 174311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_PARAM_VIDEO_MPEG2SEQDISP_EXTRADATA "OMX.QCOM.index.param.video.Mpeg2SeqDispExtraData" 174411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 174511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_PARAM_VIDEO_HIERSTRUCTURE "OMX.QCOM.index.param.video.HierStructure" 174611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_PARAM_VIDEO_LTRCOUNT "OMX.QCOM.index.param.video.LTRCount" 174711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_PARAM_VIDEO_LTRPERIOD "OMX.QCOM.index.param.video.LTRPeriod" 174811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_CONFIG_VIDEO_LTRUSE "OMX.QCOM.index.config.video.LTRUse" 174911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_CONFIG_VIDEO_LTRMARK "OMX.QCOM.index.config.video.LTRMark" 175011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_CONFIG_VIDEO_HIER_P_LAYERS "OMX.QCOM.index.config.video.hierplayers" 175111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_CONFIG_RECTANGLE_TYPE "OMX.QCOM.index.config.video.rectangle" 175211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_PARAM_VIDEO_BASE_LAYER_ID "OMX.QCOM.index.param.video.baselayerid" 175311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_CONFIG_VIDEO_QP "OMX.QCOM.index.config.video.qp" 175411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_PARAM_VIDEO_SAR "OMX.QCOM.index.param.video.sar" 175511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QTI_INDEX_PARAM_VIDEO_LOW_LATENCY "OMX.QTI.index.param.video.LowLatency" 175611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 175711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_PARAM_VIDEO_PASSINPUTBUFFERFD "OMX.QCOM.index.param.video.PassInputBufferFd" 175811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QTI_INDEX_PARAM_VIDEO_PREFER_ADAPTIVE_PLAYBACK "OMX.QTI.index.param.video.PreferAdaptivePlayback" 175911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QTI_INDEX_CONFIG_VIDEO_SETTIMEDATA "OMX.QTI.index.config.video.settimedata" 176011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QTI_INDEX_PARAM_VIDEO_FORCE_COMPRESSED_FOR_DPB "OMX.QTI.index.param.video.ForceCompressedForDPB" 176111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QTI_INDEX_PARAM_VIDEO_ENABLE_ROIINFO "OMX.QTI.index.param.enableRoiInfo" 176211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QTI_INDEX_CONFIG_VIDEO_ROIINFO "OMX.QTI.index.config.RoiInfo" 176311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QTI_INDEX_CONFIG_VIDEO_BLURINFO "OMX.QTI.index.config.BlurInfo" 17642601808ee2992a94c325d05e4065aba60b01840bThierry Strudel#define OMX_QTI_INDEX_PARAM_VIDEO_CLIENT_EXTRADATA "OMX.QTI.index.param.client.extradata" 1765fbc0b4aac30717e1ea0293751b1ac08fcb6fd0b3Thierry Strudel#define OMX_QTI_INDEX_CONFIG_COLOR_ASPECTS "OMX.google.android.index.describeColorAspects" 176611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 176711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum { 176811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_FRAME_PACKING_CHECKERBOARD = 0, 176911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_FRAME_PACKING_COLUMN_INTERLEAVE = 1, 177011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_FRAME_PACKING_ROW_INTERLEAVE = 2, 177111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_FRAME_PACKING_SIDE_BY_SIDE = 3, 177211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_FRAME_PACKING_TOP_BOTTOM = 4, 177311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_FRAME_PACKING_TEMPORAL = 5, 177411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_FRAME_PACKING_ARRANGEMENT; 177511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 177611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum { 177711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_CONTENT_UNSPECIFIED = 0, 177811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_CONTENT_LR_VIEW = 1, 177911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_CONTENT_RL_VIEW = 2, 178011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_CONTENT_INTERPRETATION; 178111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 178211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 178311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * Specifies the extended picture types. These values should be 178411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OR'd along with the types defined in OMX_VIDEO_PICTURETYPE to 178511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * signal all pictures types which are allowed. 178611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 178711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * ENUMS: 178811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * H.264 Specific Picture Types: IDR 178911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 179011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VIDEO_PICTURETYPE { 179111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_PictureTypeIDR = OMX_VIDEO_PictureTypeVendorStartUnused + 0x1000 179211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_PICTURETYPE; 179311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 179411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_CONFIG_ACTIVE_REGION_DETECTION "OMX.QCOM.index.config.activeregiondetection" 179511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_CONFIG_ACTIVE_REGION_DETECTION_STATUS "OMX.QCOM.index.config.activeregiondetectionstatus" 179611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_CONFIG_SCALING_MODE "OMX.QCOM.index.config.scalingmode" 179711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_CONFIG_NOISEREDUCTION "OMX.QCOM.index.config.noisereduction" 179811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_CONFIG_IMAGEENHANCEMENT "OMX.QCOM.index.config.imageenhancement" 179911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_QCOM_INDEX_PARAM_HELDBUFFERCOUNT "OMX.QCOM.index.param.HeldBufferCount" /**< reference: QOMX_HELDBUFFERCOUNTTYPE */ 180011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 180111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 180211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_RECTTYPE { 180311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 180411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 180511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_S32 nLeft; 180611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_S32 nTop; 180711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nWidth; 180811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nHeight; 180911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_RECTTYPE; 181011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 181111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_ACTIVEREGIONDETECTIONTYPE { 181211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 181311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 181411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 181511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bEnable; 181611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_RECTTYPE sROI; 181711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nNumExclusionRegions; 181811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_RECTTYPE sExclusionRegions[1]; 181911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_ACTIVEREGIONDETECTIONTYPE; 182011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 182111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_ACTIVEREGIONDETECTION_STATUSTYPE { 182211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 182311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 182411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 182511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bDetected; 182611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_RECTTYPE sDetectedRegion; 182711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_ACTIVEREGIONDETECTION_STATUSTYPE; 182811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 182911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_SCALE_MODETYPE { 183011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_SCALE_MODE_Normal, 183111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_SCALE_MODE_Anamorphic, 183211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_SCALE_MODE_Max = 0x7FFFFFFF 183311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_SCALE_MODETYPE; 183411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 183511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_SCALINGMODETYPE { 183611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 183711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 183811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_SCALE_MODETYPE eScaleMode; 183911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_SCALINGMODETYPE; 184011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 184111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_NOISEREDUCTIONTYPE { 184211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 184311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 184411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 184511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bEnable; 184611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bAutoMode; 184711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_S32 nNoiseReduction; 184811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_NOISEREDUCTIONTYPE; 184911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 185011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_IMAGEENHANCEMENTTYPE { 185111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 185211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 185311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 185411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bEnable; 185511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bAutoMode; 185611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_S32 nImageEnhancement; 185711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_IMAGEENHANCEMENTTYPE; 185811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 185911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/* 186011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * these are part of OMX1.2 but JB MR2 branch doesn't have them defined 186111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_IndexParamInterlaceFormat 186211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * OMX_INTERLACEFORMATTYPE 186311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 186411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#ifndef OMX_IndexParamInterlaceFormat 186511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define OMX_IndexParamInterlaceFormat (0x7FF00000) 186611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_INTERLACEFORMATTYPE { 186711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 186811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 186911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 187011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nFormat; 187111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_TICKS nTimeStamp; 187211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_INTERLACEFORMATTYPE; 187311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#endif 187411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 187511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/** 187611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * This structure is used to indicate the maximum number of buffers 187711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * that a port will hold during data flow. 187811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * 187911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * STRUCT MEMBERS: 188011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nSize : Size of the structure in bytes 188111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nVersion : OMX specification version info 188211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nPortIndex : Port that this structure applies to 188311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel * nHeldBufferCount : Read-only, maximum number of buffers that will be held 188411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel */ 188511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_HELDBUFFERCOUNTTYPE { 188611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 188711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 188811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 188911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nHeldBufferCount; 189011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_HELDBUFFERCOUNTTYPE; 189111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 189211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VIDEO_HIERARCHICALCODINGTYPE { 189311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_HIERARCHICALCODING_P = 0x01, 189411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_HIERARCHICALCODING_B = 0x02, 189511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_HIERARCHICALCODINGTYPE; 189611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 189711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_HIERARCHICALLAYERS { 189811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 189911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 190011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 190111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nNumLayers; 190211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VIDEO_HIERARCHICALCODINGTYPE eHierarchicalCodingType; 190311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_HIERARCHICALLAYERS; 190411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 190511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_H264ENTROPYCODINGTYPE { 190611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 190711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 190811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL bCabac; 190911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nCabacInitIdc; 191011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_H264ENTROPYCODINGTYPE; 191111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 1912a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudeltypedef enum QOMX_VIDEO_IFRAMESIZE_TYPE { 1913a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel QOMX_IFRAMESIZE_DEFAULT, 1914a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel QOMX_IFRAMESIZE_MEDIUM, 1915a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel QOMX_IFRAMESIZE_HUGE, 1916a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel QOMX_IFRAMESIZE_UNLIMITED, 1917a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel} QOMX_VIDEO_IFRAMESIZE_TYPE; 1918a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel 1919a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudeltypedef struct QOMX_VIDEO_IFRAMESIZE { 1920a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel OMX_U32 nSize; 1921a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel OMX_VERSIONTYPE nVersion; 1922a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel QOMX_VIDEO_IFRAMESIZE_TYPE eType; 1923a5bf317aa35f90b6fcc533882760f86342b79547Thierry Strudel} QOMX_VIDEO_IFRAMESIZE; 192411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 192511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/* VIDEO POSTPROCESSING CTRLS AND ENUMS */ 192611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/* MUST KEEP SAME AS IN vpp.h */ 192711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define QOMX_VPP_HQV_CUSTOMPAYLOAD_SZ 256 192811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#define VPP_HQV_CONTROL_GLOBAL_START (VPP_HQV_CONTROL_CUST + 1) 192911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 193011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VPP_HQV_MODE { 193111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_MODE_OFF, 193211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_MODE_AUTO, 193311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_MODE_MANUAL, 193411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_MODE_MAX 193511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VPP_HQV_MODE; 193611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 193711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VPP_HQVCONTROLTYPE { 193811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_CONTROL_CADE = 0x1, 193911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_CONTROL_DI = 0x02, 194011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_CONTROL_CNR = 0x04, 194111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_CONTROL_AIE = 0x05, 194211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_CONTROL_FRC = 0x06, 194311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_CONTROL_CUST = 0x07, 194411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_CONTROL_GLOBAL_DEMO = VPP_HQV_CONTROL_GLOBAL_START, 194511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_CONTROL_MAX, 194611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VPP_HQVCONTROLTYPE; 194711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 194811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VPP_HQV_DI_MODE { 194911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_DI_MODE_OFF, 195011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_DI_MODE_VIDEO_1F, 195111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_DI_MODE_VIDEO_3F, 195211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_DI_MODE_AUTO, 195311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_DI_MODE_MAX, 195411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VPP_HQV_DI_MODE; 195511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 195611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VPP_HQV_HUE_MODE { 195711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_HUE_MODE_OFF, 195811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_HUE_MODE_ON, 195911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_HUE_MODE_MAX, 196011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VPP_HQV_HUE_MODE; 196111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 196211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VPP_SPLIT_DIRECTION { 196311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_SPLIT_LEFT_TO_RIGHT, 196411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_SPLIT_RIGHT_TO_LEFT, 196511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_SPLIT_TOP_TO_BOTTOM, 196611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_SPLIT_BOTTOM_TO_TOP, 196711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_SPLIT_MAX, 196811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VPP_SPLIT_DIRECTION; 196911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 197011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum QOMX_VPP_HQV_FRC_MODE { 197111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_FRC_MODE_OFF, 197211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_FRC_MODE_LOW, 197311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_FRC_MODE_MED, 197411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_FRC_MODE_HIGH, 197511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel VPP_HQV_FRC_MODE_MAX, 197611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VPP_HQV_FRC_MODE; 197711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 197811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 197911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VPP_HQVCTRL_CADE { 198011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VPP_HQV_MODE mode; 198111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 level; 198211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_S32 contrast; 198311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_S32 saturation; 198411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VPP_HQVCTRL_CADE; 198511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 198611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VPP_HQVCTRL_DI { 198711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VPP_HQV_DI_MODE mode; 198811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VPP_HQVCTRL_DI; 198911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 199011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VPP_HQVCTRL_CNR { 199111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VPP_HQV_MODE mode; 199211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 level; 199311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VPP_HQVCTRL_CNR; 199411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 199511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VPP_HQVCTRL_AIE { 199611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VPP_HQV_MODE mode; 199711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VPP_HQV_HUE_MODE hue_mode; 199811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 cade_level; 199911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 ltm_level; 200011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VPP_HQVCTRL_AIE; 200111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 200211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VPP_HQVCTRL_CUSTOM { 200311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 id; 200411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 len; 200511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U8 data[QOMX_VPP_HQV_CUSTOMPAYLOAD_SZ]; 200611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VPP_HQVCTRL_CUSTOM; 200711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 200811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VPP_HQVCTRL_GLOBAL_DEMO { 200911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 process_percent; 201011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VPP_SPLIT_DIRECTION process_direction; 201111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VPP_HQVCTRL_GLOBAL_DEMO; 201211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 201311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VPP_HQVCTRL_FRC { 201411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VPP_HQV_FRC_MODE mode; 201511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VPP_HQVCTRL_FRC; 201611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 201711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/* VIDEO POSTPROCESSING OMX CTRLS */ 201811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VPP_HQVCONTROL { 201911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 202011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 202111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VPP_HQV_MODE mode; 202211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VPP_HQVCONTROLTYPE ctrl_type; 202311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel union { 202411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VPP_HQVCTRL_CADE cade; 202511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VPP_HQVCTRL_DI di; 202611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VPP_HQVCTRL_CNR cnr; 202711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VPP_HQVCTRL_AIE aie; 202811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VPP_HQVCTRL_CUSTOM custom; 202911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VPP_HQVCTRL_GLOBAL_DEMO global_demo; 203011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_VPP_HQVCTRL_FRC frc; 203111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel }; 203211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VPP_HQVCONTROL; 203311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 203411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel/* STRUCTURE TO TURN VPP ON */ 203511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VPP_ENABLE { 203611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 203711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 203811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_BOOL enable_vpp; 203911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VPP_ENABLE; 204011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 204111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef enum OMX_QOMX_VIDEO_MBISTATISTICSTYPE { 204211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_MBI_STATISTICS_MODE_DEFAULT = 0, 204311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_MBI_STATISTICS_MODE_1 = 0x01, 204411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel QOMX_MBI_STATISTICS_MODE_2 = 0x02, 204511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QOMX_VIDEO_MBISTATISTICSTYPE; 204611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 204711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct OMX_QOMX_VIDEO_MBI_STATISTICS { 204811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 204911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 205011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 205111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_QOMX_VIDEO_MBISTATISTICSTYPE eMBIStatisticsType; 205211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} OMX_QOMX_VIDEO_MBI_STATISTICS; 205311e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 205411e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudeltypedef struct QOMX_VIDEO_BATCHSIZETYPE { 205511e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nSize; 205611e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_VERSIONTYPE nVersion; 205711e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nPortIndex; 205811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel OMX_U32 nBatchSize; 205911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} QOMX_VIDEO_BATCHSIZETYPE; 206011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 20612601808ee2992a94c325d05e4065aba60b01840bThierry Strudeltypedef struct QOMX_VIDEO_CLIENT_EXTRADATA { 20622601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_U32 nSize; 20632601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_VERSIONTYPE nVersion; 20642601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_U32 nPortIndex; 20652601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_U32 nFd; 20662601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_U32 nExtradataAllocSize; 20672601808ee2992a94c325d05e4065aba60b01840bThierry Strudel OMX_U32 nExtradataSize; 20682601808ee2992a94c325d05e4065aba60b01840bThierry Strudel} QOMX_VIDEO_CLIENT_EXTRADATATYPE; 20692601808ee2992a94c325d05e4065aba60b01840bThierry Strudel 2070b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel#if defined(__cplusplus) && defined(USE_CAMERA_METABUFFER_UTILS) 2071b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel 20722e1e93b75bc282dafdff24eb3b473af177e3e35bThierry Strudel#define CAM_META_BUFFER_EVENT_PERF 0x01 20732e1e93b75bc282dafdff24eb3b473af177e3e35bThierry Strudel 2074b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel/** 2075b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel * Camera1 meta-buffer payload create/access/modify utility 2076b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel */ 2077b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudelstruct MetaBufferUtil { 2078b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel 2079b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel enum { 2080b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel INT_OFFSET = 1, 2081b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel INT_SIZE = 2, 2082b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel INT_USAGE = 3, 2083b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel INT_TIMESTAMP = 4, 2084b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel INT_COLORFORMAT = 5, 2085b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel INT_BUFINDEX = 6, 20862e1e93b75bc282dafdff24eb3b473af177e3e35bThierry Strudel INT_BUFEVENT = 7, 20872e1e93b75bc282dafdff24eb3b473af177e3e35bThierry Strudel INT_TOTAL = INT_BUFEVENT, 2088b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel }; 2089b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel 2090b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel static int getNumFdsForBatch(int batchSize) { 2091b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel return batchSize; 2092b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel } 2093b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel static int getNumIntsForBatch(int batchSize) { 2094b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel return batchSize * INT_TOTAL; 2095b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel } 2096b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel static int getBatchSize(const native_handle_t *hnd) { 2097b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel return MetaBufferUtil::isHandleSane(hnd) ? hnd->numFds : -1; 2098b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel } 2099b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel 2100b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel /* getters */ 2101b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel /* return a fd at index or -1 if index is invalid */ 2102b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel static int getFdAt(const native_handle_t *hnd, int index) { 2103b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel return (MetaBufferUtil::isHandleSane(hnd) && (index < hnd->numFds)) ? hnd->data[index] : -1; 2104b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel } 2105b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel /* return a int of type at index or -1 if index or type is invalid */ 2106b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel static int getIntAt(const native_handle_t *hnd, int index, int type) { 2107b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel int idx = MetaBufferUtil::getIntIndex(hnd, index, type); 2108b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel return idx < 0 ? -1 : hnd->data[idx]; 2109b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel } 2110b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel 2111b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel /* setters */ 2112b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel /* replace the fd at index and return 0. Return -1 if index is invalid */ 2113b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel static int setFdAt(native_handle_t *hnd, int index, int fd) { 2114b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel return (MetaBufferUtil::isHandleSane(hnd) && (index < hnd->numFds)) ? hnd->data[index] = fd, 0 : -1; 2115b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel } 2116b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel /* replace an int of type at index and return 0. Return -1 if index or type is invalid */ 2117b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel static int setIntAt(native_handle_t *hnd, int index, int type, int value) { 2118b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel int idx = MetaBufferUtil::getIntIndex(hnd, index, type); 2119b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel return idx < 0 ? -1 : hnd->data[idx] = value, 0; 2120b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel } 2121b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel 2122b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudelprivate: 2123b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel static bool isHandleSane(const native_handle_t *hnd) { 2124b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel return hnd && hnd->version == sizeof(native_handle_t); 2125b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel } 2126b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel 2127b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel static int getIntIndex(const native_handle_t *hnd, int index, int type) { 2128b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel int idx = index + type * MetaBufferUtil::getBatchSize(hnd); 2129b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel return (MetaBufferUtil::isHandleSane(hnd) && (idx < (hnd->numInts + hnd->numFds))) ? idx : -1; 2130b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel } 2131b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel}; 2132b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel 2133b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel#endif // __cplusplus 2134b50ee0d49e33884a5f998649944fff0a8e27cda6Thierry Strudel 2135af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudeltypedef enum QOMX_VIDEO_DITHERTYPE { 2136af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudel QOMX_DITHER_DISABLE = 0, 2137af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudel QOMX_DITHER_COLORSPACE_EXCEPT_BT2020 = 0x01, 2138af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudel QOMX_DITHER_ALL_COLORSPACE = 0x02, 2139af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudel} QOMX_VIDEO_DITHERTYPE; 2140af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudel 2141af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudeltypedef struct QOMX_VIDEO_DITHER_CONTROL { 2142af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudel OMX_U32 nSize; 2143af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudel OMX_VERSIONTYPE nVersion; 2144af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudel OMX_U32 nPortIndex; 2145af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudel QOMX_VIDEO_DITHERTYPE eDitherType; 2146af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudel} QOMX_VIDEO_DITHER_CONTROL; 2147af7f1cd76eaafee0d9838e6c40af9c494e884e36Thierry Strudel 214811e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#ifdef __cplusplus 214911e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel} 215011e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#endif /* __cplusplus */ 215111e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel 215211e4d07ddf6a35f55d6ad06edb850b015218c7acThierry Strudel#endif /* __OMX_QCOM_EXTENSIONS_H__ */ 2153