summaryrefslogtreecommitdiffstats
path: root/domx/omx_core/inc/OMX_TI_Video.h
diff options
context:
space:
mode:
Diffstat (limited to 'domx/omx_core/inc/OMX_TI_Video.h')
-rwxr-xr-xdomx/omx_core/inc/OMX_TI_Video.h2587
1 files changed, 0 insertions, 2587 deletions
diff --git a/domx/omx_core/inc/OMX_TI_Video.h b/domx/omx_core/inc/OMX_TI_Video.h
deleted file mode 100755
index 6e4989c..0000000
--- a/domx/omx_core/inc/OMX_TI_Video.h
+++ /dev/null
@@ -1,2587 +0,0 @@
-/*
- * Copyright (c) 2010, Texas Instruments Incorporated
- * 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 Texas Instruments Incorporated 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 AND FITNESS FOR A PARTICULAR
- * PURPOSE 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.
- */
-
-/* -------------------------------------------------------------------------- */
-/*
- * @file:Omx_ti_video.h
- * This header defines the structures specific to the param or config indices of Openmax Video Component.
- *
- * @path:
- * \WTSD_DucatiMMSW\ omx\omx_il_1_x\omx_core\
-
- * -------------------------------------------------------------------------- */
-
-/* =========================================================================
- *!
- *! Revision History
- *! =====================================================================
- *! 24-Dec-2008 Navneet navneet@ti.com Initial Version
- *! 14-Jul-2009 Radha Purnima radhapurnima@ti.com
- *! 25-Aug-2009 Radha Purnima radhapurnima@ti.com
- *! 16-May-2009 Shivaraj Shetty shettyshivaraj@ti.com
- * =========================================================================*/
-
-
-#ifndef OMX_TI_VIDEO_H
-#define OMX_TI_VIDEO_H
-#define H264ENC_MAXNUMSLCGPS 2
-#define OMXH264E_MAX_SLICE_SUPPORTED 64
-#include <OMX_Core.h>
-
-/**
- * @brief mode selection for the data that is given to the Codec
- */
-
-typedef enum OMX_VIDEO_DATASYNCMODETYPE {
- OMX_Video_FixedLength, //!< Interms of multiples of 4K
- OMX_Video_SliceMode, //!< Slice mode
- OMX_Video_NumMBRows, //!< Number of rows, each row is 16 lines of video
- OMX_Video_EntireFrame //!< Processing of entire frame data
-} OMX_VIDEO_DATASYNCMODETYPE;
-
-
-/* ========================================================================== */
-/*!
- @brief OMX_TI_VIDEO_PARAM_DATAMODE :to configure how the input and output data is fed to the Codec
- @param nPortIndex to specify the index of the port
- @param eDataMode to specify the data mode
- @sa OMX_VIDEO_DATASYNCMODETYPE
- @param nNumDataUnits to specify the number of data units (where units are of type defined by eDataMode)
- */
-/* ==========================================================================*/
-typedef struct OMX_VIDEO_PARAM_DATASYNCMODETYPE{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_VIDEO_DATASYNCMODETYPE eDataMode;
- OMX_U32 nNumDataUnits;
-} OMX_VIDEO_PARAM_DATASYNCMODETYPE;
-
-/**
- * @brief Aspect Ratio type selection for the encoded bit stream
- */
-typedef enum OMX_VIDEO_ASPECTRATIOTYPE{
- OMX_Video_AR_Unspecified, //!< Unspecified aspect ratio
- OMX_Video_AR_Square , //!< 1:1 (square) aspect ratio
- OMX_Video_AR_12_11 , //!< 12:11 aspect ratio
- OMX_Video_AR_10_11 , //!< 10:11 aspect ratio
- OMX_Video_AR_16_11 , //!< 16:11 aspect ratio
- OMX_Video_AR_40_33 , //!< 40:33 aspect ratio
- OMX_Video_AR_24_11 , //!< 24:11 aspect ratio
- OMX_Video_AR_20_11 , //!< 20:11 aspect ratio
- OMX_Video_AR_32_11 , //!< 32:11 aspect ratio
- OMX_Video_AR_80_33 , //!< 80:33 aspect ratio
- OMX_Video_AR_18_11 , //!< 18:11 aspect ratio
- OMX_Video_AR_15_15 , //!< 15:15 aspect ratio
- OMX_Video_AR_64_33 , //!< 64:33 aspect ratio
- OMX_Video_AR_160_99 , //!< 160:99 aspect ratio
- OMX_Video_AR_4_3 , //!< 4:3 aspect ratio
- OMX_Video_AR_3_2 , //!< 3:2 aspect ratio
- OMX_Video_AR_2_1 , //!< 2:1 aspect ratio
- OMX_Video_AR_Extended = 255, //!< Extended aspect ratio
- OMX_Video_AR_Extended_MAX = 0X7FFFFFFF
-}OMX_VIDEO_ASPECTRATIOTYPE;
-
-
-/* ========================================================================== */
-/*!
- @brief OMX_TI_VIDEO_PARAM_VUI_SELECT :to select the VUI Settings
- @param bAspectRatioPresent flag to indicate the insertion of aspect ratio information in VUI part of bit-stream
- @param ePixelAspectRatio to specify the Aspect Ratio
- @param bFullRange to indicate whether pixel value range is specified as full range or not (0 to 255)
-*/
-/* ==========================================================================*/
-typedef struct OMX_VIDEO_PARAM_VUIINFOTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bAspectRatioPresent;
- OMX_VIDEO_ASPECTRATIOTYPE ePixelAspectRatio;
- OMX_BOOL bFullRange;
-}OMX_VIDEO_PARAM_VUIINFOTYPE;
-
-/* ========================================================================== */
-/*!
- @brief OMX_VIDEO_CONFIG_PIXELINFOTYPE :to specify the information related to the input pixel data (aspect ratio & range) to the Codec
- so that codec can incorporate this info in the coded bit stream
- @param nWidth to specify the Aspect ratio: width of the pixel
- @param nHeight to specify the Aspect ratio: height of the pixel
- */
-/* ==========================================================================*/
-typedef struct OMX_VIDEO_CONFIG_PIXELINFOTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nWidth;
- OMX_U32 nHeight;
-} OMX_VIDEO_CONFIG_PIXELINFOTYPE;
-
-/* ========================================================================== */
-/*!
- @brief OMX_VIDEO_PARAM_AVCNALUCONTROLTYPE : to configure what NALU need to send along the frames of different types (Intra,IDR...etc)
- @param nStartofSequence to configure the different NALU (specified via enabling/disabling (1/0) the bit positions) that need to send along with the Start of sequence frame
- @param nEndofSequence to to configure the different NALU (specified via enabling/disabling (1/0) the bit positions) that need to send along with the End of sequence frame
- @param nIDR to to configure the different NALU (specified via enabling/disabling (1/0) the bit positions) that need to send along with the IDR frame
- @param nIntraPicture to to configure the different NALU (specified via enabling/disabling (1/0) the bit positions) that need to send along with the Intra frame
- @param nNonIntraPicture to to configure the different NALU (specified via enabling/disabling (1/0) the bit positions) that need to send along with the Non Intra frame
-
-Bit Position: 13| 12| 11| 10| 9| 8| 7| 6| 5| 4| 3| 2| 1| 0
-NALU TYPE: SPS_VUI|FILLER|EOSTREAM|EOSEQ|AUD|PPS|SPS|SEI|IDR_SLICE|SLICE_DP_C|SLICE_DP_B|SLICE_DP_A|SLICE|UNSPECIFIED \n
-*/
-/* ==========================================================================*/
-typedef struct OMX_VIDEO_PARAM_AVCNALUCONTROLTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nStartofSequence;
- OMX_U32 nEndofSequence;
- OMX_U32 nIDR;
- OMX_U32 nIntraPicture;
- OMX_U32 nNonIntraPicture;
-}OMX_VIDEO_PARAM_AVCNALUCONTROLTYPE;
-
-
-/* ========================================================================== */
-/*!
- @brief OMX_VIDEO_CONFIG_MESEARCHRANGETYPE : to configure Motion Estimation Parameters
- @param eMVAccuracy to specify the Motion Vector Accuracy
- @sa OMX_VIDEO_MOTIONVECTORTYPE
- @param sHorSearchRangeP to Specify the Horizontal Search range for P Frame
- @param sVerSearchRangeP to Specify the Vertical Search range for P Frame
- @param sHorSearchRangeB to Specify the Horizontal Search range for B Frame
- @param sVerSearchRangeB to Specify the Vertical Search range for B Frame
-*/
-/* ==========================================================================*/
-typedef struct OMX_VIDEO_CONFIG_MESEARCHRANGETYPE{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_VIDEO_MOTIONVECTORTYPE eMVAccuracy;
- OMX_U32 nHorSearchRangeP;
- OMX_U32 nVerSearchRangeP;
- OMX_U32 nHorSearchRangeB;
- OMX_U32 nVerSearchRangeB;
-}OMX_VIDEO_CONFIG_MESEARCHRANGETYPE;
-
-/**
- * @brief Block size specification
- */
-typedef enum OMX_VIDEO_BLOCKSIZETYPE {
- OMX_Video_Block_Size_16x16=0,
- OMX_Video_Block_Size_8x8,
- OMX_Video_Block_Size_8x4,
- OMX_Video_Block_Size_4x8,
- OMX_Video_Block_Size_4x4,
- OMX_Video_Block_Size_MAX = 0X7FFFFFFF
-}OMX_VIDEO_BLOCKSIZETYPE;
-
-/* ========================================================================== */
-/*!
- @brief OMX_VIDEO_PARAM_MEBLOCKSIZETYPE : to configure the Min Motion Estimation block size for P and B frames
- @param eMinBlockSizeP to specify the Min Block size used for Motion Estimation incase of P Frames
- @sa OMX_VIDEO_BLOCKSIZETYPE
- @param eMinBlockSizeB to specify the Min Block size used for Motion Estimation incase of B Frames
-*/
-/* ==========================================================================*/
-typedef struct OMX_VIDEO_PARAM_MEBLOCKSIZETYPE{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_VIDEO_BLOCKSIZETYPE eMinBlockSizeP;
- OMX_VIDEO_BLOCKSIZETYPE eMinBlockSizeB;
-}OMX_VIDEO_PARAM_MEBLOCKSIZETYPE;
-
-/**
- * @brief to select the chroma component used for Intra Prediction
- */
-typedef enum OMX_VIDEO_CHROMACOMPONENTTYPE {
- OMX_Video_Chroma_Component_Cr_Only=0, //!< consider only Cr chroma component for Intra prediction
- OMX_Video_Chroma_Component_Cb_Cr_Both, //!< consider both (Cb & Cr) chroma components for Intra prediction
- OMX_Video_Chroma_Component_MAX = 0X7FFFFFFF
-}OMX_VIDEO_CHROMACOMPONENTTYPE;
-
-/* ========================================================================== */
-/*!
- @brief OMX_VIDEO_PARAM_INTRAPREDTYPE : to configure the Modes for the different block sizes during Intra Prediction
- @param nLumaIntra4x4Enable to configure the Modes for 4x4 block size during luma intra prediction: bit position specifies the modes that are enabled/disabled
- HOR_UP|VERT_LEFT|HOR_DOWN|VERT_RIGHT|DIAG_DOWN_RIGHT|DIAG_DOWN_LEFT|DC|HOR|VER
- @param nLumaIntra8x8Enable to configure the Modes for 4x4 block size during luma intra prediction
- HOR_UP|VERT_LEFT|HOR_DOWN|VERT_RIGHT|DIAG_DOWN_RIGHT|DIAG_DOWN_LEFT|DC|HOR|VER
- @param nLumaIntra16x16Enable to configure the Modes for 4x4 block size during luma intra prediction
- PLANE|DC|HOR|VER
- @param nChromaIntra8x8Enable to configure the Modes for 4x4 block size during luma intra prediction
- PLANE|DC|HOR|VER
- @param eChromaComponentEnable to select the chroma components used for the intra prediction
- @sa OMX_VIDEO_CHROMACOMPONENTTYPE
-*/
-/* ==========================================================================*/
-typedef struct OMX_VIDEO_PARAM_INTRAPREDTYPE{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nLumaIntra4x4Enable;
- OMX_U32 nLumaIntra8x8Enable;
- OMX_U32 nLumaIntra16x16Enable;
- OMX_U32 nChromaIntra8x8Enable;
- OMX_VIDEO_CHROMACOMPONENTTYPE eChromaComponentEnable;
-}OMX_VIDEO_PARAM_INTRAPREDTYPE;
-
-
-/**
- * @brief Encoding Mode Preset
- */
-typedef enum OMX_VIDEO_ENCODING_MODE_PRESETTYPE {
- OMX_Video_Enc_Default=0, //!< for all the params default values are taken
- OMX_Video_Enc_High_Quality, //!< todo: mention the parameters that takes specific values depending on this selection
- OMX_Video_Enc_User_Defined,
- OMX_Video_Enc_High_Speed_Med_Quality,
- OMX_Video_Enc_Med_Speed_Med_Quality,
- OMX_Video_Enc_Med_Speed_High_Quality,
- OMX_Video_Enc_High_Speed,
- OMX_Video_Enc_Preset_MAX = 0X7FFFFFFF
-}OMX_VIDEO_ENCODING_MODE_PRESETTYPE;
-
-/**
- * @brief Rate Control Preset
- */
-typedef enum OMX_VIDEO_RATECONTROL_PRESETTYPE {
- OMX_Video_RC_Low_Delay, //!<todo: mention the parameters that takes specific values depending on this selection
- OMX_Video_RC_Storage,
- OMX_Video_RC_Twopass,
- OMX_Video_RC_None,
- OMX_Video_RC_User_Defined,
- OMX_Video_RC_MAX = 0X7FFFFFFF
-}OMX_VIDEO_RATECONTROL_PRESETTYPE;
-
-/* ========================================================================== */
-/*!
- @brief OMX_VIDEO_PARAM_ENCODER_PRESETTYPE : to select the preset for Encoding Mode & Rate Control
- @param eEncodingModePreset to specify Encoding Mode Preset
- @sa OMX_VIDEO_ENCODING_MODE_PRESETTYPE
- @param eRateControlPreset to specify Rate Control Preset
- @sa OMX_VIDEO_RATECONTROL_PRESETTYPE
-*/
-/* ==========================================================================*/
-typedef struct OMX_VIDEO_PARAM_ENCODER_PRESETTYPE{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_VIDEO_ENCODING_MODE_PRESETTYPE eEncodingModePreset;
- OMX_VIDEO_RATECONTROL_PRESETTYPE eRateControlPreset;
-}OMX_VIDEO_PARAM_ENCODER_PRESETTYPE;
-
-
-/**
- * @brief input content type
- */
-typedef enum OMX_TI_VIDEO_FRAMECONTENTTYPE {
- OMX_TI_Video_Progressive = 0, //!<Progressive frame
- OMX_TI_Video_Interlace_BothFieldsTogether = 1, //!<Interlaced frame
- OMX_TI_Video_Interlace_OneField = 2,
- OMX_TI_Video_AVC_2004_StereoInfoType = 3,
- OMX_TI_Video_AVC_2010_StereoFramePackingType = 4,
- OMX_TI_Video_FrameContentType_MAX = 0x7FFFFFFF
-}OMX_TI_VIDEO_FRAMECONTENTTYPE;
-
-/**
- * @brief Specifies the type of interlace content
- */
-typedef enum OMX_TI_VIDEO_AVC_INTERLACE_CODINGTYPE {
- OMX_TI_Video_Interlace_PICAFF = 0, //!< PicAFF type of interlace coding
- OMX_TI_Video_Interlace_MBAFF, //!< MBAFF type of interlace coding
- OMX_TI_Video_Interlace_Fieldonly, //!< Field only coding
- OMX_TI_Video_Interlace_Fieldonly_MRF=OMX_TI_Video_Interlace_Fieldonly,
- OMX_TI_Video_Interlace_Fieldonly_ARF,
- OMX_TI_Video_Interlace_Fieldonly_SPF, //!< Field only coding where codec decides the partiy of the field to be used based upon content
- OMX_Video_Interlace_MAX = 0x7FFFFFFF
-}OMX_TI_VIDEO_AVC_INTERLACE_CODINGTYPE;
-
-/* ========================================================================== */
-/*!
- @brief OMX_TI_VIDEO_PARAM_FRAMEDATACONTENTTYPE : to configure the data content
- @param eContentType to specify Content type
- @sa OMX_VIDEO_FRAMECONTENTTYPE
-*/
-/* ==========================================================================*/
-typedef struct OMX_TI_VIDEO_PARAM_FRAMEDATACONTENTTYPE{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_TI_VIDEO_FRAMECONTENTTYPE eContentType;
-}OMX_TI_VIDEO_PARAM_FRAMEDATACONTENTTYPE;
-
-/* ========================================================================== */
-/*!
- @brief OMX_TI_VIDEO_PARAM_AVCINTERLACECODING : to configure the interlace encoding related settings
- @param eInterlaceCodingType to specify the settings of interlace content
- @sa OMX_VIDEO_INTERLACE_CODINGTYPE
- @param bTopFieldFirst to specify the first field sent is top or bottom
- @param bBottomFieldIntra to specify codec that encode bottomfield also as intra or not
-*/
-/* ==========================================================================*/
-typedef struct OMX_TI_VIDEO_PARAM_AVCINTERLACECODING{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_TI_VIDEO_AVC_INTERLACE_CODINGTYPE eInterlaceCodingType;
- OMX_BOOL bTopFieldFirst;
- OMX_BOOL bBottomFieldIntra;
-}OMX_TI_VIDEO_PARAM_AVCINTERLACECODING;
-/* ========================================================================== */
-/*!
- @brief OMX_TI_VIDEO_PARAM_AVCENC_STEREOINFO2004 : to configure the 2004 related stereo information type
-*/
-/* ==========================================================================*/
-
-typedef struct OMX_TI_VIDEO_PARAM_AVCENC_STEREOINFO2004
-{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL btopFieldIsLeftViewFlag;
- OMX_BOOL bViewSelfContainedFlag;
-} OMX_TI_VIDEO_AVCENC_STEREOINFO2004;
-
-typedef enum OMX_TI_VIDEO_AVCSTEREO_FRAMEPACKTYPE{
- OMX_TI_Video_FRAMEPACK_CHECKERBOARD = 0,
- OMX_TI_Video_FRAMEPACK_COLUMN_INTERLEAVING = 1,
- OMX_TI_Video_FRAMEPACK_ROW_INTERLEAVING = 2,
- OMX_TI_Video_FRAMEPACK_SIDE_BY_SIDE = 3,
- OMX_TI_Video_FRAMEPACK_TOP_BOTTOM = 4,
- OMX_TI_Video_FRAMEPACK_TYPE_DEFAULT = OMX_TI_Video_FRAMEPACK_SIDE_BY_SIDE,
- OMX_TI_Video_FRAMEPACK_TYPE_MAX = 0x7FFFFFFF
-} OMX_TI_VIDEO_AVCSTEREO_FRAMEPACKTYPE;
-
-/* ========================================================================== */
-/*!
- @brief OMX_TI_VIDEO_PARAM_AVCENC_FRAMEPACKINGINFO2010 : to configure the 2010 related stereo information type
-*/
-/* ==========================================================================*/
-
-typedef struct OMX_TI_VIDEO_PARAM_AVCENC_FRAMEPACKINGINFO2010
-{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_TI_VIDEO_AVCSTEREO_FRAMEPACKTYPE eFramePackingType;
- OMX_U8 nFrame0PositionX;
- OMX_U8 nFrame0PositionY;
- OMX_U8 nFrame1PositionX;
- OMX_U8 nFrame1PositionY;
-}OMX_TI_VIDEO_PARAM_AVCENC_FRAMEPACKINGINFO2010;
-
-/**
- * @brief Specifies Transform Block Size
- */
-typedef enum OMX_VIDEO_TRANSFORMBLOCKSIZETYPE {
- OMX_Video_Transform_Block_Size_4x4 =0, //!< Transform blocks size is 8x8 : Valid for only High Profile
- OMX_Video_Transform_Block_Size_8x8, //!< Transform blocks size is 4x4
- OMX_Video_Transform_Block_Size_Adaptive, //!< Adaptive transform block size : encoder decides as per content
- OMX_Video_Transform_Block_Size_MAX = 0X7FFFFFFF
-}OMX_VIDEO_TRANSFORMBLOCKSIZETYPE;
-
-/* ========================================================================== */
-/*!
- @brief OMX_VIDEO_PARAM_TRANSFORM_BLOCKSIZETYPE : to select the Block Size used for transformation
- @param eTransformBlocksize to specify Block size used for transformation
- @sa OMX_VIDEO_TRANSFORMBLOCKSIZETYPE
-*/
-/* ==========================================================================*/
-
-typedef struct OMX_VIDEO_PARAM_TRANSFORM_BLOCKSIZETYPE{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_VIDEO_TRANSFORMBLOCKSIZETYPE eTransformBlocksize;
-}OMX_VIDEO_PARAM_TRANSFORM_BLOCKSIZETYPE;
-
-
-/* ========================================================================== */
-/*!
- @brief OMX_VIDEO_CONFIG_SLICECODINGTYPE : to configure the Slice Settings
- @param eSliceMode to specify the Slice mode
- @sa OMX_VIDEO_AVCSLICEMODETYPE
- @param nSlicesize to specify the sliceSize
-*/
-/* ==========================================================================*/
-
-typedef struct OMX_VIDEO_CONFIG_SLICECODINGTYPE{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_VIDEO_AVCSLICEMODETYPE eSliceMode;
- OMX_U32 nSlicesize;
-}OMX_VIDEO_CONFIG_SLICECODINGTYPE;
-
-/**
- * @brief Specifies Slice Group Change Direction Flag
- */
-typedef enum OMX_VIDEO_SLIGRPCHANGEDIRTYPE{
- OMX_Video_Raster_Scan = 0 , //!< 0 : Raster scan order
- OMX_Video_Clockwise = 0 , //!< 0 : Clockwise (used for BOX OUT FMO Params)
- OMX_Video_Right = 0 , //!< 0 : RIGHT (Used for Wipe FMO type)
- OMX_Video_Reverse_Raster_Scan= 1 , //!< 1 : Reverse Raster Scan Order
- OMX_Video_Counter_Clockwise = 1 , //!< 1 : Counter Clockwise (used for BOX OUT FMO Params)
- OMX_Video_Left = 1, //!< 1 : LEFT (Used for Wipe FMO type)
- OMX_Video_Left_MAX = 0X7FFFFFFF
-} OMX_VIDEO_SLICEGRPCHANGEDIRTYPE;
-
-/* ========================================================================== */
-/*!
- @brief OMX_TI_VIDEO_PARAM_FMO_ADVANCEDSETTINGS : to configure the FMO Settings
- @param
-*/
-/* ==========================================================================*/
-typedef struct OMX_VIDEO_PARAM_AVCADVANCEDFMOTYPE{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U8 nNumSliceGroups;
- OMX_U8 nSliceGroupMapType;
- OMX_VIDEO_SLICEGRPCHANGEDIRTYPE eSliceGrpChangeDir;
- OMX_U32 nSliceGroupChangeRate;
- OMX_U32 nSliceGroupChangeCycle;
- OMX_U32 nSliceGroupParams[H264ENC_MAXNUMSLCGPS] ;
-}OMX_VIDEO_PARAM_AVCADVANCEDFMOTYPE;
-
-/* ========================================================================== */
-/*!
- @brief OMX_TI_VIDEO_CONFIG_QPSETTINGS : to configure the Qp Settings of I, P &B Frames
- @param nQpI
-*/
-/* ==========================================================================*/
-
-typedef struct OMX_VIDEO_CONFIG_QPSETTINGSTYPE{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nQpI;
- OMX_U32 nQpMaxI;
- OMX_U32 nQpMinI;
- OMX_U32 nQpP;
- OMX_U32 nQpMaxP;
- OMX_U32 nQpMinP;
- OMX_U32 nQpOffsetB;
- OMX_U32 nQpMaxB;
- OMX_U32 nQpMinB;
-}OMX_VIDEO_CONFIG_QPSETTINGSTYPE;
-
-/* ========================================================================== */
-/*!
- @brief OMX_TI_VIDEO_PARAM_AVCHRDBUFFERSETTING : to configure the HRD
- (Hypothetical Reference Decoder) related params
- @param nInitialBufferLevel Initial buffer level for HRD compliance
- @param nHRDBufferSize Hypothetical Reference Decoder buffer size
- @param nTargetBitrate Target bitrate to encode with
-*/
-/* ==========================================================================*/
-
-typedef struct OMX_TI_VIDEO_PARAM_AVCHRDBUFFERSETTING {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nInitialBufferLevel;
- OMX_U32 nHRDBufferSize;
- OMX_U32 nTargetBitrate;
-} OMX_TI_VIDEO_PARAM_AVCHRDBUFFERSETTING;
-
-/* ========================================================================== */
-/*!
- @brief OMX_TI_VIDEO_CONFIG_AVCHRDBUFFERSETTING : to configure the HRD
- (Hypothetical Reference Decoder) related params
- @param nHRDBufferSize Hypothetical Reference Decoder Buffer Size
- @param nEncodeBitrate Target bitrate to encode with
-
-*/
-/* ==========================================================================*/
-
-typedef struct OMX_TI_VIDEO_CONFIG_AVCHRDBUFFERSETTING {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nHRDBufferSize;
- OMX_U32 nEncodeBitrate;
-} OMX_TI_VIDEO_CONFIG_AVCHRDBUFFERSETTING;
-
-/* ========================================================================= */
-/*!
- @brief OMX_TI_VIDEO_CODINGTYPE :
- Extension to video coding type enum for VP6 and VP7
- @param
-*/
-/* ==========================================================================*/
-
-typedef enum OMX_TI_VIDEO_CODINGTYPE {
- OMX_VIDEO_CodingVP6 =
- (OMX_VIDEO_CODINGTYPE) OMX_VIDEO_CodingVendorStartUnused +1, /* VP6 */
- OMX_VIDEO_CodingVP7, /* VP7 */
- OMX_TI_VIDEO_CodingSORENSONSPK, /* Sorenson spark*/
- OMX_VIDEO_CodingSVC, /**< H.264/SVC */
-}OMX_TI_VIDEO_CODINGTYPE;
-
-
-/* ========================================================================= */
-/*!
- @brief OMX_TI_VIDEO_MPEG4LEVELTYPE:
- Extension to MPEG-4 level to cater to level 6
- @param
-*/
-/* ==========================================================================*/
-typedef enum OMX_TI_VIDEO_MPEG4LEVELTYPE {
- OMX_TI_VIDEO_MPEG4Level6 =
- (OMX_VIDEO_MPEG4LEVELTYPE) OMX_VIDEO_MPEG4LevelVendorStartUnused + 1
-} OMX_TI_VIDEO_MPEG4LEVELTYPE;
-
-
-
-/**
- * @brief Specifies various intra refresh methods
- */
-typedef enum OMX_TI_VIDEO_INTRAREFRESHTYPE {
- OMX_TI_VIDEO_IntraRefreshNone = 0,
- OMX_TI_VIDEO_IntraRefreshCyclicMbs,
- OMX_TI_VIDEO_IntraRefreshCyclicRows,
- OMX_TI_VIDEO_IntraRefreshMandatory,
- OMX_TI_VIDEO_IntraRefreshMax = 0x7FFFFFFF
-} OMX_TI_VIDEO_INTRAREFRESHTYPE;
-
-
-/* ========================================================================== */
-/*!
- @brief OMX_TI_VIDEO_PARAM_INTRAREFRESHTYPE : Configuration parameters for
- intra refresh settings
- @param eRefreshMode Various refresh modes supported
- @param nIntraRefreshRate Intra refresh rate
-*/
-/* ==========================================================================*/
-
-typedef struct OMX_TI_VIDEO_PARAM_INTRAREFRESHTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_TI_VIDEO_INTRAREFRESHTYPE eRefreshMode;
- OMX_U32 nIntraRefreshRate;
-} OMX_TI_VIDEO_PARAM_INTRAREFRESHTYPE;
-
-
-/* ============================================================================= */
-/*!
- @brief OMX_TI_STEREODECINFO : Structure to access 2004 SEI message generated by
- H264 decoder as metatadata on its output port.
- */
-/* ============================================================================= */
-
-typedef struct OMX_TI_STEREODECINFO {
- OMX_U32 nFieldViewsFlag;
- OMX_U32 nTopFieldIsLeftViewFlag;
- OMX_U32 nCurrentFrameIsLeftViewFlag;
- OMX_U32 nNextFrameIsSecondViewFlag;
- OMX_U32 nLeftViewSelfContainedFlag;
- OMX_U32 nRightViewSelfContainedFlag;
-} OMX_TI_STEREODECINFO;
-
-typedef struct OMX_TI_FRAMEPACKINGDECINFO {
- OMX_U32 nFramePackingArrangementId;
- OMX_U32 nFramePackingArrangementRepetitionPeriod;
- OMX_U8 nFramePackingArrangementCancelFlag;
- OMX_U8 nFramePackingArrangementType;
- OMX_U8 nQuincunxSamplingFlag;
- OMX_U8 nContentInterpretationType;
- OMX_U8 nSpatialFlippingFlag;
- OMX_U8 nFrame0FlippedFlag;
- OMX_U8 nFieldViewsFlag;
- OMX_U8 nCurrentFrameIsFrame0Flag;
- OMX_U8 nFrame0SelfContainedFlag;
- OMX_U8 nFrame1SelfContainedFlag;
- OMX_U8 nFrame0GridPositionX;
- OMX_U8 nFrame0GridPositionY;
- OMX_U8 nFrame1GridPositionX;
- OMX_U8 nFrame1GridPositionY;
- OMX_U8 nFramePackingArrangementReservedByte;
- OMX_U8 nFramePackingArrangementExtensionFlag;
-} OMX_TI_FRAMEPACKINGDECINFO;
-
-/* ============================================================================= */
-/*!
- @brief OMX_TI_VIDEO_RANGEMAPPING : Structure to access luma and chroma range
- mapping generated by decoders as
- metatadata on its output port.
- @param nRangeMappingLuma Luma scale factor for range mapping.
- @param nRangeMappingChroma Chroma scale factor for range mapping.
-*/
-/* ============================================================================= */
-
-typedef struct OMX_TI_VIDEO_RANGEMAPPING {
- OMX_U32 nRangeMappingLuma;
- OMX_U32 nRangeMappingChroma;
-} OMX_TI_VIDEO_RANGEMAPPING;
-
-/* ============================================================================= */
-/*!
- @brief OMX_TI_VIDEO_RESCALINGMATRIX : Structure to access rescaled
- width/height generated by decoders
- as metatadata on its output port.
- @param nScaledHeight Scaled image width for post processing for decoder.
- @param nScaledWidth Scaled image height for post processing for decoder.
-*/
-/* ============================================================================= */
-
-typedef struct OMX_TI_VIDEO_RESCALINGMATRIX {
- OMX_U32 nScaledHeight;
- OMX_U32 nScaledWidth;
-} OMX_TI_VIDEO_RESCALINGMATRIX;
-
-
-/*==========================================================================*/
-/*!
- @brief OMX_TI_PARAM_PAYLOADHEADERFLAG : To specify the payload headerflag
- for VP6/VP7 decoder.
- @param bPayloadHeaderFlag Flag - TRUE indicates that frame length and
- timestamp(for IVF format) will be part of
- frame input buffer.
- Flag - FALSE indecates that frame length and
- timestamp(for IVF format) will not be part of
- the input buffer.
-*/
-/*==========================================================================*/
-
-typedef struct OMX_TI_PARAM_PAYLOADHEADERFLAG {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_BOOL bPayloadHeaderFlag;
-} OMX_TI_PARAM_PAYLOADHEADERFLAG;
-
-
-/*==========================================================================*/
-/*!
-@brief OMX_TI_PARAM_IVFFLAG : Suport added to handle IVF header Decoding Mode
-@param bIvfFlag TRUE enables IVF decoding mode.
- FALSE indicates bitstream format is non-IVF.
-*/
-/*==========================================================================*/
-
-typedef struct OMX_TI_PARAM_IVFFLAG {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_BOOL bIvfFlag;
-} OMX_TI_PARAM_IVFFLAG;
-
-// A pointer to this struct is passed to OMX_SetParameter() when the extension
-// index "OMX.google.android.index.storeMetaDataInBuffers"
-// is given.
-//
-// When meta data is stored in the video buffers passed between OMX clients
-// and OMX components, interpretation of the buffer data is up to the
-// buffer receiver, and the data may or may not be the actual video data, but
-// some information helpful for the receiver to locate the actual data.
-// The buffer receiver thus needs to know how to interpret what is stored
-// in these buffers, with mechanisms pre-determined externally. How to
-// interpret the meta data is outside of the scope of this method.
-//
-// Currently, this is specifically used to pass meta data from video source
-// (camera component, for instance) to video encoder to avoid memcpying of
-// input video frame data. To do this, bStoreMetaDta is set to OMX_TRUE.
-// If bStoreMetaData is set to false, real YUV frame data will be stored
-// in the buffers. In addition, if no OMX_SetParameter() call is made
-// with the corresponding extension index, real YUV data is stored
-// in the buffers.
-typedef struct OMX_VIDEO_STOREMETADATAINBUFFERSPARAMS {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bStoreMetaData;
-} OMX_VIDEO_STOREMETADATAINBUFFERSPARAMS;
-
-
-/**
- * Interlaced Video Content format
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nFormat : bitmapped value indentifying the interlaced formats supported by component
- * nTimeStamp : temporal timestamp information for the second field
- */
-typedef struct OMX_TI_INTERLACEFORMATTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nFormat;
- OMX_TICKS nTimeStamp;
-} OMX_TI_INTERLACEFORMATTYPE;
-
-/**
- * Interlace format types
- */
-typedef enum OMX_TI_INTERLACETYPE {
- OMX_InterlaceFrameProgressive= 0x00,
- OMX_InterlaceInterleaveFrameTopFieldFirst= 0x01,
- OMX_InterlaceInterleaveFrameBottomFieldFirst= 0x02,
- OMX_InterlaceFrameTopFieldFirst= 0x04,
- OMX_InterlaceFrameBottomFieldFirst= 0x08,
- OMX_InterlaceInterleaveFieldTop= 0x10,
- OMX_InterlaceInterleaveFieldBottom= 0x20,
- OMX_InterlaceFmtMask= 0x7FFFFFFF
-} OMX_TI_INTERLACETYPE;
-
-/**
- * To query if the stream contains interlaced or progressive conten
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * bInterlaceFormat : whether the stream contains interlace or progressive content
- * OMX_TRUE indicates interlace and OMX_FALSE indicates progressive
- * nInterlaceFormats : bitmapped value identifying the interlace formats detected within the stream
- */
-typedef struct OMX_TI_STREAMINTERLACEFORMATTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bInterlaceFormat;
- OMX_U32 nInterlaceFormats;
-} OMX_TI_STREAMINTERLACEFORMAT;
-
-/*
-@brief OMX_TI_VIDEO_CONFIG_PICSIZECONTROLINFO : Structure to provide the configuration to compute min and max picture size
-@param minPicSizeRatio : This ratio is used to compute minimum picture size in the following manner,
-minPicSize = averagePicSize >> minPicSizeRatio. Allowed values are 1 to 4. Setting this to 0 will enable encoder chosen ratio.
-@param maxPicSizeRatio : This ratio is used to compute maximum picture size in the following manner,
-maxPicSize = averagePicSize * maxPicSizeRatio. Allowed values are 2 to 30. Setting this to 0 or 1 will enable encoder chosen ratio.
-*/
-/* ============================================================================= */
-typedef struct OMX_TI_VIDEO_CONFIG_PICSIZECONTROLINFO {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U16 minPicSizeRatio;
- OMX_U16 maxPicSizeRatio;
-} OMX_TI_VIDEO_CONFIG_PICSIZECONTROLINFO;
-
-
-/*!====================================================================!
-
- Currently we only support SVC baseline profile
-
- * !====================================================================!*/
- typedef enum OMX_TI_VIDEO_SVCPROFILETYPE {
- OMX_VIDEO_SVCProfileBaseline = 0x01, /**< Baseline profile */
- OMX_VIDEO_SVCProfileHigh = 0x02, /**< High profile */
- OMX_VIDEO_SVCProfileHighIntra = 0x03, /**< High Intra profile */
- OMX_VIDEO_SVCProfileMax = 0x7FFFFFFF
- } OMX_TI_VIDEO_SVCPROFILETYPE;
-
-
-/*!====================================================================!
-
- Currently we support only SVC baseline profile upto level 4 for SVC encoder.
-
- * !====================================================================!*/
- typedef enum OMX_TI_VIDEO_SVCLEVELTYPE {
- OMX_VIDEO_SVCLevel1 = 0x01, /**< Level 1 */
- OMX_VIDEO_SVCLevel1b = 0x02, /**< Level 1b */
- OMX_VIDEO_SVCLevel11 = 0x04, /**< Level 1.1 */
- OMX_VIDEO_SVCLevel12 = 0x08, /**< Level 1.2 */
- OMX_VIDEO_SVCLevel13 = 0x10, /**< Level 1.3 */
- OMX_VIDEO_SVCLevel2 = 0x20, /**< Level 2 */
- OMX_VIDEO_SVCLevel21 = 0x40, /**< Level 2.1 */
- OMX_VIDEO_SVCLevel22 = 0x80, /**< Level 2.2 */
- OMX_VIDEO_SVCLevel3 = 0x100, /**< Level 3 */
- OMX_VIDEO_SVCLevel31 = 0x200, /**< Level 3.1 */
- OMX_VIDEO_SVCLevel32 = 0x400, /**< Level 3.2 */
- OMX_VIDEO_SVCLevel4 = 0x800, /**< Level 4 */
- OMX_VIDEO_SVCLevel41 = 0x1000, /**< Level 4.1 */
- OMX_VIDEO_SVCLevel42 = 0x2000, /**< Level 4.2 */
- OMX_VIDEO_SVCLevel5 = 0x4000, /**< Level 5 */
- OMX_VIDEO_SVCLevel51 = 0x8000, /**< Level 5.1 */
- OMX_VIDEO_SVCLevelMax = 0x7FFFFFFF
- } OMX_TI_VIDEO_SVCLEVELTYPE;
-
-
- typedef struct OMX_VIDEO_SVC_STD_PARAMS {
- OMX_U32 nSliceHeaderSpacing;
- OMX_U32 nPFrames;
- OMX_U32 nBFrames;
- OMX_BOOL bUseHadamard;
- OMX_U32 nRefFrames;
- OMX_U32 nRefIdx10ActiveMinus1;
- OMX_U32 nRefIdx11ActiveMinus1;
- OMX_BOOL bEnableUEP;
- /* Not needed as per SVC encoder requirements
- OMX_BOOL bEnableFMO;
- OMX_BOOL bEnableASO;
- OMX_BOOL bEnableRS;
- */
- OMX_VIDEO_AVCLOOPFILTERTYPE eLoopFilterMode;
- OMX_U32 nAllowedPictureTypes;
- OMX_BOOL bFrameMBsOnly;
- OMX_BOOL bMBAFF;
- OMX_BOOL bEntropyCodingCABAC;
- OMX_BOOL bWeightedPPrediction;
- OMX_U32 nWeightedBipredicitonMode;
- OMX_BOOL bconstIpred;
- OMX_BOOL bDirect8x8Inference;
- OMX_BOOL bDirectSpatialTemporal;
- OMX_U32 nCabacInitIdc;
- } OMX_VIDEO_SVC_STD_PARAMS;
-
-
- typedef struct OMX_VIDEO_SVC_RECTTYPE {
- OMX_S32 nLeft;
- OMX_S32 nTop;
- OMX_U32 nWidth;
- OMX_U32 nHeight;
- } OMX_VIDEO_SVC_RECTTYPE;
-
-
- typedef struct OMX_VIDEO_SVC_BITRATETYPE {
- OMX_VIDEO_CONTROLRATETYPE eControlRate;
- OMX_U32 nTargetBitrate;
- } OMX_VIDEO_SVC_BITRATETYPE;
-
-
- typedef struct OMX_VIDEO_SVC_MOTIONVECTORTYPE {
- OMX_VIDEO_MOTIONVECTORTYPE eAccuracy;
- OMX_BOOL bUnrestrictedMVs;
- OMX_BOOL bFourMV;
- OMX_S32 sXSearchRange;
- OMX_S32 sYSearchRange;
- } OMX_VIDEO_SVC_MOTIONVECTORTYPE;
-
-
- typedef struct OMX_VIDEO_SVC_QUANTIZATIONTYPE {
- OMX_U32 nQpI;
- OMX_U32 nQpP;
- OMX_U32 nQpB;
- } OMX_VIDEO_SVC_QUANTIZATIONTYPE;
-
-
- typedef struct OMX_VIDEO_SVC_INTRAREFRESHTYPE {
- OMX_VIDEO_INTRAREFRESHTYPE eRefreshMode;
- OMX_U32 nAirMBs;
- OMX_U32 nAirRef;
- OMX_U32 nCirMBs;
- } OMX_VIDEO_SVC_INTRAREFRESHTYPE;
-
-
- typedef struct OMX_VIDEO_SVC_VBSMCTYPE {
- OMX_BOOL b16x16;
- OMX_BOOL b16x8;
- OMX_BOOL b8x16;
- OMX_BOOL b8x8;
- OMX_BOOL b8x4;
- OMX_BOOL b4x8;
- OMX_BOOL b4x4;
- } OMX_VIDEO_SVC_VBSMCTYPE;
-
-
- typedef struct OMX_VIDEO_SVC_NALUCONTROLTYPE {
- OMX_U32 nStartofSequence;
- OMX_U32 nEndofSequence;
- OMX_U32 nIDR;
- OMX_U32 nIntraPicture;
- OMX_U32 nNonIntraPicture;
- }OMX_VIDEO_SVC_NALUCONTROLTYPE;
-
-
- typedef struct OMX_VIDEO_SVC_MEBLOCKSIZETYPE {
- OMX_VIDEO_BLOCKSIZETYPE eMinBlockSizeP;
- OMX_VIDEO_BLOCKSIZETYPE eMinBlockSizeB;
- }OMX_VIDEO_SVC_MEBLOCKSIZETYPE;
-
-
- typedef struct OMX_VIDEO_SVC_INTRAPREDTYPE {
- OMX_U32 nLumaIntra4x4Enable;
- OMX_U32 nLumaIntra8x8Enable;
- OMX_U32 nLumaIntra16x16Enable;
- OMX_U32 nChromaIntra8x8Enable;
- OMX_VIDEO_CHROMACOMPONENTTYPE eChromaComponentEnable;
- }OMX_VIDEO_SVC_INTRAPREDTYPE;
-
-
- typedef struct OMX_VIDEO_SVC_ENCODER_PRESETTYPE {
- OMX_VIDEO_ENCODING_MODE_PRESETTYPE eEncodingModePreset;
- OMX_VIDEO_RATECONTROL_PRESETTYPE eRateControlPreset;
- }OMX_VIDEO_SVC_ENCODER_PRESETTYPE;
-
-
- typedef struct OMX_VIDEO_SVC_VUIINFOTYPE {
- OMX_BOOL bAspectRatioPresent;
- OMX_VIDEO_ASPECTRATIOTYPE ePixelAspectRatio;
- OMX_BOOL bFullRange;
- }OMX_VIDEO_SVC_VUIINFOTYPE;
-
-
- typedef struct OMX_VIDEO_SVC_HRDBUFFERSETTING {
- OMX_U32 nInitialBufferLevel;
- OMX_U32 nHRDBufferSize;
- OMX_U32 nTargetBitrate;
- }OMX_VIDEO_SVC_HRDBUFFERSETTING;
-
-
- typedef struct OMX_VIDEO_SVC_INTRAPERIOD {
- OMX_U32 nIDRPeriod;
- OMX_U32 nPFrames;
- } OMX_VIDEO_SVC_INTRAPERIOD;
-
-
- typedef struct OMX_VIDEO_SVC_PIXELINFOTYPE {
- OMX_U32 nWidth;
- OMX_U32 nHeight;
- } OMX_VIDEO_SVC_PIXELINFOTYPE;
-
-
- typedef struct OMX_VIDEO_SVC_MESEARCHRANGETYPE {
- OMX_VIDEO_MOTIONVECTORTYPE eMVAccuracy;
- OMX_U32 nHorSearchRangeP;
- OMX_U32 nVerSearchRangeP;
- OMX_U32 nHorSearchRangeB;
- OMX_U32 nVerSearchRangeB;
- }OMX_VIDEO_SVC_MESEARCHRANGETYPE;
-
-
- typedef struct OMX_VIDEO_SVC_QPSETTINGSTYPE {
- OMX_U32 nQpI;
- OMX_U32 nQpMaxI;
- OMX_U32 nQpMinI;
- OMX_U32 nQpP;
- OMX_U32 nQpMaxP;
- OMX_U32 nQpMinP;
- OMX_U32 nQpOffsetB;
- OMX_U32 nQpMaxB;
- OMX_U32 nQpMinB;
- }OMX_VIDEO_SVC_QPSETTINGSTYPE;
-
-
- typedef struct OMX_VIDEO_SVC_SLICECODINGTYPE {
- OMX_VIDEO_AVCSLICEMODETYPE eSliceMode;
- OMX_U32 nSlicesize;
- }OMX_VIDEO_SVC_SLICECODINGTYPE;
-
-
- typedef struct OMX_VIDEO_EXEC_SVC_HRDBUFFERSETTING {
- OMX_U32 nHRDBufferSize;
- OMX_U32 nEncodeBitrate;
- }OMX_VIDEO_EXEC_SVC_HRDBUFFERSETTING;
-
-/**
- * SVC params
- *
- * STRUCT MEMBERS:
- * nSize : Size of the structure in bytes
- * nVersion : OMX specification version information
- * nPortIndex : Port that this structure applies to
- * nSliceHeaderSpacing : Number of macroblocks between slice header, put
- * zero if not used
- * nPFrames : Number of P frames between each I frame
- * nBFrames : Number of B frames between each I frame
- * bUseHadamard : Enable/disable Hadamard transform
- * nRefFrames : Max number of reference frames to use for inter
- * motion search (1-16)
- * nRefIdxTrailing : Pic param set ref frame index (index into ref
- * frame buffer of trailing frames list), B frame
- * support
- * nRefIdxForward : Pic param set ref frame index (index into ref
- * frame buffer of forward frames list), B frame
- * support
- * bEnableUEP : Enable/disable unequal error protection. This
- * is only valid of data partitioning is enabled.
- * bEnableFMO : Enable/disable flexible macroblock ordering
- * bEnableASO : Enable/disable arbitrary slice ordering
- * bEnableRS : Enable/disable sending of redundant slices
- * eProfile : AVC profile(s) to use
- * eLevel : AVC level(s) to use
- * nAllowedPictureTypes : Specifies the picture types allowed in the
- * bitstream
- * bFrameMBsOnly : specifies that every coded picture of the
- * coded video sequence is a coded frame
- * containing only frame macroblocks
- * bMBAFF : Enable/disable switching between frame and
- * field macroblocks within a picture
- * bEntropyCodingCABAC : Entropy decoding method to be applied for the
- * syntax elements for which two descriptors appear
- * in the syntax tables
- * bWeightedPPrediction : Enable/disable weighted prediction shall not
- * be applied to P and SP slices
- * nWeightedBipredicitonMode : Default weighted prediction is applied to B
- * slices
- * bconstIpred : Enable/disable intra prediction
- * bDirect8x8Inference : Specifies the method used in the derivation
- * process for luma motion vectors for B_Skip,
- * B_Direct_16x16 and B_Direct_8x8 as specified
- * in subclause 8.4.1.2 of the AVC spec
- * bDirectSpatialTemporal : Flag indicating spatial or temporal direct
- * mode used in B slice coding (related to
- * bDirect8x8Inference) . Spatial direct mode is
- * more common and should be the default.
- * nCabacInitIdx : Index used to init CABAC contexts
- * eLoopFilterMode : Enable/disable loop filter
- */
- typedef struct OMX_TI_VIDEO_PARAM_SVCTYPE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
-
- OMX_U32 nActualFrameWidth;
- OMX_U32 nActualFrameHeight;
- OMX_S32 nStride;
- OMX_U32 xFramerate;
- OMX_COLOR_FORMATTYPE eColorFormat;
- OMX_VIDEO_SVC_RECTTYPE sRecType;
-
- OMX_VIDEO_SVC_STD_PARAMS sBasicParams;
-
- OMX_U32 nRefFrames;
- OMX_TI_VIDEO_SVCPROFILETYPE eProfile;
- OMX_TI_VIDEO_SVCLEVELTYPE eLevel;
-
- OMX_U32 xEncodeFramerate;
- OMX_VIDEO_SVC_BITRATETYPE sBitRateParams;
-
- OMX_VIDEO_SVC_MOTIONVECTORTYPE sMotionVectorParams;
- OMX_VIDEO_SVC_QUANTIZATIONTYPE sQuantizationParams;
- OMX_VIDEO_SVC_INTRAREFRESHTYPE sIntraRefreshParams;
- OMX_VIDEO_SVC_VBSMCTYPE sVBSMCParams;
-
- //OMX_NALUFORMATSTYPE eNaluFormat;
- OMX_VIDEO_SVC_NALUCONTROLTYPE sNalUnitParams;
-
- OMX_VIDEO_SVC_MEBLOCKSIZETYPE sMEBlockSizeParams;
- OMX_VIDEO_SVC_INTRAPREDTYPE sIntraPredParams;
- OMX_VIDEO_SVC_ENCODER_PRESETTYPE sEncPresetParams;
- OMX_VIDEO_TRANSFORMBLOCKSIZETYPE eTransformBlocksize;
- OMX_VIDEO_SVC_VUIINFOTYPE sVUIInfoParams;
- OMX_VIDEO_SVC_HRDBUFFERSETTING sHRDBufferParams;
-
- OMX_U32 nNumTemporalLayers;
- OMX_S32 nDependencyID;
- OMX_S32 nQualityID;
- //OMX_VIDEO_SVC_ENCODE_MODE eModeOfEncode;
-
- OMX_U32 nErrorConcealmentMode;
- OMX_U32 nDeblockFilterMode;
- } OMX_TI_VIDEO_PARAM_SVCTYPE;
-
- typedef struct OMX_TI_VIDEO_CONFIG_SVCLAYERDETAILS {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
-
- OMX_U32 nNumLayers;
- OMX_U32 nLayerId;
- OMX_U8 nPriorityId;
- OMX_U8 nDependencyId;
- OMX_U8 nQualityId;
- OMX_U8 nTemporalId;
- OMX_U8 nBitrateInfoPresentFlag;
- OMX_U8 nFramerateInfoPresentFlag;
- OMX_U8 nFramesizeInfoPresentFlag;
- OMX_U16 nAvgBitrate;
- OMX_U16 nMaxBitrate;
- OMX_U16 nAvgFramerate;
- OMX_U32 nFrameWidth;
- OMX_U32 nFrameHeight;
-
- OMX_U32 nLayerIndex; /* Used to query for individual layer details */
-
-} OMX_TI_VIDEO_CONFIG_SVCLAYERDETAILS;
-
-typedef struct OMX_TI_VIDEO_CONFIG_SVCTARGETLAYER {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
-
- OMX_U32 nSvcTargetLayerDID;
- OMX_U32 nSvcTargetLayerTID;
- OMX_U32 nSvcTargetLayerQID;
-
-} OMX_TI_VIDEO_CONFIG_SVCTARGETLAYER;
-/* ========================================================================== */
-/*!
-@brief OMX_TI_VIDEO_SLICEDATAINFO : to configure the Slice Settings
-@param nNumofSlices number of validfields to be read
-@param nSliceSizeConfigured variable that indicates the MaxSlice configured
- & (n*nSliceSizeConfigured) gives the buff offset
- for nth slice in the o/p buffer
-@param nSliceSize gives the SliceSize
-*/
-/* ==========================================================================*/
-typedef struct OMX_TI_VIDEO_SLICEDATAINFO {
- OMX_U32 nNumofSlices;
- OMX_U32 nSliceSizeConfigured;
- OMX_U32 nSliceSize[OMXH264E_MAX_SLICE_SUPPORTED];
-} OMX_TI_VIDEO_SLICEDATAINFO;
-/**
-* @brief mode selection for the data that is given to the Codec
- */
-
-typedef enum _OMX_VIDEO_AVCLTRMODE {
- OMX_H264ENC_LTRP_NONE = 0,
- /**< No longterm refernce frame in the sequnce
- */
- OMX_H264ENC_LTRP_REFERTOIDR = 1,
- /**< Mark all the I frames as long term-reference frames and
- * based on the frame control IH264ENC_Control, refere to
- * a long-term reference frame (I frame).
- */
- OMX_H264ENC_LTRP_REFERTOP_PROACTIVE =2,
- /**< Two long term frames are supported in this schme and
- * long-term index marking and refernce frame update is done based
- * the IH264ENC_Control values
- */
- OMX_H264ENC_LTRP_REFERTOP_REACTIVE = 3
- /**< This is not supported in the current version of encoder
- */
-} OMX_VIDEO_AVCLTRMODE;
-
-
-/* ============================================================================= */
-/*
-@brief OMX_TI_VIDEO_PARAM_AVC_LTRP : Structure to enable the configuration of Long Term reference Picture feature in H264 Encoder for the session
-Enabling this parameter will instruct encoder to keep its recent I/IDR frame in its reference buffer list.
-So it increases the DDR foot print by one frame buffer
-@param eLTRMode : enables the LongTerm Reference Picture, possible modes: 0, 1, 2
-@param nLTRInterval : interval of the write indicating to codec interms of the frame number
-*/
-/* ============================================================================= */
-typedef struct OMX_TI_VIDEO_PARAM_AVC_LTRP{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_VIDEO_AVCLTRMODE eLTRMode;
- OMX_U32 nLTRInterval;
-} OMX_TI_VIDEO_PARAM_AVC_LTRP;
-
-/*
-@brief OMX_TI_VIDEO_CONFIG_AVC_LTRP : Structure to provide the configuration to acknowledge successful decode of previous LTR
-@param eLTRFrameDecoded : tells the decoder that the LTR has been decoded successfully when set to TRUE
-*/
-/* ============================================================================= */
-typedef struct OMX_TI_VIDEO_CONFIG_AVC_LTRP{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bEnableNextLTR;
-} OMX_TI_VIDEO_CONFIG_AVC_LTRP;
-
-/* ============================================================================= */
-/*
-@brief OMX_TI_VIDEO_CONFIG_AVC_LTRP_INTERVAL : Structure to enable the update of the LTRP
-Interval during runtime
-@param nLTRInterval : interval of the write indicating to codec interms of the frame number
-*/
-/* ============================================================================= */
-typedef struct OMX_TI_VIDEO_CONFIG_AVC_LTRP_INTERVAL{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_U32 nLTRInterval;
-} OMX_TI_VIDEO_CONFIG_AVC_LTRP_INTERVAL;
-
-/* ============================================================================= */
-/*
-@brief OMX_TI_VIDEO_CONFIG_AVC_LTRP_INTERVAL : Structure to enable timestamps in decode order
- at i/p of decoders.
-*/
-/* ============================================================================= */
-typedef struct OMX_TI_PARAM_TIMESTAMP_IN_DECODE_ORDER{
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_BOOL bEnabled;
-} OMX_TI_PARAM_TIMESTAMP_IN_DECODE_ORDER;
-
-/* ============================================================================= */
-/*
-@brief OMX_TI_VIDEO_PARAM_AUTO_FRAMERATE_UPDATE : Structure to enable dynamic update of frame rate
-*/
-/* ============================================================================= */
-typedef struct OMX_TI_VIDEO_PARAM_AUTO_FRAMERATE_UPDATE {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bEnableAutoVFRUpdate;
- OMX_U32 nDiffThresholdtoUpdate;
- OMX_U32 nMaxSessionFrameRate;
-} OMX_TI_VIDEO_PARAM_AUTO_FRAMERATE_UPDATE;
-
-/* ============================================================================= */
-/*
-@brief OMX_TI_PARAM_SKIP_GREY_OUTPUT_FRAMES : Structure to enable feature to skip grey output
- frames which doesn't have proper reference.
-*/
-/* ============================================================================= */
-typedef struct OMX_TI_PARAM_SKIP_GREY_OUTPUT_FRAMES {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_BOOL bEnabled;
-} OMX_TI_PARAM_SKIP_GREY_OUTPUT_FRAMES;
-
-/* ============================================================================= */
-/*
-@brief OMX_TI_PARAM_DECMETADATA : Structure to enable different codec metadata
- for video decoders.
-*/
-/* ============================================================================= */
-typedef struct OMX_TI_PARAM_DECMETADATA {
- OMX_U32 nSize;
- OMX_VERSIONTYPE nVersion;
- OMX_U32 nPortIndex;
- OMX_BOOL bEnableMBInfo;
- OMX_BOOL bEnableTranscodeMode;
- OMX_BOOL bEnableSEIInfo;
- OMX_BOOL bEnableVUIInfo;
-} OMX_TI_PARAM_DECMETADATA;
-
-/**
- ******************************************************************************
- * @enum OMX_TI_VIDEO_MBERRSTATUS
- * @brief This enum indicates if a MB was in error or not
- *
- ******************************************************************************
-*/
-typedef enum {
- OMX_TI_VIDEO_MB_NOERROR = 0,
- /**
- * MB was non-erroneous
- */
- OMX_TI_VIDEO_MB_ERROR = 1
- /**
- * MB was erroneous
- */
-} OMX_TI_VIDEO_MBERRSTATUS;
-
-
-/**
- * Macro definitions required for SEI support: HRD sequence parameter set
- */
-#define OMX_TI_VIDEO_H264VDEC_MAXCPBCNT 32
-
-/**
- * Macro definitions required for SEI support: HRD sequence parameter set
- */
-#define OMX_TI_VIDEO_H264VDEC_MAXUSERDATA_PAYLOAD 300
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_HrdParams
- *
- * @brief This structure contains the HRD parameter elements.
- *
- * @param cpb_cnt_minus1 : Number of alternative CPB specifications in the
- * bit-stream
- * @param bit_rate_scale : Together with bit_rate_value[i], it specifies the
- * maximum input bit-rate for the ith CPB.
- * @param cpb_size_scale : Together with cpb_size_value[i], specifies the
- * maximum CPB size for the ith CPB.
- * @param bit_rate_value_minus1[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT] :Maximum input bitrate
- * for the ith CPB
- * @param cpb_size_value_minus1[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT] :Maximum CPB size for the
- * ith CPB
- * @param vbr_cbr_flag[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT] :Specifies the ith CPB is operated
- * in Constant Bit-rate mode or variable bit-rate mode
- * @param initial_cpb_removal_delay_length_minus1 :Length in bits of
- * initial_cpb_removal_length syntax element
- * @param cpb_removal_delay_length_minus1 :Length in bits of
- * cpb_removal_delay_length syntax element
- * @param dpb_output_delay_length_minus1 :Length in bits of
- * dpb_output_delay_length syntax element
- * @param time_offset_length : Length in bits of time_offset syntax element
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_HrdParams {
- OMX_U32 cpb_cnt_minus1;
- OMX_U8 bit_rate_scale;
- OMX_U8 cpb_size_scale;
- OMX_U32 bit_rate_value_minus1[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT];
- OMX_U32 cpb_size_value_minus1[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT];
- OMX_U8 vbr_cbr_flag[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT];
- OMX_U8 initial_cpb_removal_delay_length_minus1;
- OMX_U8 cpb_removal_delay_length_minus1;
- OMX_U8 dpb_output_delay_length_minus1;
- OMX_U8 time_offset_length;
-} OMX_TI_VIDEO_H264VDEC_HrdParams;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_SVCVuiParams
- *
- * @brief This structure contains VUI message syntax elements for scalable
- * video stream
- *
- * @param parsed_flag :1 - Indicates that in the current process call, c
- * contents of the structure is updated
- * 0 - Indicates contents of the structure is not updated
- *
- * @param svc_vui_ext_num_entries_minus1:(svc_vui_ext_num_entries_minus1 + 1)
- * specifies the number of information
- * entries that are present in the SVC
- * VUI parameters extension syntax
- * structure
- * @param svc_vui_ext_dependency_id:indicate the max value of DId for the
- * i-th subset of coded video sequences
- * @param svc_vui_ext_quality_id:indicate the max value of QId for the
- * i-th subset of coded video sequences
- * @param svc_vui_ext_temporal_id: indicate the max value of TId for the
- * i-th subset of coded video sequences
- * @param svc_vui_ext_timing_info_present_flag: Flag to tells that
- * svc_vui_ext_num_units_in_tick,
- * svc_vui_ext_time_scale,
- * svc_vui_ext_fixed_frame_rate_flag
- * are present for current coded
- * sequence or not.
- * @param svc_vui_ext_num_units_in_tick: specifies the value of num_units_in_tick
- * @param svc_vui_ext_time_scale: specifies the value of time_scale
- * @param svc_vui_ext_fixed_frame_rate_flag: specifies the value of
- * fixed_frame_rate_flag
- * @param svc_vui_ext_nal_hrd_parameters_present_flag:specifies the
- * value of nal_hrd_parameters_present_flag
- * @param svc_vui_ext_vcl_hrd_parameters_present_flag: ] specifies the
- * value of vcl_hrd_parameters_present_flag
- * @param svc_vui_ext_low_delay_hrd_flag: specifies the value
- * of low_delay_hrd_flag
- * @param svc_vui_ext_pic_struct_present_flag: specifies the value
- * of pic_struct_present_flag
- *
- ******************************************************************************
-*/
-
-typedef struct sOMX_TI_VIDEO_H264VDEC_SVCVuiParams {
- OMX_U32 parsed_flag;
- OMX_U16 svc_vui_ext_num_entries_minus1;
- OMX_U16 svc_vui_ext_dependency_id;
- OMX_U16 svc_vui_ext_quality_id;
- OMX_U16 svc_vui_ext_temporal_id;
- OMX_U16 svc_vui_ext_timing_info_present_flag;
- OMX_U32 svc_vui_ext_num_units_in_tick;
- OMX_U32 svc_vui_ext_time_scale;
- OMX_U16 svc_vui_ext_fixed_frame_rate_flag;
- OMX_U16 svc_vui_ext_nal_hrd_parameters_present_flag;
- OMX_U16 svc_vui_ext_vcl_hrd_parameters_present_flag;
- OMX_U16 svc_vui_ext_low_delay_hrd_flag;
- OMX_U16 svc_vui_ext_pic_struct_present_flag;
-} OMX_TI_VIDEO_H264VDEC_SVCVuiParams;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_VuiParams
- *
- * @brief This structure contains the VUI Sequence Parameter elements.
- *
- * @param parsed_flag :1 - Indicates that in the current process call, c
- * contents of the structure is updated
- * 0 - Indicates contents of the structure is not updated
- * @param aspect_ratio_info_present_flag :Indicates whether aspect ratio idc
- * is present or not.
- * @param aspect_ratio_idc : Aspect ratio of Luma samples
- * @param sar_width : Horizontal size of sample aspect ratio
- * @param sar_height : Vertical size of sample aspect ratio
- * @param overscan_info_present_flag : Cropped decoded pictures are suitable
- * for display or not.
- * @param overscan_appropriate_flag : Overscan_appropriate_flag
- * @param video_signal_type_present_flag : Flag indicates whether
- * video_format, video_full_range_flag and colour_description_present_
- * flag are present or not
- * @param video_format :Video format indexed by a table. For example,PAL/NTSC
- * @param video_full_range_flag : Black level, luma and chroma ranges. It
- * should be used for BT.601 compliance
- * @param colour_description_present_flag:Indicates whether colour_primaries,
- * transfer_characteristics and matrix_coefficients are present.
- * @param colour_primaries :Chromaticity co-ordinates of source primaries
- * @param transfer_characteristics :Opto-electronic transfer characteristics
- * of the source picture
- * @param matrix_coefficients :Matrix coefficients for deriving Luma and
- * chroma data from RGB components.
- * @param chroma_location_info_present_flag : Flag indicates whether
- * chroma_sample_loc_type_top field and chroma_sample_loctype
- * bottom_field are present.
- * @param chroma_sample_loc_type_top_field : Location of chroma_sample top
- * field
- * @param chroma_sample_loc_type_bottom_field :Location of chroma_sample
- * bottom field
- * @param timing_info_present_flag :Indicates whether num_units_in_tick,
- * time_scale, and fixed_frame_rate_flag are present.
- * @param num_units_in_tick :Number of units of a clock that corresponds to 1
- * increment of a clock tick counter
- * @param time_scale :Indicates actual increase in time for 1 increment of a
- * clock tick counter
- * @param fixed_frame_rate_flag :Indicates how the temporal distance between
- * HRD output times of any two output pictures is constrained
- * @param nal_hrd_parameters_present_flag :Indicates whether
- * nal_hrd_parameters are present
- * @param nal_hrd_pars : NAL HRD Parameters
- * @param vcl_hrd_parameters_present_flag :Indicates whether
- * vcl_hrd_parameters are present
- * @param vcl_hrd_pars : VCL HRD Parameters
- * @param low_delay_hrd_flag :HRD operational mode as in Annex C of the
- * standard
- * @param pic_struct_present_flag :Indicates whether picture timing SEI
- * messages are present
- * @param bitstream_restriction_flag :Indicates if the bit-stream restriction
- * parameters are present
- * @param motion_vectors_over_pic_boundaries_flag :Specifies whether motion
- * vectors can point to regions outside the picture boundaries
- * @param max_bytes_per_pic_denom :Maximum number of bytes not exceeded by
- * the sum of sizes of all VCL NAL units of a single coded picture
- * @param max_bits_per_mb_denom :Maximum number of bits taken by any coded MB
- * @param log2_max_mv_length_vertical :Maximum value of any motion vector\u2019s
- * vertical component
- * @param log2_max_mv_length_horizontal :Maximum value of any motion vector\u2019s
- * horizontal component
- * @param max_dec_frame_reordering :
- * @param num_reorder_frames :Maximum number of frames that need to be
- * re-ordered
- * @param max_dec_frame_buffering :Size of HRD decoded buffer (DPB) in terms
- * of frame buffers
- * @param svcVuiParams : struct instance of vui parameters for svc
- *
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_VuiParams {
- OMX_U32 parsed_flag;
- OMX_U8 aspect_ratio_info_present_flag;
- OMX_U32 aspect_ratio_idc;
- OMX_U32 sar_width;
- OMX_U32 sar_height;
- OMX_U8 overscan_info_present_flag;
- OMX_U8 overscan_appropriate_flag;
- OMX_U8 video_signal_type_present_flag;
- OMX_U8 video_format;
- OMX_U8 video_full_range_flag;
- OMX_U8 colour_description_present_flag;
- OMX_U8 colour_primaries;
- OMX_U8 transfer_characteristics;
- OMX_U8 matrix_coefficients;
- OMX_U8 chroma_location_info_present_flag;
- OMX_U32 chroma_sample_loc_type_top_field;
- OMX_U32 chroma_sample_loc_type_bottom_field;
- OMX_U8 timing_info_present_flag;
- OMX_U32 num_units_in_tick;
- OMX_U32 time_scale;
- OMX_U8 fixed_frame_rate_flag;
- OMX_U8 nal_hrd_parameters_present_flag;
- OMX_TI_VIDEO_H264VDEC_HrdParams nal_hrd_pars;
- OMX_U8 vcl_hrd_parameters_present_flag;
- OMX_TI_VIDEO_H264VDEC_HrdParams vcl_hrd_pars;
- OMX_U8 low_delay_hrd_flag;
- OMX_U8 pic_struct_present_flag;
- OMX_U8 bitstream_restriction_flag;
- OMX_U8 motion_vectors_over_pic_boundaries_flag;
- OMX_U32 max_bytes_per_pic_denom;
- OMX_U32 max_bits_per_mb_denom;
- OMX_U32 log2_max_mv_length_vertical;
- OMX_U32 log2_max_mv_length_horizontal;
- OMX_U32 max_dec_frame_reordering;
- OMX_U32 num_reorder_frames;
- OMX_U32 max_dec_frame_buffering;
- OMX_TI_VIDEO_H264VDEC_SVCVuiParams svcVuiParams;
-} OMX_TI_VIDEO_H264VDEC_VuiParams;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_SeiUserDataRegITUT
- *
- * @brief This structure contains the user data SEI msg elements
- *
- * @param parsed_flag :1 - Indicates that in the current process call,
- * contents of the structure is updated
- * 0 - Indicates contents of the structure is not updated
- * @param num_payload_bytes :Specifies the size of the payload
- * @param itu_t_t35_country_code : A byte having a value specified as a
- * country code by ITU-T Recommendation T.35 Annex A
- * @param itu_t_t35_country_code_extension_byte :A byte having a value
- * specified as a country code by ITU-T Recommendation T.35 Annex B
- * @param itu_t_t35_payload_byte[] : A byte containing data registered as
- * specified by ITU-T Recommendation T.35.
- * @param dataOverflowFlag: This indicates if pay load data is more than the
- * array size i.e., OMX_TI_VIDEO_H264VDEC_MAXUSERDATA_PAYLOAD.
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_SeiUserDataRegITUT {
- OMX_U32 parsed_flag;
- OMX_U32 num_payload_bytes;
- OMX_U8 itu_t_t35_country_code;
- OMX_U8 itu_t_t35_country_code_extension_byte;
- OMX_U8 itu_t_t35_payload_byte[OMX_TI_VIDEO_H264VDEC_MAXUSERDATA_PAYLOAD];
- OMX_U8 dataOverflowFlag;
-} OMX_TI_VIDEO_H264VDEC_SeiUserDataRegITUT;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_SeiUserDataUnReg
- *
- * @brief This structure contains the user data SEI msg elements
- *
- * @param parsed_flag :1 - Indicates that in the current process call,
- * contents of the structure is updated
- * 0 - Indicates contents of the structure is not updated
- * @param num_payload_bytes :Specifies the size of the payload
- * @param uuid_iso_iec_11578 :Value specified as a UUID according to the
- * procedures of ISO/IEC 11578:1996 Annex A.
- * @param user_data_payload_byte :Byte containing data having syntax and
- * semantics as specified by the UUID generator.
- * @param dataOverflowFlag: This indicates if pay load data is more than the
- * array size i.e., OMX_TI_VIDEO_H264VDEC_MAXUSERDATA_PAYLOAD.
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_SeiUserDataUnReg {
- OMX_U32 parsed_flag;
- OMX_U32 num_payload_bytes;
- OMX_U8 uuid_iso_iec_11578[16];
- OMX_U8 user_data_payload_byte[OMX_TI_VIDEO_H264VDEC_MAXUSERDATA_PAYLOAD];
- OMX_U8 dataOverflowFlag;
-} OMX_TI_VIDEO_H264VDEC_SeiUserDataUnReg;
-
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_SeiBufferingPeriod
- *
- * @brief This structure contains the buffering period SEI msg elements
- *
- * @param parsed_flag :1 - Indicates that in the current process call,
- * contents of the structure is updated
- * 0 - Indicates contents of the structure is not updated
- * @param seq_parameter_set_id :Specifies the sequence parameter set that
- * contains the sequence HRD attributes
- * @param nal_cpb_removal_delay :Specifies the delay for the indexed NAL CPB
- * between the time of arrival in the CPB of the first bit of the
- * coded data associated with the access unit associated with the
- * buffering period SEI message and the time of removal from the CPB
- * of the coded data associated with the same access unit, for the
- * first buffering period after HRD initialization.
- * @param nal_cpb_removal_delay_offset :Used for the indexed NAL CPB in
- * combination with the cpb_removal_delay to specify the initial
- * delivery time of coded access units to the CPB
- * @param vcl_cpb_removal_delay :Specifies the delay for the indexed VCL CPB
- * between the time of arrival in the CPB of the first bit of the
- * coded data associated with the access unit associated with the
- * buffering period SEI message and the time of removal from the CPB
- * of the coded data associated with the same access unit, for the
- * first buffering period after HRD initialization.
- * @param vcl_cpb_removal_delay_offset :Used for the indexed VCL CPB in
- * combination with the cpb_removal_delay to specify the initial
- * delivery time of coded access units to the CPB
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_SeiBufferingPeriod {
- OMX_U32 parsed_flag;
- OMX_U32 seq_parameter_set_id;
- OMX_U32 nal_cpb_removal_delay[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT];
- OMX_U32 nal_cpb_removal_delay_offset[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT];
- OMX_U32 vcl_cpb_removal_delay[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT];
- OMX_U32 vcl_cpb_removal_delay_offset[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT];
-}OMX_TI_VIDEO_H264VDEC_SeiBufferingPeriod;
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_SeiPanScanRect
- *
- * @brief This structure contains the pan scan rectangle SEI msg elements
- *
- * @param parsed_flag :1 - Indicates that in the current process call,
- * contents of the structure is updated
- * 0 - Indicates contents of the structure is not updated
- * @param pan_scan_rect_id :Specifies an identifying number that may be used
- * to identify the purpose of the pan-scan rectangle
- * @param pan_scan_rect_cancel_flag :Equal to 1 indicates that the SEI
- * message cancels the persistence of any previous pan-scan
- * rectangle SEI message in output order.
- * pan_scan_rect_cancel_flag equal to 0 indicates that
- * pan-scan rectangle information follows.
- * @param pan_scan_cnt_minus1 :Specifies the number of pan-scan rectangles
- * that are present in the SEI message
- * @param pan_scan_rect_left_offset :Specifies as signed integer quantities
- * in units of one-sixteenth sample spacing relative to the luma
- * sampling grid, the location of the pan-scan rectangle
- * @param pan_scan_rect_right_offset :Specifies as signed integer quantities
- * in units of one-sixteenth sample spacing relative to the luma
- * sampling grid, the location of the pan-scan rectangle
- * @param pan_scan_rect_top_offset : Top offset
- * @param pan_scan_rect_bottom_offset : Bottom offset
- * @param pan_scan_rect_repetition_period :Specifies the persistence of the
- * pan-scan rectangle SEI message and may specify a picture order
- * count interval within which another pan-scan rectangle SEI message
- * with the same value of pan_scan_rect_id or the end of the coded
- * video sequence shall be present in the bit-stream
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_SeiPanScanRect {
- OMX_U32 parsed_flag;
- OMX_U32 pan_scan_rect_id;
- OMX_U32 pan_scan_rect_cancel_flag;
- OMX_U32 pan_scan_cnt_minus1;
- OMX_S32 pan_scan_rect_left_offset[3];
- OMX_S32 pan_scan_rect_right_offset[3];
- OMX_S32 pan_scan_rect_top_offset[3];
- OMX_S32 pan_scan_rect_bottom_offset[3];
- OMX_U32 pan_scan_rect_repetition_period;
-} OMX_TI_VIDEO_H264VDEC_SeiPanScanRect;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_SeiProgRefineStart
- *
- * @brief This structure contains the progressive refinement start SEI msg
- * elements
- *
- * @param parsed_flag :1 - Indicates that in the current process call,
- * contents of the structure is updated
- * 0 - Indicates contents of the structure is not updated
- * @param progressive_refinement_id :Specifies an identification number for
- * the progressive refinement operation.
- * @param num_refinement_steps_minus1 :Specifies the number of reference
- * frames in the tagged set of consecutive coded pictures
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_SeiProgRefineStart {
- OMX_U32 parsed_flag;
- OMX_U32 progressive_refinement_id;
- OMX_U32 num_refinement_steps_minus1;
-} OMX_TI_VIDEO_H264VDEC_SeiProgRefineStart;
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_SeiProgRefineEnd
- *
- * @brief TThis structure contains the progressive refinement end SEI msg
- * elements
- *
- * @param parsed_flag :1 - Indicates that in the current process call,
- * contents of the structure is updated
- * 0 - Indicates contents of the structure is not updated
- * @param progressive_refinement_id :Specifies an identification number for
- * the progressive refinement operation.
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_SeiProgRefineEnd {
- OMX_U32 parsed_flag;
- OMX_U32 progressive_refinement_id;
-} OMX_TI_VIDEO_H264VDEC_SeiProgRefineEnd;
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_SeiRecoveryPointInfo
- *
- * @brief This structure contains the sRecovery Point Info SEI msg elements
- *
- * @param parsed_flag :1 - Indicates that in the current process call,
- * contents of the structure is updated
- * 0 - Indicates contents of the structure is not updated
- * @param exact_match_flag :Indicates whether decoded pictures at and
- * subsequent to the specified recovery point in output order derived
- * by starting the decoding process at the access unit associated with
- * the recovery point SEI message, will be an exact match to the
- * pictures that would be produced by starting the decoding process
- * at the location of a previous IDR access unit in the NAL unit stream.
- * @param recovery_frame_cnt :Specifies the recovery point of output pictures
- * in output order
- * @param broken_link_flag :Indicates the presence or absence of a broken
- * link in the NAL unit stream
- * @param changing_slice_group_idc :Indicates whether decoded pictures are
- * correct or approximately correct in content at and subsequent to
- * the recovery point in output order when all macro-blocks of the
- * primary coded pictures are decoded within the changing slice group
- * period.
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_SeiRecoveryPointInfo {
- OMX_U32 parsed_flag;
- OMX_U32 recovery_frame_cnt;
- OMX_U32 exact_match_flag;
- OMX_U32 broken_link_flag;
- OMX_U32 changing_slice_group_idc;
-} OMX_TI_VIDEO_H264VDEC_SeiRecoveryPointInfo;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_SeiPictureTiming
- *
- * @brief This structure contains the picture timing SEI msg elements
- *
- * @param parsed_flag :1 - Indicates that in the current process call,
- * contents of the structure is updated
- * 0 - Indicates contents of the structure is not updated
- * @param NumClockTs :
- * @param cpb_removal_delay :Specifies how many clock ticks to wait after
- * removal from the CPB of the access unit associated with the
- * most recent buffering period SEI message before removing from
- * the buffer the access unit data associated with the picture
- * timing SEI message.
- * @param dpb_output_delay : Used to compute the DPB output time of the
- * picture.
- * @param pic_struct : Indicates whether a picture should be displayed as
- * a frame or field
- * @param clock_time_stamp_flag[4]:1 - Indicates number of clock timestamp
- * syntax elements present and follow immediately
- * 0 \u2013 Indicates associated clock timestamp syntax
- * elements not present
- * @param ct_type[4] : Indicates the scan type(interlaced or progressive)
- * of the source material
- * @param nuit_field_based_flag[4] : Used to calculate the clockTimestamp
- * @param counting_type[4] : Specifies the method of dropping values of
- * n_frames
- * @param full_timestamp_flag[4] : 1 - Specifies that the n_frames syntax
- * element is followed by seconds_value,
- * minutes_value, and hours_value.
- * 0 - Specifies that the n_frames syntax
- * element is followed by seconds_flag
- * @param discontinuity_flag[4] : Indicates whether the difference between
- * the current value of clockTimestamp and the value of
- * clockTimestamp computed from the previous clockTimestamp in
- * output order can be interpreted as the time difference between
- * the times of origin or capture of the associated frames or
- * fields.
- * @param cnt_dropped_flag[4] : Specifies the skipping of one or more
- * values of n_frames using the counting method
- * @param n_frames[4] : Specifies the value of nFrames used to compute
- * clockTimestamp.
- * @param seconds_flag[4] : equal to 1 specifies that seconds_value and
- * minutes_flag are present when
- * full_timestamp_flag is equal to 0.
- * @param minutes_flag[4] : equal to 1 specifies that minutes_value and
- * hours_flag are present when full_timestamp_flag
- * is equal to 0 and seconds_flag is equal to 1.
- * @param hours_flag[4] : equal to 1 specifies that hours_value is
- * present when full_timestamp_flag is equal to 0
- * and seconds_flag is equal to 1 and minutes_flag
- * is equal to 1.
- * @param seconds_value[4] : Specifies the value of sS used to compute
- * clockTimestamp.
- * @param minutes_value[4] : Specifies the value of mM used to compute
- * clockTimestamp.
- * @param hours_value[4] : Specifies the value of tOffset used to compute
- * clockTimestamp
- * @param time_offset[4] : Specifies the value of tOffset used to compute
- * clockTimestamp
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_SeiPictureTiming {
- OMX_U32 parsed_flag;
- OMX_U32 NumClockTs;
- OMX_U32 cpb_removal_delay;
- OMX_U32 dpb_output_delay;
- OMX_U32 pic_struct;
- OMX_U32 clock_time_stamp_flag[4];
- OMX_U32 ct_type[4];
- OMX_U32 nuit_field_based_flag[4];
- OMX_U32 counting_type[4];
- OMX_U32 full_timestamp_flag[4];
- OMX_U32 discontinuity_flag[4];
- OMX_U32 cnt_dropped_flag[4];
- OMX_U32 n_frames[4];
- OMX_U32 seconds_flag[4];
- OMX_U32 minutes_flag[4];
- OMX_U32 hours_flag[4];
- OMX_U32 seconds_value[4];
- OMX_U32 minutes_value[4];
- OMX_U32 hours_value[4];
- OMX_S32 time_offset[4];
-}OMX_TI_VIDEO_H264VDEC_SeiPictureTiming;
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_SeiFullFrameFreezeRep
- *
- * @brief This structure contains the full frmae freeze repetition SEI msg
- * elements
- *
- * @param parsed_flag :1 - Indicates that in the current process call,
- * contents of the structure is updated
- * 0 - Indicates contents of the structure is not updated
- * @param full_frame_freeze_repetition_period :Specifies the persistence of
- * the full-frame freeze SEI message
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_SeiFullFrameFreezeRep {
- OMX_U32 parsed_flag;
- OMX_U32 full_frame_freeze_repetition_period;
-} OMX_TI_VIDEO_H264VDEC_SeiFullFrameFreezeRep;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_SeiFullFrameFreezeRel
- *
- * @brief This structure contains frame freeze release SEI msg elements
- *
- * @param parsed_flag :1 - Indicates that in the current process call,
- * contents of the structure is updated
- * 0 - Indicates contents of the structure is not updated
- * @param payloadSize : Size of the frame_freeze_release payload
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_SeiFullFrameFreezeRel {
- OMX_U32 parsed_flag;
- OMX_U32 payloadSize;
-} OMX_TI_VIDEO_H264VDEC_SeiFullFrameFreezeRel;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_SeiStereoVideoInfo
- *
- * @brief This structure contains stereo video information SEI msg elements
- *
- * @param parsed_flag :1 - Indicates that in the current process call,
- * contents of the structure is updated
- * 0 - Indicates contents of the structure is not updated
- * @param field_views_flag : 1 - indicates that all pictures in the current
- * coded video sequence are fields
- * 0 - indicates that all pictures in the current
- * coded video sequence are frames.
- * @param top_field_is_left_view_flag :
- * 1 - top field is a left view.
- * 0 - topfield is right view.
- * @param current_frame_is_left_view_flag :
- * 1 - current frame is left view.
- * 0 - current frame is right view.
- * @param next_frame_is_second_view_flag :
- * 1 - current picture and a next picture in
- * output order form a stereo video pair.
- * 0 - current picture and a previous picture in
- * output order form a stereo video pair.
- * @param left_view_self_contained_flag :
- * 1 - it will not use right view as a reference
- * picture for inter prediction
- * 0 - it may use right view as a reference
- * picture for inter prediction.
- * @param right_view_self_contained_flag :
- * 1 - it will not use left view as a reference
- * picture for inter prediction
- * 0 - it may use left view as a reference
- * picture for inter prediction.
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_SeiStereoVideoInfo {
- OMX_U32 parsed_flag;
- OMX_U32 field_views_flag;
- OMX_U32 top_field_is_left_view_flag;
- OMX_U32 current_frame_is_left_view_flag;
- OMX_U32 next_frame_is_second_view_flag;
- OMX_U32 left_view_self_contained_flag;
- OMX_U32 right_view_self_contained_flag;
-} OMX_TI_VIDEO_H264VDEC_SeiStereoVideoInfo;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_SeiFramePacking
- *
- * @brief This structure contains frame packing arrangement SEI msg elements
- *
- * @param frame_packing_arrangement_id :
- * contains an identifying number that may be used to identify
- * the usage of the frame packing arrangement SEI message.
- * @param frame_packing_arrangement_cancel_flag :
- * 1 - equal to 1 indicates that the frame packing arrangement
- * SEI message cancels the persistence of any previous frame
- * packing arrangement SEI message in output order.
- * 0 - indicates that frame packing arrangement info follows
- * @param frame_packing_arrangement_type :
- * indicates the type of packing arrangement of the frames
- * @param quincunx_sampling_flag :
- * 1 - indicates that each color component plane of each
- * constituent frame is quincunx sampled
- * 0 - indicates that each color component plane of each
- * constituent frame is not quincunx sampled
- * @param content_interpretation_type :
- * 1 - frame 0 being associated with the left view and frame 1
- * being associated with the right view
- * 2 - frame 0 being associated with the right view and frame 1
- * being associated with the left view
- * @param spatial_flipping_flag :
- * 1 - spatial flipping is enabled for any one of the frame
- * constituent, if frame_packing_arrangement_type is 3 or 4.
- * 0 - spatial flipping is disabled for any one of the frame
- * constituent, if frame_packing_arrangement_type is 3 or 4.
- * @param frame0_flipped_flag :
- * 1 - frame 0 is spatially flipped
- * 0 - frame 1 is spatially flipped
- * @param field_views_flag :
- * 1 - indicates that all pictures in the current coded video
- * sequence are coded as complementary field pairs.
- * 0 - indicates that all pictures in the current coded video
- * sequence are coded as frame.
- * @param current_frame_is_frame0_flag :
- * 1 - indicates that the current decoded frame is constituent
- * frame 0 and the next decoded frame in output order
- * is constituent frame 1.
- * 0 - indicates that the current decoded frame is constituent
- * frame 1 and the next decoded frame in output order
- * is constituent frame 0.
- * @param frame0_self_contained_flag :
- * 1 - indicates that the constituent frame 0 is dependent on
- * constituent frame 1 in decoding process
- * 0 - indicates that the constituent frame 0 may dependent on
- * constituent frame 1 in decoding process
- * @param frame1_self_contained_flag :
- * 1 - indicates that the constituent frame 1 is dependent on
- * constituent frame 0 in decoding process
- * 0 - indicates that the constituent frame 1 may dependent on
- * constituent frame 0 in decoding process
- * @param frame0_grid_position_x :
- * specifies the horizontal location of the upper left
- * sample of constituent frame 0 in the units of one
- * sixteenth of the luma samples
- * @param frame0_grid_position_y :
- * specifies the vertical location of the upper left
- * sample of constituent frame 0 in the units of one
- * sixteenth of the luma samples
- * @param frame1_grid_position_x :
- * specifies the horizontal location of the upper left
- * sample of constituent frame 1 in the units of one
- * sixteenth of the luma samples
- * @param frame1_grid_position_y :
- * specifies the vertical location of the upper left
- * sample of constituent frame 1 in the units of one
- * sixteenth of the luma samples
- * @param frame_packing_arrangement_reserved_byte :
- * reserved for the future use.
- * @param frame_packing_arrangement_repetition_period :
- * specifies the persistence of the frame packing arrangement
- * SEI message and may specify a frame order count interval
- * within which another frame packing arrangement SEI message
- * with the same value of frame_packing_arrangement_id or the
- * end of the coded video sequence shall be present in the
- * bitstream.
- * @param frame_packing_arrangement_extension_flag :
- * 0 - indicates that no additional data follows within the
- * frame packing arrangement SEI message.
- * 1 - Reserved for the future use.
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_SeiFramePacking {
- OMX_U32 parsed_flag;
- OMX_U32 frame_packing_arrangement_id;
- OMX_U32 frame_packing_arrangement_repetition_period;
- OMX_U8 frame_packing_arrangement_cancel_flag;
- OMX_U8 frame_packing_arrangement_type;
- OMX_U8 quincunx_sampling_flag;
- OMX_U8 content_interpretation_type;
- OMX_U8 spatial_flipping_flag;
- OMX_U8 frame0_flipped_flag;
- OMX_U8 field_views_flag;
- OMX_U8 current_frame_is_frame0_flag;
- OMX_U8 frame0_self_contained_flag;
- OMX_U8 frame1_self_contained_flag;
- OMX_U8 frame0_grid_position_x;
- OMX_U8 frame0_grid_position_y;
- OMX_U8 frame1_grid_position_x;
- OMX_U8 frame1_grid_position_y;
- OMX_U8 frame_packing_arrangement_reserved_byte;
- OMX_U8 frame_packing_arrangement_extension_flag;
-} OMX_TI_VIDEO_H264VDEC_SeiFramePacking;
-
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_SeiMessages
- *
- * @brief This structure contains all the supported SEI msg objects
- *
- * @param parsed_flag :1 - Indicates that in the current process call,
- * contents of the structure is updated
- * 0 - Indicates contents of the structure is not updated
- * @param full_frame_freeze : Full-frame freeze SEI message
- * @param full_frame_freeze_release :Cancels the effect of any full-frame
- * freeze SEI message sent with pictures that precede the current
- * picture in the output order.
- * @param prog_refine_start :Specifies the beginning of a set of consecutive
- * coded pictures that is labeled as the current picture followed
- * by a sequence of one or more pictures of refinement of the
- * quality of the current picture, rather than as a representation
- * of a continually moving scene.
- * @param prog_refine_end : Specifies end of progressive refinement.
- * @param user_data_registered :Message contains user data registered as
- * specified by ITU-T Recommendation T.35
- * @param user_data_unregistered :Message contains unregistered user data
- * identified by a UUID
- * @param buffering_period_info :Message specifies the buffering period
- * @param pan_scan_rect :Message specifies the coordinates of a rectangle
- * relative to the cropping rectangle of the sequence parameter set
- * @param recovery_pt_info :The recovery point SEI message assists a decoder
- * in determining when the decoding process will produce acceptable
- * pictures for display after the decoder initiates random access or
- * after the encoder indicates a broken link in the sequence.
- * @param pic_timing :Specifies timing information regarding cpb delays, dpb
-* output delay, and so on.
- * @param stereo_video_info :stereo video information SEI message consist of
- * pair of picture forming stereo view content.
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_SeiMessages {
- OMX_U32 parsed_flag;
- OMX_TI_VIDEO_H264VDEC_SeiFullFrameFreezeRep full_frame_freeze;
- OMX_TI_VIDEO_H264VDEC_SeiFullFrameFreezeRel full_frame_freeze_release;
- OMX_TI_VIDEO_H264VDEC_SeiProgRefineStart prog_refine_start;
- OMX_TI_VIDEO_H264VDEC_SeiProgRefineEnd prog_refine_end;
- OMX_TI_VIDEO_H264VDEC_SeiUserDataRegITUT user_data_registered;
- OMX_TI_VIDEO_H264VDEC_SeiUserDataUnReg user_data_unregistered;
- OMX_TI_VIDEO_H264VDEC_SeiBufferingPeriod buffering_period_info;
- OMX_TI_VIDEO_H264VDEC_SeiPanScanRect pan_scan_rect;
- OMX_TI_VIDEO_H264VDEC_SeiRecoveryPointInfo recovery_pt_info;
- OMX_TI_VIDEO_H264VDEC_SeiPictureTiming pic_timing;
- OMX_TI_VIDEO_H264VDEC_SeiStereoVideoInfo stereo_video_info;
- OMX_TI_VIDEO_H264VDEC_SeiFramePacking frame_packing;
-} OMX_TI_VIDEO_H264VDEC_SeiMessages;
-
-
-/**
- ******************************************************************************
- * @struct _sErrConcealStr
- * @brief This str holds up the required Info for implementing the SCV EC,
- * this will get updated by H.264 decoder while decoding the SVC
- * Base/Target Layers
- *
- * @param CurrMbInfoBufPointer :Base Address of the current decoded frame
- * MB Info buffer
- *
- * @param CurrMbStatusBufPointer: Base Address of the current decoded frame
- * MB staus buffer pointer
- *
- * @param currFrameY : Base Address of the current decoded Luma
- * frame buffer pointer (physical pointer)
- *
- * @param currFrameUV : Base Address of the current decoded Chroma
- * frame buffer pointer (physical pointer)
- *
- * @param refConclY : Base Address of the ref decoded Luma
- * frame buffer pointer (virtual pointer)
- *
- * @param refConclUV : Base Address of the ref decoded Chroma
- * frame buffer pointer (virtual pointer)
- *
- * @param TilerBaseAddress : TBA vaule for the VDMA
- *
- * @param pSliceInfoFlags : Flag to enable slice info
- *
- * @param ref_width : Resultant Horizontal LUMA picture size
- * after Pad size addition on both Left
- * & Right sides. This gets used as
- * stride during vDMA programming.
- * In case of TILER,the stride is fixed,
- * independant of Picture width, and
- * only changes with TILER mode.
- *
- * @param ref_width_c : Resultant Horizontal CHROMA picture size
- * after Pad size addition on both Left &
- * Right sides.
- *
- *
- * @param ref_frame_height : In case of Interlaced streams,the picure
- * store is different i.e., store each field
- * by applying PAD on top & bottom lines.
- * Hence the picture height will be Height
- * plus four times the Pad size. This
- * variable holds this resultant value.
- *
- * @param mb_width : Picture width in terms of Macroblocks
- *
- * @param mb_height : Picture height in terms of Macroblocks.
- *
- * @param image_width : Image width of the decoded frame
- *
- * @param image_width : Image height of the decoded frame
- *
- * @param frameType : Frame type of the current frame.
- *
- * @param picaff_frame : Flag to indicate whether current picture
- * is of Frame type & referring to Field
- * picture as reference.
- *
- * @param mb_aff_frame_flag : Flag to indicate whether the current
- * decoding picture is MBAFF type.
- *
- * @param field_pic_flag : Flag to indicate whether the current
- * decoding picture is field type.
- *
- * @param bottom_field_flag : This parameter equal to 1 specifies that
- * the slice is part of a coded bottom field.
- * bottom_field_flag equalto 0 specifies
- * that the picture is a coded top field.
- *
- * @param nonPairedFieldPic : Flag to indicate Non paired field picture.
- *
- * @param prev_pic_bottom_field : this variable Indicates if the previous
- * picture was a bottom field or not (a Flag)
- ******************************************************************************
-*/
-
-typedef struct OMX_TI_VIDEO_H264VDEC_ErrConcealStr {
- OMX_S32 ErrConcealmentEnable;
- OMX_S32 CurrMbInfoBufPointer;
- OMX_S32 CurrMbStatusBufPointer;
- OMX_S32 CurrMbInfoIresBufPointer;
- OMX_S32 currFrameY;
- OMX_S32 currFrameUV;
- OMX_S32 refConclY;
- OMX_S32 refConclUV;
- OMX_U32 TilerBaseAddress;
- OMX_U16 ref_width;
- OMX_U16 ref_width_c;
- OMX_U16 ref_frame_height;
- OMX_U16 mb_width;
- OMX_U16 mb_height;
- OMX_U16 image_width;
- OMX_U16 image_height;
- OMX_U8 frameType;
- OMX_U8 picaff_frame;
- OMX_U8 mb_aff_frame_flag;
- OMX_U8 field_pic_flag;
- OMX_U8 bottom_field_flag;
- OMX_U8 nonPairedFieldPic;
- OMX_U8 prev_pic_bottom_field;
-}OMX_TI_VIDEO_H264VDEC_ErrConcealStr;
-
-/**
- * Size of sliceinfo flags - We have two slice info flag arrays in SL2, one
- * for ECD3 and the other for MC3. ECD3 flag is one bit per MB. Since Maximum
- * supported number of MBs in a frame is 128 x 128 = 16384, we need 16384/8 =
- * 2048 bytes for the slice info flag array for ECD3. But for the MC3 array,
- * we always make the next bit also as 1 to enable loading into ping and pong
- * memories of MCBUF. So we need an extra bit for the MC3 array, to avoid
- * buffer overflow when the last MB is a new slice. To keep the next SL2 buffer
- * in 16-byte aligned position (some buffers need it) we round the size to next
- * multiple of 16, i.e., 2064.
-*/
-#define OMX_TI_VIDEO_SLICEINFO_FLAGSIZE 2064
-
-/**
- ******************************************************************************
- * @struct _sErrConcealLayerStr
- * @brief This str holds up the required Info for implementing the SCV EC,
- * this will get updated by H.264 decoder while decoding the SVC
- * Base/Target Layers
- *
- * @param svcEcStr : structure instance of sSVCErrConcealStr
- *
- * @param pSliceInfoFlags : Array to store the sliceInfo flag
- *
- *
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_ErrConcealLayerStr {
- OMX_TI_VIDEO_H264VDEC_ErrConcealStr sECStr;
- OMX_U8 pSliceInfoFlags[OMX_TI_VIDEO_SLICEINFO_FLAGSIZE];
-}OMX_TI_VIDEO_H264VDEC_ErrConcealLayerStr;
-
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_CommonInfo
- *
- * @brief
- *
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_CommonInfo {
- OMX_U32 codec_type : 8;
- OMX_U32 fmt_type : 8;
- OMX_U32 mb_ll_avail : 1;
- OMX_U32 mb_ul_avail : 1;
- OMX_U32 mb_uu_avail : 1;
- OMX_U32 mb_ur_avail : 1;
- OMX_U32 pic_bound_l : 1;
- OMX_U32 pic_bound_u : 1;
- OMX_U32 pic_bound_r : 1;
- OMX_U32 pic_bound_b : 1;
- OMX_U32 first_mb_flag : 1;
- OMX_U32 error_flag : 1;
- OMX_U32 zero : 6;
- OMX_U32 zeroes : 16;
- OMX_U32 mb_addr : 16;
-
-} OMX_TI_VIDEO_H264VDEC_CommonInfo;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_MotionVector
- *
- * @brief
- *
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_MotionVector {
- OMX_S16 x;
- OMX_S16 y;
-} OMX_TI_VIDEO_H264VDEC_MotionVector;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_CabacContext
- *
- * @brief
- *
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_CabacContext {
- OMX_TI_VIDEO_H264VDEC_MotionVector mvd_l0[4];
- OMX_TI_VIDEO_H264VDEC_MotionVector mvd_l1[4];
-
-} OMX_TI_VIDEO_H264VDEC_CabacContext;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_TotalCoefLuma
- *
- * @brief
- *
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_TotalCoefLuma {
- OMX_U8 right[3];
- OMX_U8 bottom_right;
- OMX_U8 bottom[3];
- OMX_U8 zero;
-} OMX_TI_VIDEO_H264VDEC_TotalCoefLuma;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_TotalCoefChroma
- *
- * @brief
- *
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_TotalCoefChroma {
- OMX_U8 right_cb;
- OMX_U8 bottom_right_cb;
- OMX_U8 bottom_cb;
- OMX_U8 zero;
- OMX_U8 right_cr;
- OMX_U8 bottom_right_cr;
- OMX_U8 bottom_cr;
- OMX_U8 zero1;
-} OMX_TI_VIDEO_H264VDEC_TotalCoefChroma;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_CavlcContext
- *
- * @brief
- *
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_CavlcContext {
- unsigned long long zeroes[2];
- OMX_TI_VIDEO_H264VDEC_TotalCoefLuma total_coef_luma;
- OMX_TI_VIDEO_H264VDEC_TotalCoefChroma total_coef_chroma;
-
-} OMX_TI_VIDEO_H264VDEC_CavlcContext;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_IntraPredMode
- *
- * @brief
- *
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_IntraPredMode {
- OMX_U32 ipred_mode0 : 4;
- OMX_U32 ipred_mode1 : 4;
- OMX_U32 ipred_mode2 : 4;
- OMX_U32 ipred_mode3 : 4;
- OMX_U32 ipred_mode4 : 4;
- OMX_U32 ipred_mode5 : 4;
- OMX_U32 ipred_mode6 : 4;
- OMX_U32 ipred_mode7 : 4;
- OMX_U32 ipred_mode8 : 4;
- OMX_U32 ipred_mode9 : 4;
- OMX_U32 ipred_mode10 : 4;
- OMX_U32 ipred_mode11 : 4;
- OMX_U32 ipred_mode12 : 4;
- OMX_U32 ipred_mode13 : 4;
- OMX_U32 ipred_mode14 : 4;
- OMX_U32 ipred_mode15 : 4;
-
-} OMX_TI_VIDEO_H264VDEC_IntraPredMode;
-
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_MbPredType
- *
- * @brief
- *
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_MbPredType {
- OMX_U32 mbskip : 1;
- OMX_U32 tr8x8 : 1;
- OMX_U32 mb_field : 1;
- OMX_U32 cond_mbskip : 1;
- OMX_U32 c_ipred_mode : 2;
- OMX_U32 zero : 1;
- OMX_U32 end_of_slice : 1;
- OMX_U32 mb_y_mod2 : 1;
- OMX_U32 zero1 : 7;
- OMX_U32 refidx_equal_flag_l0 : 1;
- OMX_U32 refidx_equal_flag_l1 : 1;
- OMX_U32 mv_equal_flag_l0 : 1;
- OMX_U32 mv_equal_flag_l1 : 1;
- OMX_U32 zeroes : 4;
- OMX_U32 mb_type : 8;
- OMX_U8 sub_mb_type[4];
-
-} OMX_TI_VIDEO_H264VDEC_MbPredType;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_QpCbp
- *
- * @brief
- *
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_QpCbp {
- OMX_U32 cbp;
- OMX_U8 qp_y;
- OMX_U8 qp_cb;
- OMX_U8 qp_cr;
- OMX_U8 zero;
-} OMX_TI_VIDEO_H264VDEC_QpCbp;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_RefPicControl
- *
- * @brief
- *
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_RefPicControl {
- OMX_U8 refidx[4];
- OMX_U8 refpicid[4];
-
-} OMX_TI_VIDEO_H264VDEC_RefPicControl;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_MvBidirectional16
- *
- * @brief
- *
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_MvBidirectional16 {
- OMX_TI_VIDEO_H264VDEC_MotionVector mv_forward[16];
- OMX_TI_VIDEO_H264VDEC_MotionVector mv_backward[16];
-} OMX_TI_VIDEO_H264VDEC_MvBidirectional16;
-
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_MvBidirectional4
- *
- * @brief
- *
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_MvBidirectional4 {
- OMX_TI_VIDEO_H264VDEC_MotionVector mv_forward[4];
- OMX_TI_VIDEO_H264VDEC_MotionVector mv_backward[4];
-
-} OMX_TI_VIDEO_H264VDEC_MvBidirectional4;
-
-/**
- ******************************************************************************
- * @struct OMX_TI_VIDEO_H264VDEC_MbInfo
- *
- * @brief This structure details the data format for MB information shared to
- * application. This helps application to understand all fields
- * the way codec uses MB info internally. This structure is of size
- * 208 Bytes.
- *
- * @param info : This elements gives details about the MB placement in the
- * frame.
- *
- * @param cabac: This field holds the context data for a CABAC coded MB
- *
- * @param cavlc: This field holds the context data for a CAVLC coded MB
- *
- * @param ipred_mode: This field holds information of intra prediction modes
- * at 4x4 level, for intra coded MB.
- *
- * @param mb_pred_type: This indicates prediction specific details for inter
- * coded MB
- *
- * @param qp_cbp: This gives coded & QP informations for both LUMA & CHROMA
- * components of a Macro Block.
- *
- * @param l0_ref_pic_control: Informs all details about reference indices
- * at 8x8 block level in L0 direction
- *
- * @param l1_ref_pic_control: Informs all details about reference indices
- * at 8x8 block level in L1 direction
- *
- * @param mv_forward: Lists all Motion vectors at 4x4 level in L0 direction
- *
- * @param bidirectional16: Lists all Motion vectors at 4x4 level in both
- * directions
- *
- * @param bidirectional4: Lists all Motion vectors at 8x8 level in both
- * directions
- *
- ******************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_H264VDEC_MbInfo {
- OMX_TI_VIDEO_H264VDEC_CommonInfo info;
-
- union {
- OMX_TI_VIDEO_H264VDEC_CabacContext cabac;
- OMX_TI_VIDEO_H264VDEC_CavlcContext cavlc;
- } OMX_TI_VIDEO_H264VDEC_context;
-
- OMX_TI_VIDEO_H264VDEC_IntraPredMode ipred_mode;
- OMX_TI_VIDEO_H264VDEC_MbPredType mb_pred_type;
- OMX_TI_VIDEO_H264VDEC_QpCbp qp_cbp;
- OMX_TI_VIDEO_H264VDEC_RefPicControl l0_ref_pic_control;
- OMX_TI_VIDEO_H264VDEC_RefPicControl l1_ref_pic_control;
-
- union {
- OMX_TI_VIDEO_H264VDEC_MotionVector mv_forward[16];
- OMX_TI_VIDEO_H264VDEC_MvBidirectional16 bidirectional16;
- OMX_TI_VIDEO_H264VDEC_MvBidirectional4 bidirectional4;
- } OMX_TI_VIDEO_H264VDEC_motion_vecs;
-
-} OMX_TI_VIDEO_H264VDEC_MbInfo;
-
-
-
-/**
-********************************************************************************
-* @struct OMX_TI_VIDEO_VC1VDEC_MbInfo
-*
-* @brief MB information structure that is written out by the IVA-HD hardware.
-*
-* @note None:
-*
-********************************************************************************
-*/
-typedef struct OMX_TI_VIDEO_VC1VDEC_MbInfo {
- /* MB address */
- OMX_U8 mb_addr;
- /* Error flag */
- OMX_U8 error_flag;
- /* First MB flag */
- OMX_U8 first_mb_flag;
- /* Picture bound */
- OMX_U8 pic_bound_b;
- /* Upper picture bound */
- OMX_U8 pic_bound_u;
- /* Right picture bound */
- OMX_U8 pic_bound_r;
- /* Left picture bound */
- OMX_U8 pic_bound_l;
- /* Availability of upper right MB */
- OMX_U8 mb_ur_avail;
- /* Availability of upper MB */
- OMX_U8 mb_uu_avail;
- /* Availability of upper left MB */
- OMX_U8 mb_ul_avail;
- /* Availability of left MB */
- OMX_U8 mb_ll_avail;
- /* Macroblock header format type */
- OMX_U8 fmt_type;
- /* Codec type */
- OMX_U8 codec_type;
- /* Indicates DC values of each Y block in current MB */
- OMX_U8 dc_coef_q_y[4];
- /* Indicates DC values of Cr block in current MB */
- OMX_U8 dc_coef_q_cr;
- /* Indicates DC values of Cb block in current MB */
- OMX_U8 dc_coef_q_cb;
- /* Block type of cr block */
- OMX_U8 block_type_cr;
- /* Block type of cb block */
- OMX_U8 block_type_cb;
- /* Block types of luma */
- OMX_U8 block_type_y[4];
- /* In decoding, if the current macroblock is the last macroblock in a slice,*/
- /* ECD sets 1 to this field during executing the macroblock. Otherwise, ECD */
- /* sets 0 to this field */
- OMX_U8 end_of_slice;
- /* 1 : allow skipping current MB if CBP = 0 */
- OMX_U8 cond_skip_flag;
- /* Skipped / non skipped MB */
- OMX_U8 skip;
- /* 1 indicates that overlap filtering is in use for the macroblock. */
- OMX_U8 overlap;
- /* 1 indicates that AC prediction is in use for the macroblock */
- OMX_U8 acpred;
- /* Denotes inter-prediction direction for the macroblock in B-picture */
- OMX_U8 b_picture_direction;
- /* Denotes the number of motion vectors. */
- OMX_U8 mv_mode;
- /* 1 indicates that the field transform is in use for the macroblock. */
- OMX_U8 fieldtx;
- /* 1 indicates that field inter-prediction is in use */
- OMX_U8 mv_type;
- /* Equals the reference frame distance */
- OMX_U8 refdist;
- /* 1 indicates that macroblock quantizer-scale (MQUANT) overflows */
- OMX_U8 mquant_overflow;
- /* Equals the quantizer-scale for the macroblock */
- OMX_U8 quant;
- /* 1 indicates that 0.5 shall be added to PQUANT in calculation of */
- /* quantizer-scale. This field is valid for decoding only. */
- OMX_U8 halfqp;
- /* Equals the DC coefficient step size which is derived from MQUANT in the */
- /* bit-stream */
- OMX_U8 dc_step_size;
- /* Denotes the coded sub-block pattern for cr block */
- OMX_U8 cbp_cr;
- /* Denotes the coded sub-block pattern for cb block */
- OMX_U8 cbp_cb;
- /* Denotes the coded sub-block pattern for luma blocks */
- OMX_U8 cbp_y[3];
- /* Denotes the backward reference field picture */
- OMX_U8 mv_bw_ref_y[4];
- /* Denotes the forward reference field picture */
- OMX_U8 mv_fw_ref_y[3];
- /* Unclipped forward motion vector for luma */
- OMX_U8 mv_fw_y[4][4];
- /* Unclipped backward motion vector for luma */
- OMX_U8 mv_bw_y[1][1];
- /* Unclipped backward motion vector for chroma */
- OMX_U8 mv_bw_c[2];
- /* Unclipped forward motion vector for chroma */
- OMX_U8 mv_fw_c[2];
- /* Clipped forward motion vector for luma */
- OMX_U8 cmv_fw_y[4][4];
- /* Clipped backward motion vector for luma */
- OMX_U8 cmv_bw_y[4][4];
- /* Clipped forward motion vector for chroma */
- OMX_U8 cmv_fw_c[4][4];
- /* Clipped backward motion vector for chroma */
- OMX_U8 cmv_bw_c[4][4];
-
-}OMX_TI_VIDEO_VC1VDEC_MbInfo;
-
-#endif /* OMX_TI_VIDEO_H */
-