/*
|
*
|
* Copyright 2010 Rockchip Electronics Co. LTD
|
*
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
* you may not use this file except in compliance with the License.
|
* You may obtain a copy of the License at
|
*
|
* http://www.apache.org/licenses/LICENSE-2.0
|
*
|
* Unless required by applicable law or agreed to in writing, software
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* See the License for the specific language governing permissions and
|
* limitations under the License.
|
*/
|
|
#ifndef __H263D_SYNTAX__
|
#define __H263D_SYNTAX__
|
|
#include "dxva_syntax.h"
|
|
/*video vop specific*/
|
typedef enum {
|
H263_INVALID_VOP = -1,
|
H263_I_VOP = 0,
|
H263_P_VOP = 1,
|
} H263VOPType;
|
|
/* H263PT2 Picture Parameter structure */
|
typedef struct _DXVA_PicParams_H263 {
|
RK_U8 short_video_header;
|
RK_U8 vop_coding_type;
|
RK_U8 vop_quant;
|
RK_U16 wDecodedPictureIndex;
|
RK_U16 wDeblockedPictureIndex;
|
RK_U16 wForwardRefPictureIndex;
|
RK_U16 wBackwardRefPictureIndex;
|
RK_U16 vop_time_increment_resolution;
|
RK_U32 TRB[2];
|
RK_U32 TRD[2];
|
|
union {
|
struct {
|
RK_U16 unPicPostProc : 2;
|
RK_U16 interlaced : 1;
|
RK_U16 quant_type : 1;
|
RK_U16 quarter_sample : 1;
|
RK_U16 resync_marker_disable : 1;
|
RK_U16 data_partitioned : 1;
|
RK_U16 reversible_vlc : 1;
|
RK_U16 reduced_resolution_vop_enable : 1;
|
RK_U16 vop_coded : 1;
|
RK_U16 vop_rounding_type : 1;
|
RK_U16 intra_dc_vlc_thr : 3;
|
RK_U16 top_field_first : 1;
|
RK_U16 alternate_vertical_scan_flag : 1;
|
};
|
RK_U16 wPicFlagBitFields;
|
};
|
RK_U8 profile_and_level_indication;
|
RK_U8 video_object_layer_verid;
|
RK_U16 vop_width;
|
RK_U16 vop_height;
|
union {
|
struct {
|
RK_U16 sprite_enable : 2;
|
RK_U16 no_of_sprite_warping_points : 6;
|
RK_U16 sprite_warping_accuracy : 2;
|
};
|
RK_U16 wSpriteBitFields;
|
};
|
RK_S16 warping_mv[4][2];
|
union {
|
struct {
|
RK_U8 vop_fcode_forward : 3;
|
RK_U8 vop_fcode_backward : 3;
|
};
|
RK_U8 wFcodeBitFields;
|
};
|
RK_U16 StatusReportFeedbackNumber;
|
RK_U16 Reserved16BitsA;
|
RK_U16 Reserved16BitsB;
|
|
// FIXME: added for rockchip hardware information
|
RK_U32 prev_coding_type;
|
RK_U32 header_bits;
|
} DXVA_PicParams_H263, *LPDXVA_PicParams_H263;
|
|
typedef struct h263d_dxva2_picture_context {
|
DXVA_PicParams_H263 pp;
|
|
// pointer and storage for buffer descriptor
|
DXVA2_DecodeBufferDesc *data[2];
|
DXVA2_DecodeBufferDesc desc[2];
|
} h263d_dxva2_picture_context_t;
|
|
#endif /*__H263D_SYNTAX__*/
|