1f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/************************************************************************** 2f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 3f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Copyright 2009 Younes Manton. 4f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * All Rights Reserved. 5f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 6f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * Permission is hereby granted, free of charge, to any person obtaining a 7f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * copy of this software and associated documentation files (the 8f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * "Software"), to deal in the Software without restriction, including 9f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * without limitation the rights to use, copy, modify, merge, publish, 10f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * distribute, sub license, and/or sell copies of the Software, and to 11f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * permit persons to whom the Software is furnished to do so, subject to 12f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * the following conditions: 13f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 14f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * The above copyright notice and this permission notice (including the 15f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * next paragraph) shall be included in all copies or substantial portions 16f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * of the Software. 17f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 18f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 19f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 20f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. 21f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * IN NO EVENT SHALL TUNGSTEN GRAPHICS AND/OR ITS SUPPLIERS BE LIABLE FOR 22f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 23f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 24f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 25f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * 26f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org **************************************************************************/ 27f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 28f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifndef PIPE_VIDEO_STATE_H 29f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#define PIPE_VIDEO_STATE_H 30f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 31f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "pipe/p_defines.h" 32f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "pipe/p_format.h" 33f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "pipe/p_state.h" 34f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "pipe/p_screen.h" 35f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#include "util/u_inlines.h" 36f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 37f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifdef __cplusplus 38f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgextern "C" { 39f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif 40f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 41f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* 42f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * see table 6-12 in the spec 43f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 44f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_mpeg12_picture_coding_type 45f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 46f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_PICTURE_CODING_TYPE_I = 0x01, 47f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_PICTURE_CODING_TYPE_P = 0x02, 48f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_PICTURE_CODING_TYPE_B = 0x03, 49f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_PICTURE_CODING_TYPE_D = 0x04 50f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 51f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 52f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* 53f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * see table 6-14 in the spec 54f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 55f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_mpeg12_picture_structure 56f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 57f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_PICTURE_STRUCTURE_RESERVED = 0x00, 58f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_PICTURE_STRUCTURE_FIELD_TOP = 0x01, 59f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_PICTURE_STRUCTURE_FIELD_BOTTOM = 0x02, 60f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_PICTURE_STRUCTURE_FRAME = 0x03 61f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 62f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 63f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* 64f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * flags for macroblock_type, see section 6.3.17.1 in the spec 65f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 66f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_mpeg12_macroblock_type 67f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 68f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_MB_TYPE_QUANT = 0x01, 69f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_MB_TYPE_MOTION_FORWARD = 0x02, 70f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_MB_TYPE_MOTION_BACKWARD = 0x04, 71f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_MB_TYPE_PATTERN = 0x08, 72f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_MB_TYPE_INTRA = 0x10 73f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 74f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 75f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* 76f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * flags for motion_type, see table 6-17 and 6-18 in the spec 77f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 78f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_mpeg12_motion_type 79f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 80f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_MO_TYPE_RESERVED = 0x00, 81f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_MO_TYPE_FIELD = 0x01, 82f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_MO_TYPE_FRAME = 0x02, 83f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_MO_TYPE_16x8 = 0x02, 84f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_MO_TYPE_DUAL_PRIME = 0x03 85f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 86f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 87f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org/* 88f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org * see section 6.3.17.1 and table 6-19 in the spec 89f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org */ 90f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_mpeg12_dct_type 91f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 92f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_DCT_TYPE_FRAME = 0, 93f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_DCT_TYPE_FIELD = 1 94f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 95f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 96f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgenum pipe_mpeg12_field_select 97f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 98f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_FS_FIRST_FORWARD = 0x01, 99f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_FS_FIRST_BACKWARD = 0x02, 100f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_FS_SECOND_FORWARD = 0x04, 101f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org PIPE_MPEG12_FS_SECOND_BACKWARD = 0x08 102f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 103f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 104f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct pipe_picture_desc 105f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 106f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org enum pipe_video_profile profile; 107f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 108f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 109f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct pipe_quant_matrix 110f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 111f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org enum pipe_video_codec codec; 112f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 113f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 114f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct pipe_macroblock 115f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 116f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org enum pipe_video_codec codec; 117f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 118f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 119f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct pipe_mpeg12_picture_desc 120f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 121f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_picture_desc base; 122f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 123f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned picture_coding_type; 124f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned picture_structure; 125f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned frame_pred_frame_dct; 126f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned q_scale_type; 127f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned alternate_scan; 128f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned intra_vlc_format; 129f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned concealment_motion_vectors; 130f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned intra_dc_precision; 131f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned f_code[2][2]; 132f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned top_field_first; 133f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned full_pel_forward_vector; 134f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned full_pel_backward_vector; 135f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned num_slices; 136f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 137f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org const uint8_t *intra_matrix; 138f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org const uint8_t *non_intra_matrix; 139f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 140f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_video_buffer *ref[2]; 141f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 142f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 143f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct pipe_mpeg12_macroblock 144f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 145f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_macroblock base; 146f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 147f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /* see section 6.3.17 in the spec */ 148f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned short x, y; 149f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 150f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /* see section 6.3.17.1 in the spec */ 151f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned char macroblock_type; 152f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 153f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org union { 154f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct { 155f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /* see table 6-17 in the spec */ 156f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned int frame_motion_type:2; 157f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 158f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /* see table 6-18 in the spec */ 159f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned int field_motion_type:2; 160f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 161f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /* see table 6-19 in the spec */ 162f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned int dct_type:1; 163f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } bits; 164f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned int value; 165f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org } macroblock_modes; 166f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 167f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /* see section 6.3.17.2 in the spec */ 168f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned char motion_vertical_field_select; 169f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 170f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /* see Table 7-7 in the spec */ 171f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org short PMV[2][2][2]; 172f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 173f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /* see figure 6.10-12 in the spec */ 174f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned short coded_block_pattern; 175f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 176f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /* see figure 6.10-12 in the spec */ 177f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org short *blocks; 178f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 179f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org /* Number of skipped macroblocks after this macroblock */ 180f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org unsigned short num_skipped_macroblocks; 181f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 182f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 183f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct pipe_mpeg4_picture_desc 184f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 185f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_picture_desc base; 186f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 187f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int32_t trd[2]; 188f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int32_t trb[2]; 189f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint16_t vop_time_increment_resolution; 190f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t vop_coding_type; 191f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t vop_fcode_forward; 192f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t vop_fcode_backward; 193f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t resync_marker_disable; 194f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t interlaced; 195f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t quant_type; 196f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t quarter_sample; 197f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t short_video_header; 198f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t rounding_control; 199f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t alternate_vertical_scan_flag; 200f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t top_field_first; 201f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 202f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org const uint8_t *intra_matrix; 203f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org const uint8_t *non_intra_matrix; 204f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 205f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_video_buffer *ref[2]; 206f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 207f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 208f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct pipe_vc1_picture_desc 209f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 210f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_picture_desc base; 211f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 212f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint32_t slice_count; 213f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t picture_type; 214f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t frame_coding_mode; 215f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t postprocflag; 216f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t pulldown; 217f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t interlace; 218f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t tfcntrflag; 219f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t finterpflag; 220f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t psf; 221f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t dquant; 222f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t panscan_flag; 223f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t refdist_flag; 224f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t quantizer; 225f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t extended_mv; 226f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t extended_dmv; 227f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t overlap; 228f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t vstransform; 229f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t loopfilter; 230f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t fastuvmc; 231f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t range_mapy_flag; 232f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t range_mapy; 233f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t range_mapuv_flag; 234f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t range_mapuv; 235f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t multires; 236f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t syncmarker; 237f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t rangered; 238f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t maxbframes; 239f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t deblockEnable; 240f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t pquant; 241f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 242f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_video_buffer *ref[2]; 243f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 244f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 245f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.orgstruct pipe_h264_picture_desc 246f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org{ 247f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_picture_desc base; 248f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 249f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint32_t slice_count; 250f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int32_t field_order_cnt[2]; 251f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org bool is_reference; 252f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint32_t frame_num; 253f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t field_pic_flag; 254f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t bottom_field_flag; 255f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t num_ref_frames; 256f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t mb_adaptive_frame_field_flag; 257f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t constrained_intra_pred_flag; 258f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t weighted_pred_flag; 259f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t weighted_bipred_idc; 260f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t frame_mbs_only_flag; 261f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t transform_8x8_mode_flag; 262f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int8_t chroma_qp_index_offset; 263f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int8_t second_chroma_qp_index_offset; 264f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org int8_t pic_init_qp_minus26; 265f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t num_ref_idx_l0_active_minus1; 266f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t num_ref_idx_l1_active_minus1; 267f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t log2_max_frame_num_minus4; 268f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t pic_order_cnt_type; 269f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t log2_max_pic_order_cnt_lsb_minus4; 270f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t delta_pic_order_always_zero_flag; 271f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t direct_8x8_inference_flag; 272f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t entropy_coding_mode_flag; 273f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t pic_order_present_flag; 274f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t deblocking_filter_control_present_flag; 275f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t redundant_pic_cnt_present_flag; 276f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t scaling_lists_4x4[6][16]; 277f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint8_t scaling_lists_8x8[2][64]; 278f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 279f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org bool is_long_term[16]; 280f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org bool top_is_reference[16]; 281f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org bool bottom_is_reference[16]; 282f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint32_t field_order_cnt_list[16][2]; 283f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org uint32_t frame_num_list[16]; 284f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 285f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org struct pipe_video_buffer *ref[16]; 286f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org}; 287f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 288f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#ifdef __cplusplus 289f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org} 290f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif 291f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org 292f2ba7591b1407a7ee9209f842c50696914dc2dedkbr@chromium.org#endif /* PIPE_VIDEO_STATE_H */ 293