1bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/* 2bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee This file is provided under a dual BSD/GPLv2 license. When using or 3bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee redistributing this file, you may do so under either license. 4bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 5bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee GPL LICENSE SUMMARY 6bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 7bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Copyright(c) 2007-2009 Intel Corporation. All rights reserved. 8bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 9bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee This program is free software; you can redistribute it and/or modify 10bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee it under the terms of version 2 of the GNU General Public License as 11bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee published by the Free Software Foundation. 12bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 13bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee This program is distributed in the hope that it will be useful, but 14bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee WITHOUT ANY WARRANTY; without even the implied warranty of 15bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee General Public License for more details. 17bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 18bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee You should have received a copy of the GNU General Public License 19bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee along with this program; if not, write to the Free Software 20bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. 21bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee The full GNU General Public License is included in this distribution 22bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee in the file called LICENSE.GPL. 23bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 24bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Contact Information: 25bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 26bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee BSD LICENSE 27bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 28bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Copyright(c) 2007-2009 Intel Corporation. All rights reserved. 29bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee All rights reserved. 30bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 31bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Redistribution and use in source and binary forms, with or without 32bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee modification, are permitted provided that the following conditions 33bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee are met: 34bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 35bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Redistributions of source code must retain the above copyright 36bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee notice, this list of conditions and the following disclaimer. 37bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Redistributions in binary form must reproduce the above copyright 38bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee notice, this list of conditions and the following disclaimer in 39bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee the documentation and/or other materials provided with the 40bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee distribution. 41bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee * Neither the name of Intel Corporation nor the names of its 42bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee contributors may be used to endorse or promote products derived 43bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee from this software without specific prior written permission. 44bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 45bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 46bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 47bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 48bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 49bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 50bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 51bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 52bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 53bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 54bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 55bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 56bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 57bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 58bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#ifndef VIDDEC_FW_FRAME_ATTR_H 59bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define VIDDEC_FW_FRAME_ATTR_H 60bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 61bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define VIDDEC_PANSCAN_MAX_OFFSETS 4 62bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#define VIDDEC_MAX_CPB_CNT 32 63bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 64bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 65bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeThis enumeration lists all the frame types defined by the MPEG, VC1 and H264 specifications. 66bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeFrame types applicable to a single codec are specified in the comments. 67bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 68bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef enum 69bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{ 70bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee VIDDEC_FRAME_TYPE_INVALID=0, /** Unknown type - default value */ 71bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee VIDDEC_FRAME_TYPE_IDR=0x1, /** IDR frame - h264 only */ 72bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee VIDDEC_FRAME_TYPE_I=0x2, /** I frame */ 73bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee VIDDEC_FRAME_TYPE_P=0x3, /** P frame */ 74bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee VIDDEC_FRAME_TYPE_B=0x4, /** B frame */ 75bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee VIDDEC_FRAME_TYPE_BI=0x5, /** BI frame - Intracoded B frame - vc1 only */ 76bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee VIDDEC_FRAME_TYPE_SKIP=0x6, /** Skipped frame - vc1 only */ 77bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee VIDDEC_FRAME_TYPE_D=0x7, /** D frame - mpeg1 only */ 78bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee VIDDEC_FRAME_TYPE_S=0x8, /** SVOP frame - mpeg4 only - sprite encoded frame - treat as P */ 79bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee VIDDEC_FRAME_TYPE_MAX, 80bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee} viddec_frame_type_t; 81bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 82bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 83bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeThis structure contains the content size info extracted from the stream. 84bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 85bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef struct viddec_rect_size 86bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{ 87bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int width; 88bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int height; 89bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee}viddec_rect_size_t; 90bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 91bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 92bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeThis structure contains MPEG2 specific pan scan offsets extracted from the stream. 93bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 94bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef struct viddec_mpeg2_frame_center_offset 95bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{ 96bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee int horz; 97bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee int vert; 98bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee}viddec_mpeg2_frame_center_offset_t; 99bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 100bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 101bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeThis structure contains the MPEG2 specific frame attributes. 102bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 103bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef struct viddec_mpeg2_frame_attributes 104bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{ 105bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** 106bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 10 bit unsigned integer corresponding to the display order of each coded picture 107bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee in the stream (or gop if gop header is present). 108bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Refer to "temporal_reference" of the picture header in ITU-T H.262 Specification. 109bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 110bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int temporal_ref; 111bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 112bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** 113bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Pan/Scan rectangle info 114bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Refer to the picture display extension in ITU-T H.262 Specification. 115bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 116bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee viddec_mpeg2_frame_center_offset_t frame_center_offset[VIDDEC_PANSCAN_MAX_OFFSETS]; 117bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int number_of_frame_center_offsets; 118bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 119bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** 120bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Top-Field first flag 121bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Refer to "top_field_first" of the picture coding extension in ITU-T H.262 Specification. 122bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 123bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int top_field_first; 124bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 125bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** 126bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Progressive frame flag - Indicates if current frame is progressive or not. 127bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Refer to "progressive_frame" of the picture coding extension in ITU-T H.262 Specification. 128bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 129bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int progressive_frame; 130bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 131bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** 132bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Frame/field polarity for each coded picture. 133bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Refer to Table 6-14 in ITU-T H.262 Specification. 134bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 135bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int picture_struct; 136bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 137bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** 138bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Repeat field/frame flag. 139bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Refer to "repeat_first_field" of the picture coding extension in ITU-T H.262 Specification. 140bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 141bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int repeat_first_field; 142bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 143bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee}viddec_mpeg2_frame_attributes_t; 144bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 145bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 146bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeThis structure contains MPEG2 specific pan scan offsets extracted from the stream. 147bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 148bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef struct viddec_vc1_pan_scan_window 149bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{ 150bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int hoffset; 151bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int voffset; 152bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int width; 153bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int height; 154bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee}viddec_vc1_pan_scan_window_t; 155bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 156bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 157bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeThis structure contains the VC1 specific frame attributes. 158bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 159bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef struct viddec_vc1_frame_attributes 160bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{ 161bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** 162bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Temporal Reference of frame/field. 163bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Refer to "TFCNTR" in the picture layer of the SMPTE VC1 Specification. 164bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 165bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int tfcntr; 166bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 167bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** 168bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Frame/field repeat information in the bitstream. 169bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Refer to "RPTFRM", "TFF", "BFF" in the picture layer 170bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee of the SMPTE VC1 Specification. 171bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 172bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int rptfrm; 173bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int tff; 174bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int rff; 175bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 176bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** 177bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Pan-scan information in the bitstream. 178bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Refer to "PANSCAN_FLAG" in the entrypoint layer, "PS_PRESENT", "PS_HOFFSET", "PS_VOFFSET", 179bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee "PS_WIDTH" and "PS_HEIGHT" in the picture layer of the SMPTE VC1 Specification. 180bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 181bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int panscan_flag; 182bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int ps_present; 183bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int num_of_pan_scan_windows; 184bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee viddec_vc1_pan_scan_window_t pan_scan_window[VIDDEC_PANSCAN_MAX_OFFSETS]; 185bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 186bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee}viddec_vc1_frame_attributes_t; 187bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 188bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 189bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeThis structure contains the H264 specific frame attributes. 190bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 191bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef struct viddec_h264_frame_attributes 192bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{ 193bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** 194bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee used_for_reference : 1 means this frame is used as ref frame of others. 0 means no any frame ref to this frame 195bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 196bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee ///// This flag hasn't been enable so far 197bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int used_for_reference; 198bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 199bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 200bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** - 201bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Picture Order Count for the current frame/field.- 202bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee This value is computed using information from the bitstream.- 203bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Refer to Section 8.2.1, function 8-1 of the ITU-T H.264 Specification.- 204bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 205bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee // These fileds will be supported in future 206bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee int top_field_poc; 207bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee int bottom_field_poc; 208bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 209bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** 210bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Display size, which is cropped from content size. 211bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Currently, the cont_size is cropped, so this paramter is redundant, but in future, cont_size may be changed 212bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 213bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee viddec_rect_size_t cropped_size; 214bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 215bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** 216bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee top_field_first: 0 means bottom_field_POC is smaller than top_field_POC, else 1 217bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 218bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int top_field_first; 219bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 220bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** 221bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee field_frame_flag: 0 means all slice of this frame are frame-base encoded, else 1 222bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 223bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int field_pic_flag; 224bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 225bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee}viddec_h264_frame_attributes_t; 226bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 227bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 228bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeThis structure contains the MPEG4 specific frame attributes. 229bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 230bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef struct viddec_mpeg4_frame_attributes 231bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{ 232bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** 233bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Top-Field first flag 234bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Refer to "top_field_first" of the Video Object Plane of the MPEG4 Spec. 235bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 236bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee unsigned int top_field_first; 237bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 238bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee}viddec_mpeg4_frame_attributes_t; 239bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 240bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee/** 241bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeThis structure groups all the frame attributes that are exported by the firmware. 242bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeThe frame attributes are split into attributes that are common to all codecs and 243bd8388b4555645b3d29abc6a94c303638064d69awonjong.leethat are specific to codec type. 244bd8388b4555645b3d29abc6a94c303638064d69awonjong.leeAs of this release, it is populated only for mpeg2 only. 245bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee*/ 246bd8388b4555645b3d29abc6a94c303638064d69awonjong.leetypedef struct viddec_frame_attributes 247bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee{ 248bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** 249bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Content size specified in the stream. 250bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee For MPEG2, refer to "horizontal_size_value, vertical_size_value" of the sequence header and 251bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee "horizontal_size_extension, vertical_size_extension" of the sequence extension in ITU-T H.262 Specification. 252bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee For H264, refer to "pic_width_in_mbs_minus1" and "pic_height_in_map_units_minus1" of the 253bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee sequence parameter set in ITU-T H.264 Specification. 254bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee For VC1, refer to "MAX_CODED_WIDTH" and "MAX_CODED_HEIGHT" in the sequence layer, 255bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee "CODED_SIZE_FLAG", "CODED_WIDTH" and "CODED_HEIGHT" in the entrypoint layer of the SMPTE VC1 Specification. 256bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 257bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee viddec_rect_size_t cont_size; 258bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 259bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** 260bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee Type of frame populated in the workload. 261bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee frame_type contains the frame type for progressive frame and the field type for the top field for interlaced frames. 262bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee bottom_field_type contains the field type for the bottom field for interlaced frames. 263bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee For MPEG2, refer to "picture_coding_type" in picture header (Table 6-12) in ITU-T H.262 Specification. 264bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee For H264, refer to "slice_type" in slice header (Table 7-6) in ITU-T H.264 Specification. 265bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee For VC1, refer to "PTYPE" and FPTYPE in the picture layer (Tables 33, 34, 35, 105) in SMPTE VC1 Specification. 266bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee */ 267bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee viddec_frame_type_t frame_type; 268bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee viddec_frame_type_t bottom_field_type; 269bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 270bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee /** Codec specific attributes */ 271bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee union 272bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee { 273bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee viddec_mpeg2_frame_attributes_t mpeg2; 274bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee viddec_vc1_frame_attributes_t vc1; 275bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee viddec_h264_frame_attributes_t h264; 276bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee viddec_mpeg4_frame_attributes_t mpeg4; 277bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee }; 278bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 279bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee}viddec_frame_attributes_t; 280bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee 281bd8388b4555645b3d29abc6a94c303638064d69awonjong.lee#endif /* VIDDEC_FRAME_ATTR_H */ 282