|
|
|
|
/*--------------------------------------------------------------------------
|
|
|
|
|
Copyright (c) 2009-2015, The Linux Foundation. All rights reserved.
|
|
|
|
|
|
|
|
|
|
Redistribution and use in source and binary forms, with or without
|
|
|
|
|
modification, are permitted provided that the following conditions are met:
|
|
|
|
|
* Redistributions of source code must retain the above copyright
|
|
|
|
|
notice, this list of conditions and the following disclaimer.
|
|
|
|
|
* Redistributions in binary form must reproduce the above copyright
|
|
|
|
|
notice, this list of conditions and the following disclaimer in the
|
|
|
|
|
documentation and/or other materials provided with the distribution.
|
|
|
|
|
* Neither the name of The Linux Foundation nor
|
|
|
|
|
the names of its contributors may be used to endorse or promote
|
|
|
|
|
products derived from this software without specific prior written
|
|
|
|
|
permission.
|
|
|
|
|
|
|
|
|
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
|
|
|
|
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
|
|
|
|
IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
|
|
|
NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
|
|
|
|
|
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
|
|
|
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
|
|
|
|
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
|
|
|
|
|
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
|
|
|
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
|
|
|
|
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
|
|
|
|
|
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
|
|
|
--------------------------------------------------------------------------*/
|
|
|
|
|
#ifndef __OMX_QCOM_EXTENSIONS_H__
|
|
|
|
|
#define __OMX_QCOM_EXTENSIONS_H__
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
extern "C" {
|
|
|
|
|
#endif /* __cplusplus */
|
|
|
|
|
|
|
|
|
|
/*============================================================================
|
|
|
|
|
*//** @file OMX_QCOMExtns.h
|
|
|
|
|
This header contains constants and type definitions that specify the
|
|
|
|
|
extensions added to the OpenMAX Vendor specific APIs.
|
|
|
|
|
|
|
|
|
|
*//*========================================================================*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
// Include Files
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
#include "OMX_Core.h"
|
|
|
|
|
#include "OMX_Video.h"
|
|
|
|
|
|
|
|
|
|
#define OMX_VIDEO_MAX_HP_LAYERS 6
|
|
|
|
|
/**
|
|
|
|
|
* This extension is used to register mapping of a virtual
|
|
|
|
|
* address to a physical address. This extension is a parameter
|
|
|
|
|
* which can be set using the OMX_SetParameter macro. The data
|
|
|
|
|
* pointer corresponding to this extension is
|
|
|
|
|
* OMX_QCOM_MemMapEntry. This parameter is a 'write only'
|
|
|
|
|
* parameter (Current value cannot be queried using
|
|
|
|
|
* OMX_GetParameter macro).
|
|
|
|
|
*/
|
|
|
|
|
#define OMX_QCOM_EXTN_REGISTER_MMAP "OMX.QCOM.index.param.register_mmap"
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the data pointer corresponding to
|
|
|
|
|
* the OMX_QCOM_MMAP_REGISTER_EXTN extension. This parameter
|
|
|
|
|
* must be set only 'after' populating a port with a buffer
|
|
|
|
|
* using OMX_UseBuffer, wherein the data pointer of the buffer
|
|
|
|
|
* corresponds to the virtual address as specified in this
|
|
|
|
|
* structure.
|
|
|
|
|
*/
|
|
|
|
|
struct OMX_QCOM_PARAM_MEMMAPENTRYTYPE
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion; /**< OMX specification version information */
|
|
|
|
|
OMX_U32 nPortIndex; /**< Port number the structure applies to */
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The virtual address of memory block
|
|
|
|
|
*/
|
|
|
|
|
OMX_U64 nVirtualAddress;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* The physical address corresponding to the virtual address. The physical
|
|
|
|
|
* address is contiguous for the entire valid range of the virtual
|
|
|
|
|
* address.
|
|
|
|
|
*/
|
|
|
|
|
OMX_U64 nPhysicalAddress;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
#define QOMX_VIDEO_IntraRefreshRandom (OMX_VIDEO_IntraRefreshVendorStartUnused + 0)
|
|
|
|
|
|
|
|
|
|
/* This error event is used for H.264 long-term reference (LTR) encoding.
|
|
|
|
|
* When IL client specifies an LTR frame with its identifier via
|
|
|
|
|
* OMX_QCOM_INDEX_CONFIG_VIDEO_LTRUSE to the encoder, if the specified
|
|
|
|
|
* LTR frame can not be located by the encoder in its LTR list, the encoder
|
|
|
|
|
* issues this error event to IL client to notify the failure of LTRUse config.
|
|
|
|
|
*/
|
|
|
|
|
#define QOMX_ErrorLTRUseFailed (OMX_ErrorVendorStartUnused + 1)
|
|
|
|
|
|
|
|
|
|
#define QOMX_VIDEO_BUFFERFLAG_BFRAME 0x00100000
|
|
|
|
|
|
|
|
|
|
#define QOMX_VIDEO_BUFFERFLAG_EOSEQ 0x00200000
|
|
|
|
|
|
|
|
|
|
#define QOMX_VIDEO_BUFFERFLAG_MBAFF 0x00400000
|
|
|
|
|
|
|
|
|
|
#define QOMX_VIDEO_BUFFERFLAG_CANCEL 0x00800000
|
|
|
|
|
|
|
|
|
|
#define OMX_QCOM_PORTDEFN_EXTN "OMX.QCOM.index.param.portdefn"
|
|
|
|
|
/* Allowed APIs on the above Index: OMX_GetParameter() and OMX_SetParameter() */
|
|
|
|
|
|
|
|
|
|
typedef enum OMX_QCOMMemoryRegion
|
|
|
|
|
{
|
|
|
|
|
OMX_QCOM_MemRegionInvalid,
|
|
|
|
|
OMX_QCOM_MemRegionEBI1,
|
|
|
|
|
OMX_QCOM_MemRegionSMI,
|
|
|
|
|
OMX_QCOM_MemRegionMax = 0X7FFFFFFF
|
|
|
|
|
} OMX_QCOMMemoryRegion;
|
|
|
|
|
|
|
|
|
|
typedef enum OMX_QCOMCacheAttr
|
|
|
|
|
{
|
|
|
|
|
OMX_QCOM_CacheAttrNone,
|
|
|
|
|
OMX_QCOM_CacheAttrWriteBack,
|
|
|
|
|
OMX_QCOM_CacheAttrWriteThrough,
|
|
|
|
|
OMX_QCOM_CacheAttrMAX = 0X7FFFFFFF
|
|
|
|
|
} OMX_QCOMCacheAttr;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOMRectangle
|
|
|
|
|
{
|
|
|
|
|
OMX_S32 x;
|
|
|
|
|
OMX_S32 y;
|
|
|
|
|
OMX_S32 dx;
|
|
|
|
|
OMX_S32 dy;
|
|
|
|
|
} OMX_QCOMRectangle;
|
|
|
|
|
|
|
|
|
|
/** OMX_QCOMFramePackingFormat
|
|
|
|
|
* Input or output buffer format
|
|
|
|
|
*/
|
|
|
|
|
typedef enum OMX_QCOMFramePackingFormat
|
|
|
|
|
{
|
|
|
|
|
/* 0 - unspecified
|
|
|
|
|
*/
|
|
|
|
|
OMX_QCOM_FramePacking_Unspecified,
|
|
|
|
|
|
|
|
|
|
/* 1 - Partial frames may be present OMX IL 1.1.1 Figure 2-10:
|
|
|
|
|
* Case 1??Each Buffer Filled In Whole or In Part
|
|
|
|
|
*/
|
|
|
|
|
OMX_QCOM_FramePacking_Arbitrary,
|
|
|
|
|
|
|
|
|
|
/* 2 - Multiple complete frames per buffer (integer number)
|
|
|
|
|
* OMX IL 1.1.1 Figure 2-11: Case 2<EFBFBD>Each Buffer Filled with
|
|
|
|
|
* Only Complete Frames of Data
|
|
|
|
|
*/
|
|
|
|
|
OMX_QCOM_FramePacking_CompleteFrames,
|
|
|
|
|
|
|
|
|
|
/* 3 - Only one complete frame per buffer, no partial frame
|
|
|
|
|
* OMX IL 1.1.1 Figure 2-12: Case 3<EFBFBD>Each Buffer Filled with
|
|
|
|
|
* Only One Frame of Compressed Data. Usually at least one
|
|
|
|
|
* complete unit of data will be delivered in a buffer for
|
|
|
|
|
* uncompressed data formats.
|
|
|
|
|
*/
|
|
|
|
|
OMX_QCOM_FramePacking_OnlyOneCompleteFrame,
|
|
|
|
|
|
|
|
|
|
/* 4 - Only one complete subframe per buffer, no partial subframe
|
|
|
|
|
* Example: In H264, one complete NAL per buffer, where one frame
|
|
|
|
|
* can contatin multiple NAL
|
|
|
|
|
*/
|
|
|
|
|
OMX_QCOM_FramePacking_OnlyOneCompleteSubFrame,
|
|
|
|
|
|
|
|
|
|
OMX_QCOM_FramePacking_MAX = 0X7FFFFFFF
|
|
|
|
|
} OMX_QCOMFramePackingFormat;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_PARAM_PORTDEFINITIONTYPE {
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion;/** OMX specification version information */
|
|
|
|
|
OMX_U32 nPortIndex; /** Portindex which is extended by this structure */
|
|
|
|
|
|
|
|
|
|
/** Platform specific memory region EBI1, SMI, etc.,*/
|
|
|
|
|
OMX_QCOMMemoryRegion nMemRegion;
|
|
|
|
|
|
|
|
|
|
OMX_QCOMCacheAttr nCacheAttr; /** Cache attributes */
|
|
|
|
|
|
|
|
|
|
/** Input or output buffer format */
|
|
|
|
|
OMX_U32 nFramePackingFormat;
|
|
|
|
|
|
|
|
|
|
} OMX_QCOM_PARAM_PORTDEFINITIONTYPE;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_VIDEO_PARAM_QPRANGETYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_U32 minQP;
|
|
|
|
|
OMX_U32 maxQP;
|
|
|
|
|
} OMX_QCOM_VIDEO_PARAM_QPRANGETYPE;
|
|
|
|
|
|
|
|
|
|
#define OMX_QCOM_PLATFORMPVT_EXTN "OMX.QCOM.index.param.platformprivate"
|
|
|
|
|
/** Allowed APIs on the above Index: OMX_SetParameter() */
|
|
|
|
|
|
|
|
|
|
typedef enum OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE
|
|
|
|
|
{
|
|
|
|
|
/** Enum for PMEM information */
|
|
|
|
|
OMX_QCOM_PLATFORM_PRIVATE_PMEM = 0x1
|
|
|
|
|
} OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE;
|
|
|
|
|
|
|
|
|
|
/** IL client will set the following structure. A failure
|
|
|
|
|
* code will be returned if component does not support the
|
|
|
|
|
* value provided for 'type'.
|
|
|
|
|
*/
|
|
|
|
|
struct OMX_QCOM_PLATFORMPRIVATE_EXTN
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion; /** OMX spec version information */
|
|
|
|
|
OMX_U32 nPortIndex; /** Port number on which usebuffer extn is applied */
|
|
|
|
|
|
|
|
|
|
/** Type of extensions should match an entry from
|
|
|
|
|
OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE
|
|
|
|
|
*/
|
|
|
|
|
OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE type;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO
|
|
|
|
|
{
|
|
|
|
|
/** pmem file descriptor */
|
|
|
|
|
unsigned long pmem_fd;
|
|
|
|
|
/** Offset from pmem device base address */
|
|
|
|
|
OMX_U32 offset;
|
|
|
|
|
OMX_U32 size;
|
|
|
|
|
OMX_U32 mapped_size;
|
|
|
|
|
OMX_PTR buffer;
|
|
|
|
|
}OMX_QCOM_PLATFORM_PRIVATE_PMEM_INFO;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_PLATFORM_PRIVATE_ENTRY
|
|
|
|
|
{
|
|
|
|
|
/** Entry type */
|
|
|
|
|
OMX_QCOM_PLATFORM_PRIVATE_ENTRY_TYPE type;
|
|
|
|
|
|
|
|
|
|
/** Pointer to platform specific entry */
|
|
|
|
|
OMX_PTR entry;
|
|
|
|
|
}OMX_QCOM_PLATFORM_PRIVATE_ENTRY;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_PLATFORM_PRIVATE_LIST
|
|
|
|
|
{
|
|
|
|
|
/** Number of entries */
|
|
|
|
|
OMX_U32 nEntries;
|
|
|
|
|
|
|
|
|
|
/** Pointer to array of platform specific entries *
|
|
|
|
|
* Contiguous block of OMX_QCOM_PLATFORM_PRIVATE_ENTRY element
|
|
|
|
|
*/
|
|
|
|
|
OMX_QCOM_PLATFORM_PRIVATE_ENTRY* entryList;
|
|
|
|
|
}OMX_QCOM_PLATFORM_PRIVATE_LIST;
|
|
|
|
|
|
|
|
|
|
#define OMX_QCOM_FRAME_PACKING_FORMAT "OMX.QCOM.index.param.framepackfmt"
|
|
|
|
|
/* Allowed API call: OMX_GetParameter() */
|
|
|
|
|
/* IL client can use this index to rerieve the list of frame formats *
|
|
|
|
|
* supported by the component */
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_FRAME_PACKINGFORMAT_TYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_U32 nIndex;
|
|
|
|
|
OMX_QCOMFramePackingFormat eframePackingFormat;
|
|
|
|
|
} OMX_QCOM_FRAME_PACKINGFORMAT_TYPE;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Following is the enum for color formats supported on Qualcomm
|
|
|
|
|
* MSMs YVU420SemiPlanar color format is not defined in OpenMAX
|
|
|
|
|
* 1.1.1 and prior versions of OpenMAX specification.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
enum OMX_QCOM_COLOR_FORMATTYPE
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
/** YVU420SemiPlanar: YVU planar format, organized with a first
|
|
|
|
|
* plane containing Y pixels, and a second plane containing
|
|
|
|
|
* interleaved V and U pixels. V and U pixels are sub-sampled
|
|
|
|
|
* by a factor of two both horizontally and vertically.
|
|
|
|
|
*/
|
|
|
|
|
QOMX_COLOR_FormatYVU420SemiPlanar = 0x7FA30C00,
|
|
|
|
|
QOMX_COLOR_FormatYVU420PackedSemiPlanar32m4ka,
|
|
|
|
|
QOMX_COLOR_FormatYUV420PackedSemiPlanar16m2ka,
|
|
|
|
|
QOMX_COLOR_FormatYUV420PackedSemiPlanar64x32Tile2m8ka,
|
|
|
|
|
QOMX_COLOR_FORMATYUV420PackedSemiPlanar32m,
|
|
|
|
|
QOMX_COLOR_FORMATYUV420PackedSemiPlanar32mMultiView,
|
|
|
|
|
QOMX_COLOR_FORMATYUV420PackedSemiPlanar32mCompressed,
|
|
|
|
|
QOMX_COLOR_Format32bitRGBA8888,
|
|
|
|
|
QOMX_COLOR_Format32bitRGBA8888Compressed,
|
|
|
|
|
QOMX_COLOR_FormatAndroidOpaque = (OMX_COLOR_FORMATTYPE) OMX_COLOR_FormatVendorStartUnused + 0x789,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum OMX_QCOM_VIDEO_CODINGTYPE
|
|
|
|
|
{
|
|
|
|
|
/** Codecs support by qualcomm which are not listed in OMX 1.1.x
|
|
|
|
|
* spec
|
|
|
|
|
* */
|
|
|
|
|
OMX_QCOM_VIDEO_CodingVC1 = 0x7FA30C00 ,
|
|
|
|
|
OMX_QCOM_VIDEO_CodingWMV9 = 0x7FA30C01,
|
|
|
|
|
QOMX_VIDEO_CodingDivx = 0x7FA30C02, /**< Value when coding is Divx */
|
|
|
|
|
QOMX_VIDEO_CodingSpark = 0x7FA30C03, /**< Value when coding is Sorenson Spark */
|
|
|
|
|
QOMX_VIDEO_CodingVp = 0x7FA30C04,
|
|
|
|
|
QOMX_VIDEO_CodingVp8 = OMX_VIDEO_CodingVP8, /**< keeping old enum for backwards compatibility*/
|
|
|
|
|
QOMX_VIDEO_CodingHevc = OMX_VIDEO_CodingHEVC, /**< keeping old enum for backwards compatibility*/
|
|
|
|
|
QOMX_VIDEO_CodingMVC = 0x7FA30C07,
|
|
|
|
|
QOMX_VIDEO_CodingVp9 = OMX_VIDEO_CodingVP9, /**< keeping old enum for backwards compatibility*/
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
enum OMX_QCOM_EXTN_INDEXTYPE
|
|
|
|
|
{
|
|
|
|
|
/** Qcom proprietary extension index list */
|
|
|
|
|
|
|
|
|
|
/* "OMX.QCOM.index.param.register_mmap" */
|
|
|
|
|
OMX_QcomIndexRegmmap = 0x7F000000,
|
|
|
|
|
|
|
|
|
|
/* "OMX.QCOM.index.param.platformprivate" */
|
|
|
|
|
OMX_QcomIndexPlatformPvt = 0x7F000001,
|
|
|
|
|
|
|
|
|
|
/* "OMX.QCOM.index.param.portdefn" */
|
|
|
|
|
OMX_QcomIndexPortDefn = 0x7F000002,
|
|
|
|
|
|
|
|
|
|
/* "OMX.QCOM.index.param.framepackingformat" */
|
|
|
|
|
OMX_QcomIndexPortFramePackFmt = 0x7F000003,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.param.Interlaced */
|
|
|
|
|
OMX_QcomIndexParamInterlaced = 0x7F000004,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.config.interlaceformat */
|
|
|
|
|
OMX_QcomIndexConfigInterlaced = 0x7F000005,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.param.syntaxhdr" */
|
|
|
|
|
QOMX_IndexParamVideoSyntaxHdr = 0x7F000006,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.config.intraperiod" */
|
|
|
|
|
QOMX_IndexConfigVideoIntraperiod = 0x7F000007,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.config.randomIntrarefresh" */
|
|
|
|
|
QOMX_IndexConfigVideoIntraRefresh = 0x7F000008,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.config.video.TemporalSpatialTradeOff" */
|
|
|
|
|
QOMX_IndexConfigVideoTemporalSpatialTradeOff = 0x7F000009,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.param.video.EncoderMode" */
|
|
|
|
|
QOMX_IndexParamVideoEncoderMode = 0x7F00000A,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.param.Divxtype */
|
|
|
|
|
OMX_QcomIndexParamVideoDivx = 0x7F00000B,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.param.Sparktype */
|
|
|
|
|
OMX_QcomIndexParamVideoSpark = 0x7F00000C,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.param.Vptype */
|
|
|
|
|
OMX_QcomIndexParamVideoVp = 0x7F00000D,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexQueryNumberOfVideoDecInstance = 0x7F00000E,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexParamVideoSyncFrameDecodingMode = 0x7F00000F,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexParamVideoDecoderPictureOrder = 0x7F000010,
|
|
|
|
|
|
|
|
|
|
/* "OMX.QCOM.index.config.video.FramePackingInfo" */
|
|
|
|
|
OMX_QcomIndexConfigVideoFramePackingArrangement = 0x7F000011,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexParamConcealMBMapExtraData = 0x7F000012,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexParamFrameInfoExtraData = 0x7F000013,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexParamInterlaceExtraData = 0x7F000014,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexParamH264TimeInfo = 0x7F000015,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexParamIndexExtraDataType = 0x7F000016,
|
|
|
|
|
|
|
|
|
|
OMX_GoogleAndroidIndexEnableAndroidNativeBuffers = 0x7F000017,
|
|
|
|
|
|
|
|
|
|
OMX_GoogleAndroidIndexUseAndroidNativeBuffer = 0x7F000018,
|
|
|
|
|
|
|
|
|
|
OMX_GoogleAndroidIndexGetAndroidNativeBufferUsage = 0x7F000019,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.config.video.QPRange" */
|
|
|
|
|
OMX_QcomIndexConfigVideoQPRange = 0x7F00001A,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.param.EnableTimeStampReoder"*/
|
|
|
|
|
OMX_QcomIndexParamEnableTimeStampReorder = 0x7F00001B,
|
|
|
|
|
|
|
|
|
|
/*"OMX.google.android.index.storeMetaDataInBuffers"*/
|
|
|
|
|
OMX_QcomIndexParamVideoMetaBufferMode = 0x7F00001C,
|
|
|
|
|
|
|
|
|
|
/*"OMX.google.android.index.useAndroidNativeBuffer2"*/
|
|
|
|
|
OMX_GoogleAndroidIndexUseAndroidNativeBuffer2 = 0x7F00001D,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.param.VideoMaxAllowedBitrateCheck"*/
|
|
|
|
|
OMX_QcomIndexParamVideoMaxAllowedBitrateCheck = 0x7F00001E,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexEnableSliceDeliveryMode = 0x7F00001F,
|
|
|
|
|
|
|
|
|
|
/* "OMX.QCOM.index.param.video.ExtnUserExtraData" */
|
|
|
|
|
OMX_QcomIndexEnableExtnUserData = 0x7F000020,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.param.video.EnableSmoothStreaming"*/
|
|
|
|
|
OMX_QcomIndexParamEnableSmoothStreaming = 0x7F000021,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.param.video.QPRange" */
|
|
|
|
|
OMX_QcomIndexParamVideoQPRange = 0x7F000022,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexEnableH263PlusPType = 0x7F000023,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.param.video.LTRCountRangeSupported"*/
|
|
|
|
|
QOMX_IndexParamVideoLTRCountRangeSupported = 0x7F000024,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.param.video.LTRMode"*/
|
|
|
|
|
QOMX_IndexParamVideoLTRMode = 0x7F000025,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.param.video.LTRCount"*/
|
|
|
|
|
QOMX_IndexParamVideoLTRCount = 0x7F000026,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.config.video.LTRPeriod"*/
|
|
|
|
|
QOMX_IndexConfigVideoLTRPeriod = 0x7F000027,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.config.video.LTRUse"*/
|
|
|
|
|
QOMX_IndexConfigVideoLTRUse = 0x7F000028,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.config.video.LTRMark"*/
|
|
|
|
|
QOMX_IndexConfigVideoLTRMark = 0x7F000029,
|
|
|
|
|
|
|
|
|
|
/* OMX.google.android.index.prependSPSPPSToIDRFrames */
|
|
|
|
|
OMX_QcomIndexParamSequenceHeaderWithIDR = 0x7F00002A,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexParamH264AUDelimiter = 0x7F00002B,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexParamVideoDownScalar = 0x7F00002C,
|
|
|
|
|
|
|
|
|
|
/* "OMX.QCOM.index.param.video.FramePackingExtradata" */
|
|
|
|
|
OMX_QcomIndexParamVideoFramePackingExtradata = 0x7F00002D,
|
|
|
|
|
|
|
|
|
|
/* "OMX.QCOM.index.config.activeregiondetection" */
|
|
|
|
|
OMX_QcomIndexConfigActiveRegionDetection = 0x7F00002E,
|
|
|
|
|
|
|
|
|
|
/* "OMX.QCOM.index.config.activeregiondetectionstatus" */
|
|
|
|
|
OMX_QcomIndexConfigActiveRegionDetectionStatus = 0x7F00002F,
|
|
|
|
|
|
|
|
|
|
/* "OMX.QCOM.index.config.scalingmode" */
|
|
|
|
|
OMX_QcomIndexConfigScalingMode = 0x7F000030,
|
|
|
|
|
|
|
|
|
|
/* "OMX.QCOM.index.config.noisereduction" */
|
|
|
|
|
OMX_QcomIndexConfigNoiseReduction = 0x7F000031,
|
|
|
|
|
|
|
|
|
|
/* "OMX.QCOM.index.config.imageenhancement" */
|
|
|
|
|
OMX_QcomIndexConfigImageEnhancement = 0x7F000032,
|
|
|
|
|
|
|
|
|
|
/* google smooth-streaming support */
|
|
|
|
|
OMX_QcomIndexParamVideoAdaptivePlaybackMode = 0x7F000033,
|
|
|
|
|
|
|
|
|
|
/* H.264 MVC codec index */
|
|
|
|
|
QOMX_IndexParamVideoMvc = 0x7F000034,
|
|
|
|
|
|
|
|
|
|
/* "OMX.QCOM.index.param.video.QPExtradata" */
|
|
|
|
|
OMX_QcomIndexParamVideoQPExtraData = 0x7F000035,
|
|
|
|
|
|
|
|
|
|
/* "OMX.QCOM.index.param.video.InputBitsInfoExtradata" */
|
|
|
|
|
OMX_QcomIndexParamVideoInputBitsInfoExtraData = 0x7F000036,
|
|
|
|
|
|
|
|
|
|
/* VP8 Hierarchical P support */
|
|
|
|
|
OMX_QcomIndexHierarchicalStructure = 0x7F000037,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexParamPerfLevel = 0x7F000038,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexParamH264VUITimingInfo = 0x7F000039,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexParamPeakBitrate = 0x7F00003A,
|
|
|
|
|
|
|
|
|
|
/* Enable InitialQP index */
|
|
|
|
|
QOMX_IndexParamVideoInitialQp = 0x7F00003B,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexParamSetMVSearchrange = 0x7F00003C,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexConfigPerfLevel = 0x7F00003D,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.param.video.LTRCount"*/
|
|
|
|
|
OMX_QcomIndexParamVideoLTRCount = QOMX_IndexParamVideoLTRCount,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.config.video.LTRUse"*/
|
|
|
|
|
OMX_QcomIndexConfigVideoLTRUse = QOMX_IndexConfigVideoLTRUse,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.config.video.LTRMark"*/
|
|
|
|
|
OMX_QcomIndexConfigVideoLTRMark = QOMX_IndexConfigVideoLTRMark,
|
|
|
|
|
|
|
|
|
|
/*"OMX.QCOM.index.param.video.CustomBufferSize"*/
|
|
|
|
|
OMX_QcomIndexParamVideoCustomBufferSize = 0x7F00003E,
|
|
|
|
|
|
|
|
|
|
/* Max Hierarchical P layers */
|
|
|
|
|
OMX_QcomIndexMaxHierarchicallayers = 0x7F000041,
|
|
|
|
|
|
|
|
|
|
/* Set Encoder Performance Index */
|
|
|
|
|
OMX_QcomIndexConfigVideoVencPerfMode = 0x7F000042,
|
|
|
|
|
|
|
|
|
|
/* Set Hybrid Hier-p layers */
|
|
|
|
|
OMX_QcomIndexParamVideoHybridHierpMode = 0x7F000043,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexFlexibleYUVDescription = 0x7F000044,
|
|
|
|
|
|
|
|
|
|
/* Vpp Hqv Control Type */
|
|
|
|
|
OMX_QcomIndexParamVppHqvControl = 0x7F000045,
|
|
|
|
|
|
|
|
|
|
/* Enable VPP */
|
|
|
|
|
OMX_QcomIndexParamEnableVpp = 0x7F000046,
|
|
|
|
|
|
|
|
|
|
/* MBI statistics mode */
|
|
|
|
|
OMX_QcomIndexParamMBIStatisticsMode = 0x7F000047,
|
|
|
|
|
|
|
|
|
|
/* Set PictureTypeDecode */
|
|
|
|
|
OMX_QcomIndexConfigPictureTypeDecode = 0x7F000048,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexConfigH264EntropyCodingCabac = 0x7F000049,
|
|
|
|
|
|
|
|
|
|
/* "OMX.QCOM.index.param.video.InputBatch" */
|
|
|
|
|
OMX_QcomIndexParamBatchSize = 0x7F00004A,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexConfigNumHierPLayers = 0x7F00004B,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexConfigRectType = 0x7F00004C,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexConfigBaseLayerId = 0x7F00004E,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexParamDriverVersion = 0x7F00004F,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexConfigQp = 0x7F000050,
|
|
|
|
|
|
|
|
|
|
OMX_QcomIndexParamVencAspectRatio = 0x7F000051,
|
|
|
|
|
|
|
|
|
|
OMX_QTIIndexParamVQZipSEIExtraData = 0x7F000052,
|
|
|
|
|
|
|
|
|
|
/* Enable VQZIP SEI NAL type */
|
|
|
|
|
OMX_QTIIndexParamVQZIPSEIType = 0x7F000053,
|
|
|
|
|
|
|
|
|
|
OMX_QTIIndexParamPassInputBufferFd = 0x7F000054,
|
|
|
|
|
|
|
|
|
|
/* Set Prefer-adaptive playback*/
|
|
|
|
|
/* "OMX.QTI.index.param.video.PreferAdaptivePlayback" */
|
|
|
|
|
OMX_QTIIndexParamVideoPreferAdaptivePlayback = 0x7F000055,
|
|
|
|
|
|
|
|
|
|
/* Set time params */
|
|
|
|
|
OMX_QTIIndexConfigSetTimeData = 0x7F000056,
|
|
|
|
|
/* Force Compressed format for DPB when resolution <=1080p
|
|
|
|
|
* and OPB is cpu_access */
|
|
|
|
|
/* OMX.QTI.index.param.video.ForceCompressedForDPB */
|
|
|
|
|
OMX_QTIIndexParamForceCompressedForDPB = 0x7F000057,
|
|
|
|
|
|
|
|
|
|
/* Enable ROI info */
|
|
|
|
|
OMX_QTIIndexParamVideoEnableRoiInfo = 0x7F000058,
|
|
|
|
|
|
|
|
|
|
/* Configure ROI info */
|
|
|
|
|
OMX_QTIIndexConfigVideoRoiInfo = 0x7F000059,
|
|
|
|
|
|
|
|
|
|
/* Set Low Latency Mode */
|
|
|
|
|
OMX_QTIIndexParamLowLatencyMode = 0x7F00005A,
|
|
|
|
|
|
|
|
|
|
/* Force OPB to UnCompressed mode */
|
|
|
|
|
OMX_QTIIndexParamForceUnCompressedForOPB = 0x7F00005B,
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This is custom extension to configure Low Latency Mode.
|
|
|
|
|
*
|
|
|
|
|
* STRUCT MEMBERS
|
|
|
|
|
*
|
|
|
|
|
* nSize : Size of Structure in bytes
|
|
|
|
|
* nVersion : OpenMAX IL specification version information
|
|
|
|
|
* bLowLatencyMode : Enable/Disable Low Latency mode
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_EXTNINDEX_VIDEO_VENC_LOW_LATENCY_MODE
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_BOOL bLowLatencyMode;
|
|
|
|
|
} QOMX_EXTNINDEX_VIDEO_VENC_LOW_LATENCY_MODE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This is custom extension to configure Encoder Aspect Ratio.
|
|
|
|
|
*
|
|
|
|
|
* STRUCT MEMBERS
|
|
|
|
|
*
|
|
|
|
|
* nSize : Size of Structure in bytes
|
|
|
|
|
* nVersion : OpenMAX IL specification version information
|
|
|
|
|
* nSARWidth : Horizontal aspect size
|
|
|
|
|
* nSARHeight : Vertical aspect size
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_EXTNINDEX_VIDEO_VENC_SAR
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_U32 nVersion;
|
|
|
|
|
OMX_U32 nSARWidth;
|
|
|
|
|
OMX_U32 nSARHeight;
|
|
|
|
|
} QOMX_EXTNINDEX_VIDEO_VENC_SAR;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This is custom extension to configure Hier-p layers.
|
|
|
|
|
* This mode configures Hier-p layers dynamically.
|
|
|
|
|
*
|
|
|
|
|
* STRUCT MEMBERS
|
|
|
|
|
*
|
|
|
|
|
* nSize : Size of Structure in bytes
|
|
|
|
|
* nVersion : OpenMAX IL specification version information
|
|
|
|
|
* nNumHierLayers: Set the number of Hier-p layers for the session
|
|
|
|
|
* - This should be less than the MAX Hier-P
|
|
|
|
|
* layers set for the session.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_EXTNINDEX_VIDEO_HIER_P_LAYERS {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nNumHierLayers;
|
|
|
|
|
} QOMX_EXTNINDEX_VIDEO_HIER_P_LAYERS;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This is custom extension to configure Hybrid Hier-p settings.
|
|
|
|
|
* This mode is different from enabling Hier-p mode. This
|
|
|
|
|
* property enables Hier-p encoding with LTR referencing in each
|
|
|
|
|
* sub-GOP.
|
|
|
|
|
*
|
|
|
|
|
* STRUCT MEMBERS
|
|
|
|
|
*
|
|
|
|
|
* nSize : Size of Structure in bytes
|
|
|
|
|
* nVersion : OpenMAX IL specification version information
|
|
|
|
|
* nKeyFrameInterval : Indicates the I frame interval
|
|
|
|
|
* nHpLayers : Set the number of Hier-p layers for the session
|
|
|
|
|
* - This should be <= 6. (1 Base layer +
|
|
|
|
|
* 5 Enhancement layers)
|
|
|
|
|
* nTemporalLayerBitrateRatio[OMX_VIDEO_MAX_HP_LAYERS] : Bitrate to
|
|
|
|
|
* be set for each enhancement layer
|
|
|
|
|
* nMinQuantizer : minimum session QP
|
|
|
|
|
* nMaxQuantizer : Maximun session QP
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_EXTNINDEX_VIDEO_HYBRID_HP_MODE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nKeyFrameInterval;
|
|
|
|
|
OMX_U32 nTemporalLayerBitrateRatio[OMX_VIDEO_MAX_HP_LAYERS];
|
|
|
|
|
OMX_U32 nMinQuantizer;
|
|
|
|
|
OMX_U32 nMaxQuantizer;
|
|
|
|
|
OMX_U32 nHpLayers;
|
|
|
|
|
} QOMX_EXTNINDEX_VIDEO_HYBRID_HP_MODE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Encoder Performance Mode. This structure is used to set
|
|
|
|
|
* performance mode or power save mode when encoding. The search
|
|
|
|
|
* range is modified to save power or improve quality.
|
|
|
|
|
*
|
|
|
|
|
* STRUCT MEMBERS:
|
|
|
|
|
* OMX_U32 nPerfMode : Performance mode:
|
|
|
|
|
* 1: MAX_QUALITY
|
|
|
|
|
* 2: POWER_SAVE
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_EXTNINDEX_VIDEO_PERFMODE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPerfMode;
|
|
|
|
|
} QOMX_EXTNINDEX_VIDEO_PERFMODE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Initial QP parameter. This structure is used to enable
|
|
|
|
|
* vendor specific extension to let client enable setting
|
|
|
|
|
* initial QP values to I P B Frames
|
|
|
|
|
*
|
|
|
|
|
* STRUCT MEMBERS:
|
|
|
|
|
* nSize : Size of Structure in bytes
|
|
|
|
|
* nVersion : OpenMAX IL specification version information
|
|
|
|
|
* nPortIndex : Index of the port to which this structure applies
|
|
|
|
|
* OMX_U32 nQpI : First Iframe QP
|
|
|
|
|
* OMX_U32 nQpP : First Pframe QP
|
|
|
|
|
* OMX_U32 nQpB : First Bframe QP
|
|
|
|
|
* OMX_U32 bEnableInitQp : Bit field indicating which frame type(s) shall
|
|
|
|
|
* use the specified initial QP.
|
|
|
|
|
* Bit 0: Enable initial QP for I/IDR
|
|
|
|
|
* and use value specified in nInitQpI
|
|
|
|
|
* Bit 1: Enable initial QP for P
|
|
|
|
|
* and use value specified in nInitQpP
|
|
|
|
|
* Bit 2: Enable initial QP for B
|
|
|
|
|
* and use value specified in nInitQpB
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_EXTNINDEX_VIDEO_INITIALQP {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_U32 nQpI;
|
|
|
|
|
OMX_U32 nQpP;
|
|
|
|
|
OMX_U32 nQpB;
|
|
|
|
|
OMX_U32 bEnableInitQp;
|
|
|
|
|
} QOMX_EXTNINDEX_VIDEO_INITIALQP;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Extension index parameter. This structure is used to enable
|
|
|
|
|
* vendor specific extension on input/output port and
|
|
|
|
|
* to pass the required flags and data, if any.
|
|
|
|
|
* The format of flags and data being passed is known to
|
|
|
|
|
* the client and component apriori.
|
|
|
|
|
*
|
|
|
|
|
* STRUCT MEMBERS:
|
|
|
|
|
* nSize : Size of Structure plus pData size
|
|
|
|
|
* nVersion : OMX specification version information
|
|
|
|
|
* nPortIndex : Indicates which port to set
|
|
|
|
|
* bEnable : Extension index enable (1) or disable (0)
|
|
|
|
|
* nFlags : Extension index flags, if any
|
|
|
|
|
* nDataSize : Size of the extension index data to follow
|
|
|
|
|
* pData : Extension index data, if present.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct QOMX_EXTNINDEX_PARAMTYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_BOOL bEnable;
|
|
|
|
|
OMX_U32 nFlags;
|
|
|
|
|
OMX_U32 nDataSize;
|
|
|
|
|
OMX_PTR pData;
|
|
|
|
|
} QOMX_EXTNINDEX_PARAMTYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Range index parameter. This structure is used to enable
|
|
|
|
|
* vendor specific extension on input/output port and
|
|
|
|
|
* to pass the required minimum and maximum values
|
|
|
|
|
*
|
|
|
|
|
* STRUCT MEMBERS:
|
|
|
|
|
* nSize : Size of Structure in bytes
|
|
|
|
|
* nVersion : OpenMAX IL specification version information
|
|
|
|
|
* nPortIndex : Index of the port to which this structure applies
|
|
|
|
|
* nMin : Minimum value
|
|
|
|
|
* nMax : Maximum value
|
|
|
|
|
* nSteSize : Step size
|
|
|
|
|
*/
|
|
|
|
|
typedef struct QOMX_EXTNINDEX_RANGETYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_S32 nMin;
|
|
|
|
|
OMX_S32 nMax;
|
|
|
|
|
OMX_S32 nStepSize;
|
|
|
|
|
} QOMX_EXTNINDEX_RANGETYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Specifies LTR mode types.
|
|
|
|
|
*/
|
|
|
|
|
typedef enum QOMX_VIDEO_LTRMODETYPE
|
|
|
|
|
{
|
|
|
|
|
QOMX_VIDEO_LTRMode_Disable = 0x0, /**< LTR encoding is disabled */
|
|
|
|
|
QOMX_VIDEO_LTRMode_Manual = 0x1, /**< In this mode, IL client configures
|
|
|
|
|
** the encoder the LTR count and manually
|
|
|
|
|
** controls the marking and use of LTR
|
|
|
|
|
** frames during video encoding.
|
|
|
|
|
*/
|
|
|
|
|
QOMX_VIDEO_LTRMode_Auto = 0x2, /**< In this mode, IL client configures
|
|
|
|
|
** the encoder the LTR count and LTR
|
|
|
|
|
** period. The encoder marks LTR frames
|
|
|
|
|
** automatically based on the LTR period
|
|
|
|
|
** during video encoding. IL client controls
|
|
|
|
|
** the use of LTR frames.
|
|
|
|
|
*/
|
|
|
|
|
QOMX_VIDEO_LTRMode_MAX = 0x7FFFFFFF /** Maximum LTR Mode type */
|
|
|
|
|
} QOMX_VIDEO_LTRMODETYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* LTR mode index parameter. This structure is used
|
|
|
|
|
* to enable vendor specific extension on output port
|
|
|
|
|
* to pass the LTR mode information.
|
|
|
|
|
*
|
|
|
|
|
* STRUCT MEMBERS:
|
|
|
|
|
* nSize : Size of Structure in bytes
|
|
|
|
|
* nVersion : OpenMAX IL specification version information
|
|
|
|
|
* nPortIndex : Index of the port to which this structure applies
|
|
|
|
|
* eLTRMode : Specifies the LTR mode used in encoder
|
|
|
|
|
*/
|
|
|
|
|
typedef struct QOMX_VIDEO_PARAM_LTRMODE_TYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
QOMX_VIDEO_LTRMODETYPE eLTRMode;
|
|
|
|
|
} QOMX_VIDEO_PARAM_LTRMODE_TYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* LTR count index parameter. This structure is used
|
|
|
|
|
* to enable vendor specific extension on output port
|
|
|
|
|
* to pass the LTR count information.
|
|
|
|
|
*
|
|
|
|
|
* STRUCT MEMBERS:
|
|
|
|
|
* nSize : Size of Structure in bytes
|
|
|
|
|
* nVersion : OpenMAX IL specification version information
|
|
|
|
|
* nPortIndex : Index of the port to which this structure applies
|
|
|
|
|
* nCount : Specifies the number of LTR frames stored in the
|
|
|
|
|
* encoder component
|
|
|
|
|
*/
|
|
|
|
|
typedef struct QOMX_VIDEO_PARAM_LTRCOUNT_TYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_U32 nCount;
|
|
|
|
|
} QOMX_VIDEO_PARAM_LTRCOUNT_TYPE;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This should be used with OMX_QcomIndexParamVideoLTRCount extension.
|
|
|
|
|
*/
|
|
|
|
|
typedef QOMX_VIDEO_PARAM_LTRCOUNT_TYPE OMX_QCOM_VIDEO_PARAM_LTRCOUNT_TYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* LTR period index parameter. This structure is used
|
|
|
|
|
* to enable vendor specific extension on output port
|
|
|
|
|
* to pass the LTR period information.
|
|
|
|
|
*
|
|
|
|
|
* STRUCT MEMBERS:
|
|
|
|
|
* nSize : Size of Structure in bytes
|
|
|
|
|
* nVersion : OpenMAX IL specification version information
|
|
|
|
|
* nPortIndex : Index of the port to which this structure applies
|
|
|
|
|
* nFrames : Specifies the number of frames between two consecutive
|
|
|
|
|
* LTR frames.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_U32 nFrames;
|
|
|
|
|
} QOMX_VIDEO_CONFIG_LTRPERIOD_TYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Marks the next encoded frame as an LTR frame.
|
|
|
|
|
* STRUCT MEMBERS:
|
|
|
|
|
* nSize : Size of Structure in bytes
|
|
|
|
|
* nVersion : OpenMAX IL specification version information
|
|
|
|
|
* nPortIndex : Index of the port to which this structure applies
|
|
|
|
|
* nID : Specifies the identifier of the LTR frame to be marked
|
|
|
|
|
* as reference frame for encoding subsequent frames.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct QOMX_VIDEO_CONFIG_LTRMARK_TYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_U32 nID;
|
|
|
|
|
} QOMX_VIDEO_CONFIG_LTRMARK_TYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This should be used with OMX_QcomIndexConfigVideoLTRMark extension.
|
|
|
|
|
*/
|
|
|
|
|
typedef QOMX_VIDEO_CONFIG_LTRMARK_TYPE OMX_QCOM_VIDEO_CONFIG_LTRMARK_TYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Specifies an LTR frame to encode subsequent frames.
|
|
|
|
|
* STRUCT MEMBERS:
|
|
|
|
|
* nSize : Size of Structure in bytes
|
|
|
|
|
* nVersion : OpenMAX IL specification version information
|
|
|
|
|
* nPortIndex : Index of the port to which this structure applies
|
|
|
|
|
* nID : Specifies the identifier of the LTR frame to be used
|
|
|
|
|
as reference frame for encoding subsequent frames.
|
|
|
|
|
* nFrames : Specifies the number of subsequent frames to be
|
|
|
|
|
encoded using the LTR frame with its identifier
|
|
|
|
|
nID as reference frame. Short-term reference frames
|
|
|
|
|
will be used thereafter. The value of 0xFFFFFFFF
|
|
|
|
|
indicates that all subsequent frames will be
|
|
|
|
|
encodedusing this LTR frame as reference frame.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct QOMX_VIDEO_CONFIG_LTRUSE_TYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_U32 nID;
|
|
|
|
|
OMX_U32 nFrames;
|
|
|
|
|
} QOMX_VIDEO_CONFIG_LTRUSE_TYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This should be used with OMX_QcomIndexConfigVideoLTRUse extension.
|
|
|
|
|
*/
|
|
|
|
|
typedef QOMX_VIDEO_CONFIG_LTRUSE_TYPE OMX_QCOM_VIDEO_CONFIG_LTRUSE_TYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Enumeration used to define the video encoder modes
|
|
|
|
|
*
|
|
|
|
|
* ENUMS:
|
|
|
|
|
* EncoderModeDefault : Default video recording mode.
|
|
|
|
|
* All encoder settings made through
|
|
|
|
|
* OMX_SetParameter/OMX_SetConfig are applied. No
|
|
|
|
|
* parameter is overridden.
|
|
|
|
|
* EncoderModeMMS : Video recording mode for MMS (Multimedia Messaging
|
|
|
|
|
* Service). This mode is similar to EncoderModeDefault
|
|
|
|
|
* except that here the Rate control mode is overridden
|
|
|
|
|
* internally and set as a variant of variable bitrate with
|
|
|
|
|
* variable frame rate. After this mode is set if the IL
|
|
|
|
|
* client tries to set OMX_VIDEO_CONTROLRATETYPE via
|
|
|
|
|
* OMX_IndexParamVideoBitrate that would be rejected. For
|
|
|
|
|
* this, client should set mode back to EncoderModeDefault
|
|
|
|
|
* first and then change OMX_VIDEO_CONTROLRATETYPE.
|
|
|
|
|
*/
|
|
|
|
|
typedef enum QOMX_VIDEO_ENCODERMODETYPE
|
|
|
|
|
{
|
|
|
|
|
QOMX_VIDEO_EncoderModeDefault = 0x00,
|
|
|
|
|
QOMX_VIDEO_EncoderModeMMS = 0x01,
|
|
|
|
|
QOMX_VIDEO_EncoderModeMax = 0x7FFFFFFF
|
|
|
|
|
} QOMX_VIDEO_ENCODERMODETYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure is used to set the video encoder mode.
|
|
|
|
|
*
|
|
|
|
|
* STRUCT MEMBERS:
|
|
|
|
|
* nSize : Size of the structure in bytes
|
|
|
|
|
* nVersion : OMX specification version info
|
|
|
|
|
* nPortIndex : Port that this structure applies to
|
|
|
|
|
* nMode : defines the video encoder mode
|
|
|
|
|
*/
|
|
|
|
|
typedef struct QOMX_VIDEO_PARAM_ENCODERMODETYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
QOMX_VIDEO_ENCODERMODETYPE nMode;
|
|
|
|
|
} QOMX_VIDEO_PARAM_ENCODERMODETYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the parameters corresponding to the
|
|
|
|
|
* QOMX_VIDEO_SYNTAXHDRTYPE extension. This parameter can be queried
|
|
|
|
|
* during the loaded state.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_VIDEO_SYNTAXHDRTYPE
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion;/** OMX specification version information */
|
|
|
|
|
OMX_U32 nPortIndex; /** Portindex which is extended by this structure */
|
|
|
|
|
OMX_U32 nBytes; /** The number of bytes filled in to the buffer */
|
|
|
|
|
OMX_U8 data[1]; /** Buffer to store the header information */
|
|
|
|
|
} QOMX_VIDEO_SYNTAXHDRTYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the parameters corresponding to the
|
|
|
|
|
* QOMX_VIDEO_TEMPORALSPATIALTYPE extension. This parameter can be set
|
|
|
|
|
* dynamically during any state except the state invalid. This is primarily
|
|
|
|
|
* used for setting MaxQP from the application. This is set on the out port.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_VIDEO_TEMPORALSPATIALTYPE
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion;/** OMX specification version information */
|
|
|
|
|
OMX_U32 nPortIndex; /** Portindex which is extended by this structure */
|
|
|
|
|
OMX_U32 nTSFactor; /** Temoral spatial tradeoff factor value in 0-100 */
|
|
|
|
|
} QOMX_VIDEO_TEMPORALSPATIALTYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the parameters corresponding to the
|
|
|
|
|
* OMX_QCOM_VIDEO_CONFIG_INTRAPERIODTYPE extension. This parameter can be set
|
|
|
|
|
* dynamically during any state except the state invalid. This is set on the out port.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_VIDEO_INTRAPERIODTYPE
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion;/** OMX specification version information */
|
|
|
|
|
OMX_U32 nPortIndex; /** Portindex which is extended by this structure */
|
|
|
|
|
OMX_U32 nIDRPeriod; /** This specifies coding a frame as IDR after every nPFrames
|
|
|
|
|
of intra frames. If this parameter is set to 0, only the
|
|
|
|
|
first frame of the encode session is an IDR frame. This
|
|
|
|
|
field is ignored for non-AVC codecs and is used only for
|
|
|
|
|
codecs that support IDR Period */
|
|
|
|
|
OMX_U32 nPFrames; /** The number of "P" frames between two "I" frames */
|
|
|
|
|
OMX_U32 nBFrames; /** The number of "B" frames between two "I" frames */
|
|
|
|
|
} QOMX_VIDEO_INTRAPERIODTYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the parameters corresponding to the
|
|
|
|
|
* OMX_QCOM_VIDEO_CONFIG_ULBUFFEROCCUPANCYTYPE extension. This parameter can be set
|
|
|
|
|
* dynamically during any state except the state invalid. This is used for the buffer negotiation
|
|
|
|
|
* with other clients. This is set on the out port.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct OMX_QCOM_VIDEO_CONFIG_ULBUFFEROCCUPANCYTYPE
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion; /** OMX specification version information */
|
|
|
|
|
OMX_U32 nPortIndex; /** Portindex which is extended by this structure */
|
|
|
|
|
OMX_U32 nBufferOccupancy; /** The number of bytes to be set for the buffer occupancy */
|
|
|
|
|
} OMX_QCOM_VIDEO_CONFIG_ULBUFFEROCCUPANCYTYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the parameters corresponding to the
|
|
|
|
|
* OMX_QCOM_VIDEO_CONFIG_RANDOMINTRAREFRESHTYPE extension. This parameter can be set
|
|
|
|
|
* dynamically during any state except the state invalid. This is primarily used for the dynamic/random
|
|
|
|
|
* intrarefresh. This is set on the out port.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct OMX_QCOM_VIDEO_CONFIG_RANDOMINTRAREFRESHTYPE
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion;/** OMX specification version information */
|
|
|
|
|
OMX_U32 nPortIndex; /** Portindex which is extended by this structure */
|
|
|
|
|
OMX_U32 nRirMBs; /** The number of MBs to be set for intrarefresh */
|
|
|
|
|
} OMX_QCOM_VIDEO_CONFIG_RANDOMINTRAREFRESHTYPE;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the parameters corresponding to the
|
|
|
|
|
* OMX_QCOM_VIDEO_CONFIG_QPRANGE extension. This parameter can be set
|
|
|
|
|
* dynamically during any state except the state invalid. This is primarily
|
|
|
|
|
* used for the min/max QP to be set from the application. This
|
|
|
|
|
* is set on the out port.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct OMX_QCOM_VIDEO_CONFIG_QPRANGE
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion;/** OMX specification version information */
|
|
|
|
|
OMX_U32 nPortIndex; /** Portindex which is extended by this structure */
|
|
|
|
|
OMX_U32 nMinQP; /** The number for minimum quantization parameter */
|
|
|
|
|
OMX_U32 nMaxQP; /** The number for maximum quantization parameter */
|
|
|
|
|
} OMX_QCOM_VIDEO_CONFIG_QPRANGE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the parameters for the
|
|
|
|
|
* OMX_QcomIndexParamH264AUDelimiter extension. It enables/disables
|
|
|
|
|
* the AU delimiters in the H264 stream, which is used by WFD.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct OMX_QCOM_VIDEO_CONFIG_H264_AUD
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion;/** OMX specification version information */
|
|
|
|
|
OMX_BOOL bEnable; /** Enable/disable the setting */
|
|
|
|
|
} OMX_QCOM_VIDEO_CONFIG_H264_AUD;
|
|
|
|
|
|
|
|
|
|
typedef enum QOMX_VIDEO_PERF_LEVEL
|
|
|
|
|
{
|
|
|
|
|
OMX_QCOM_PerfLevelNominal,
|
|
|
|
|
OMX_QCOM_PerfLevelTurbo
|
|
|
|
|
} QOMX_VIDEO_PERF_LEVEL;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the parameters corresponding
|
|
|
|
|
* to OMX_QcomIndexParamPerfLevel extension. It will set
|
|
|
|
|
* the performance mode specified as QOMX_VIDEO_PERF_LEVEL.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct OMX_QCOM_VIDEO_PARAM_PERF_LEVEL {
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion; /** OMX specification version information */
|
|
|
|
|
QOMX_VIDEO_PERF_LEVEL ePerfLevel; /** Performance level */
|
|
|
|
|
} OMX_QCOM_VIDEO_PARAM_PERF_LEVEL;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the parameters corresponding
|
|
|
|
|
* to OMX_QcomIndexConfigPerfLevel extension. It will set
|
|
|
|
|
* the performance mode specified as QOMX_VIDEO_PERF_LEVEL.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct OMX_QCOM_VIDEO_CONFIG_PERF_LEVEL {
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion; /** OMX specification version information */
|
|
|
|
|
QOMX_VIDEO_PERF_LEVEL ePerfLevel; /** Performance level */
|
|
|
|
|
} OMX_QCOM_VIDEO_CONFIG_PERF_LEVEL;
|
|
|
|
|
|
|
|
|
|
typedef enum QOMX_VIDEO_PICTURE_TYPE_DECODE
|
|
|
|
|
{
|
|
|
|
|
OMX_QCOM_PictypeDecode_IPB,
|
|
|
|
|
OMX_QCOM_PictypeDecode_I
|
|
|
|
|
} QOMX_VIDEO_PICTURE_TYPE_DECODE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the parameters corresponding
|
|
|
|
|
* to OMX_QcomIndexConfigPictureTypeDecode extension. It
|
|
|
|
|
* will set the picture type decode specified by eDecodeType.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct OMX_QCOM_VIDEO_CONFIG_PICTURE_TYPE_DECODE {
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion; /** OMX specification version information */
|
|
|
|
|
QOMX_VIDEO_PICTURE_TYPE_DECODE eDecodeType; /** Decode type */
|
|
|
|
|
} OMX_QCOM_VIDEO_CONFIG_PICTURE_TYPE_DECODE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the parameters corresponding
|
|
|
|
|
* to OMX_QcomIndexParamH264VUITimingInfo extension. It
|
|
|
|
|
* will enable/disable the VUI timing info.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct OMX_QCOM_VIDEO_PARAM_VUI_TIMING_INFO {
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion; /** OMX specification version information */
|
|
|
|
|
OMX_BOOL bEnable; /** Enable/disable the setting */
|
|
|
|
|
} OMX_QCOM_VIDEO_PARAM_VUI_TIMING_INFO;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the parameters corresponding
|
|
|
|
|
* to OMX_QcomIndexParamVQZIPSEIType extension. It
|
|
|
|
|
* will enable/disable the VQZIP SEI info.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct OMX_QTI_VIDEO_PARAM_VQZIP_SEI_TYPE {
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion; /** OMX specification version information */
|
|
|
|
|
OMX_BOOL bEnable; /** Enable/disable the setting */
|
|
|
|
|
} OMX_QTI_VIDEO_PARAM_VQZIP_SEI_TYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the parameters corresponding
|
|
|
|
|
* to OMX_QcomIndexParamPeakBitrate extension. It will
|
|
|
|
|
* set the peak bitrate specified by nPeakBitrate.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct OMX_QCOM_VIDEO_PARAM_PEAK_BITRATE {
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion; /** OMX specification version information */
|
|
|
|
|
OMX_U32 nPeakBitrate; /** Peak bitrate value */
|
|
|
|
|
} OMX_QCOM_VIDEO_PARAM_PEAK_BITRATE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the parameters corresponding
|
|
|
|
|
* to OMX_QTIIndexParamForceCompressedForDPB extension. Enabling
|
|
|
|
|
* this extension will force the split mode DPB(compressed)/OPB(Linear)
|
|
|
|
|
* for all resolutions.On some chipsets preferred mode would be combined
|
|
|
|
|
* Linear for both DPB/OPB to save memory. For example on 8996 preferred mode
|
|
|
|
|
* would be combined linear for resolutions <= 1080p .
|
|
|
|
|
* Enabling this might save power but with the cost
|
|
|
|
|
* of increased memory i.e almost double the number on output YUV buffers.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct OMX_QTI_VIDEO_PARAM_FORCE_COMPRESSED_FOR_DPB_TYPE {
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion; /** OMX specification version information */
|
|
|
|
|
OMX_BOOL bEnable; /** Enable/disable the setting */
|
|
|
|
|
} OMX_QTI_VIDEO_PARAM_FORCE_COMPRESSED_FOR_DPB_TYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the parameters corresponding
|
|
|
|
|
* to OMX_QTIIndexParamForceUnCompressedForOPB extension. Enabling this
|
|
|
|
|
* extension will force the OPB to be linear for the current video session.
|
|
|
|
|
* If this property is not set, then the OPB will be set to linear or compressed
|
|
|
|
|
* based on resolution selected and/or if cpu access is requested on the
|
|
|
|
|
* OPB buffer.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct OMX_QTI_VIDEO_PARAM_FORCE_UNCOMPRESSED_FOR_OPB_TYPE {
|
|
|
|
|
OMX_U32 nSize; /** Sizeo f the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion; /** OMX specification version information */
|
|
|
|
|
OMX_BOOL bEnable; /** Enable/disable the setting */
|
|
|
|
|
} OMX_QTI_VIDEO_PARAM_FORCE_UNCOMPRESSED_FOR_OPB_TYPE;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_VENDOR_EXTRADATATYPE {
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_U32 nDataSize;
|
|
|
|
|
OMX_U8 *pData; // cdata (codec_data/extradata)
|
|
|
|
|
} OMX_VENDOR_EXTRADATATYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure describes the parameters corresponding to the
|
|
|
|
|
* OMX_VENDOR_VIDEOFRAMERATE extension. This parameter can be set
|
|
|
|
|
* dynamically during any state except the state invalid. This is
|
|
|
|
|
* used for frame rate to be set from the application. This
|
|
|
|
|
* is set on the in port.
|
|
|
|
|
*/
|
|
|
|
|
typedef struct OMX_VENDOR_VIDEOFRAMERATE {
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion;/** OMX specification version information */
|
|
|
|
|
OMX_U32 nPortIndex; /** Portindex which is extended by this structure */
|
|
|
|
|
OMX_U32 nFps; /** Frame rate value */
|
|
|
|
|
OMX_BOOL bEnabled; /** Flag to enable or disable client's frame rate value */
|
|
|
|
|
} OMX_VENDOR_VIDEOFRAMERATE;
|
|
|
|
|
|
|
|
|
|
typedef enum OMX_INDEXVENDORTYPE {
|
|
|
|
|
OMX_IndexVendorFileReadInputFilename = 0xFF000001,
|
|
|
|
|
OMX_IndexVendorParser3gpInputFilename = 0xFF000002,
|
|
|
|
|
OMX_IndexVendorVideoExtraData = 0xFF000003,
|
|
|
|
|
OMX_IndexVendorAudioExtraData = 0xFF000004,
|
|
|
|
|
OMX_IndexVendorVideoFrameRate = 0xFF000005,
|
|
|
|
|
} OMX_INDEXVENDORTYPE;
|
|
|
|
|
|
|
|
|
|
typedef enum OMX_QCOM_VC1RESOLUTIONTYPE
|
|
|
|
|
{
|
|
|
|
|
OMX_QCOM_VC1_PICTURE_RES_1x1,
|
|
|
|
|
OMX_QCOM_VC1_PICTURE_RES_2x1,
|
|
|
|
|
OMX_QCOM_VC1_PICTURE_RES_1x2,
|
|
|
|
|
OMX_QCOM_VC1_PICTURE_RES_2x2
|
|
|
|
|
} OMX_QCOM_VC1RESOLUTIONTYPE;
|
|
|
|
|
|
|
|
|
|
typedef enum OMX_QCOM_INTERLACETYPE
|
|
|
|
|
{
|
|
|
|
|
OMX_QCOM_InterlaceFrameProgressive,
|
|
|
|
|
OMX_QCOM_InterlaceInterleaveFrameTopFieldFirst,
|
|
|
|
|
OMX_QCOM_InterlaceInterleaveFrameBottomFieldFirst,
|
|
|
|
|
OMX_QCOM_InterlaceFrameTopFieldFirst,
|
|
|
|
|
OMX_QCOM_InterlaceFrameBottomFieldFirst,
|
|
|
|
|
OMX_QCOM_InterlaceFieldTop,
|
|
|
|
|
OMX_QCOM_InterlaceFieldBottom
|
|
|
|
|
}OMX_QCOM_INTERLACETYPE;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_PARAM_VIDEO_INTERLACETYPE
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nSize; /** Size of the structure in bytes */
|
|
|
|
|
OMX_VERSIONTYPE nVersion;/** OMX specification version information */
|
|
|
|
|
OMX_U32 nPortIndex; /** Portindex which is extended by this structure */
|
|
|
|
|
OMX_BOOL bInterlace; /** Interlace content **/
|
|
|
|
|
}OMX_QCOM_PARAM_VIDEO_INTERLACETYPE;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_CONFIG_INTERLACETYPE
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_U32 nIndex;
|
|
|
|
|
OMX_QCOM_INTERLACETYPE eInterlaceType;
|
|
|
|
|
}OMX_QCOM_CONFIG_INTERLACETYPE;
|
|
|
|
|
|
|
|
|
|
#define MAX_PAN_SCAN_WINDOWS 4
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_PANSCAN
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 numWindows;
|
|
|
|
|
OMX_QCOMRectangle window[MAX_PAN_SCAN_WINDOWS];
|
|
|
|
|
} OMX_QCOM_PANSCAN;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_ASPECT_RATIO
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 aspectRatioX;
|
|
|
|
|
OMX_U32 aspectRatioY;
|
|
|
|
|
} OMX_QCOM_ASPECT_RATIO;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_DISPLAY_ASPECT_RATIO
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 displayVerticalSize;
|
|
|
|
|
OMX_U32 displayHorizontalSize;
|
|
|
|
|
} OMX_QCOM_DISPLAY_ASPECT_RATIO;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_FRAME_PACK_ARRANGEMENT
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_U32 id;
|
|
|
|
|
OMX_U32 cancel_flag;
|
|
|
|
|
OMX_U32 type;
|
|
|
|
|
OMX_U32 quincunx_sampling_flag;
|
|
|
|
|
OMX_U32 content_interpretation_type;
|
|
|
|
|
OMX_U32 spatial_flipping_flag;
|
|
|
|
|
OMX_U32 frame0_flipped_flag;
|
|
|
|
|
OMX_U32 field_views_flag;
|
|
|
|
|
OMX_U32 current_frame_is_frame0_flag;
|
|
|
|
|
OMX_U32 frame0_self_contained_flag;
|
|
|
|
|
OMX_U32 frame1_self_contained_flag;
|
|
|
|
|
OMX_U32 frame0_grid_position_x;
|
|
|
|
|
OMX_U32 frame0_grid_position_y;
|
|
|
|
|
OMX_U32 frame1_grid_position_x;
|
|
|
|
|
OMX_U32 frame1_grid_position_y;
|
|
|
|
|
OMX_U32 reserved_byte;
|
|
|
|
|
OMX_U32 repetition_period;
|
|
|
|
|
OMX_U32 extension_flag;
|
|
|
|
|
} OMX_QCOM_FRAME_PACK_ARRANGEMENT;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_EXTRADATA_QP
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nQP;
|
|
|
|
|
} OMX_QCOM_EXTRADATA_QP;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_EXTRADATA_BITS_INFO
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 header_bits;
|
|
|
|
|
OMX_U32 frame_bits;
|
|
|
|
|
} OMX_QCOM_EXTRADATA_BITS_INFO;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_EXTRADATA_USERDATA {
|
|
|
|
|
OMX_U32 type;
|
|
|
|
|
OMX_U32 data[1];
|
|
|
|
|
} OMX_QCOM_EXTRADATA_USERDATA;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_EXTRADATA_FRAMEINFO
|
|
|
|
|
{
|
|
|
|
|
// common frame meta data. interlace related info removed
|
|
|
|
|
OMX_VIDEO_PICTURETYPE ePicType;
|
|
|
|
|
OMX_QCOM_INTERLACETYPE interlaceType;
|
|
|
|
|
OMX_QCOM_PANSCAN panScan;
|
|
|
|
|
OMX_QCOM_ASPECT_RATIO aspectRatio;
|
|
|
|
|
OMX_QCOM_DISPLAY_ASPECT_RATIO displayAspectRatio;
|
|
|
|
|
OMX_U32 nConcealedMacroblocks;
|
|
|
|
|
OMX_U32 nFrameRate;
|
|
|
|
|
OMX_TICKS nTimeStamp;
|
|
|
|
|
} OMX_QCOM_EXTRADATA_FRAMEINFO;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_EXTRADATA_FRAMEDIMENSION
|
|
|
|
|
{
|
|
|
|
|
/** Frame Dimensions added to each YUV buffer */
|
|
|
|
|
OMX_U32 nDecWidth; /** Width rounded to multiple of 16 */
|
|
|
|
|
OMX_U32 nDecHeight; /** Height rounded to multiple of 16 */
|
|
|
|
|
OMX_U32 nActualWidth; /** Actual Frame Width */
|
|
|
|
|
OMX_U32 nActualHeight; /** Actual Frame Height */
|
|
|
|
|
|
|
|
|
|
} OMX_QCOM_EXTRADATA_FRAMEDIMENSION;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_H264EXTRADATA
|
|
|
|
|
{
|
|
|
|
|
OMX_U64 seiTimeStamp;
|
|
|
|
|
} OMX_QCOM_H264EXTRADATA;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_VC1EXTRADATA
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nVC1RangeY;
|
|
|
|
|
OMX_U32 nVC1RangeUV;
|
|
|
|
|
OMX_QCOM_VC1RESOLUTIONTYPE eVC1PicResolution;
|
|
|
|
|
} OMX_QCOM_VC1EXTRADATA;
|
|
|
|
|
|
|
|
|
|
typedef union OMX_QCOM_EXTRADATA_CODEC_DATA
|
|
|
|
|
{
|
|
|
|
|
OMX_QCOM_H264EXTRADATA h264ExtraData;
|
|
|
|
|
OMX_QCOM_VC1EXTRADATA vc1ExtraData;
|
|
|
|
|
} OMX_QCOM_EXTRADATA_CODEC_DATA;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_EXTRADATA_MBINFO
|
|
|
|
|
{
|
|
|
|
|
OMX_U32 nFormat;
|
|
|
|
|
OMX_U32 nDataSize;
|
|
|
|
|
OMX_U8 data[0];
|
|
|
|
|
} OMX_QCOM_EXTRADATA_MBINFO;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QCOM_EXTRADATA_VQZIPSEI {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_U8 data[0];
|
|
|
|
|
} OMX_QCOM_EXTRADATA_VQZIPSEI;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QTI_VIDEO_PARAM_ENABLE_ROIINFO {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_BOOL bEnableRoiInfo;
|
|
|
|
|
} OMX_QTI_VIDEO_PARAM_ENABLE_ROIINFO;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QTI_VIDEO_CONFIG_ROIINFO {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_S32 nUpperQpOffset;
|
|
|
|
|
OMX_S32 nLowerQpOffset;
|
|
|
|
|
OMX_BOOL bUseRoiInfo;
|
|
|
|
|
OMX_S32 nRoiMBInfoSize;
|
|
|
|
|
OMX_PTR pRoiMBInfo;
|
|
|
|
|
} OMX_QTI_VIDEO_CONFIG_ROIINFO;
|
|
|
|
|
|
|
|
|
|
typedef enum OMX_QCOM_EXTRADATATYPE
|
|
|
|
|
{
|
|
|
|
|
OMX_ExtraDataFrameInfo = 0x7F000001,
|
|
|
|
|
OMX_ExtraDataH264 = 0x7F000002,
|
|
|
|
|
OMX_ExtraDataVC1 = 0x7F000003,
|
|
|
|
|
OMX_ExtraDataFrameDimension = 0x7F000004,
|
|
|
|
|
OMX_ExtraDataVideoEncoderSliceInfo = 0x7F000005,
|
|
|
|
|
OMX_ExtraDataConcealMB = 0x7F000006,
|
|
|
|
|
OMX_ExtraDataInterlaceFormat = 0x7F000007,
|
|
|
|
|
OMX_ExtraDataPortDef = 0x7F000008,
|
|
|
|
|
OMX_ExtraDataMP2ExtnData = 0x7F000009,
|
|
|
|
|
OMX_ExtraDataMP2UserData = 0x7F00000a,
|
|
|
|
|
OMX_ExtraDataVideoLTRInfo = 0x7F00000b,
|
|
|
|
|
OMX_ExtraDataFramePackingArrangement = 0x7F00000c,
|
|
|
|
|
OMX_ExtraDataQP = 0x7F00000d,
|
|
|
|
|
OMX_ExtraDataInputBitsInfo = 0x7F00000e,
|
|
|
|
|
OMX_ExtraDataVideoEncoderMBInfo = 0x7F00000f,
|
|
|
|
|
OMX_ExtraDataVQZipSEI = 0x7F000010,
|
|
|
|
|
} OMX_QCOM_EXTRADATATYPE;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_STREAMINTERLACEFORMATTYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_BOOL bInterlaceFormat;
|
|
|
|
|
OMX_U32 nInterlaceFormats;
|
|
|
|
|
} OMX_STREAMINTERLACEFORMAT;
|
|
|
|
|
|
|
|
|
|
typedef enum OMX_INTERLACETYPE
|
|
|
|
|
{
|
|
|
|
|
OMX_InterlaceFrameProgressive,
|
|
|
|
|
OMX_InterlaceInterleaveFrameTopFieldFirst,
|
|
|
|
|
OMX_InterlaceInterleaveFrameBottomFieldFirst,
|
|
|
|
|
OMX_InterlaceFrameTopFieldFirst,
|
|
|
|
|
OMX_InterlaceFrameBottomFieldFirst
|
|
|
|
|
} OMX_INTERLACES;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define OMX_EXTRADATA_HEADER_SIZE 20
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* AVC profile types, each profile indicates support for various
|
|
|
|
|
* performance bounds and different annexes.
|
|
|
|
|
*/
|
|
|
|
|
typedef enum QOMX_VIDEO_AVCPROFILETYPE {
|
|
|
|
|
QOMX_VIDEO_AVCProfileBaseline = OMX_VIDEO_AVCProfileBaseline,
|
|
|
|
|
QOMX_VIDEO_AVCProfileMain = OMX_VIDEO_AVCProfileMain,
|
|
|
|
|
QOMX_VIDEO_AVCProfileExtended = OMX_VIDEO_AVCProfileExtended,
|
|
|
|
|
QOMX_VIDEO_AVCProfileHigh = OMX_VIDEO_AVCProfileHigh,
|
|
|
|
|
QOMX_VIDEO_AVCProfileHigh10 = OMX_VIDEO_AVCProfileHigh10,
|
|
|
|
|
QOMX_VIDEO_AVCProfileHigh422 = OMX_VIDEO_AVCProfileHigh422,
|
|
|
|
|
QOMX_VIDEO_AVCProfileHigh444 = OMX_VIDEO_AVCProfileHigh444,
|
|
|
|
|
/* QCom specific profile indexes */
|
|
|
|
|
QOMX_VIDEO_AVCProfileConstrained = OMX_VIDEO_AVCProfileVendorStartUnused,
|
|
|
|
|
QOMX_VIDEO_AVCProfileConstrainedBaseline,
|
|
|
|
|
QOMX_VIDEO_AVCProfileConstrainedHigh,
|
|
|
|
|
} QOMX_VIDEO_AVCPROFILETYPE;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* H.264 MVC Profiles
|
|
|
|
|
*/
|
|
|
|
|
typedef enum QOMX_VIDEO_MVCPROFILETYPE {
|
|
|
|
|
QOMX_VIDEO_MVCProfileStereoHigh = 0x1,
|
|
|
|
|
QOMX_VIDEO_MVCProfileMultiViewHigh = 0x2,
|
|
|
|
|
QOMX_VIDEO_MVCProfileKhronosExtensions = 0x6F000000,
|
|
|
|
|
QOMX_VIDEO_MVCProfileVendorStartUnused = 0x7F000000,
|
|
|
|
|
QOMX_VIDEO_MVCProfileMax = 0x7FFFFFFF
|
|
|
|
|
} QOMX_VIDEO_MVCPROFILETYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* H.264 MVC Levels
|
|
|
|
|
*/
|
|
|
|
|
typedef enum QOMX_VIDEO_MVCLEVELTYPE {
|
|
|
|
|
QOMX_VIDEO_MVCLevel1 = 0x01, /**< Level 1 */
|
|
|
|
|
QOMX_VIDEO_MVCLevel1b = 0x02, /**< Level 1b */
|
|
|
|
|
QOMX_VIDEO_MVCLevel11 = 0x04, /**< Level 1.1 */
|
|
|
|
|
QOMX_VIDEO_MVCLevel12 = 0x08, /**< Level 1.2 */
|
|
|
|
|
QOMX_VIDEO_MVCLevel13 = 0x10, /**< Level 1.3 */
|
|
|
|
|
QOMX_VIDEO_MVCLevel2 = 0x20, /**< Level 2 */
|
|
|
|
|
QOMX_VIDEO_MVCLevel21 = 0x40, /**< Level 2.1 */
|
|
|
|
|
QOMX_VIDEO_MVCLevel22 = 0x80, /**< Level 2.2 */
|
|
|
|
|
QOMX_VIDEO_MVCLevel3 = 0x100, /**< Level 3 */
|
|
|
|
|
QOMX_VIDEO_MVCLevel31 = 0x200, /**< Level 3.1 */
|
|
|
|
|
QOMX_VIDEO_MVCLevel32 = 0x400, /**< Level 3.2 */
|
|
|
|
|
QOMX_VIDEO_MVCLevel4 = 0x800, /**< Level 4 */
|
|
|
|
|
QOMX_VIDEO_MVCLevel41 = 0x1000, /**< Level 4.1 */
|
|
|
|
|
QOMX_VIDEO_MVCLevel42 = 0x2000, /**< Level 4.2 */
|
|
|
|
|
QOMX_VIDEO_MVCLevel5 = 0x4000, /**< Level 5 */
|
|
|
|
|
QOMX_VIDEO_MVCLevel51 = 0x8000, /**< Level 5.1 */
|
|
|
|
|
QOMX_VIDEO_MVCLevelKhronosExtensions = 0x6F000000,
|
|
|
|
|
QOMX_VIDEO_MVCLevelVendorStartUnused = 0x7F000000,
|
|
|
|
|
QOMX_VIDEO_MVCLevelMax = 0x7FFFFFFF
|
|
|
|
|
} QOMX_VIDEO_MVCLEVELTYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* DivX Versions
|
|
|
|
|
*/
|
|
|
|
|
typedef enum QOMX_VIDEO_DIVXFORMATTYPE {
|
|
|
|
|
QOMX_VIDEO_DIVXFormatUnused = 0x01, /**< Format unused or unknown */
|
|
|
|
|
QOMX_VIDEO_DIVXFormat311 = 0x02, /**< DivX 3.11 */
|
|
|
|
|
QOMX_VIDEO_DIVXFormat4 = 0x04, /**< DivX 4 */
|
|
|
|
|
QOMX_VIDEO_DIVXFormat5 = 0x08, /**< DivX 5 */
|
|
|
|
|
QOMX_VIDEO_DIVXFormat6 = 0x10, /**< DivX 6 */
|
|
|
|
|
QOMX_VIDEO_DIVXFormatKhronosExtensions = 0x6F000000,
|
|
|
|
|
QOMX_VIDEO_DIVXFormatVendorStartUnused = 0x7F000000,
|
|
|
|
|
QOMX_VIDEO_DIVXFormatMax = 0x7FFFFFFF
|
|
|
|
|
} QOMX_VIDEO_DIVXFORMATTYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* DivX profile types, each profile indicates support for
|
|
|
|
|
* various performance bounds.
|
|
|
|
|
*/
|
|
|
|
|
typedef enum QOMX_VIDEO_DIVXPROFILETYPE {
|
|
|
|
|
QOMX_VIDEO_DivXProfileqMobile = 0x01, /**< qMobile Profile */
|
|
|
|
|
QOMX_VIDEO_DivXProfileMobile = 0x02, /**< Mobile Profile */
|
|
|
|
|
QOMX_VIDEO_DivXProfileMT = 0x04, /**< Mobile Theatre Profile */
|
|
|
|
|
QOMX_VIDEO_DivXProfileHT = 0x08, /**< Home Theatre Profile */
|
|
|
|
|
QOMX_VIDEO_DivXProfileHD = 0x10, /**< High Definition Profile */
|
|
|
|
|
QOMX_VIDEO_DIVXProfileKhronosExtensions = 0x6F000000,
|
|
|
|
|
QOMX_VIDEO_DIVXProfileVendorStartUnused = 0x7F000000,
|
|
|
|
|
QOMX_VIDEO_DIVXProfileMax = 0x7FFFFFFF
|
|
|
|
|
} QOMX_VIDEO_DIVXPROFILETYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* DivX Video Params
|
|
|
|
|
*
|
|
|
|
|
* STRUCT MEMBERS:
|
|
|
|
|
* nSize : Size of the structure in bytes
|
|
|
|
|
* nVersion : OMX specification version information
|
|
|
|
|
* nPortIndex : Port that this structure applies to
|
|
|
|
|
* eFormat : Version of DivX stream / data
|
|
|
|
|
* eProfile : Profile of DivX stream / data
|
|
|
|
|
*/
|
|
|
|
|
typedef struct QOMX_VIDEO_PARAM_DIVXTYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
QOMX_VIDEO_DIVXFORMATTYPE eFormat;
|
|
|
|
|
QOMX_VIDEO_DIVXPROFILETYPE eProfile;
|
|
|
|
|
} QOMX_VIDEO_PARAM_DIVXTYPE;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* VP Versions
|
|
|
|
|
*/
|
|
|
|
|
typedef enum QOMX_VIDEO_VPFORMATTYPE {
|
|
|
|
|
QOMX_VIDEO_VPFormatUnused = 0x01, /**< Format unused or unknown */
|
|
|
|
|
QOMX_VIDEO_VPFormat6 = 0x02, /**< VP6 Video Format */
|
|
|
|
|
QOMX_VIDEO_VPFormat7 = 0x04, /**< VP7 Video Format */
|
|
|
|
|
QOMX_VIDEO_VPFormat8 = 0x08, /**< VP8 Video Format */
|
|
|
|
|
QOMX_VIDEO_VPFormat9 = 0x10, /**< VP9 Video Format */
|
|
|
|
|
QOMX_VIDEO_VPFormatKhronosExtensions = 0x6F000000,
|
|
|
|
|
QOMX_VIDEO_VPFormatVendorStartUnused = 0x7F000000,
|
|
|
|
|
QOMX_VIDEO_VPFormatMax = 0x7FFFFFFF
|
|
|
|
|
} QOMX_VIDEO_VPFORMATTYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* VP profile types, each profile indicates support for various
|
|
|
|
|
* encoding tools.
|
|
|
|
|
*/
|
|
|
|
|
typedef enum QOMX_VIDEO_VPPROFILETYPE {
|
|
|
|
|
QOMX_VIDEO_VPProfileSimple = 0x01, /**< Simple Profile, applies to VP6 only */
|
|
|
|
|
QOMX_VIDEO_VPProfileAdvanced = 0x02, /**< Advanced Profile, applies to VP6 only */
|
|
|
|
|
QOMX_VIDEO_VPProfileVersion0 = 0x04, /**< Version 0, applies to VP7 and VP8 */
|
|
|
|
|
QOMX_VIDEO_VPProfileVersion1 = 0x08, /**< Version 1, applies to VP7 and VP8 */
|
|
|
|
|
QOMX_VIDEO_VPProfileVersion2 = 0x10, /**< Version 2, applies to VP8 only */
|
|
|
|
|
QOMX_VIDEO_VPProfileVersion3 = 0x20, /**< Version 3, applies to VP8 only */
|
|
|
|
|
QOMX_VIDEO_VPProfileKhronosExtensions = 0x6F000000,
|
|
|
|
|
QOMX_VIDEO_VPProfileVendorStartUnused = 0x7F000000,
|
|
|
|
|
QOMX_VIDEO_VPProfileMax = 0x7FFFFFFF
|
|
|
|
|
} QOMX_VIDEO_VPPROFILETYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* VP Video Params
|
|
|
|
|
*
|
|
|
|
|
* STRUCT MEMBERS:
|
|
|
|
|
* nSize : Size of the structure in bytes
|
|
|
|
|
* nVersion : OMX specification version information
|
|
|
|
|
* nPortIndex : Port that this structure applies to
|
|
|
|
|
* eFormat : Format of VP stream / data
|
|
|
|
|
* eProfile : Profile or Version of VP stream / data
|
|
|
|
|
*/
|
|
|
|
|
typedef struct QOMX_VIDEO_PARAM_VPTYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
QOMX_VIDEO_VPFORMATTYPE eFormat;
|
|
|
|
|
QOMX_VIDEO_VPPROFILETYPE eProfile;
|
|
|
|
|
} QOMX_VIDEO_PARAM_VPTYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Spark Versions
|
|
|
|
|
*/
|
|
|
|
|
typedef enum QOMX_VIDEO_SPARKFORMATTYPE {
|
|
|
|
|
QOMX_VIDEO_SparkFormatUnused = 0x01, /**< Format unused or unknown */
|
|
|
|
|
QOMX_VIDEO_SparkFormat0 = 0x02, /**< Video Format Version 0 */
|
|
|
|
|
QOMX_VIDEO_SparkFormat1 = 0x04, /**< Video Format Version 1 */
|
|
|
|
|
QOMX_VIDEO_SparkFormatKhronosExtensions = 0x6F000000,
|
|
|
|
|
QOMX_VIDEO_SparkFormatVendorStartUnused = 0x7F000000,
|
|
|
|
|
QOMX_VIDEO_SparkFormatMax = 0x7FFFFFFF
|
|
|
|
|
} QOMX_VIDEO_SPARKFORMATTYPE;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Spark Video Params
|
|
|
|
|
*
|
|
|
|
|
* STRUCT MEMBERS:
|
|
|
|
|
* nSize : Size of the structure in bytes
|
|
|
|
|
* nVersion : OMX specification version information
|
|
|
|
|
* nPortIndex : Port that this structure applies to
|
|
|
|
|
* eFormat : Version of Spark stream / data
|
|
|
|
|
*/
|
|
|
|
|
typedef struct QOMX_VIDEO_PARAM_SPARKTYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
QOMX_VIDEO_SPARKFORMATTYPE eFormat;
|
|
|
|
|
} QOMX_VIDEO_PARAM_SPARKTYPE;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_VIDEO_QUERY_DECODER_INSTANCES {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_U32 nNumOfInstances;
|
|
|
|
|
} QOMX_VIDEO_QUERY_DECODER_INSTANCES;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_ENABLETYPE {
|
|
|
|
|
OMX_BOOL bEnable;
|
|
|
|
|
} QOMX_ENABLETYPE;
|
|
|
|
|
|
|
|
|
|
typedef enum QOMX_VIDEO_EVENTS {
|
|
|
|
|
OMX_EventIndexsettingChanged = OMX_EventVendorStartUnused
|
|
|
|
|
} QOMX_VIDEO_EVENTS;
|
|
|
|
|
|
|
|
|
|
typedef enum QOMX_VIDEO_PICTURE_ORDER {
|
|
|
|
|
QOMX_VIDEO_DISPLAY_ORDER = 0x1,
|
|
|
|
|
QOMX_VIDEO_DECODE_ORDER = 0x2
|
|
|
|
|
} QOMX_VIDEO_PICTURE_ORDER;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_VIDEO_DECODER_PICTURE_ORDER {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
QOMX_VIDEO_PICTURE_ORDER eOutputPictureOrder;
|
|
|
|
|
} QOMX_VIDEO_DECODER_PICTURE_ORDER;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_INDEXEXTRADATATYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_BOOL bEnabled;
|
|
|
|
|
OMX_INDEXTYPE nIndex;
|
|
|
|
|
} QOMX_INDEXEXTRADATATYPE;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_INDEXTIMESTAMPREORDER {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_BOOL bEnable;
|
|
|
|
|
} QOMX_INDEXTIMESTAMPREORDER;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_INDEXDOWNSCALAR {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_BOOL bEnable;
|
|
|
|
|
} QOMX_INDEXDOWNSCALAR;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_VIDEO_CUSTOM_BUFFERSIZE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_U32 nBufferSize;
|
|
|
|
|
} QOMX_VIDEO_CUSTOM_BUFFERSIZE;
|
|
|
|
|
|
|
|
|
|
#define OMX_QCOM_INDEX_PARAM_VIDEO_SYNCFRAMEDECODINGMODE "OMX.QCOM.index.param.video.SyncFrameDecodingMode"
|
|
|
|
|
#define OMX_QCOM_INDEX_PARAM_INDEXEXTRADATA "OMX.QCOM.index.param.IndexExtraData"
|
|
|
|
|
#define OMX_QCOM_INDEX_PARAM_VIDEO_SLICEDELIVERYMODE "OMX.QCOM.index.param.SliceDeliveryMode"
|
|
|
|
|
#define OMX_QCOM_INDEX_PARAM_VIDEO_FRAMEPACKING_EXTRADATA "OMX.QCOM.index.param.video.FramePackingExtradata"
|
|
|
|
|
#define OMX_QCOM_INDEX_PARAM_VIDEO_QP_EXTRADATA "OMX.QCOM.index.param.video.QPExtradata"
|
|
|
|
|
#define OMX_QCOM_INDEX_PARAM_VIDEO_INPUTBITSINFO_EXTRADATA "OMX.QCOM.index.param.video.InputBitsInfoExtradata"
|
|
|
|
|
#define OMX_QCOM_INDEX_PARAM_VIDEO_EXTNUSER_EXTRADATA "OMX.QCOM.index.param.video.ExtnUserExtraData"
|
|
|
|
|
#define OMX_QCOM_INDEX_CONFIG_VIDEO_FRAMEPACKING_INFO "OMX.QCOM.index.config.video.FramePackingInfo"
|
|
|
|
|
#define OMX_QCOM_INDEX_PARAM_VIDEO_MPEG2SEQDISP_EXTRADATA "OMX.QCOM.index.param.video.Mpeg2SeqDispExtraData"
|
|
|
|
|
|
|
|
|
|
#define OMX_QCOM_INDEX_PARAM_VIDEO_HIERSTRUCTURE "OMX.QCOM.index.param.video.HierStructure"
|
|
|
|
|
#define OMX_QCOM_INDEX_PARAM_VIDEO_LTRCOUNT "OMX.QCOM.index.param.video.LTRCount"
|
|
|
|
|
#define OMX_QCOM_INDEX_PARAM_VIDEO_LTRPERIOD "OMX.QCOM.index.param.video.LTRPeriod"
|
|
|
|
|
#define OMX_QCOM_INDEX_CONFIG_VIDEO_LTRUSE "OMX.QCOM.index.config.video.LTRUse"
|
|
|
|
|
#define OMX_QCOM_INDEX_CONFIG_VIDEO_LTRMARK "OMX.QCOM.index.config.video.LTRMark"
|
|
|
|
|
#define OMX_QCOM_INDEX_CONFIG_VIDEO_HIER_P_LAYERS "OMX.QCOM.index.config.video.hierplayers"
|
|
|
|
|
#define OMX_QCOM_INDEX_CONFIG_RECTANGLE_TYPE "OMX.QCOM.index.config.video.rectangle"
|
|
|
|
|
#define OMX_QCOM_INDEX_PARAM_VIDEO_BASE_LAYER_ID "OMX.QCOM.index.param.video.baselayerid"
|
|
|
|
|
#define OMX_QCOM_INDEX_CONFIG_VIDEO_QP "OMX.QCOM.index.config.video.qp"
|
|
|
|
|
#define OMX_QCOM_INDEX_PARAM_VIDEO_SAR "OMX.QCOM.index.param.video.sar"
|
|
|
|
|
#define OMX_QTI_INDEX_PARAM_VIDEO_LOW_LATENCY "OMX.QTI.index.param.video.LowLatency"
|
|
|
|
|
|
|
|
|
|
#define OMX_QCOM_INDEX_PARAM_VIDEO_PASSINPUTBUFFERFD "OMX.QCOM.index.param.video.PassInputBufferFd"
|
|
|
|
|
#define OMX_QTI_INDEX_PARAM_VIDEO_PREFER_ADAPTIVE_PLAYBACK "OMX.QTI.index.param.video.PreferAdaptivePlayback"
|
|
|
|
|
#define OMX_QTI_INDEX_CONFIG_VIDEO_SETTIMEDATA "OMX.QTI.index.config.video.settimedata"
|
|
|
|
|
#define OMX_QTI_INDEX_PARAM_VIDEO_FORCE_COMPRESSED_FOR_DPB "OMX.QTI.index.param.video.ForceCompressedForDPB"
|
|
|
|
|
#define OMX_QTI_INDEX_PARAM_VIDEO_ENABLE_ROIINFO "OMX.QTI.index.param.enableRoiInfo"
|
|
|
|
|
#define OMX_QTI_INDEX_CONFIG_VIDEO_ROIINFO "OMX.QTI.index.config.RoiInfo"
|
|
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
|
QOMX_VIDEO_FRAME_PACKING_CHECKERBOARD = 0,
|
|
|
|
|
QOMX_VIDEO_FRAME_PACKING_COLUMN_INTERLEAVE = 1,
|
|
|
|
|
QOMX_VIDEO_FRAME_PACKING_ROW_INTERLEAVE = 2,
|
|
|
|
|
QOMX_VIDEO_FRAME_PACKING_SIDE_BY_SIDE = 3,
|
|
|
|
|
QOMX_VIDEO_FRAME_PACKING_TOP_BOTTOM = 4,
|
|
|
|
|
QOMX_VIDEO_FRAME_PACKING_TEMPORAL = 5,
|
|
|
|
|
} QOMX_VIDEO_FRAME_PACKING_ARRANGEMENT;
|
|
|
|
|
|
|
|
|
|
typedef enum {
|
|
|
|
|
QOMX_VIDEO_CONTENT_UNSPECIFIED = 0,
|
|
|
|
|
QOMX_VIDEO_CONTENT_LR_VIEW = 1,
|
|
|
|
|
QOMX_VIDEO_CONTENT_RL_VIEW = 2,
|
|
|
|
|
} QOMX_VIDEO_CONTENT_INTERPRETATION;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Specifies the extended picture types. These values should be
|
|
|
|
|
* OR'd along with the types defined in OMX_VIDEO_PICTURETYPE to
|
|
|
|
|
* signal all pictures types which are allowed.
|
|
|
|
|
*
|
|
|
|
|
* ENUMS:
|
|
|
|
|
* H.264 Specific Picture Types: IDR
|
|
|
|
|
*/
|
|
|
|
|
typedef enum QOMX_VIDEO_PICTURETYPE {
|
|
|
|
|
QOMX_VIDEO_PictureTypeIDR = OMX_VIDEO_PictureTypeVendorStartUnused + 0x1000
|
|
|
|
|
} QOMX_VIDEO_PICTURETYPE;
|
|
|
|
|
|
|
|
|
|
#define OMX_QCOM_INDEX_CONFIG_ACTIVE_REGION_DETECTION "OMX.QCOM.index.config.activeregiondetection"
|
|
|
|
|
#define OMX_QCOM_INDEX_CONFIG_ACTIVE_REGION_DETECTION_STATUS "OMX.QCOM.index.config.activeregiondetectionstatus"
|
|
|
|
|
#define OMX_QCOM_INDEX_CONFIG_SCALING_MODE "OMX.QCOM.index.config.scalingmode"
|
|
|
|
|
#define OMX_QCOM_INDEX_CONFIG_NOISEREDUCTION "OMX.QCOM.index.config.noisereduction"
|
|
|
|
|
#define OMX_QCOM_INDEX_CONFIG_IMAGEENHANCEMENT "OMX.QCOM.index.config.imageenhancement"
|
|
|
|
|
#define OMX_QCOM_INDEX_PARAM_HELDBUFFERCOUNT "OMX.QCOM.index.param.HeldBufferCount" /**< reference: QOMX_HELDBUFFERCOUNTTYPE */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_RECTTYPE {
|
|
|
|
|
OMX_S32 nLeft;
|
|
|
|
|
OMX_S32 nTop;
|
|
|
|
|
OMX_U32 nWidth;
|
|
|
|
|
OMX_U32 nHeight;
|
|
|
|
|
} QOMX_RECTTYPE;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_ACTIVEREGIONDETECTIONTYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_BOOL bEnable;
|
|
|
|
|
QOMX_RECTTYPE sROI;
|
|
|
|
|
OMX_U32 nNumExclusionRegions;
|
|
|
|
|
QOMX_RECTTYPE sExclusionRegions[1];
|
|
|
|
|
} QOMX_ACTIVEREGIONDETECTIONTYPE;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_ACTIVEREGIONDETECTION_STATUSTYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_BOOL bDetected;
|
|
|
|
|
QOMX_RECTTYPE sDetectedRegion;
|
|
|
|
|
} QOMX_ACTIVEREGIONDETECTION_STATUSTYPE;
|
|
|
|
|
|
|
|
|
|
typedef enum QOMX_SCALE_MODETYPE {
|
|
|
|
|
QOMX_SCALE_MODE_Normal,
|
|
|
|
|
QOMX_SCALE_MODE_Anamorphic,
|
|
|
|
|
QOMX_SCALE_MODE_Max = 0x7FFFFFFF
|
|
|
|
|
} QOMX_SCALE_MODETYPE;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_SCALINGMODETYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
QOMX_SCALE_MODETYPE eScaleMode;
|
|
|
|
|
} QOMX_SCALINGMODETYPE;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_NOISEREDUCTIONTYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_BOOL bEnable;
|
|
|
|
|
OMX_BOOL bAutoMode;
|
|
|
|
|
OMX_S32 nNoiseReduction;
|
|
|
|
|
} QOMX_NOISEREDUCTIONTYPE;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_IMAGEENHANCEMENTTYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_BOOL bEnable;
|
|
|
|
|
OMX_BOOL bAutoMode;
|
|
|
|
|
OMX_S32 nImageEnhancement;
|
|
|
|
|
} QOMX_IMAGEENHANCEMENTTYPE;
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* these are part of OMX1.2 but JB MR2 branch doesn't have them defined
|
|
|
|
|
* OMX_IndexParamInterlaceFormat
|
|
|
|
|
* OMX_INTERLACEFORMATTYPE
|
|
|
|
|
*/
|
|
|
|
|
#ifndef OMX_IndexParamInterlaceFormat
|
|
|
|
|
#define OMX_IndexParamInterlaceFormat (0x7FF00000)
|
|
|
|
|
typedef struct OMX_INTERLACEFORMATTYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_U32 nFormat;
|
|
|
|
|
OMX_TICKS nTimeStamp;
|
|
|
|
|
} OMX_INTERLACEFORMATTYPE;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* This structure is used to indicate the maximum number of buffers
|
|
|
|
|
* that a port will hold during data flow.
|
|
|
|
|
*
|
|
|
|
|
* STRUCT MEMBERS:
|
|
|
|
|
* nSize : Size of the structure in bytes
|
|
|
|
|
* nVersion : OMX specification version info
|
|
|
|
|
* nPortIndex : Port that this structure applies to
|
|
|
|
|
* nHeldBufferCount : Read-only, maximum number of buffers that will be held
|
|
|
|
|
*/
|
|
|
|
|
typedef struct QOMX_HELDBUFFERCOUNTTYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_U32 nHeldBufferCount;
|
|
|
|
|
} QOMX_HELDBUFFERCOUNTTYPE;
|
|
|
|
|
|
|
|
|
|
typedef enum QOMX_VIDEO_HIERARCHICALCODINGTYPE {
|
|
|
|
|
QOMX_HIERARCHICALCODING_P = 0x01,
|
|
|
|
|
QOMX_HIERARCHICALCODING_B = 0x02,
|
|
|
|
|
} QOMX_VIDEO_HIERARCHICALCODINGTYPE;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_VIDEO_HIERARCHICALLAYERS {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_U32 nNumLayers;
|
|
|
|
|
QOMX_VIDEO_HIERARCHICALCODINGTYPE eHierarchicalCodingType;
|
|
|
|
|
} QOMX_VIDEO_HIERARCHICALLAYERS;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_VIDEO_H264ENTROPYCODINGTYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_BOOL bCabac;
|
|
|
|
|
OMX_U32 nCabacInitIdc;
|
|
|
|
|
} QOMX_VIDEO_H264ENTROPYCODINGTYPE;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* VIDEO POSTPROCESSING CTRLS AND ENUMS */
|
|
|
|
|
#define QOMX_VPP_HQV_CUSTOMPAYLOAD_SZ 256
|
|
|
|
|
#define VPP_HQV_CONTROL_GLOBAL_START (VPP_HQV_CONTROL_CUST + 1)
|
|
|
|
|
|
|
|
|
|
typedef enum QOMX_VPP_HQV_MODE {
|
|
|
|
|
VPP_HQV_MODE_OFF,
|
|
|
|
|
VPP_HQV_MODE_AUTO,
|
|
|
|
|
VPP_HQV_MODE_MANUAL,
|
|
|
|
|
VPP_HQV_MODE_MAX
|
|
|
|
|
} QOMX_VPP_HQV_MODE;
|
|
|
|
|
|
|
|
|
|
typedef enum QOMX_VPP_HQVCONTROLTYPE {
|
|
|
|
|
VPP_HQV_CONTROL_CADE = 0x1,
|
|
|
|
|
VPP_HQV_CONTROL_CNR = 0x04,
|
|
|
|
|
VPP_HQV_CONTROL_AIE = 0x05,
|
|
|
|
|
VPP_HQV_CONTROL_FRC = 0x06,
|
|
|
|
|
VPP_HQV_CONTROL_CUST = 0x07,
|
|
|
|
|
VPP_HQV_CONTROL_GLOBAL_DEMO = VPP_HQV_CONTROL_GLOBAL_START,
|
|
|
|
|
VPP_HQV_CONTROL_MAX,
|
|
|
|
|
} QOMX_VPP_HQVCONTROLTYPE;
|
|
|
|
|
|
|
|
|
|
typedef enum QOMX_VPP_HQV_HUE_MODE {
|
|
|
|
|
VPP_HQV_HUE_MODE_OFF,
|
|
|
|
|
VPP_HQV_HUE_MODE_ON,
|
|
|
|
|
VPP_HQV_HUE_MODE_MAX,
|
|
|
|
|
} QOMX_VPP_HQV_HUE_MODE;
|
|
|
|
|
|
|
|
|
|
typedef enum QOMX_VPP_HQV_FRC_MODE {
|
|
|
|
|
VPP_HQV_FRC_MODE_OFF,
|
|
|
|
|
VPP_HQV_FRC_MODE_LOW,
|
|
|
|
|
VPP_HQV_FRC_MODE_MED,
|
|
|
|
|
VPP_HQV_FRC_MODE_HIGH,
|
|
|
|
|
VPP_HQV_FRC_MODE_MAX,
|
|
|
|
|
} QOMX_VPP_HQV_FRC_MODE;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_VPP_HQVCTRL_CADE {
|
|
|
|
|
QOMX_VPP_HQV_MODE mode;
|
|
|
|
|
OMX_U32 level;
|
|
|
|
|
OMX_S32 contrast;
|
|
|
|
|
OMX_S32 saturation;
|
|
|
|
|
} QOMX_VPP_HQVCTRL_CADE;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_VPP_HQVCTRL_CNR {
|
|
|
|
|
QOMX_VPP_HQV_MODE mode;
|
|
|
|
|
OMX_U32 level;
|
|
|
|
|
} QOMX_VPP_HQVCTRL_CNR;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_VPP_HQVCTRL_AIE {
|
|
|
|
|
QOMX_VPP_HQV_MODE mode;
|
|
|
|
|
QOMX_VPP_HQV_HUE_MODE hue_mode;
|
|
|
|
|
OMX_U32 cade_level;
|
|
|
|
|
OMX_U32 ltm_level;
|
|
|
|
|
} QOMX_VPP_HQVCTRL_AIE;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_VPP_HQVCTRL_CUSTOM {
|
|
|
|
|
OMX_U32 id;
|
|
|
|
|
OMX_U32 len;
|
|
|
|
|
OMX_U8 data[QOMX_VPP_HQV_CUSTOMPAYLOAD_SZ];
|
|
|
|
|
} QOMX_VPP_HQVCTRL_CUSTOM;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_VPP_HQVCTRL_GLOBAL_DEMO {
|
|
|
|
|
OMX_U32 process_percent;
|
|
|
|
|
} QOMX_VPP_HQVCTRL_GLOBAL_DEMO;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_VPP_HQVCTRL_FRC {
|
|
|
|
|
QOMX_VPP_HQV_FRC_MODE mode;
|
|
|
|
|
} QOMX_VPP_HQVCTRL_FRC;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_VPP_HQVCONTROL {
|
|
|
|
|
QOMX_VPP_HQV_MODE mode;
|
|
|
|
|
QOMX_VPP_HQVCONTROLTYPE ctrl_type;
|
|
|
|
|
union {
|
|
|
|
|
QOMX_VPP_HQVCTRL_CADE cade;
|
|
|
|
|
QOMX_VPP_HQVCTRL_CNR cnr;
|
|
|
|
|
QOMX_VPP_HQVCTRL_AIE aie;
|
|
|
|
|
QOMX_VPP_HQVCTRL_CUSTOM custom;
|
|
|
|
|
QOMX_VPP_HQVCTRL_GLOBAL_DEMO global_demo;
|
|
|
|
|
QOMX_VPP_HQVCTRL_FRC frc;
|
|
|
|
|
};
|
|
|
|
|
} QOMX_VPP_HQVCONTROL;
|
|
|
|
|
|
|
|
|
|
/* STRUCTURE TO TURN VPP ON */
|
|
|
|
|
typedef struct QOMX_VPP_ENABLE {
|
|
|
|
|
OMX_BOOL enable_vpp;
|
|
|
|
|
} QOMX_VPP_ENABLE;
|
|
|
|
|
|
|
|
|
|
typedef enum OMX_QOMX_VIDEO_MBISTATISTICSTYPE {
|
|
|
|
|
QOMX_MBI_STATISTICS_MODE_DEFAULT = 0,
|
|
|
|
|
QOMX_MBI_STATISTICS_MODE_1 = 0x01,
|
|
|
|
|
QOMX_MBI_STATISTICS_MODE_2 = 0x02,
|
|
|
|
|
} OMX_QOMX_VIDEO_MBISTATISTICSTYPE;
|
|
|
|
|
|
|
|
|
|
typedef struct OMX_QOMX_VIDEO_MBI_STATISTICS {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_QOMX_VIDEO_MBISTATISTICSTYPE eMBIStatisticsType;
|
|
|
|
|
} OMX_QOMX_VIDEO_MBI_STATISTICS;
|
|
|
|
|
|
|
|
|
|
typedef struct QOMX_VIDEO_BATCHSIZETYPE {
|
|
|
|
|
OMX_U32 nSize;
|
|
|
|
|
OMX_VERSIONTYPE nVersion;
|
|
|
|
|
OMX_U32 nPortIndex;
|
|
|
|
|
OMX_U32 nBatchSize;
|
|
|
|
|
} QOMX_VIDEO_BATCHSIZETYPE;
|
|
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
|
}
|
|
|
|
|
#endif /* __cplusplus */
|
|
|
|
|
|
|
|
|
|
#endif /* __OMX_QCOM_EXTENSIONS_H__ */
|