1c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*
2c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Copyright (c) 2010, Texas Instruments Incorporated
3c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * All rights reserved.
4c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
5c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * Redistribution and use in source and binary forms, with or without
6c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * modification, are permitted provided that the following conditions
7c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * are met:
8c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
9c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * *  Redistributions of source code must retain the above copyright
10c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *    notice, this list of conditions and the following disclaimer.
11c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
12c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * *  Redistributions in binary form must reproduce the above copyright
13c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *    notice, this list of conditions and the following disclaimer in the
14c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *    documentation and/or other materials provided with the distribution.
15c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
16c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * *  Neither the name of Texas Instruments Incorporated nor the names of
17c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *    its contributors may be used to endorse or promote products derived
18c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *    from this software without specific prior written permission.
19c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
20c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
32c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
33c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* -------------------------------------------------------------------------- */
34c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*
35c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @file:Omx_ti_video.h
36c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * This header defines the structures specific to the param or config indices of Openmax Video Component.
37c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *
38c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * @path:
39c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * \WTSD_DucatiMMSW\ omx\omx_il_1_x\omx_core\
40c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
41c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * -------------------------------------------------------------------------- */
42c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
43c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* =========================================================================
44c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *!
45c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! Revision History
46c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *! =====================================================================
47e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *! 24-Dec-2008  Navneet         navneet@ti.com          Initial Version
48e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *! 14-Jul-2009  Radha Purnima   radhapurnima@ti.com
49e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *! 25-Aug-2009  Radha Purnima   radhapurnima@ti.com
50e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *! 16-May-2009  Shivaraj Shetty shettyshivaraj@ti.com
51c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev * =========================================================================*/
52c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
53c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
54c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#ifndef OMX_TI_VIDEO_H
55c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define OMX_TI_VIDEO_H
56c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#define H264ENC_MAXNUMSLCGPS 2
57e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen#define OMXH264E_MAX_SLICE_SUPPORTED 64
58c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#include <OMX_Core.h>
59c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
60c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
61c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	@brief	mode selection for the data that is given to the Codec
62c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
63c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
64c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_VIDEO_DATASYNCMODETYPE {
65c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_Video_FixedLength,	//!<  Interms of multiples of 4K
66c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_Video_SliceMode,		//!<  Slice mode
67c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_Video_NumMBRows,	//!< Number of rows, each row is 16 lines of video
68c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_Video_EntireFrame  	//!< Processing of entire frame data
69c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_VIDEO_DATASYNCMODETYPE;
70c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
71c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
72c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
73c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
74c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_VIDEO_PARAM_DATAMODE  :to configure how the input and output data is fed to the Codec
75c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  nPortIndex  to specify the index of the port
76c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  eDataMode 	to specify the data mode
77c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 						@sa  OMX_VIDEO_DATASYNCMODETYPE
78c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  nNumDataUnits	 to specify the number of data units (where units are of type defined by eDataMode)
79c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
80c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
81c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_DATASYNCMODETYPE{
82c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
83c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
84c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nPortIndex;
85c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VIDEO_DATASYNCMODETYPE eDataMode;
86c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nNumDataUnits;
87c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_VIDEO_PARAM_DATASYNCMODETYPE;
88c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
89c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
90c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	@brief	Aspect Ratio type selection for the encoded bit stream
91c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
92c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_VIDEO_ASPECTRATIOTYPE{
93c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_Unspecified,  //!< Unspecified aspect ratio
94c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_Square ,  //!< 1:1 (square) aspect ratio
95c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_12_11  ,  //!<  12:11  aspect ratio
96c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_10_11  ,  //!<  10:11  aspect ratio
97c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_16_11  ,  //!<  16:11  aspect ratio
98c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_40_33  ,  //!<  40:33  aspect ratio
99c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_24_11  ,  //!<  24:11  aspect ratio
100c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_20_11  ,  //!<  20:11  aspect ratio
101c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_32_11  ,  //!<  32:11  aspect ratio
102c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_80_33  ,  //!<  80:33  aspect ratio
103c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_18_11  ,  //!<  18:11  aspect ratio
104c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_15_15  ,  //!<  15:15  aspect ratio
105c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_64_33  ,  //!<  64:33  aspect ratio
106c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_160_99 ,  //!<  160:99 aspect ratio
107c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_4_3    ,  //!<  4:3    aspect ratio
108c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_3_2    ,  //!<  3:2    aspect ratio
109c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_2_1    ,  //!<  2:1    aspect ratio
110c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_AR_Extended = 255,       //!<  Extended aspect ratio
111c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   	OMX_Video_AR_Extended_MAX =  0X7FFFFFFF
112c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEO_ASPECTRATIOTYPE;
113c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
114c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
115c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
116c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
117c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_VIDEO_PARAM_VUI_SELECT  :to select the VUI Settings
118c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  bAspectRatioPresent flag to indicate the insertion of aspect ratio information in VUI part of bit-stream
119c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  ePixelAspectRatio to specify the Aspect Ratio
120c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  bFullRange to indicate whether pixel value range is specified as full range or not (0 to 255)
121c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
122c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
123c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_VUIINFOTYPE {
124c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nSize;
125c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
126c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nPortIndex;
127c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL bAspectRatioPresent;
128c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VIDEO_ASPECTRATIOTYPE ePixelAspectRatio;
129c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL bFullRange;
130c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEO_PARAM_VUIINFOTYPE;
131c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
132c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
133c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
134c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_VIDEO_CONFIG_PIXELINFOTYPE  :to specify the information related to the input pixel data (aspect ratio & range) to the Codec
135c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 										so that codec can incorporate this info in the coded bit stream
136c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  nWidth 	 to specify the Aspect ratio: width of the pixel
137c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  nHeight 	 to specify the Aspect ratio: height of the pixel
138c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
139c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
140c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_VIDEO_CONFIG_PIXELINFOTYPE  {
141c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
142c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
143c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nPortIndex;
144c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nWidth;
145c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nHeight;
146c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_VIDEO_CONFIG_PIXELINFOTYPE;
147c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
148c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
149c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
150c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_VIDEO_PARAM_AVCNALUCONTROLTYPE : to configure what NALU  need to send along the frames of different types (Intra,IDR...etc)
151c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @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
152c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @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
153c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @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
154c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @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
155c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @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
156c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
157c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevBit Position:   13|       12|      11|           10|      9|    8|    7|   6|      5|         4|              3|              2|              1|          0
158c322989ae6ff6769490828de1b5eda12b749cce9Iliyan MalchevNALU TYPE:  SPS_VUI|FILLER|EOSTREAM|EOSEQ|AUD|PPS|SPS|SEI|IDR_SLICE|SLICE_DP_C|SLICE_DP_B|SLICE_DP_A|SLICE|UNSPECIFIED \n
159c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
160c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
161c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_AVCNALUCONTROLTYPE {
162c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nSize;
163c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
164c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 	nPortIndex;
165c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 	nStartofSequence;
166c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 	nEndofSequence;
167c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 	nIDR;
168c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 	nIntraPicture;
169c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 	nNonIntraPicture;
170c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEO_PARAM_AVCNALUCONTROLTYPE;
171c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
172c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
173c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
174c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
175c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_VIDEO_CONFIG_MESEARCHRANGETYPE : to configure Motion Estimation Parameters
176c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  eMVAccuracy 		to specify the Motion Vector Accuracy
177c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 							@sa OMX_VIDEO_MOTIONVECTORTYPE
178c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  sHorSearchRangeP	 	to Specify the Horizontal Search range for P Frame
179c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  sVerSearchRangeP		to Specify the Vertical Search range for P Frame
180c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  sHorSearchRangeB	  	to Specify the Horizontal Search range for B Frame
181c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  sVerSearchRangeB	  	to Specify the Vertical Search range for B Frame
182c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
183c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
184c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_VIDEO_CONFIG_MESEARCHRANGETYPE{
185c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nSize;
186c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
187c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nPortIndex;
188c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VIDEO_MOTIONVECTORTYPE eMVAccuracy;
189c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nHorSearchRangeP;
190c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nVerSearchRangeP;
191c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nHorSearchRangeB;
192c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nVerSearchRangeB;
193c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEO_CONFIG_MESEARCHRANGETYPE;
194c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
195c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
196c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	@brief	Block size specification
197c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
198c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_VIDEO_BLOCKSIZETYPE {
199c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Block_Size_16x16=0,
200c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Block_Size_8x8,
201c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Block_Size_8x4,
202c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Block_Size_4x8,
203c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Block_Size_4x4,
204c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   	OMX_Video_Block_Size_MAX =  0X7FFFFFFF
205c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEO_BLOCKSIZETYPE;
206c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
207c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
208c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
209c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_VIDEO_PARAM_MEBLOCKSIZETYPE : to configure the Min Motion Estimation block size for P and B frames
210c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  eMinBlockSizeP 		to specify the Min Block size used for Motion Estimation incase of P Frames
211c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 							@sa OMX_VIDEO_BLOCKSIZETYPE
212c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  eMinBlockSizeB	 	to specify the Min Block size used for Motion Estimation incase of B Frames
213c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
214c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
215c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_MEBLOCKSIZETYPE{
216c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nSize;
217c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
218c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nPortIndex;
219c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VIDEO_BLOCKSIZETYPE eMinBlockSizeP;
220c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VIDEO_BLOCKSIZETYPE eMinBlockSizeB;
221c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEO_PARAM_MEBLOCKSIZETYPE;
222c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
223c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
224c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	@brief	to select the chroma component used for Intra Prediction
225c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
226c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_VIDEO_CHROMACOMPONENTTYPE {
227c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Chroma_Component_Cr_Only=0,	//!< consider only Cr chroma component for Intra prediction
228c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Chroma_Component_Cb_Cr_Both,  //!< consider both (Cb & Cr) chroma components for Intra prediction
229c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev     OMX_Video_Chroma_Component_MAX =  0X7FFFFFFF
230c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEO_CHROMACOMPONENTTYPE;
231c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
232c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
233c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
234c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_VIDEO_PARAM_INTRAPREDTYPE : to configure the Modes for the different block sizes during Intra Prediction
235c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  nLumaIntra4x4Enable 	 	to configure the Modes for 4x4 block size during luma intra prediction: bit position specifies the modes that are enabled/disabled
236c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev								 HOR_UP|VERT_LEFT|HOR_DOWN|VERT_RIGHT|DIAG_DOWN_RIGHT|DIAG_DOWN_LEFT|DC|HOR|VER
237c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  nLumaIntra8x8Enable	 	to configure the Modes for 4x4 block size during luma intra prediction
238c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 								HOR_UP|VERT_LEFT|HOR_DOWN|VERT_RIGHT|DIAG_DOWN_RIGHT|DIAG_DOWN_LEFT|DC|HOR|VER
239c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  nLumaIntra16x16Enable	 	to configure the Modes for 4x4 block size during luma intra prediction
240c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev								 PLANE|DC|HOR|VER
241c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  nChromaIntra8x8Enable	 	to configure the Modes for 4x4 block size during luma intra prediction
242c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev								 PLANE|DC|HOR|VER
243c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  eChromaComponentEnable	to select the chroma components used for the intra prediction
244c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 								@sa OMX_VIDEO_CHROMACOMPONENTTYPE
245c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
246c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
247c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_INTRAPREDTYPE{
248c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nSize;
249c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
250c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nPortIndex;
251c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nLumaIntra4x4Enable;
252c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nLumaIntra8x8Enable;
253c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nLumaIntra16x16Enable;
254c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nChromaIntra8x8Enable;
255c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VIDEO_CHROMACOMPONENTTYPE eChromaComponentEnable;
256c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEO_PARAM_INTRAPREDTYPE;
257c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
258c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
259c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
260c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	@brief	Encoding Mode Preset
261c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
262c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_VIDEO_ENCODING_MODE_PRESETTYPE {
263c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Enc_Default=0, 	//!<  for all the params default values are taken
264c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Enc_High_Quality, //!<  todo: mention the parameters that takes specific values depending on this selection
265c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Enc_User_Defined,
266c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Enc_High_Speed_Med_Quality,
267c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Enc_Med_Speed_Med_Quality,
268c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Enc_Med_Speed_High_Quality,
269c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Enc_High_Speed,
270c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   	OMX_Video_Enc_Preset_MAX =  0X7FFFFFFF
271c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEO_ENCODING_MODE_PRESETTYPE;
272c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
273c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
274c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	@brief	Rate Control Preset
275c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
276c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_VIDEO_RATECONTROL_PRESETTYPE {
277c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_RC_Low_Delay,	//!<todo:  mention the parameters that takes specific values depending on this selection
278c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_RC_Storage,
279c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_RC_Twopass,
280c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_RC_None,
281c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_RC_User_Defined,
282c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev   	OMX_Video_RC_MAX =  0X7FFFFFFF
283c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEO_RATECONTROL_PRESETTYPE;
284c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
285c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
286c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
287c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_VIDEO_PARAM_ENCODER_PRESETTYPE : to select the preset for Encoding Mode & Rate Control
288c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  eEncodingModePreset		to specify Encoding Mode Preset
289c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 							@sa OMX_VIDEO_ENCODING_MODE_PRESETTYPE
290c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  eRateControlPreset	to specify Rate Control Preset
291c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 							@sa OMX_VIDEO_RATECONTROL_PRESETTYPE
292c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
293c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
294c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_ENCODER_PRESETTYPE{
295c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nSize;
296c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
297c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nPortIndex;
298c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VIDEO_ENCODING_MODE_PRESETTYPE eEncodingModePreset;
299c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VIDEO_RATECONTROL_PRESETTYPE eRateControlPreset;
300c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEO_PARAM_ENCODER_PRESETTYPE;
301c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
302c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
303c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
304c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	@brief	 input content type
305c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
306c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_TI_VIDEO_FRAMECONTENTTYPE {
307c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_Progressive = 0,			//!<Progressive frame
308c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_Interlace_BothFieldsTogether = 1,	//!<Interlaced frame
309c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_Interlace_OneField = 2,
310c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_AVC_2004_StereoInfoType = 3,
311c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_AVC_2010_StereoFramePackingType = 4,
312c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_FrameContentType_MAX = 0x7FFFFFFF
313c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_TI_VIDEO_FRAMECONTENTTYPE;
314c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
315c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
316c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	@brief	 Specifies the type of interlace content
317c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
318c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_TI_VIDEO_AVC_INTERLACE_CODINGTYPE {
319c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_Interlace_PICAFF = 0,	//!< PicAFF type of interlace coding
320c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_Interlace_MBAFF,		//!< MBAFF type of interlace coding
321c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_Interlace_Fieldonly,	//!< Field only coding
322c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_Interlace_Fieldonly_MRF=OMX_TI_Video_Interlace_Fieldonly,
323c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_Interlace_Fieldonly_ARF,
324c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_Interlace_Fieldonly_SPF,	//!< Field only coding where codec decides the partiy of the field to be used based upon content
325c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Interlace_MAX = 0x7FFFFFFF
326c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_TI_VIDEO_AVC_INTERLACE_CODINGTYPE;
327c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
328c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
329c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
330c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_VIDEO_PARAM_FRAMEDATACONTENTTYPE : to configure the data content
331c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  eContentType		to specify Content type
332c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 							@sa OMX_VIDEO_FRAMECONTENTTYPE
333c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
334c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
335c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_VIDEO_PARAM_FRAMEDATACONTENTTYPE{
336c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nSize;
337c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
338c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nPortIndex;
339c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_VIDEO_FRAMECONTENTTYPE eContentType;
340c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_TI_VIDEO_PARAM_FRAMEDATACONTENTTYPE;
341c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
342c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
343c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
344c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_VIDEO_PARAM_AVCINTERLACECODING : to configure the interlace encoding related settings
345c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  eInterlaceCodingType	to specify the settings of interlace content
346c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 							@sa OMX_VIDEO_INTERLACE_CODINGTYPE
347c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  bTopFieldFirst				to specify the first field sent is top or bottom
348c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  bBottomFieldIntra		to specify codec that encode bottomfield also as intra or not
349c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
350c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
351c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_VIDEO_PARAM_AVCINTERLACECODING{
352c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nSize;
353c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
354c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nPortIndex;
355c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_VIDEO_AVC_INTERLACE_CODINGTYPE eInterlaceCodingType;
356c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL bTopFieldFirst;
357c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL bBottomFieldIntra;
358c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_TI_VIDEO_PARAM_AVCINTERLACECODING;
359c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
360c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
361c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_VIDEO_PARAM_AVCENC_STEREOINFO2004  : to configure the 2004 related stereo information type
362c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
363c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
364c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
365c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_VIDEO_PARAM_AVCENC_STEREOINFO2004
366c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{
367c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32          nSize;
368c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE  nVersion;
369c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32          nPortIndex;
370c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL         btopFieldIsLeftViewFlag;
371c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL         bViewSelfContainedFlag;
372c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_VIDEO_AVCENC_STEREOINFO2004;
373c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
374c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_TI_VIDEO_AVCSTEREO_FRAMEPACKTYPE{
375c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_FRAMEPACK_CHECKERBOARD        = 0,
376c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_FRAMEPACK_COLUMN_INTERLEAVING = 1,
377c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_FRAMEPACK_ROW_INTERLEAVING    = 2,
378c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_FRAMEPACK_SIDE_BY_SIDE        = 3,
379c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_FRAMEPACK_TOP_BOTTOM          = 4,
380c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_FRAMEPACK_TYPE_DEFAULT        = OMX_TI_Video_FRAMEPACK_SIDE_BY_SIDE,
381c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_Video_FRAMEPACK_TYPE_MAX = 0x7FFFFFFF
382c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_VIDEO_AVCSTEREO_FRAMEPACKTYPE;
383c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
384c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
385c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
386c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_VIDEO_PARAM_AVCENC_FRAMEPACKINGINFO2010 : to configure the 2010 related stereo information type
387c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
388c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
389c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
390c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_VIDEO_PARAM_AVCENC_FRAMEPACKINGINFO2010
391c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev{
392c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32          nSize;
393c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
394c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32          nPortIndex;
395c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_TI_VIDEO_AVCSTEREO_FRAMEPACKTYPE eFramePackingType;
396c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8         nFrame0PositionX;
397c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8         nFrame0PositionY;
398c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8         nFrame1PositionX;
399c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8         nFrame1PositionY;
400c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_TI_VIDEO_PARAM_AVCENC_FRAMEPACKINGINFO2010;
401c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
402c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
403c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	@brief	 Specifies Transform Block Size
404c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
405c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_VIDEO_TRANSFORMBLOCKSIZETYPE {
406c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Transform_Block_Size_4x4 =0,	//!< Transform blocks size is 8x8 : Valid for only High Profile
407c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Transform_Block_Size_8x8,	//!< Transform blocks size is 4x4
408c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_Video_Transform_Block_Size_Adaptive, //!< Adaptive transform block size : encoder decides as per content
409c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_Video_Transform_Block_Size_MAX =  0X7FFFFFFF
410c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEO_TRANSFORMBLOCKSIZETYPE;
411c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
412c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
413c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
414c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_VIDEO_PARAM_TRANSFORM_BLOCKSIZETYPE : to select the Block Size used for transformation
415c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  eTransformBlocksize	to specify Block size used for transformation
416c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 							@sa OMX_VIDEO_TRANSFORMBLOCKSIZETYPE
417c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
418c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
419c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
420c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_TRANSFORM_BLOCKSIZETYPE{
421c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nSize;
422c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
423c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nPortIndex;
424c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VIDEO_TRANSFORMBLOCKSIZETYPE eTransformBlocksize;
425c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEO_PARAM_TRANSFORM_BLOCKSIZETYPE;
426c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
427c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
428c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
429c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
430c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_VIDEO_CONFIG_SLICECODINGTYPE : to configure the Slice Settings
431c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  eSliceMode	to specify the Slice mode
432c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev 							@sa OMX_VIDEO_AVCSLICEMODETYPE
433c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  nSlicesize to specify the sliceSize
434c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
435c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
436c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
437c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_VIDEO_CONFIG_SLICECODINGTYPE{
438c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nSize;
439c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
440c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nPortIndex;
441c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VIDEO_AVCSLICEMODETYPE eSliceMode;
442c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nSlicesize;
443c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEO_CONFIG_SLICECODINGTYPE;
444c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
445c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
446c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	@brief	 Specifies Slice Group Change Direction Flag
447c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
448c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_VIDEO_SLIGRPCHANGEDIRTYPE{
449c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev  OMX_Video_Raster_Scan             = 0 , //!< 0 : Raster scan order
450c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev  OMX_Video_Clockwise              = 0 , //!< 0 : Clockwise (used for BOX OUT FMO Params)
451c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev  OMX_Video_Right                   = 0 , //!< 0 : RIGHT (Used for Wipe FMO type)
452c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev  OMX_Video_Reverse_Raster_Scan= 1 , //!< 1 : Reverse Raster Scan Order
453c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev  OMX_Video_Counter_Clockwise       = 1 , //!< 1 : Counter Clockwise (used for BOX OUT FMO Params)
454c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev  OMX_Video_Left                    = 1,  //!< 1 : LEFT (Used for Wipe FMO type)
455c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev  OMX_Video_Left_MAX =  0X7FFFFFFF
456c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_VIDEO_SLICEGRPCHANGEDIRTYPE;
457c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
458c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
459c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
460c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_VIDEO_PARAM_FMO_ADVANCEDSETTINGS : to configure the FMO Settings
461c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param
462c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
463c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
464c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_VIDEO_PARAM_AVCADVANCEDFMOTYPE{
465c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nSize;
466c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
467c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nPortIndex;
468c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8 nNumSliceGroups;
469c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8 nSliceGroupMapType;
470c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VIDEO_SLICEGRPCHANGEDIRTYPE eSliceGrpChangeDir;
471c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSliceGroupChangeRate;
472c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSliceGroupChangeCycle;
473c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSliceGroupParams[H264ENC_MAXNUMSLCGPS] ;
474c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEO_PARAM_AVCADVANCEDFMOTYPE;
475c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
476c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
477c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
478c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_VIDEO_CONFIG_QPSETTINGS : to configure the Qp Settings of I, P &B Frames
479c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  nQpI
480c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
481c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
482c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
483c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_VIDEO_CONFIG_QPSETTINGSTYPE{
484c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nSize;
485c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
486c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nPortIndex;
487c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nQpI;
488c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nQpMaxI;
489c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nQpMinI;
490c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nQpP;
491c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nQpMaxP;
492c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nQpMinP;
493c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nQpOffsetB;
494c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nQpMaxB;
495c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32	 nQpMinB;
496c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_VIDEO_CONFIG_QPSETTINGSTYPE;
497c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
498c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
499c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
500c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_VIDEO_PARAM_AVCHRDBUFFERSETTING : to configure the HRD
501c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	(Hypothetical Reference Decoder) related params
502c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  nInitialBufferLevel	Initial buffer level for HRD compliance
503c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  nHRDBufferSize		Hypothetical Reference Decoder buffer size
504c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  nTargetBitrate		Target bitrate to encode with
505c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
506c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
507c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
508c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_VIDEO_PARAM_AVCHRDBUFFERSETTING {
509c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32     nSize;
510c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE     nVersion;
511c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32    nPortIndex;
512c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32    nInitialBufferLevel;
513c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32    nHRDBufferSize;
514c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32    nTargetBitrate;
515c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_VIDEO_PARAM_AVCHRDBUFFERSETTING;
516c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
517c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
518c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
519c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_VIDEO_CONFIG_AVCHRDBUFFERSETTING : to configure the HRD
520c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	(Hypothetical Reference Decoder) related params
521c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  nHRDBufferSize		Hypothetical Reference Decoder Buffer Size
522c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  nEncodeBitrate		Target bitrate to encode with
523c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
524c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
525c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
526c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
527c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_VIDEO_CONFIG_AVCHRDBUFFERSETTING {
528c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32    nSize;
529c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE     nVersion;
530c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32     nPortIndex;
531c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32     nHRDBufferSize;
532c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32     nEncodeBitrate;
533c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_VIDEO_CONFIG_AVCHRDBUFFERSETTING;
534c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
535c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================= */
536c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
537c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_VIDEO_CODINGTYPE :
538c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	Extension to video coding type enum for VP6 and VP7
539c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param
540c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
541c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
542c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
543c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_TI_VIDEO_CODINGTYPE {
544c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VIDEO_CodingVP6 =
545c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev		(OMX_VIDEO_CODINGTYPE) OMX_VIDEO_CodingVendorStartUnused +1,  /* VP6 */
546c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VIDEO_CodingVP7, /* VP7 */
547e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_VIDEO_CodingSORENSONSPK, /* Sorenson spark*/
548e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_CodingSVC,    /**< H.264/SVC */
549e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_VIDEO_CodingVP8 /* VP8 */
550c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev}OMX_TI_VIDEO_CODINGTYPE;
551c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
552c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
553c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================= */
554c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
555c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_VIDEO_MPEG4LEVELTYPE:
556c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        Extension to MPEG-4 level to cater to level 6
557c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param
558c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
559c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
560c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_TI_VIDEO_MPEG4LEVELTYPE {
561c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev        OMX_TI_VIDEO_MPEG4Level6  =
562c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev            (OMX_VIDEO_MPEG4LEVELTYPE) OMX_VIDEO_MPEG4LevelVendorStartUnused + 1
563c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_VIDEO_MPEG4LEVELTYPE;
564c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
565c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
566c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
567c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/**
568c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev *	@brief	 Specifies various intra refresh methods
569c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
570c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef enum OMX_TI_VIDEO_INTRAREFRESHTYPE {
571c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_VIDEO_IntraRefreshNone = 0,
572c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_VIDEO_IntraRefreshCyclicMbs,
573c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_VIDEO_IntraRefreshCyclicRows,
574c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_VIDEO_IntraRefreshMandatory,
575c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_VIDEO_IntraRefreshMax = 0x7FFFFFFF
576c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_VIDEO_INTRAREFRESHTYPE;
577c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
578c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
579c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ========================================================================== */
580c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
581c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_VIDEO_PARAM_INTRAREFRESHTYPE  : Configuration parameters for
582c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev                                               intra refresh settings
583c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  eRefreshMode		Various refresh modes supported
584c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param  nIntraRefreshRate 	Intra refresh rate
585c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
586c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ==========================================================================*/
587c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
588c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_VIDEO_PARAM_INTRAREFRESHTYPE {
589c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
590c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
591c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
592c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_TI_VIDEO_INTRAREFRESHTYPE eRefreshMode;
593c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nIntraRefreshRate;
594c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_VIDEO_PARAM_INTRAREFRESHTYPE;
595c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
596c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
597c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ============================================================================= */
598c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
599c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_STEREODECINFO : Structure to access 2004 SEI message generated by
600c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev H264 decoder as metatadata on its output port.
601c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev */
602c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ============================================================================= */
603c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
604c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_STEREODECINFO {
605c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nFieldViewsFlag;
606c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nTopFieldIsLeftViewFlag;
607c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nCurrentFrameIsLeftViewFlag;
608c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nNextFrameIsSecondViewFlag;
609c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nLeftViewSelfContainedFlag;
610c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nRightViewSelfContainedFlag;
611c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_STEREODECINFO;
612c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
613c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_FRAMEPACKINGDECINFO {
614c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nFramePackingArrangementId;
615c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nFramePackingArrangementRepetitionPeriod;
616c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8  nFramePackingArrangementCancelFlag;
617c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8  nFramePackingArrangementType;
618c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8  nQuincunxSamplingFlag;
619c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8  nContentInterpretationType;
620c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8  nSpatialFlippingFlag;
621c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8  nFrame0FlippedFlag;
622c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8  nFieldViewsFlag;
623c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8  nCurrentFrameIsFrame0Flag;
624c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8  nFrame0SelfContainedFlag;
625c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8  nFrame1SelfContainedFlag;
626c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8  nFrame0GridPositionX;
627c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8  nFrame0GridPositionY;
628c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8  nFrame1GridPositionX;
629c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8  nFrame1GridPositionY;
630c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8  nFramePackingArrangementReservedByte;
631c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U8  nFramePackingArrangementExtensionFlag;
632c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_FRAMEPACKINGDECINFO;
633c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
634c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ============================================================================= */
635c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
636c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_VIDEO_RANGEMAPPING : Structure to access luma and chroma range
637c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev                                    mapping generated by decoders as
638c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev                                    metatadata on its output port.
639c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param nRangeMappingLuma     Luma scale factor for range mapping.
640c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param nRangeMappingChroma   Chroma scale factor for range mapping.
641c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
642c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ============================================================================= */
643c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
644c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_VIDEO_RANGEMAPPING {
645c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nRangeMappingLuma;
646c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nRangeMappingChroma;
647c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_VIDEO_RANGEMAPPING;
648c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
649c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ============================================================================= */
650c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
651c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_VIDEO_RESCALINGMATRIX : Structure to access rescaled
652c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev                                       width/height generated by decoders
653c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev                                       as metatadata on its output port.
654c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param nScaledHeight   Scaled image width for post processing for decoder.
655c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param nScaledWidth    Scaled image height for post processing for decoder.
656c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
657c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/* ============================================================================= */
658c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
659c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_VIDEO_RESCALINGMATRIX {
660c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nScaledHeight;
661c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nScaledWidth;
662c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_VIDEO_RESCALINGMATRIX;
663c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
664c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
665c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*==========================================================================*/
666c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
667c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @brief OMX_TI_PARAM_PAYLOADHEADERFLAG : To specify the payload headerflag
668c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev                                         for VP6/VP7 decoder.
669c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev @param bPayloadHeaderFlag      Flag - TRUE indicates that frame length and
670c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev                                timestamp(for IVF format) will be part of
671c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev                                frame input buffer.
672c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev                                Flag - FALSE indecates that frame length and
673c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev                                timestamp(for IVF format) will not be part of
674c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev                                the input buffer.
675c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
676c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*==========================================================================*/
677c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
678c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_PARAM_PAYLOADHEADERFLAG {
679c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
680c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
681c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL bPayloadHeaderFlag;
682c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_PARAM_PAYLOADHEADERFLAG;
683c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
684c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
685c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*==========================================================================*/
686c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*!
687c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev@brief OMX_TI_PARAM_IVFFLAG : Suport added to handle IVF header Decoding Mode
688c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev@param bIvfFlag               TRUE enables IVF decoding mode.
689c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev                              FALSE indicates bitstream format is non-IVF.
690c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev*/
691c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev/*==========================================================================*/
692c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
693c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_TI_PARAM_IVFFLAG {
694c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_U32 nSize;
695c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_VERSIONTYPE nVersion;
696c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev	OMX_BOOL bIvfFlag;
697c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_TI_PARAM_IVFFLAG;
698c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
699c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// A pointer to this struct is passed to OMX_SetParameter() when the extension
700c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// index "OMX.google.android.index.storeMetaDataInBuffers"
701c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// is given.
702c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev//
703c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// When meta data is stored in the video buffers passed between OMX clients
704c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// and OMX components, interpretation of the buffer data is up to the
705c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// buffer receiver, and the data may or may not be the actual video data, but
706c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// some information helpful for the receiver to locate the actual data.
707c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// The buffer receiver thus needs to know how to interpret what is stored
708c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// in these buffers, with mechanisms pre-determined externally. How to
709c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// interpret the meta data is outside of the scope of this method.
710c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev//
711c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// Currently, this is specifically used to pass meta data from video source
712c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// (camera component, for instance) to video encoder to avoid memcpying of
713c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// input video frame data. To do this, bStoreMetaDta is set to OMX_TRUE.
714c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// If bStoreMetaData is set to false, real YUV frame data will be stored
715c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// in the buffers. In addition, if no OMX_SetParameter() call is made
716c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// with the corresponding extension index, real YUV data is stored
717c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev// in the buffers.
718c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchevtypedef struct OMX_VIDEO_STOREMETADATAINBUFFERSPARAMS {
719c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nSize;
720c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_VERSIONTYPE nVersion;
721c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_U32 nPortIndex;
722c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev    OMX_BOOL bStoreMetaData;
723c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev} OMX_VIDEO_STOREMETADATAINBUFFERSPARAMS;
724c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
725e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
726e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
727e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Interlaced Video Content format
728e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
729e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * STRUCT MEMBERS:
730e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nSize      : Size of the structure in bytes
731e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nVersion   : OMX specification version information
732e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nPortIndex : Port that this structure applies to
733e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nFormat    : bitmapped value indentifying the interlaced formats supported by component
734e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nTimeStamp : temporal timestamp information for the second field
735e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
736e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_INTERLACEFORMATTYPE {
737e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32 nSize;
738e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_VERSIONTYPE nVersion;
739e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32 nPortIndex;
740e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32 nFormat;
741e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_TICKS nTimeStamp;
742e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_INTERLACEFORMATTYPE;
743e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
744e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
745e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * Interlace format types
746e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
747e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef enum OMX_TI_INTERLACETYPE {
748e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_InterlaceFrameProgressive= 0x00,
749e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_InterlaceInterleaveFrameTopFieldFirst= 0x01,
750e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_InterlaceInterleaveFrameBottomFieldFirst= 0x02,
751e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_InterlaceFrameTopFieldFirst= 0x04,
752e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_InterlaceFrameBottomFieldFirst= 0x08,
753e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_InterlaceInterleaveFieldTop= 0x10,
754e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_InterlaceInterleaveFieldBottom= 0x20,
755e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_InterlaceFmtMask= 0x7FFFFFFF
756e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_INTERLACETYPE;
757e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
758e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
759e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * To query if the stream contains interlaced or progressive conten
760e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
761e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * STRUCT MEMBERS:
762e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nSize             : Size of the structure in bytes
763e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nVersion          : OMX specification version information
764e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nPortIndex        : Port that this structure applies to
765e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bInterlaceFormat  : whether the stream contains interlace or progressive content
766e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                        OMX_TRUE indicates interlace and OMX_FALSE indicates progressive
767e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nInterlaceFormats : bitmapped value identifying the interlace formats detected within the stream
768e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
769e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_STREAMINTERLACEFORMATTYPE {
770e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32 nSize;
771e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_VERSIONTYPE nVersion;
772e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32 nPortIndex;
773e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_BOOL bInterlaceFormat;
774e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32 nInterlaceFormats;
775e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_STREAMINTERLACEFORMAT;
776e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
777e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/*
778e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@brief OMX_TI_VIDEO_CONFIG_PICSIZECONTROLINFO : Structure to provide the configuration to compute min and max picture size
779e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@param minPicSizeRatio : This ratio is used to compute minimum picture size in the following manner,
780e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. ChenminPicSize = averagePicSize >> minPicSizeRatio. Allowed values are 1 to 4. Setting this to 0 will enable encoder chosen ratio.
781e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@param maxPicSizeRatio : This ratio is used to compute maximum picture size in the following manner,
782e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. ChenmaxPicSize = averagePicSize * maxPicSizeRatio. Allowed values are 2 to 30. Setting this to 0 or 1 will enable encoder chosen ratio.
783e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
784e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ============================================================================= */
785e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_CONFIG_PICSIZECONTROLINFO {
786e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;
787e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE nVersion;
788e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nPortIndex;
789e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16         minPicSizeRatio;
790e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16         maxPicSizeRatio;
791e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_CONFIG_PICSIZECONTROLINFO;
792e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
793e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
794e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/*!====================================================================!
795e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
796e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    Currently we only support SVC baseline profile
797e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
798e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * !====================================================================!*/
799e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef enum OMX_TI_VIDEO_SVCPROFILETYPE {
800e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCProfileBaseline            = 0x01,     /**< Baseline profile */
801e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCProfileHigh                = 0x02,     /**< High profile */
802e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCProfileHighIntra           = 0x03,     /**< High Intra profile */
803e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCProfileMax                 = 0x7FFFFFFF
804e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_VIDEO_SVCPROFILETYPE;
805e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
806e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
807e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/*!====================================================================!
808e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
809e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    Currently we support only SVC baseline profile upto level 4 for SVC encoder.
810e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
811e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * !====================================================================!*/
812e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef enum OMX_TI_VIDEO_SVCLEVELTYPE {
813e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevel1                     = 0x01,     /**< Level 1 */
814e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevel1b                    = 0x02,     /**< Level 1b */
815e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevel11                    = 0x04,     /**< Level 1.1 */
816e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevel12                    = 0x08,     /**< Level 1.2 */
817e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevel13                    = 0x10,     /**< Level 1.3 */
818e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevel2                     = 0x20,     /**< Level 2 */
819e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevel21                    = 0x40,     /**< Level 2.1 */
820e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevel22                    = 0x80,     /**< Level 2.2 */
821e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevel3                     = 0x100,    /**< Level 3 */
822e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevel31                    = 0x200,    /**< Level 3.1 */
823e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevel32                    = 0x400,    /**< Level 3.2 */
824e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevel4                     = 0x800,    /**< Level 4 */
825e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevel41                    = 0x1000,   /**< Level 4.1 */
826e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevel42                    = 0x2000,   /**< Level 4.2 */
827e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevel5                     = 0x4000,   /**< Level 5 */
828e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevel51                    = 0x8000,   /**< Level 5.1 */
829e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVCLevelMax                   = 0x7FFFFFFF
830e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_VIDEO_SVCLEVELTYPE;
831e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
832e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
833e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_STD_PARAMS {
834e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32  nSliceHeaderSpacing;
835e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32  nPFrames;
836e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32  nBFrames;
837e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL bUseHadamard;
838e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32  nRefFrames;
839e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32  nRefIdx10ActiveMinus1;
840e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32  nRefIdx11ActiveMinus1;
841e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL bEnableUEP;
842e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        /* Not needed as per SVC encoder requirements
843e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL                                bEnableFMO;
844e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL                                bEnableASO;
845e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL                                bEnableRS;
846e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        */
847e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_AVCLOOPFILTERTYPE eLoopFilterMode;
848e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                     nAllowedPictureTypes;
849e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL                    bFrameMBsOnly;
850e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL                    bMBAFF;
851e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL                    bEntropyCodingCABAC;
852e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL                    bWeightedPPrediction;
853e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                     nWeightedBipredicitonMode;
854e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL                    bconstIpred;
855e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL                    bDirect8x8Inference;
856e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL                    bDirectSpatialTemporal;
857e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                     nCabacInitIdc;
858e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_VIDEO_SVC_STD_PARAMS;
859e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
860e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
861e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_RECTTYPE {
862e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_S32 nLeft;
863e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_S32 nTop;
864e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nWidth;
865e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nHeight;
866e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_VIDEO_SVC_RECTTYPE;
867e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
868e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
869e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_BITRATETYPE {
870e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_CONTROLRATETYPE eControlRate;
871e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                   nTargetBitrate;
872e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_VIDEO_SVC_BITRATETYPE;
873e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
874e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
875e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_MOTIONVECTORTYPE {
876e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_MOTIONVECTORTYPE eAccuracy;
877e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL                   bUnrestrictedMVs;
878e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL                   bFourMV;
879e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_S32                    sXSearchRange;
880e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_S32                    sYSearchRange;
881e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_VIDEO_SVC_MOTIONVECTORTYPE;
882e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
883e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
884e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_QUANTIZATIONTYPE {
885e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nQpI;
886e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nQpP;
887e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nQpB;
888e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_VIDEO_SVC_QUANTIZATIONTYPE;
889e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
890e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
891e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_INTRAREFRESHTYPE {
892e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_INTRAREFRESHTYPE eRefreshMode;
893e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                    nAirMBs;
894e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                    nAirRef;
895e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                    nCirMBs;
896e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_VIDEO_SVC_INTRAREFRESHTYPE;
897e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
898e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
899e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_VBSMCTYPE {
900e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL b16x16;
901e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL b16x8;
902e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL b8x16;
903e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL b8x8;
904e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL b8x4;
905e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL b4x8;
906e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL b4x4;
907e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_VIDEO_SVC_VBSMCTYPE;
908e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
909e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
910e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_NALUCONTROLTYPE {
911e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nStartofSequence;
912e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nEndofSequence;
913e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nIDR;
914e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nIntraPicture;
915e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nNonIntraPicture;
916e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    }OMX_VIDEO_SVC_NALUCONTROLTYPE;
917e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
918e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
919e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_MEBLOCKSIZETYPE {
920e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_BLOCKSIZETYPE eMinBlockSizeP;
921e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_BLOCKSIZETYPE eMinBlockSizeB;
922e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    }OMX_VIDEO_SVC_MEBLOCKSIZETYPE;
923e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
924e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
925e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_INTRAPREDTYPE {
926e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                       nLumaIntra4x4Enable;
927e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                       nLumaIntra8x8Enable;
928e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                       nLumaIntra16x16Enable;
929e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                       nChromaIntra8x8Enable;
930e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_CHROMACOMPONENTTYPE eChromaComponentEnable;
931e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    }OMX_VIDEO_SVC_INTRAPREDTYPE;
932e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
933e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
934e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_ENCODER_PRESETTYPE {
935e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_ENCODING_MODE_PRESETTYPE eEncodingModePreset;
936e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_RATECONTROL_PRESETTYPE   eRateControlPreset;
937e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    }OMX_VIDEO_SVC_ENCODER_PRESETTYPE;
938e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
939e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
940e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_VUIINFOTYPE {
941e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL                  bAspectRatioPresent;
942e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_ASPECTRATIOTYPE ePixelAspectRatio;
943e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL                  bFullRange;
944e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    }OMX_VIDEO_SVC_VUIINFOTYPE;
945e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
946e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
947e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_HRDBUFFERSETTING {
948e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nInitialBufferLevel;
949e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nHRDBufferSize;
950e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nTargetBitrate;
951e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    }OMX_VIDEO_SVC_HRDBUFFERSETTING;
952e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
953e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
954e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_INTRAPERIOD {
955e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nIDRPeriod;
956e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nPFrames;
957e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_VIDEO_SVC_INTRAPERIOD;
958e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
959e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
960e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_PIXELINFOTYPE {
961e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nWidth;
962e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nHeight;
963e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_VIDEO_SVC_PIXELINFOTYPE;
964e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
965e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
966e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_MESEARCHRANGETYPE {
967e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_MOTIONVECTORTYPE eMVAccuracy;
968e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                    nHorSearchRangeP;
969e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                    nVerSearchRangeP;
970e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                    nHorSearchRangeB;
971e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                    nVerSearchRangeB;
972e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    }OMX_VIDEO_SVC_MESEARCHRANGETYPE;
973e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
974e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
975e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_QPSETTINGSTYPE {
976e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nQpI;
977e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nQpMaxI;
978e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nQpMinI;
979e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nQpP;
980e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nQpMaxP;
981e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nQpMinP;
982e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nQpOffsetB;
983e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nQpMaxB;
984e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nQpMinB;
985e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    }OMX_VIDEO_SVC_QPSETTINGSTYPE;
986e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
987e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
988e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_SVC_SLICECODINGTYPE {
989e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_AVCSLICEMODETYPE eSliceMode;
990e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                    nSlicesize;
991e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    }OMX_VIDEO_SVC_SLICECODINGTYPE;
992e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
993e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
994e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_VIDEO_EXEC_SVC_HRDBUFFERSETTING {
995e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nHRDBufferSize;
996e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nEncodeBitrate;
997e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    }OMX_VIDEO_EXEC_SVC_HRDBUFFERSETTING;
998e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
999e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1000e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * SVC params
1001e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1002e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen * STRUCT MEMBERS:
1003e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nSize                     : Size of the structure in bytes
1004e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nVersion                  : OMX specification version information
1005e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nPortIndex                : Port that this structure applies to
1006e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nSliceHeaderSpacing       : Number of macroblocks between slice header, put
1007e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              zero if not used
1008e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nPFrames                  : Number of P frames between each I frame
1009e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nBFrames                  : Number of B frames between each I frame
1010e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bUseHadamard              : Enable/disable Hadamard transform
1011e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nRefFrames                : Max number of reference frames to use for inter
1012e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              motion search (1-16)
1013e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nRefIdxTrailing           : Pic param set ref frame index (index into ref
1014e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              frame buffer of trailing frames list), B frame
1015e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              support
1016e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nRefIdxForward            : Pic param set ref frame index (index into ref
1017e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              frame buffer of forward frames list), B frame
1018e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              support
1019e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bEnableUEP                : Enable/disable unequal error protection. This
1020e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              is only valid of data partitioning is enabled.
1021e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bEnableFMO                : Enable/disable flexible macroblock ordering
1022e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bEnableASO                : Enable/disable arbitrary slice ordering
1023e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bEnableRS                 : Enable/disable sending of redundant slices
1024e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  eProfile                  : AVC profile(s) to use
1025e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  eLevel                    : AVC level(s) to use
1026e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nAllowedPictureTypes      : Specifies the picture types allowed in the
1027e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              bitstream
1028e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bFrameMBsOnly             : specifies that every coded picture of the
1029e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              coded video sequence is a coded frame
1030e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              containing only frame macroblocks
1031e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bMBAFF                    : Enable/disable switching between frame and
1032e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              field macroblocks within a picture
1033e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bEntropyCodingCABAC       : Entropy decoding method to be applied for the
1034e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              syntax elements for which two descriptors appear
1035e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              in the syntax tables
1036e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bWeightedPPrediction      : Enable/disable weighted prediction shall not
1037e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              be applied to P and SP slices
1038e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nWeightedBipredicitonMode : Default weighted prediction is applied to B
1039e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              slices
1040e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bconstIpred               : Enable/disable intra prediction
1041e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bDirect8x8Inference       : Specifies the method used in the derivation
1042e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              process for luma motion vectors for B_Skip,
1043e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              B_Direct_16x16 and B_Direct_8x8 as specified
1044e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              in subclause 8.4.1.2 of the AVC spec
1045e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  bDirectSpatialTemporal    : Flag indicating spatial or temporal direct
1046e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              mode used in B slice coding (related to
1047e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              bDirect8x8Inference) . Spatial direct mode is
1048e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              more common and should be the default.
1049e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  nCabacInitIdx             : Index used to init CABAC contexts
1050e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  eLoopFilterMode           : Enable/disable loop filter
1051e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
1052e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    typedef struct OMX_TI_VIDEO_PARAM_SVCTYPE {
1053e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nSize;
1054e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VERSIONTYPE nVersion;
1055e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32         nPortIndex;
1056e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1057e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                nActualFrameWidth;
1058e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                nActualFrameHeight;
1059e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_S32                nStride;
1060e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                xFramerate;
1061e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_COLOR_FORMATTYPE   eColorFormat;
1062e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVC_RECTTYPE sRecType;
1063e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1064e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVC_STD_PARAMS sBasicParams;
1065e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1066e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                     nRefFrames;
1067e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_VIDEO_SVCPROFILETYPE eProfile;
1068e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_VIDEO_SVCLEVELTYPE   eLevel;
1069e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1070e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32                   xEncodeFramerate;
1071e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVC_BITRATETYPE sBitRateParams;
1072e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1073e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVC_MOTIONVECTORTYPE sMotionVectorParams;
1074e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVC_QUANTIZATIONTYPE sQuantizationParams;
1075e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVC_INTRAREFRESHTYPE sIntraRefreshParams;
1076e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVC_VBSMCTYPE        sVBSMCParams;
1077e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1078e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        //OMX_NALUFORMATSTYPE               eNaluFormat;
1079e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVC_NALUCONTROLTYPE sNalUnitParams;
1080e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1081e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVC_MEBLOCKSIZETYPE    sMEBlockSizeParams;
1082e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVC_INTRAPREDTYPE      sIntraPredParams;
1083e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVC_ENCODER_PRESETTYPE sEncPresetParams;
1084e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_TRANSFORMBLOCKSIZETYPE eTransformBlocksize;
1085e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVC_VUIINFOTYPE        sVUIInfoParams;
1086e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_VIDEO_SVC_HRDBUFFERSETTING   sHRDBufferParams;
1087e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1088e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nNumTemporalLayers;
1089e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_S32 nDependencyID;
1090e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_S32 nQualityID;
1091e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        //OMX_VIDEO_SVC_ENCODE_MODE         eModeOfEncode;
1092e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1093e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nErrorConcealmentMode;
1094e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_U32 nDeblockFilterMode;
1095e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_VIDEO_PARAM_SVCTYPE;
1096e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1097e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen typedef struct OMX_TI_VIDEO_CONFIG_SVCLAYERDETAILS {
1098e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;
1099e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE nVersion;
1100e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nPortIndex;
1101e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1102e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nNumLayers;
1103e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nLayerId;
1104e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nPriorityId;
1105e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nDependencyId;
1106e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nQualityId;
1107e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nTemporalId;
1108e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nBitrateInfoPresentFlag;
1109e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nFramerateInfoPresentFlag;
1110e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nFramesizeInfoPresentFlag;
1111e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nAvgBitrate;
1112e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nMaxBitrate;
1113e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 nAvgFramerate;
1114e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nFrameWidth;
1115e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nFrameHeight;
1116e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1117e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nLayerIndex;     /* Used to query for individual layer details */
1118e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1119e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_CONFIG_SVCLAYERDETAILS;
1120e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1121e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_CONFIG_SVCTARGETLAYER {
1122e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;
1123e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE nVersion;
1124e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nPortIndex;
1125e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1126e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nSvcTargetLayerDID;
1127e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nSvcTargetLayerTID;
1128e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nSvcTargetLayerQID;
1129e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1130e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_CONFIG_SVCTARGETLAYER;
1131e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ========================================================================== */
1132e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/*!
1133e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@brief OMX_TI_VIDEO_SLICEDATAINFO : to configure the Slice Settings
1134e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@param  nNumofSlices   number of validfields to be read
1135e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@param  nSliceSizeConfigured   variable that indicates the MaxSlice configured
1136e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                               & (n*nSliceSizeConfigured) gives the buff offset
1137e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                               for nth slice in the o/p buffer
1138e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@param  nSliceSize   gives the SliceSize
1139e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1140e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ==========================================================================*/
1141e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_SLICEDATAINFO {
1142e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nNumofSlices;
1143e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nSliceSizeConfigured;
1144e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nSliceSize[OMXH264E_MAX_SLICE_SUPPORTED];
1145e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_SLICEDATAINFO;
1146e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1147e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*	@brief	mode selection for the data that is given to the Codec
1148e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
1149e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1150e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef enum _OMX_VIDEO_AVCLTRMODE {
1151e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen  OMX_H264ENC_LTRP_NONE = 0,
1152e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        /**< No longterm refernce frame in the sequnce
1153e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen           */
1154e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen  OMX_H264ENC_LTRP_REFERTOIDR = 1,
1155e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen          /**< Mark all the I frames as long term-reference frames and
1156e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen           * based on the frame control IH264ENC_Control, refere to
1157e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen           * a long-term reference frame (I frame).
1158e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen           */
1159e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen  OMX_H264ENC_LTRP_REFERTOP_PROACTIVE =2,
1160e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen          /**< Two long term frames are supported in this schme and
1161e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen           * long-term index marking and refernce frame update is done based
1162e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen           * the IH264ENC_Control values
1163e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen           */
1164e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen  OMX_H264ENC_LTRP_REFERTOP_REACTIVE = 3
1165e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen          /**< This is not supported in the current version of encoder
1166e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen           */
1167e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_VIDEO_AVCLTRMODE;
1168e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1169e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1170e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ============================================================================= */
1171e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/*
1172e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@brief OMX_TI_VIDEO_PARAM_AVC_LTRP : Structure to enable the configuration of Long Term reference Picture feature in H264 Encoder for the session
1173e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. ChenEnabling this parameter will instruct encoder to keep its recent I/IDR frame in its reference buffer list.
1174e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. ChenSo it increases the DDR foot print by one frame buffer
1175e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@param eLTRMode	: enables the LongTerm Reference Picture, possible modes: 0, 1, 2
1176e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@param nLTRInterval : interval of the write indicating to codec interms of the frame number
1177e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1178e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ============================================================================= */
1179e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_PARAM_AVC_LTRP{
1180e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32 nSize;
1181e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_VERSIONTYPE nVersion;
1182e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32 nPortIndex;
1183e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_VIDEO_AVCLTRMODE eLTRMode;
1184e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32 nLTRInterval;
1185e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_PARAM_AVC_LTRP;
1186e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1187e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/*
1188e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@brief OMX_TI_VIDEO_CONFIG_AVC_LTRP : Structure to provide the configuration to acknowledge successful decode of previous LTR
1189e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@param eLTRFrameDecoded	: tells the decoder that the LTR has been decoded successfully when set to TRUE
1190e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1191e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ============================================================================= */
1192e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_CONFIG_AVC_LTRP{
1193e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nSize;
1194e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE nVersion;
1195e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nPortIndex;
1196e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL bEnableNextLTR;
1197e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_CONFIG_AVC_LTRP;
1198e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1199e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ============================================================================= */
1200e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/*
1201e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@brief OMX_TI_VIDEO_CONFIG_AVC_LTRP_INTERVAL : Structure to enable the update of the LTRP
1202e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. ChenInterval during runtime
1203e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@param nLTRInterval : interval of the write indicating to codec interms of the frame number
1204e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1205e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ============================================================================= */
1206e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_CONFIG_AVC_LTRP_INTERVAL{
1207e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32 nSize;
1208e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_VERSIONTYPE nVersion;
1209e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32 nPortIndex;
1210e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32 nLTRInterval;
1211e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_CONFIG_AVC_LTRP_INTERVAL;
1212e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1213e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ============================================================================= */
1214e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/*
1215e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@brief OMX_TI_VIDEO_CONFIG_AVC_LTRP_INTERVAL : Structure to enable timestamps in decode order
1216e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen            at i/p of decoders.
1217e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1218e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ============================================================================= */
1219e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_PARAM_TIMESTAMP_IN_DECODE_ORDER{
1220e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_U32 nSize;
1221e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen	OMX_VERSIONTYPE nVersion;
1222e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_BOOL bEnabled;
1223e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_PARAM_TIMESTAMP_IN_DECODE_ORDER;
1224e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1225e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ============================================================================= */
1226e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/*
1227e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@brief OMX_TI_VIDEO_PARAM_AUTO_FRAMERATE_UPDATE : Structure to enable dynamic update of frame rate
1228e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1229e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ============================================================================= */
1230e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_PARAM_AUTO_FRAMERATE_UPDATE {
1231e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;
1232e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE nVersion;
1233e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nPortIndex;
1234e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL        bEnableAutoVFRUpdate;
1235e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nDiffThresholdtoUpdate;
1236e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nMaxSessionFrameRate;
1237e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_PARAM_AUTO_FRAMERATE_UPDATE;
1238e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1239e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ============================================================================= */
1240e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/*
1241e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@brief OMX_TI_PARAM_SKIP_GREY_OUTPUT_FRAMES : Structure to enable feature to skip grey output
1242e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen           frames which doesn't have proper reference.
1243e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1244e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ============================================================================= */
1245e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_PARAM_SKIP_GREY_OUTPUT_FRAMES {
1246e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;
1247e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE nVersion;
1248e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL        bEnabled;
1249e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_PARAM_SKIP_GREY_OUTPUT_FRAMES;
1250e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1251e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ============================================================================= */
1252e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/*
1253e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen@brief OMX_TI_PARAM_DECMETADATA : Structure to enable different codec metadata
1254e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen           for video decoders.
1255e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1256e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/* ============================================================================= */
1257e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_PARAM_DECMETADATA {
1258e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nSize;
1259e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_VERSIONTYPE nVersion;
1260e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32         nPortIndex;
1261e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL        bEnableMBInfo;
1262e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL        bEnableTranscodeMode;
1263e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL        bEnableSEIInfo;
1264e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_BOOL        bEnableVUIInfo;
1265e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_PARAM_DECMETADATA;
1266e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1267e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1268e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1269e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @enum       OMX_TI_VIDEO_MBERRSTATUS
1270e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief      This enum indicates if a MB was in error or not
1271e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1272e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1273e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1274e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef enum {
1275e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_MB_NOERROR = 0,
1276e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /**
1277e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    *  MB was non-erroneous
1278e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    */
1279e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_MB_ERROR = 1
1280e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                            /**
1281e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                            * MB was erroneous
1282e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen                            */
1283e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_MBERRSTATUS;
1284e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1285e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1286e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1287e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  Macro definitions required for SEI support: HRD sequence parameter set
1288e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
1289e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen#define OMX_TI_VIDEO_H264VDEC_MAXCPBCNT        32
1290e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1291e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1292e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  Macro definitions required for SEI support: HRD sequence parameter set
1293e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen */
1294e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen#define OMX_TI_VIDEO_H264VDEC_MAXUSERDATA_PAYLOAD 300
1295e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1296e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1297e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1298e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_HrdParams
1299e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1300e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief  This structure contains the HRD parameter elements.
1301e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1302e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  cpb_cnt_minus1 : Number of alternative CPB specifications in the
1303e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                           bit-stream
1304e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  bit_rate_scale : Together with bit_rate_value[i], it specifies the
1305e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                           maximum input bit-rate for the ith CPB.
1306e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  cpb_size_scale : Together with cpb_size_value[i], specifies the
1307e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                           maximum CPB size for the ith CPB.
1308e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  bit_rate_value_minus1[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT] :Maximum input bitrate
1309e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                                     for the ith CPB
1310e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  cpb_size_value_minus1[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT] :Maximum CPB size for the
1311e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                                     ith CPB
1312e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  vbr_cbr_flag[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT] :Specifies the ith CPB is operated
1313e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                          in Constant Bit-rate mode or variable bit-rate mode
1314e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  initial_cpb_removal_delay_length_minus1 :Length in bits of
1315e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                   initial_cpb_removal_length syntax element
1316e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  cpb_removal_delay_length_minus1 :Length in bits of
1317e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                      cpb_removal_delay_length syntax element
1318e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  dpb_output_delay_length_minus1 :Length in bits of
1319e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                       dpb_output_delay_length syntax element
1320e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  time_offset_length : Length in bits of time_offset syntax element
1321e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1322e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1323e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_HrdParams {
1324e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 cpb_cnt_minus1;
1325e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  bit_rate_scale;
1326e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  cpb_size_scale;
1327e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 bit_rate_value_minus1[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT];
1328e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 cpb_size_value_minus1[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT];
1329e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  vbr_cbr_flag[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT];
1330e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  initial_cpb_removal_delay_length_minus1;
1331e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  cpb_removal_delay_length_minus1;
1332e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  dpb_output_delay_length_minus1;
1333e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  time_offset_length;
1334e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_HrdParams;
1335e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1336e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1337e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1338e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_SVCVuiParams
1339e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1340e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief   This structure contains VUI  message syntax elements for scalable
1341e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *           video stream
1342e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1343e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  parsed_flag :1 - Indicates that in the current process call, c
1344e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                            contents of the structure is updated
1345e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                       0 - Indicates contents of the structure is not updated
1346e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1347e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  svc_vui_ext_num_entries_minus1:(svc_vui_ext_num_entries_minus1 + 1)
1348e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                      specifies the number of information
1349e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                        entries that are present in the SVC
1350e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                      VUI parameters extension syntax
1351e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                        structure
1352e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  svc_vui_ext_dependency_id:indicate the max value of DId for the
1353e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    i-th subset of coded video sequences
1354e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  svc_vui_ext_quality_id:indicate the max value of QId for the
1355e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    i-th subset of coded video sequences
1356e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  svc_vui_ext_temporal_id: indicate the max value of TId for the
1357e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    i-th subset of coded video sequences
1358e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  svc_vui_ext_timing_info_present_flag: Flag to tells that
1359e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                          svc_vui_ext_num_units_in_tick,
1360e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                          svc_vui_ext_time_scale,
1361e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                          svc_vui_ext_fixed_frame_rate_flag
1362e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                          are present for current coded
1363e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                          sequence or not.
1364e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  svc_vui_ext_num_units_in_tick: specifies the value of num_units_in_tick
1365e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  svc_vui_ext_time_scale: specifies the value of time_scale
1366e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  svc_vui_ext_fixed_frame_rate_flag: specifies the value of
1367e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                         fixed_frame_rate_flag
1368e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  svc_vui_ext_nal_hrd_parameters_present_flag:specifies the
1369e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                value of nal_hrd_parameters_present_flag
1370e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  svc_vui_ext_vcl_hrd_parameters_present_flag: ] specifies the
1371e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                value of vcl_hrd_parameters_present_flag
1372e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  svc_vui_ext_low_delay_hrd_flag: specifies the value
1373e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          of low_delay_hrd_flag
1374e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  svc_vui_ext_pic_struct_present_flag: specifies the value
1375e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *           of pic_struct_present_flag
1376e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1377e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1378e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1379e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1380e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct sOMX_TI_VIDEO_H264VDEC_SVCVuiParams {
1381e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 parsed_flag;
1382e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 svc_vui_ext_num_entries_minus1;
1383e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 svc_vui_ext_dependency_id;
1384e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 svc_vui_ext_quality_id;
1385e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 svc_vui_ext_temporal_id;
1386e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 svc_vui_ext_timing_info_present_flag;
1387e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 svc_vui_ext_num_units_in_tick;
1388e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 svc_vui_ext_time_scale;
1389e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 svc_vui_ext_fixed_frame_rate_flag;
1390e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 svc_vui_ext_nal_hrd_parameters_present_flag;
1391e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 svc_vui_ext_vcl_hrd_parameters_present_flag;
1392e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 svc_vui_ext_low_delay_hrd_flag;
1393e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 svc_vui_ext_pic_struct_present_flag;
1394e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_SVCVuiParams;
1395e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1396e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1397e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1398e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_VuiParams
1399e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1400e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief  This structure contains the VUI Sequence Parameter elements.
1401e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1402e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  parsed_flag :1 - Indicates that in the current process call, c
1403e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                            contents of the structure is updated
1404e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                       0 - Indicates contents of the structure is not updated
1405e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  aspect_ratio_info_present_flag :Indicates whether aspect ratio idc
1406e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                          is present or not.
1407e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  aspect_ratio_idc : Aspect ratio of Luma samples
1408e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  sar_width : Horizontal size of sample aspect ratio
1409e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  sar_height : Vertical size of sample aspect ratio
1410e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  overscan_info_present_flag : Cropped decoded pictures are suitable
1411e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                       for display or not.
1412e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  overscan_appropriate_flag : Overscan_appropriate_flag
1413e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  video_signal_type_present_flag : Flag indicates whether
1414e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          video_format, video_full_range_flag and colour_description_present_
1415e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          flag are present or not
1416e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  video_format :Video format indexed by a table. For example,PAL/NTSC
1417e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  video_full_range_flag : Black level, luma and chroma ranges. It
1418e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  should be used for BT.601 compliance
1419e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  colour_description_present_flag:Indicates whether colour_primaries,
1420e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                transfer_characteristics and matrix_coefficients are present.
1421e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  colour_primaries :Chromaticity co-ordinates of source primaries
1422e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  transfer_characteristics :Opto-electronic transfer characteristics
1423e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          of the source picture
1424e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  matrix_coefficients :Matrix coefficients for deriving Luma and
1425e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          chroma data from RGB components.
1426e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  chroma_location_info_present_flag : Flag indicates whether
1427e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          chroma_sample_loc_type_top field and chroma_sample_loctype
1428e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          bottom_field are present.
1429e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  chroma_sample_loc_type_top_field : Location of chroma_sample top
1430e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          field
1431e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  chroma_sample_loc_type_bottom_field :Location of chroma_sample
1432e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          bottom field
1433e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  timing_info_present_flag :Indicates whether num_units_in_tick,
1434e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          time_scale, and fixed_frame_rate_flag are present.
1435e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  num_units_in_tick :Number of units of a clock that corresponds to 1
1436e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          increment of a clock tick counter
1437e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  time_scale :Indicates actual increase in time for 1 increment of a
1438e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          clock tick counter
1439e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  fixed_frame_rate_flag :Indicates how the temporal distance between
1440e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          HRD output times of any two output pictures is constrained
1441e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  nal_hrd_parameters_present_flag :Indicates whether
1442e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          nal_hrd_parameters are present
1443e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  nal_hrd_pars : NAL HRD Parameters
1444e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  vcl_hrd_parameters_present_flag :Indicates whether
1445e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          vcl_hrd_parameters are present
1446e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  vcl_hrd_pars : VCL HRD Parameters
1447e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  low_delay_hrd_flag :HRD operational mode as in Annex C of the
1448e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          standard
1449e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  pic_struct_present_flag :Indicates whether picture timing SEI
1450e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          messages are present
1451e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  bitstream_restriction_flag :Indicates if the bit-stream restriction
1452e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          parameters are present
1453e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  motion_vectors_over_pic_boundaries_flag :Specifies whether motion
1454e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          vectors can point to regions outside the picture boundaries
1455e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  max_bytes_per_pic_denom :Maximum number of bytes not exceeded by
1456e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          the sum of sizes of all VCL NAL units of a single coded picture
1457e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  max_bits_per_mb_denom :Maximum number of bits taken by any coded MB
1458e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  log2_max_mv_length_vertical :Maximum value of any motion vector\u2019s
1459e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          vertical component
1460e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  log2_max_mv_length_horizontal :Maximum value of any motion vector\u2019s
1461e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *           horizontal component
1462e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  max_dec_frame_reordering :
1463e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  num_reorder_frames :Maximum number of frames that need to be
1464e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          re-ordered
1465e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  max_dec_frame_buffering :Size of HRD decoded buffer (DPB) in terms
1466e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          of frame buffers
1467e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  svcVuiParams :  struct instance of vui parameters for svc
1468e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1469e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1470e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1471e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_VuiParams {
1472e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                            parsed_flag;
1473e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             aspect_ratio_info_present_flag;
1474e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                            aspect_ratio_idc;
1475e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                            sar_width;
1476e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                            sar_height;
1477e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             overscan_info_present_flag;
1478e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             overscan_appropriate_flag;
1479e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             video_signal_type_present_flag;
1480e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             video_format;
1481e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             video_full_range_flag;
1482e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             colour_description_present_flag;
1483e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             colour_primaries;
1484e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             transfer_characteristics;
1485e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             matrix_coefficients;
1486e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             chroma_location_info_present_flag;
1487e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                            chroma_sample_loc_type_top_field;
1488e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                            chroma_sample_loc_type_bottom_field;
1489e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             timing_info_present_flag;
1490e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                            num_units_in_tick;
1491e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                            time_scale;
1492e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             fixed_frame_rate_flag;
1493e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             nal_hrd_parameters_present_flag;
1494e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_HrdParams    nal_hrd_pars;
1495e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             vcl_hrd_parameters_present_flag;
1496e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_HrdParams    vcl_hrd_pars;
1497e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             low_delay_hrd_flag;
1498e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             pic_struct_present_flag;
1499e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             bitstream_restriction_flag;
1500e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                             motion_vectors_over_pic_boundaries_flag;
1501e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                            max_bytes_per_pic_denom;
1502e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                            max_bits_per_mb_denom;
1503e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                            log2_max_mv_length_vertical;
1504e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                            log2_max_mv_length_horizontal;
1505e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                            max_dec_frame_reordering;
1506e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                            num_reorder_frames;
1507e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                            max_dec_frame_buffering;
1508e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_SVCVuiParams svcVuiParams;
1509e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_VuiParams;
1510e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1511e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1512e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1513e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_SeiUserDataRegITUT
1514e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1515e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief  This structure contains the user data SEI msg elements
1516e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1517e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  parsed_flag :1 - Indicates that in the current process call,
1518e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                           contents of the structure is updated
1519e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                       0 - Indicates contents of the structure is not updated
1520e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  num_payload_bytes :Specifies the size of the payload
1521e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  itu_t_t35_country_code : A byte having a value specified as a
1522e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                          country code by ITU-T Recommendation T.35 Annex A
1523e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  itu_t_t35_country_code_extension_byte :A byte having a value
1524e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          specified as a country code by ITU-T Recommendation T.35 Annex B
1525e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  itu_t_t35_payload_byte[] : A byte containing data registered as
1526e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          specified by ITU-T Recommendation T.35.
1527e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  dataOverflowFlag: This indicates if pay load data is more than the
1528e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                            array size i.e., OMX_TI_VIDEO_H264VDEC_MAXUSERDATA_PAYLOAD.
1529e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1530e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1531e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_SeiUserDataRegITUT {
1532e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 parsed_flag;
1533e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 num_payload_bytes;
1534e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  itu_t_t35_country_code;
1535e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  itu_t_t35_country_code_extension_byte;
1536e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  itu_t_t35_payload_byte[OMX_TI_VIDEO_H264VDEC_MAXUSERDATA_PAYLOAD];
1537e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  dataOverflowFlag;
1538e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_SeiUserDataRegITUT;
1539e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1540e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1541e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1542e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_SeiUserDataUnReg
1543e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1544e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief  This structure contains the user data SEI msg elements
1545e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1546e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  parsed_flag :1 - Indicates that in the current process call,
1547e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                           contents of the structure is updated
1548e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                       0 - Indicates contents of the structure is not updated
1549e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  num_payload_bytes :Specifies the size of the payload
1550e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  uuid_iso_iec_11578 :Value specified as a UUID according to the
1551e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              procedures of ISO/IEC 11578:1996 Annex A.
1552e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  user_data_payload_byte :Byte containing data having syntax and
1553e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                semantics as specified by the UUID generator.
1554e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  dataOverflowFlag: This indicates if pay load data is more than the
1555e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                            array size i.e., OMX_TI_VIDEO_H264VDEC_MAXUSERDATA_PAYLOAD.
1556e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1557e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1558e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_SeiUserDataUnReg {
1559e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 parsed_flag;
1560e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 num_payload_bytes;
1561e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  uuid_iso_iec_11578[16];
1562e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  user_data_payload_byte[OMX_TI_VIDEO_H264VDEC_MAXUSERDATA_PAYLOAD];
1563e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  dataOverflowFlag;
1564e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_SeiUserDataUnReg;
1565e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1566e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1567e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1568e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1569e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_SeiBufferingPeriod
1570e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1571e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief   This structure contains the buffering period SEI msg elements
1572e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1573e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  parsed_flag :1 - Indicates that in the current process call,
1574e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                           contents of the structure is updated
1575e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                       0 - Indicates contents of the structure is not updated
1576e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  seq_parameter_set_id :Specifies the sequence parameter set that
1577e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                contains the sequence HRD attributes
1578e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  nal_cpb_removal_delay :Specifies the delay for the indexed NAL CPB
1579e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          between the time of arrival in the CPB of the first bit of the
1580e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          coded data associated with the access unit associated with the
1581e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          buffering period SEI message and the time of removal from the CPB
1582e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          of the coded data associated with the same access unit, for the
1583e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          first buffering period after HRD initialization.
1584e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  nal_cpb_removal_delay_offset :Used for the indexed NAL CPB in
1585e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          combination with the cpb_removal_delay to specify the initial
1586e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          delivery time of coded access units to the CPB
1587e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  vcl_cpb_removal_delay :Specifies the delay for the indexed VCL CPB
1588e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          between the time of arrival in the CPB of the first bit of the
1589e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          coded data associated with the access unit associated with the
1590e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          buffering period SEI message and the time of removal from the CPB
1591e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          of the coded data associated with the same access unit, for the
1592e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          first buffering period after HRD initialization.
1593e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  vcl_cpb_removal_delay_offset :Used for the indexed VCL CPB in
1594e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          combination with the cpb_removal_delay to specify the initial
1595e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          delivery time of coded access units to the CPB
1596e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1597e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1598e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_SeiBufferingPeriod {
1599e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 parsed_flag;
1600e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 seq_parameter_set_id;
1601e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nal_cpb_removal_delay[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT];
1602e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nal_cpb_removal_delay_offset[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT];
1603e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 vcl_cpb_removal_delay[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT];
1604e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 vcl_cpb_removal_delay_offset[OMX_TI_VIDEO_H264VDEC_MAXCPBCNT];
1605e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen}OMX_TI_VIDEO_H264VDEC_SeiBufferingPeriod;
1606e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1607e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1608e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_SeiPanScanRect
1609e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1610e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief   This structure contains the pan scan rectangle SEI msg elements
1611e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1612e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  parsed_flag :1 - Indicates that in the current process call,
1613e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                           contents of the structure is updated
1614e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                       0 - Indicates contents of the structure is not updated
1615e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  pan_scan_rect_id :Specifies an identifying number that may be used
1616e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                            to identify the purpose of the pan-scan rectangle
1617e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  pan_scan_rect_cancel_flag :Equal to 1 indicates that the SEI
1618e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    message cancels the persistence of any previous pan-scan
1619e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    rectangle SEI message in output order.
1620e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    pan_scan_rect_cancel_flag equal to 0 indicates that
1621e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    pan-scan rectangle information follows.
1622e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  pan_scan_cnt_minus1 :Specifies the number of pan-scan rectangles
1623e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          that are present in the SEI message
1624e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  pan_scan_rect_left_offset :Specifies as signed integer quantities
1625e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          in units of one-sixteenth sample spacing relative to the luma
1626e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          sampling grid, the location of the pan-scan rectangle
1627e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  pan_scan_rect_right_offset :Specifies as signed integer quantities
1628e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          in units of one-sixteenth sample spacing relative to the luma
1629e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          sampling grid, the location of the pan-scan rectangle
1630e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  pan_scan_rect_top_offset : Top offset
1631e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  pan_scan_rect_bottom_offset : Bottom offset
1632e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  pan_scan_rect_repetition_period :Specifies the persistence of the
1633e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          pan-scan rectangle SEI message and may specify a picture order
1634e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          count interval within which another pan-scan rectangle SEI message
1635e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          with the same value of pan_scan_rect_id or the end of the coded
1636e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          video sequence shall be present in the bit-stream
1637e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1638e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1639e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_SeiPanScanRect {
1640e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 parsed_flag;
1641e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 pan_scan_rect_id;
1642e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 pan_scan_rect_cancel_flag;
1643e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 pan_scan_cnt_minus1;
1644e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 pan_scan_rect_left_offset[3];
1645e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 pan_scan_rect_right_offset[3];
1646e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 pan_scan_rect_top_offset[3];
1647e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 pan_scan_rect_bottom_offset[3];
1648e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 pan_scan_rect_repetition_period;
1649e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_SeiPanScanRect;
1650e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1651e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1652e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1653e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_SeiProgRefineStart
1654e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1655e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief  This structure contains the progressive refinement start SEI msg
1656e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          elements
1657e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1658e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  parsed_flag :1 - Indicates that in the current process call,
1659e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                           contents of the structure is updated
1660e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                       0 - Indicates contents of the structure is not updated
1661e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  progressive_refinement_id :Specifies an identification number for
1662e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          the progressive refinement operation.
1663e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  num_refinement_steps_minus1 :Specifies the number of reference
1664e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          frames in the tagged set of consecutive coded pictures
1665e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1666e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1667e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_SeiProgRefineStart {
1668e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 parsed_flag;
1669e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 progressive_refinement_id;
1670e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 num_refinement_steps_minus1;
1671e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_SeiProgRefineStart;
1672e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1673e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1674e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_SeiProgRefineEnd
1675e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1676e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief  TThis structure contains the progressive refinement end SEI msg
1677e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          elements
1678e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1679e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  parsed_flag :1 - Indicates that in the current process call,
1680e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                           contents of the structure is updated
1681e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                       0 - Indicates contents of the structure is not updated
1682e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  progressive_refinement_id :Specifies an identification number for
1683e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    the progressive refinement operation.
1684e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1685e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1686e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_SeiProgRefineEnd {
1687e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 parsed_flag;
1688e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 progressive_refinement_id;
1689e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_SeiProgRefineEnd;
1690e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1691e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1692e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_SeiRecoveryPointInfo
1693e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1694e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief  This structure contains the sRecovery Point Info SEI msg elements
1695e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1696e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  parsed_flag :1 - Indicates that in the current process call,
1697e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                           contents of the structure is updated
1698e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                       0 - Indicates contents of the structure is not updated
1699e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  exact_match_flag :Indicates whether decoded pictures at and
1700e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          subsequent to the specified recovery point in output order derived
1701e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          by starting the decoding process at the access unit associated with
1702e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          the recovery point SEI message, will be an exact match to the
1703e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          pictures that would be produced by starting the decoding process
1704e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *        at the location of a previous IDR access unit in the NAL unit stream.
1705e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  recovery_frame_cnt :Specifies the recovery point of output pictures
1706e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          in output order
1707e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  broken_link_flag :Indicates the presence or absence of a broken
1708e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                            link in the NAL unit stream
1709e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  changing_slice_group_idc :Indicates whether decoded pictures are
1710e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          correct or approximately correct in content at and subsequent to
1711e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          the recovery point in output order when all macro-blocks of the
1712e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          primary coded pictures are decoded within the changing slice group
1713e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          period.
1714e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1715e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1716e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_SeiRecoveryPointInfo {
1717e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 parsed_flag;
1718e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 recovery_frame_cnt;
1719e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 exact_match_flag;
1720e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 broken_link_flag;
1721e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 changing_slice_group_idc;
1722e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_SeiRecoveryPointInfo;
1723e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1724e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1725e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1726e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_SeiPictureTiming
1727e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1728e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief  This structure contains the picture timing SEI msg elements
1729e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1730e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  parsed_flag :1 - Indicates that in the current process call,
1731e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                           contents of the structure is updated
1732e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                       0 - Indicates contents of the structure is not updated
1733e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     NumClockTs :
1734e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     cpb_removal_delay :Specifies how many clock ticks to wait after
1735e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *               removal from the CPB of the access unit associated with the
1736e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *               most recent buffering period SEI message before removing from
1737e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *               the buffer the access unit data associated with the picture
1738e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *               timing SEI message.
1739e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     dpb_output_delay : Used to compute the DPB output time of the
1740e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *               picture.
1741e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     pic_struct : Indicates whether a picture  should be displayed as
1742e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *               a frame or field
1743e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     clock_time_stamp_flag[4]:1 - Indicates number of clock timestamp
1744e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                            syntax elements present and follow immediately
1745e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                            0 \u2013 Indicates associated clock timestamp syntax
1746e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                elements not present
1747e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     ct_type[4] : Indicates the scan type(interlaced or progressive)
1748e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                          of the source material
1749e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     nuit_field_based_flag[4] : Used to calculate the clockTimestamp
1750e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     counting_type[4] : Specifies the method of dropping values of
1751e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                n_frames
1752e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     full_timestamp_flag[4] : 1 - Specifies that the n_frames syntax
1753e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                      element is followed by seconds_value,
1754e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                      minutes_value, and hours_value.
1755e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                      0 - Specifies that the n_frames syntax
1756e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                      element is followed by seconds_flag
1757e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     discontinuity_flag[4] : Indicates whether the difference between
1758e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *               the current value of clockTimestamp and the value of
1759e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *               clockTimestamp computed from the previous clockTimestamp in
1760e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *               output order can be interpreted as the time difference between
1761e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *               the times of origin or capture of the associated frames or
1762e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *               fields.
1763e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     cnt_dropped_flag[4] : Specifies the skipping of one or more
1764e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *               values of n_frames using the counting method
1765e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     n_frames[4] : Specifies the value of nFrames used to compute
1766e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                            clockTimestamp.
1767e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     seconds_flag[4] : equal to 1 specifies that seconds_value and
1768e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                               minutes_flag are present when
1769e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                               full_timestamp_flag is equal to 0.
1770e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     minutes_flag[4] : equal to 1 specifies that minutes_value and
1771e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              hours_flag are present when full_timestamp_flag
1772e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              is equal to 0 and seconds_flag is equal to 1.
1773e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     hours_flag[4] :  equal to 1 specifies that hours_value is
1774e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              present when full_timestamp_flag is equal to 0
1775e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              and seconds_flag is equal to 1 and minutes_flag
1776e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              is equal to 1.
1777e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     seconds_value[4] : Specifies the value of sS used to compute
1778e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                clockTimestamp.
1779e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     minutes_value[4] : Specifies the value of mM used to compute
1780e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                clockTimestamp.
1781e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     hours_value[4] : Specifies the value of tOffset used to compute
1782e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              clockTimestamp
1783e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param     time_offset[4] : Specifies the value of tOffset used to compute
1784e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              clockTimestamp
1785e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1786e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1787e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_SeiPictureTiming {
1788e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 parsed_flag;
1789e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 NumClockTs;
1790e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 cpb_removal_delay;
1791e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 dpb_output_delay;
1792e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 pic_struct;
1793e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 clock_time_stamp_flag[4];
1794e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ct_type[4];
1795e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 nuit_field_based_flag[4];
1796e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 counting_type[4];
1797e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 full_timestamp_flag[4];
1798e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 discontinuity_flag[4];
1799e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 cnt_dropped_flag[4];
1800e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 n_frames[4];
1801e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 seconds_flag[4];
1802e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 minutes_flag[4];
1803e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 hours_flag[4];
1804e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 seconds_value[4];
1805e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 minutes_value[4];
1806e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 hours_value[4];
1807e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 time_offset[4];
1808e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen}OMX_TI_VIDEO_H264VDEC_SeiPictureTiming;
1809e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1810e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1811e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_SeiFullFrameFreezeRep
1812e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1813e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief  This structure contains the full frmae freeze repetition SEI msg
1814e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          elements
1815e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1816e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  parsed_flag :1 - Indicates that in the current process call,
1817e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                           contents of the structure is updated
1818e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                       0 - Indicates contents of the structure is not updated
1819e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  full_frame_freeze_repetition_period :Specifies the persistence of
1820e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *            the full-frame freeze SEI message
1821e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1822e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1823e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_SeiFullFrameFreezeRep {
1824e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 parsed_flag;
1825e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 full_frame_freeze_repetition_period;
1826e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_SeiFullFrameFreezeRep;
1827e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1828e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1829e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1830e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_SeiFullFrameFreezeRel
1831e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1832e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief   This structure contains frame freeze release SEI msg elements
1833e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1834e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  parsed_flag :1 - Indicates that in the current process call,
1835e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                           contents of the structure is updated
1836e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                       0 - Indicates contents of the structure is not updated
1837e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  payloadSize : Size of the frame_freeze_release payload
1838e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1839e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1840e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_SeiFullFrameFreezeRel {
1841e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 parsed_flag;
1842e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 payloadSize;
1843e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_SeiFullFrameFreezeRel;
1844e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1845e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1846e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1847e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_SeiStereoVideoInfo
1848e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1849e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief   This structure contains stereo video information SEI msg elements
1850e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1851e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  parsed_flag :1 - Indicates that in the current process call,
1852e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                           contents of the structure is updated
1853e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                       0 - Indicates contents of the structure is not updated
1854e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  field_views_flag :   1 - indicates that all pictures in the current
1855e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                  coded video sequence are fields
1856e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                0 - indicates that all pictures in the current
1857e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                  coded video sequence are frames.
1858e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  top_field_is_left_view_flag :
1859e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                1 - top field is a left  view.
1860e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                0 - topfield is right view.
1861e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  current_frame_is_left_view_flag :
1862e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                1 - current frame is left view.
1863e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                0 - current frame is right view.
1864e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  next_frame_is_second_view_flag :
1865e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                1 - current picture and a next picture in
1866e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                  output order form a stereo video pair.
1867e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                0 - current picture and a previous picture in
1868e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                  output order form a stereo video pair.
1869e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  left_view_self_contained_flag :
1870e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                1 - it will not use right view as a reference
1871e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                  picture for inter prediction
1872e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                0 - it may use right view as a reference
1873e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                  picture for inter prediction.
1874e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  right_view_self_contained_flag :
1875e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                1 - it will not use left view as a reference
1876e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                  picture for inter prediction
1877e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                0 - it may use left view as a reference
1878e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                  picture for inter prediction.
1879e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1880e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1881e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_SeiStereoVideoInfo {
1882e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 parsed_flag;
1883e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 field_views_flag;
1884e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 top_field_is_left_view_flag;
1885e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 current_frame_is_left_view_flag;
1886e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 next_frame_is_second_view_flag;
1887e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 left_view_self_contained_flag;
1888e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 right_view_self_contained_flag;
1889e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_SeiStereoVideoInfo;
1890e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
1891e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
1892e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1893e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_SeiFramePacking
1894e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1895e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief  This structure contains frame packing arrangement SEI msg elements
1896e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
1897e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  frame_packing_arrangement_id :
1898e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                contains an identifying number that may be used to identify
1899e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                the usage of the frame packing arrangement SEI message.
1900e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  frame_packing_arrangement_cancel_flag :
1901e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                1 - equal to 1 indicates that the frame packing arrangement
1902e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    SEI message cancels the persistence of any previous frame
1903e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    packing arrangement SEI message in output order.
1904e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                0 - indicates that frame packing arrangement info follows
1905e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  frame_packing_arrangement_type :
1906e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                indicates the type of packing arrangement of the frames
1907e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  quincunx_sampling_flag :
1908e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                1 - indicates that each color component plane of each
1909e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    constituent frame is quincunx sampled
1910e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                0 - indicates that each color component plane of each
1911e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    constituent frame is not quincunx sampled
1912e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  content_interpretation_type :
1913e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                1 - frame 0 being associated with the left view and frame 1
1914e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    being associated with the right view
1915e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                2 - frame 0 being associated with the right view and frame 1
1916e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    being associated with the left view
1917e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  spatial_flipping_flag :
1918e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                1 - spatial flipping is enabled for any one of the frame
1919e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    constituent, if frame_packing_arrangement_type is 3 or 4.
1920e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                0 - spatial flipping is disabled for any one of the frame
1921e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    constituent, if frame_packing_arrangement_type is 3 or 4.
1922e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  frame0_flipped_flag :
1923e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                1 - frame 0 is spatially flipped
1924e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                0 - frame 1 is spatially flipped
1925e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  field_views_flag :
1926e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                1 - indicates that all pictures in the current coded video
1927e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                   sequence are coded as complementary field pairs.
1928e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                0 - indicates that all pictures in the current coded video
1929e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                   sequence are coded as frame.
1930e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  current_frame_is_frame0_flag :
1931e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                1 - indicates that the current decoded frame is constituent
1932e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    frame 0 and the next decoded frame in output order
1933e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    is constituent frame 1.
1934e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                0 - indicates that the current decoded frame is constituent
1935e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    frame 1 and the next decoded frame in output order
1936e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    is constituent frame 0.
1937e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  frame0_self_contained_flag :
1938e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                1 - indicates that the constituent frame 0 is dependent on
1939e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    constituent frame 1 in decoding process
1940e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                0 - indicates that the constituent frame 0 may dependent on
1941e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    constituent frame 1 in decoding process
1942e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  frame1_self_contained_flag :
1943e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                1 - indicates that the constituent frame 1 is dependent on
1944e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    constituent frame 0 in decoding process
1945e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                0 - indicates that the constituent frame 1 may dependent on
1946e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    constituent frame 0 in decoding process
1947e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  frame0_grid_position_x :
1948e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                specifies the horizontal location of the upper left
1949e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                sample of constituent frame 0 in the units of one
1950e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                sixteenth of the luma samples
1951e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  frame0_grid_position_y :
1952e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                specifies the vertical location of the upper left
1953e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                sample of constituent frame 0 in the units of one
1954e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                sixteenth of the luma samples
1955e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  frame1_grid_position_x :
1956e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                specifies the horizontal location of the upper left
1957e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                sample of constituent frame 1 in the units of one
1958e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                sixteenth of the luma samples
1959e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  frame1_grid_position_y :
1960e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                specifies the vertical location of the upper left
1961e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                sample of constituent frame 1 in the units of one
1962e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                sixteenth of the luma samples
1963e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  frame_packing_arrangement_reserved_byte :
1964e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                reserved for the future use.
1965e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  frame_packing_arrangement_repetition_period :
1966e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                specifies the persistence of the frame packing arrangement
1967e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                SEI message and may specify a frame order count interval
1968e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                within which another frame packing arrangement SEI message
1969e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                with the same value of frame_packing_arrangement_id or the
1970e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                end of the coded video sequence shall be present in the
1971e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                bitstream.
1972e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  frame_packing_arrangement_extension_flag :
1973e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                0 - indicates that no additional data follows within the
1974e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                    frame packing arrangement SEI message.
1975e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                1 - Reserved for the future use.
1976e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
1977e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
1978e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_SeiFramePacking {
1979e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 parsed_flag;
1980e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 frame_packing_arrangement_id;
1981e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 frame_packing_arrangement_repetition_period;
1982e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  frame_packing_arrangement_cancel_flag;
1983e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  frame_packing_arrangement_type;
1984e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  quincunx_sampling_flag;
1985e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  content_interpretation_type;
1986e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  spatial_flipping_flag;
1987e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  frame0_flipped_flag;
1988e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  field_views_flag;
1989e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  current_frame_is_frame0_flag;
1990e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  frame0_self_contained_flag;
1991e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  frame1_self_contained_flag;
1992e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  frame0_grid_position_x;
1993e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  frame0_grid_position_y;
1994e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  frame1_grid_position_x;
1995e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  frame1_grid_position_y;
1996e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  frame_packing_arrangement_reserved_byte;
1997e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  frame_packing_arrangement_extension_flag;
1998e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_SeiFramePacking;
1999e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2000e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2001e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2002e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2003e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_SeiMessages
2004e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2005e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief   This structure contains all the supported SEI msg objects
2006e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2007e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  parsed_flag :1 - Indicates that in the current process call,
2008e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                           contents of the structure is updated
2009e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                       0 - Indicates contents of the structure is not updated
2010e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  full_frame_freeze : Full-frame freeze SEI message
2011e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  full_frame_freeze_release :Cancels the effect of any full-frame
2012e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *             freeze SEI message sent with pictures that precede the current
2013e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *             picture in the output order.
2014e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  prog_refine_start :Specifies the beginning of a set of consecutive
2015e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *             coded pictures that is labeled as the current picture followed
2016e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *             by a sequence of one or more pictures of refinement of the
2017e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *             quality of the current picture, rather than as a representation
2018e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *             of a continually moving scene.
2019e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  prog_refine_end : Specifies end of progressive refinement.
2020e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  user_data_registered :Message contains user data registered as
2021e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *            specified by ITU-T Recommendation T.35
2022e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  user_data_unregistered :Message contains unregistered user data
2023e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *            identified by a UUID
2024e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  buffering_period_info :Message specifies the buffering period
2025e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  pan_scan_rect :Message specifies the coordinates of a rectangle
2026e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *            relative to the cropping rectangle of the sequence parameter set
2027e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  recovery_pt_info :The recovery point SEI message assists a decoder
2028e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *            in determining when the decoding process will produce acceptable
2029e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *            pictures for display after the decoder initiates random access or
2030e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *            after the encoder indicates a broken link in the sequence.
2031e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  pic_timing :Specifies timing information regarding cpb delays, dpb
2032e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*              output delay, and so on.
2033e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  stereo_video_info :stereo video information SEI message consist of
2034e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *      pair of picture forming stereo view content.
2035e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2036e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2037e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_SeiMessages {
2038e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32                                     parsed_flag;
2039e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_SeiFullFrameFreezeRep full_frame_freeze;
2040e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_SeiFullFrameFreezeRel full_frame_freeze_release;
2041e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_SeiProgRefineStart    prog_refine_start;
2042e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_SeiProgRefineEnd      prog_refine_end;
2043e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_SeiUserDataRegITUT    user_data_registered;
2044e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_SeiUserDataUnReg      user_data_unregistered;
2045e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_SeiBufferingPeriod    buffering_period_info;
2046e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_SeiPanScanRect        pan_scan_rect;
2047e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_SeiRecoveryPointInfo  recovery_pt_info;
2048e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_SeiPictureTiming      pic_timing;
2049e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_SeiStereoVideoInfo    stereo_video_info;
2050e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_SeiFramePacking       frame_packing;
2051e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_SeiMessages;
2052e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2053e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2054e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2055e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2056e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct _sErrConcealStr
2057e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief  This str holds up the required Info for implementing the SCV EC,
2058e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          this will get updated by H.264 decoder while decoding the  SVC
2059e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          Base/Target Layers
2060e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2061e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  CurrMbInfoBufPointer  :Base Address of the current decoded frame
2062e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                   MB Info buffer
2063e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2064e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  CurrMbStatusBufPointer: Base Address of the current decoded frame
2065e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                   MB staus buffer pointer
2066e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2067e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  currFrameY            : Base Address of the current decoded Luma
2068e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  frame buffer pointer (physical pointer)
2069e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2070e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  currFrameUV           : Base Address of the current decoded Chroma
2071e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  frame buffer pointer (physical pointer)
2072e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2073e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  refConclY             : Base Address of the ref decoded Luma
2074e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  frame buffer pointer (virtual pointer)
2075e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2076e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  refConclUV            : Base Address of the ref decoded Chroma
2077e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  frame buffer pointer (virtual pointer)
2078e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2079e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  TilerBaseAddress      : TBA vaule for the VDMA
2080e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2081e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  pSliceInfoFlags       : Flag to enable slice info
2082e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2083e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  ref_width             : Resultant Horizontal LUMA picture size
2084e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  after Pad size addition on both Left
2085e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  & Right sides. This gets used as
2086e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  stride during vDMA programming.
2087e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  In case of TILER,the stride is fixed,
2088e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  independant of Picture width, and
2089e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  only changes with TILER mode.
2090e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2091e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  ref_width_c           : Resultant Horizontal CHROMA picture size
2092e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  after Pad size addition on both Left &
2093e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  Right sides.
2094e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2095e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2096e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  ref_frame_height      : In case of Interlaced streams,the picure
2097e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  store is different i.e., store each field
2098e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  by applying PAD on top & bottom lines.
2099e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  Hence the picture height will be Height
2100e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  plus four times the Pad size. This
2101e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  variable holds this resultant value.
2102e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2103e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  mb_width              : Picture width in terms of Macroblocks
2104e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2105e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  mb_height             : Picture height in terms of Macroblocks.
2106e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2107e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  image_width           : Image width of the decoded frame
2108e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2109e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  image_width           : Image height of the decoded frame
2110e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2111e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  frameType             : Frame type of the current frame.
2112e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2113e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  picaff_frame          : Flag to indicate whether current picture
2114e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  is of Frame type & referring to Field
2115e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  picture as reference.
2116e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2117e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  mb_aff_frame_flag     : Flag to indicate whether the current
2118e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  decoding picture is MBAFF type.
2119e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2120e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  field_pic_flag        : Flag to indicate whether the current
2121e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  decoding picture is field type.
2122e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2123e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  bottom_field_flag     : This parameter equal to 1 specifies that
2124e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  the slice is part of a coded bottom field.
2125e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  bottom_field_flag equalto 0 specifies
2126e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  that the picture is a coded top field.
2127e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2128e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  nonPairedFieldPic     : Flag to indicate Non paired field picture.
2129e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2130e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  prev_pic_bottom_field : this variable Indicates if the previous
2131e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                                  picture was a bottom field or not (a Flag)
2132e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2133e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2134e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2135e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_ErrConcealStr {
2136e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 ErrConcealmentEnable;
2137e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 CurrMbInfoBufPointer;
2138e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 CurrMbStatusBufPointer;
2139e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 CurrMbInfoIresBufPointer;
2140e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 currFrameY;
2141e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 currFrameUV;
2142e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 refConclY;
2143e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S32 refConclUV;
2144e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 TilerBaseAddress;
2145e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 ref_width;
2146e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 ref_width_c;
2147e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 ref_frame_height;
2148e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 mb_width;
2149e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 mb_height;
2150e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 image_width;
2151e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U16 image_height;
2152e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  frameType;
2153e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  picaff_frame;
2154e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  mb_aff_frame_flag;
2155e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  field_pic_flag;
2156e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  bottom_field_flag;
2157e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  nonPairedFieldPic;
2158e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  prev_pic_bottom_field;
2159e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen}OMX_TI_VIDEO_H264VDEC_ErrConcealStr;
2160e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2161e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2162e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  Size of sliceinfo flags - We have two slice info flag arrays in SL2, one
2163e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  for ECD3 and the other for MC3. ECD3 flag is one bit per MB. Since Maximum
2164e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  supported number of MBs in a frame is 128 x 128 = 16384, we need 16384/8 =
2165e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  2048 bytes for the slice info flag array for ECD3. But for the MC3 array,
2166e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  we always make the next bit also as 1 to enable loading into ping and pong
2167e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  memories of MCBUF. So we need an extra bit for the MC3 array, to avoid
2168e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  buffer overflow when the last MB is a new slice. To keep the next SL2 buffer
2169e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  in 16-byte aligned position (some buffers need it) we round the size to next
2170e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  multiple of 16, i.e., 2064.
2171e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2172e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen#define OMX_TI_VIDEO_SLICEINFO_FLAGSIZE  2064
2173e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2174e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2175e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2176e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct _sErrConcealLayerStr
2177e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief  This str holds up the required Info for implementing the SCV EC,
2178e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          this will get updated by H.264 decoder while decoding the  SVC
2179e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          Base/Target Layers
2180e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2181e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  svcEcStr              : structure instance of sSVCErrConcealStr
2182e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2183e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  pSliceInfoFlags       : Array to store the sliceInfo flag
2184e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2185e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2186e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2187e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2188e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_ErrConcealLayerStr {
2189e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_ErrConcealStr sECStr;
2190e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8                              pSliceInfoFlags[OMX_TI_VIDEO_SLICEINFO_FLAGSIZE];
2191e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen}OMX_TI_VIDEO_H264VDEC_ErrConcealLayerStr;
2192e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2193e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2194e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2195e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2196e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_CommonInfo
2197e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2198e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief
2199e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2200e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2201e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2202e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_CommonInfo {
2203e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 codec_type : 8;
2204e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 fmt_type : 8;
2205e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 mb_ll_avail : 1;
2206e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 mb_ul_avail : 1;
2207e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 mb_uu_avail : 1;
2208e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 mb_ur_avail : 1;
2209e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 pic_bound_l : 1;
2210e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 pic_bound_u : 1;
2211e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 pic_bound_r : 1;
2212e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 pic_bound_b : 1;
2213e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 first_mb_flag : 1;
2214e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 error_flag : 1;
2215e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 zero : 6;
2216e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 zeroes : 16;
2217e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 mb_addr : 16;
2218e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2219e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_CommonInfo;
2220e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2221e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2222e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2223e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_MotionVector
2224e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2225e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief
2226e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2227e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2228e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2229e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_MotionVector {
2230e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16 x;
2231e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_S16 y;
2232e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_MotionVector;
2233e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2234e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2235e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2236e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_CabacContext
2237e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2238e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief
2239e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2240e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2241e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2242e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_CabacContext {
2243e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_MotionVector mvd_l0[4];
2244e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_MotionVector mvd_l1[4];
2245e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2246e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_CabacContext;
2247e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2248e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2249e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2250e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_TotalCoefLuma
2251e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2252e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief
2253e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2254e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2255e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2256e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_TotalCoefLuma {
2257e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 right[3];
2258e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 bottom_right;
2259e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 bottom[3];
2260e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 zero;
2261e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_TotalCoefLuma;
2262e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2263e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2264e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2265e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_TotalCoefChroma
2266e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2267e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief
2268e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2269e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2270e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2271e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_TotalCoefChroma {
2272e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 right_cb;
2273e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 bottom_right_cb;
2274e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 bottom_cb;
2275e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 zero;
2276e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 right_cr;
2277e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 bottom_right_cr;
2278e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 bottom_cr;
2279e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 zero1;
2280e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_TotalCoefChroma;
2281e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2282e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2283e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2284e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_CavlcContext
2285e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2286e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief
2287e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2288e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2289e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2290e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_CavlcContext {
2291e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    unsigned long long                    zeroes[2];
2292e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_TotalCoefLuma   total_coef_luma;
2293e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_TotalCoefChroma total_coef_chroma;
2294e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2295e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_CavlcContext;
2296e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2297e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2298e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2299e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_IntraPredMode
2300e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2301e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief
2302e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2303e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2304e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2305e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_IntraPredMode {
2306e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ipred_mode0 : 4;
2307e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ipred_mode1 : 4;
2308e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ipred_mode2 : 4;
2309e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ipred_mode3 : 4;
2310e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ipred_mode4 : 4;
2311e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ipred_mode5 : 4;
2312e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ipred_mode6 : 4;
2313e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ipred_mode7 : 4;
2314e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ipred_mode8 : 4;
2315e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ipred_mode9 : 4;
2316e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ipred_mode10 : 4;
2317e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ipred_mode11 : 4;
2318e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ipred_mode12 : 4;
2319e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ipred_mode13 : 4;
2320e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ipred_mode14 : 4;
2321e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 ipred_mode15 : 4;
2322e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2323e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_IntraPredMode;
2324e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2325e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2326e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2327e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2328e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_MbPredType
2329e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2330e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief
2331e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2332e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2333e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2334e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_MbPredType {
2335e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 mbskip : 1;
2336e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 tr8x8 : 1;
2337e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 mb_field : 1;
2338e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 cond_mbskip : 1;
2339e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 c_ipred_mode : 2;
2340e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 zero : 1;
2341e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 end_of_slice : 1;
2342e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 mb_y_mod2 : 1;
2343e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 zero1 : 7;
2344e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 refidx_equal_flag_l0 : 1;
2345e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 refidx_equal_flag_l1 : 1;
2346e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 mv_equal_flag_l0 : 1;
2347e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 mv_equal_flag_l1 : 1;
2348e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 zeroes : 4;
2349e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 mb_type : 8;
2350e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  sub_mb_type[4];
2351e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2352e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_MbPredType;
2353e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2354e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2355e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2356e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_QpCbp
2357e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2358e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief
2359e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2360e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2361e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2362e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_QpCbp {
2363e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U32 cbp;
2364e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  qp_y;
2365e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  qp_cb;
2366e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  qp_cr;
2367e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8  zero;
2368e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_QpCbp;
2369e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2370e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2371e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2372e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_RefPicControl
2373e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2374e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief
2375e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2376e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2377e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2378e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_RefPicControl {
2379e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 refidx[4];
2380e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 refpicid[4];
2381e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2382e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_RefPicControl;
2383e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2384e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2385e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2386e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_MvBidirectional16
2387e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2388e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief
2389e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2390e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2391e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2392e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_MvBidirectional16 {
2393e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_MotionVector mv_forward[16];
2394e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_MotionVector mv_backward[16];
2395e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_MvBidirectional16;
2396e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2397e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2398e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2399e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2400e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_MvBidirectional4
2401e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2402e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief
2403e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2404e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2405e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2406e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_MvBidirectional4 {
2407e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_MotionVector mv_forward[4];
2408e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_MotionVector mv_backward[4];
2409e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2410e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_MvBidirectional4;
2411e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2412e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2413e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2414e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @struct OMX_TI_VIDEO_H264VDEC_MbInfo
2415e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2416e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @brief  This structure details the data format for MB information shared to
2417e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          application. This helps application to understand all fields
2418e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          the way codec uses MB info internally. This structure is of size
2419e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *          208 Bytes.
2420e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2421e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  info : This elements gives details about the MB placement in the
2422e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                 frame.
2423e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2424e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  cabac: This field holds the context data for a CABAC coded MB
2425e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2426e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  cavlc: This field holds the context data for a CAVLC coded MB
2427e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2428e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  ipred_mode: This field holds information of intra prediction modes
2429e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                      at 4x4 level, for intra coded MB.
2430e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2431e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  mb_pred_type: This indicates prediction specific details for inter
2432e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                        coded MB
2433e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2434e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  qp_cbp: This gives coded & QP informations for both LUMA & CHROMA
2435e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                   components of a Macro Block.
2436e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2437e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  l0_ref_pic_control: Informs all details about reference indices
2438e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              at 8x8 block level in L0 direction
2439e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2440e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  l1_ref_pic_control: Informs all details about reference indices
2441e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                              at 8x8 block level in L1 direction
2442e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2443e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  mv_forward: Lists all Motion vectors at 4x4 level in L0 direction
2444e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2445e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  bidirectional16: Lists all Motion vectors at 4x4 level in both
2446e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                           directions
2447e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2448e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *  @param  bidirectional4: Lists all Motion vectors at 8x8 level in both
2449e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *                          directions
2450e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen *
2451e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen ******************************************************************************
2452e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2453e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_H264VDEC_MbInfo {
2454e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_CommonInfo info;
2455e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2456e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    union {
2457e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_VIDEO_H264VDEC_CabacContext cabac;
2458e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_VIDEO_H264VDEC_CavlcContext cavlc;
2459e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_VIDEO_H264VDEC_context;
2460e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2461e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_IntraPredMode ipred_mode;
2462e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_MbPredType    mb_pred_type;
2463e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_QpCbp         qp_cbp;
2464e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_RefPicControl l0_ref_pic_control;
2465e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_TI_VIDEO_H264VDEC_RefPicControl l1_ref_pic_control;
2466e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2467e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    union {
2468e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_VIDEO_H264VDEC_MotionVector      mv_forward[16];
2469e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_VIDEO_H264VDEC_MvBidirectional16 bidirectional16;
2470e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen        OMX_TI_VIDEO_H264VDEC_MvBidirectional4  bidirectional4;
2471e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    } OMX_TI_VIDEO_H264VDEC_motion_vecs;
2472e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2473e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen} OMX_TI_VIDEO_H264VDEC_MbInfo;
2474e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2475e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2476e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2477e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen/**
2478e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen********************************************************************************
2479e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  @struct  OMX_TI_VIDEO_VC1VDEC_MbInfo
2480e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
2481e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  @brief   MB information structure that is written out by the IVA-HD hardware.
2482e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
2483e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*  @note    None:
2484e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*
2485e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen********************************************************************************
2486e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen*/
2487e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chentypedef struct OMX_TI_VIDEO_VC1VDEC_MbInfo {
2488e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* MB address                                                               */
2489e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 mb_addr;
2490e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Error flag                                                               */
2491e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 error_flag;
2492e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* First MB flag                                                            */
2493e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 first_mb_flag;
2494e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Picture bound                                                            */
2495e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 pic_bound_b;
2496e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Upper picture bound                                                      */
2497e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 pic_bound_u;
2498e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Right picture bound                                                      */
2499e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 pic_bound_r;
2500e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Left picture bound                                                       */
2501e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 pic_bound_l;
2502e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Availability of upper right MB                                           */
2503e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 mb_ur_avail;
2504e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Availability of upper MB                                                 */
2505e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 mb_uu_avail;
2506e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Availability of upper left MB                                            */
2507e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 mb_ul_avail;
2508e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Availability of left MB                                                  */
2509e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 mb_ll_avail;
2510e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Macroblock header format type                                            */
2511e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 fmt_type;
2512e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Codec type                                                               */
2513e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 codec_type;
2514e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Indicates DC values of each Y block in current MB                        */
2515e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 dc_coef_q_y[4];
2516e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Indicates DC values of Cr block in current MB                            */
2517e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 dc_coef_q_cr;
2518e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Indicates DC values of Cb block in current MB                            */
2519e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 dc_coef_q_cb;
2520e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Block type of cr block                                                   */
2521e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 block_type_cr;
2522e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Block type of cb block                                                   */
2523e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 block_type_cb;
2524e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Block types of luma                                                      */
2525e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 block_type_y[4];
2526e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* In decoding, if the current macroblock is the last macroblock in a slice,*/
2527e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* ECD sets 1 to this field during executing the macroblock. Otherwise, ECD */
2528e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* sets 0 to this field                                                     */
2529e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 end_of_slice;
2530e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* 1 : allow skipping current MB if CBP = 0                                 */
2531e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 cond_skip_flag;
2532e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /*  Skipped / non skipped MB                                                */
2533e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 skip;
2534e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* 1 indicates that overlap filtering is in use for the macroblock.         */
2535e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 overlap;
2536e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* 1 indicates that AC prediction is in use for the macroblock              */
2537e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 acpred;
2538e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Denotes inter-prediction direction for the macroblock in B-picture       */
2539e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 b_picture_direction;
2540e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Denotes the number of motion vectors.                                    */
2541e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 mv_mode;
2542e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* 1 indicates that the field transform is in use for the macroblock.       */
2543e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 fieldtx;
2544e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* 1 indicates that field inter-prediction is in use                        */
2545e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 mv_type;
2546e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Equals the reference frame distance                                      */
2547e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 refdist;
2548e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* 1 indicates that macroblock quantizer-scale (MQUANT) overflows           */
2549e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 mquant_overflow;
2550e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Equals the quantizer-scale for the macroblock                            */
2551e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 quant;
2552e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* 1 indicates that 0.5 shall be added to PQUANT in calculation of          */
2553e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* quantizer-scale. This field is valid for decoding only.                  */
2554e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 halfqp;
2555e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Equals the DC coefficient step size which is derived from MQUANT in the  */
2556e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /*   bit-stream                                                             */
2557e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 dc_step_size;
2558e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Denotes the coded sub-block pattern for cr block                         */
2559e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 cbp_cr;
2560e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Denotes the coded sub-block pattern for cb block                         */
2561e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 cbp_cb;
2562e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Denotes the coded sub-block pattern for luma blocks                      */
2563e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 cbp_y[3];
2564e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Denotes the backward reference field picture                             */
2565e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 mv_bw_ref_y[4];
2566e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Denotes the forward reference field picture                              */
2567e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 mv_fw_ref_y[3];
2568e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Unclipped forward motion vector for luma                                 */
2569e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 mv_fw_y[4][4];
2570e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Unclipped backward motion vector for luma                                */
2571e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 mv_bw_y[1][1];
2572e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Unclipped backward motion vector for chroma                              */
2573e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 mv_bw_c[2];
2574e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Unclipped forward motion vector for chroma                               */
2575e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 mv_fw_c[2];
2576e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Clipped forward motion vector for luma                                   */
2577e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 cmv_fw_y[4][4];
2578e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Clipped backward motion vector for luma                                  */
2579e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 cmv_bw_y[4][4];
2580e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Clipped forward motion vector for chroma                                 */
2581e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 cmv_fw_c[4][4];
2582e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    /* Clipped backward motion vector for chroma                                */
2583e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen    OMX_U8 cmv_bw_c[4][4];
2584e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2585e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen}OMX_TI_VIDEO_VC1VDEC_MbInfo;
2586e4b5eb97c1ebb41905d9acb8cf1c0992688152e9Mike J. Chen
2587c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev#endif /* OMX_TI_VIDEO_H */
2588c322989ae6ff6769490828de1b5eda12b749cce9Iliyan Malchev
2589