1*437bfbebSnyanmisaka /* 2*437bfbebSnyanmisaka * 3*437bfbebSnyanmisaka * Copyright 2010 Rockchip Electronics Co. LTD 4*437bfbebSnyanmisaka * 5*437bfbebSnyanmisaka * Licensed under the Apache License, Version 2.0 (the "License"); 6*437bfbebSnyanmisaka * you may not use this file except in compliance with the License. 7*437bfbebSnyanmisaka * You may obtain a copy of the License at 8*437bfbebSnyanmisaka * 9*437bfbebSnyanmisaka * http://www.apache.org/licenses/LICENSE-2.0 10*437bfbebSnyanmisaka * 11*437bfbebSnyanmisaka * Unless required by applicable law or agreed to in writing, software 12*437bfbebSnyanmisaka * distributed under the License is distributed on an "AS IS" BASIS, 13*437bfbebSnyanmisaka * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*437bfbebSnyanmisaka * See the License for the specific language governing permissions and 15*437bfbebSnyanmisaka * limitations under the License. 16*437bfbebSnyanmisaka */ 17*437bfbebSnyanmisaka 18*437bfbebSnyanmisaka #ifndef __H263D_SYNTAX__ 19*437bfbebSnyanmisaka #define __H263D_SYNTAX__ 20*437bfbebSnyanmisaka 21*437bfbebSnyanmisaka #include "dxva_syntax.h" 22*437bfbebSnyanmisaka 23*437bfbebSnyanmisaka /*video vop specific*/ 24*437bfbebSnyanmisaka typedef enum { 25*437bfbebSnyanmisaka H263_INVALID_VOP = -1, 26*437bfbebSnyanmisaka H263_I_VOP = 0, 27*437bfbebSnyanmisaka H263_P_VOP = 1, 28*437bfbebSnyanmisaka } H263VOPType; 29*437bfbebSnyanmisaka 30*437bfbebSnyanmisaka /* H263PT2 Picture Parameter structure */ 31*437bfbebSnyanmisaka typedef struct _DXVA_PicParams_H263 { 32*437bfbebSnyanmisaka RK_U8 short_video_header; 33*437bfbebSnyanmisaka RK_U8 vop_coding_type; 34*437bfbebSnyanmisaka RK_U8 vop_quant; 35*437bfbebSnyanmisaka RK_U16 wDecodedPictureIndex; 36*437bfbebSnyanmisaka RK_U16 wDeblockedPictureIndex; 37*437bfbebSnyanmisaka RK_U16 wForwardRefPictureIndex; 38*437bfbebSnyanmisaka RK_U16 wBackwardRefPictureIndex; 39*437bfbebSnyanmisaka RK_U16 vop_time_increment_resolution; 40*437bfbebSnyanmisaka RK_U32 TRB[2]; 41*437bfbebSnyanmisaka RK_U32 TRD[2]; 42*437bfbebSnyanmisaka 43*437bfbebSnyanmisaka union { 44*437bfbebSnyanmisaka struct { 45*437bfbebSnyanmisaka RK_U16 unPicPostProc : 2; 46*437bfbebSnyanmisaka RK_U16 interlaced : 1; 47*437bfbebSnyanmisaka RK_U16 quant_type : 1; 48*437bfbebSnyanmisaka RK_U16 quarter_sample : 1; 49*437bfbebSnyanmisaka RK_U16 resync_marker_disable : 1; 50*437bfbebSnyanmisaka RK_U16 data_partitioned : 1; 51*437bfbebSnyanmisaka RK_U16 reversible_vlc : 1; 52*437bfbebSnyanmisaka RK_U16 reduced_resolution_vop_enable : 1; 53*437bfbebSnyanmisaka RK_U16 vop_coded : 1; 54*437bfbebSnyanmisaka RK_U16 vop_rounding_type : 1; 55*437bfbebSnyanmisaka RK_U16 intra_dc_vlc_thr : 3; 56*437bfbebSnyanmisaka RK_U16 top_field_first : 1; 57*437bfbebSnyanmisaka RK_U16 alternate_vertical_scan_flag : 1; 58*437bfbebSnyanmisaka }; 59*437bfbebSnyanmisaka RK_U16 wPicFlagBitFields; 60*437bfbebSnyanmisaka }; 61*437bfbebSnyanmisaka RK_U8 profile_and_level_indication; 62*437bfbebSnyanmisaka RK_U8 video_object_layer_verid; 63*437bfbebSnyanmisaka RK_U16 vop_width; 64*437bfbebSnyanmisaka RK_U16 vop_height; 65*437bfbebSnyanmisaka union { 66*437bfbebSnyanmisaka struct { 67*437bfbebSnyanmisaka RK_U16 sprite_enable : 2; 68*437bfbebSnyanmisaka RK_U16 no_of_sprite_warping_points : 6; 69*437bfbebSnyanmisaka RK_U16 sprite_warping_accuracy : 2; 70*437bfbebSnyanmisaka }; 71*437bfbebSnyanmisaka RK_U16 wSpriteBitFields; 72*437bfbebSnyanmisaka }; 73*437bfbebSnyanmisaka RK_S16 warping_mv[4][2]; 74*437bfbebSnyanmisaka union { 75*437bfbebSnyanmisaka struct { 76*437bfbebSnyanmisaka RK_U8 vop_fcode_forward : 3; 77*437bfbebSnyanmisaka RK_U8 vop_fcode_backward : 3; 78*437bfbebSnyanmisaka }; 79*437bfbebSnyanmisaka RK_U8 wFcodeBitFields; 80*437bfbebSnyanmisaka }; 81*437bfbebSnyanmisaka RK_U16 StatusReportFeedbackNumber; 82*437bfbebSnyanmisaka RK_U16 Reserved16BitsA; 83*437bfbebSnyanmisaka RK_U16 Reserved16BitsB; 84*437bfbebSnyanmisaka 85*437bfbebSnyanmisaka // FIXME: added for rockchip hardware information 86*437bfbebSnyanmisaka RK_U32 prev_coding_type; 87*437bfbebSnyanmisaka RK_U32 header_bits; 88*437bfbebSnyanmisaka } DXVA_PicParams_H263, *LPDXVA_PicParams_H263; 89*437bfbebSnyanmisaka 90*437bfbebSnyanmisaka typedef struct h263d_dxva2_picture_context { 91*437bfbebSnyanmisaka DXVA_PicParams_H263 pp; 92*437bfbebSnyanmisaka 93*437bfbebSnyanmisaka // pointer and storage for buffer descriptor 94*437bfbebSnyanmisaka DXVA2_DecodeBufferDesc *data[2]; 95*437bfbebSnyanmisaka DXVA2_DecodeBufferDesc desc[2]; 96*437bfbebSnyanmisaka } h263d_dxva2_picture_context_t; 97*437bfbebSnyanmisaka 98*437bfbebSnyanmisaka #endif /*__H263D_SYNTAX__*/ 99