include/dxva: Add HEVC and VP8/VP9 structures.
Signed-off-by: Biswapriyo Nath <nathbappai@gmail.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
4c1ff566dd
commit
c43998cb51
399
include/dxva.h
399
include/dxva.h
|
@ -23,12 +23,54 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
DEFINE_GUID(DXVA_NoEncrypt, 0x1b81bed0, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
|
||||
|
||||
#define DXVA_USUAL_BLOCK_WIDTH 8
|
||||
#define DXVA_USUAL_BLOCK_HEIGHT 8
|
||||
#define DXVA_USUAL_BLOCK_SIZE (DXVA_USUAL_BLOCK_WIDTH * DXVA_USUAL_BLOCK_HEIGHT)
|
||||
|
||||
#include <pshpack1.h>
|
||||
|
||||
typedef struct _DXVA_PicEntry_H264
|
||||
{
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
UCHAR Index7Bits : 7;
|
||||
UCHAR AssociatedFlag : 1;
|
||||
} DUMMYSTRUCTNAME;
|
||||
UCHAR bPicEntry;
|
||||
} DUMMYUNIONNAME;
|
||||
} DXVA_PicEntry_H264, *LPDXVA_PicEntry_H264;
|
||||
|
||||
typedef struct _DXVA_FilmGrainCharacteristics
|
||||
{
|
||||
USHORT wFrameWidthInMbsMinus1;
|
||||
USHORT wFrameHeightInMbsMinus1;
|
||||
DXVA_PicEntry_H264 InPic;
|
||||
DXVA_PicEntry_H264 OutPic;
|
||||
USHORT PicOrderCnt_offset;
|
||||
INT CurrPicOrderCnt;
|
||||
UINT StatusReportFeedbackNumber;
|
||||
UCHAR model_id;
|
||||
UCHAR separate_colour_description_present_flag;
|
||||
UCHAR film_grain_bit_depth_luma_minus8;
|
||||
UCHAR film_grain_bit_depth_chroma_minus8;
|
||||
UCHAR film_grain_full_range_flag;
|
||||
UCHAR film_grain_colour_primaries;
|
||||
UCHAR film_grain_transfer_characteristics;
|
||||
UCHAR film_grain_matrix_coefficients;
|
||||
UCHAR blending_mode_id;
|
||||
UCHAR log2_scale_factor;
|
||||
UCHAR comp_model_present_flag[4];
|
||||
UCHAR num_intensity_intervals_minus1[4];
|
||||
UCHAR num_model_values_minus1[4];
|
||||
UCHAR intensity_interval_lower_bound[3][16];
|
||||
UCHAR intensity_interval_upper_bound[3][16];
|
||||
SHORT comp_model_value[3][16][8];
|
||||
} DXVA_FilmGrainChar_H264, *LPDXVA_FilmGrainChar_H264;
|
||||
|
||||
typedef struct _DXVA_PictureParameters
|
||||
{
|
||||
WORD wDecodedPictureIndex;
|
||||
|
@ -89,20 +131,7 @@ typedef struct _DXVA_QmatrixData
|
|||
WORD Qmatrix[4][DXVA_USUAL_BLOCK_WIDTH * DXVA_USUAL_BLOCK_HEIGHT];
|
||||
} DXVA_QmatrixData, *LPDXVA_QmatrixData;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
UCHAR Index7Bits : 7;
|
||||
UCHAR AssociatedFlag : 1;
|
||||
} DUMMYSTRUCTNAME;
|
||||
UCHAR bPicEntry;
|
||||
} DUMMYUNIONNAME;
|
||||
} DXVA_PicEntry_H264;
|
||||
|
||||
typedef struct
|
||||
typedef struct _DXVA_PicParams_H264
|
||||
{
|
||||
USHORT wFrameWidthInMbsMinus1;
|
||||
USHORT wFrameHeightInMbsMinus1;
|
||||
|
@ -163,15 +192,15 @@ typedef struct
|
|||
UCHAR Reserved8BitsB;
|
||||
USHORT slice_group_change_rate_minus1;
|
||||
UCHAR SliceGroupMap[810];
|
||||
} DXVA_PicParams_H264;
|
||||
} DXVA_PicParams_H264, *LPDXVA_PicParams_H264;
|
||||
|
||||
typedef struct
|
||||
typedef struct _DXVA_Qmatrix_H264
|
||||
{
|
||||
UCHAR bScalingLists4x4[6][16];
|
||||
UCHAR bScalingLists8x8[2][64];
|
||||
} DXVA_Qmatrix_H264;
|
||||
} DXVA_Qmatrix_H264, *LPDXVA_Qmatrix_H264;
|
||||
|
||||
typedef struct
|
||||
typedef struct _DXVA_Slice_H264_Long
|
||||
{
|
||||
UINT BSNALunitDataLocation;
|
||||
UINT SliceBytesInBuffer;
|
||||
|
@ -197,14 +226,342 @@ typedef struct
|
|||
UCHAR cabac_init_idc;
|
||||
UCHAR disable_deblocking_filter_idc;
|
||||
USHORT slice_id;
|
||||
} DXVA_Slice_H264_Long;
|
||||
} DXVA_Slice_H264_Long, *LPDXVA_Slice_H264_Long;
|
||||
|
||||
typedef struct
|
||||
typedef struct _DXVA_Slice_H264_Short
|
||||
{
|
||||
UINT BSNALunitDataLocation;
|
||||
UINT SliceBytesInBuffer;
|
||||
USHORT wBadSliceChopping;
|
||||
} DXVA_Slice_H264_Short;
|
||||
} DXVA_Slice_H264_Short, *LPDXVA_Slice_H264_Short;
|
||||
|
||||
|
||||
typedef struct _DXVA_PicEntry_HEVC
|
||||
{
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
UCHAR Index7Bits : 7;
|
||||
UCHAR AssociatedFlag : 1;
|
||||
};
|
||||
UCHAR bPicEntry;
|
||||
};
|
||||
} DXVA_PicEntry_HEVC, *LPDXVA_PicEntry_HEVC;
|
||||
|
||||
typedef struct _DXVA_PicParams_HEVC
|
||||
{
|
||||
USHORT PicWidthInMinCbsY;
|
||||
USHORT PicHeightInMinCbsY;
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
USHORT chroma_format_idc : 2;
|
||||
USHORT separate_colour_plane_flag : 1;
|
||||
USHORT bit_depth_luma_minus8 : 3;
|
||||
USHORT bit_depth_chroma_minus8 : 3;
|
||||
USHORT log2_max_pic_order_cnt_lsb_minus4 : 4;
|
||||
USHORT NoPicReorderingFlag : 1;
|
||||
USHORT NoBiPredFlag : 1;
|
||||
USHORT ReservedBits1 : 1;
|
||||
};
|
||||
USHORT wFormatAndSequenceInfoFlags;
|
||||
};
|
||||
DXVA_PicEntry_HEVC CurrPic;
|
||||
UCHAR sps_max_dec_pic_buffering_minus1;
|
||||
UCHAR log2_min_luma_coding_block_size_minus3;
|
||||
UCHAR log2_diff_max_min_luma_coding_block_size;
|
||||
UCHAR log2_min_transform_block_size_minus2;
|
||||
UCHAR log2_diff_max_min_transform_block_size;
|
||||
UCHAR max_transform_hierarchy_depth_inter;
|
||||
UCHAR max_transform_hierarchy_depth_intra;
|
||||
UCHAR num_short_term_ref_pic_sets;
|
||||
UCHAR num_long_term_ref_pics_sps;
|
||||
UCHAR num_ref_idx_l0_default_active_minus1;
|
||||
UCHAR num_ref_idx_l1_default_active_minus1;
|
||||
CHAR init_qp_minus26;
|
||||
UCHAR ucNumDeltaPocsOfRefRpsIdx;
|
||||
USHORT wNumBitsForShortTermRPSInSlice;
|
||||
USHORT ReservedBits2;
|
||||
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
UINT32 scaling_list_enabled_flag : 1;
|
||||
UINT32 amp_enabled_flag : 1;
|
||||
UINT32 sample_adaptive_offset_enabled_flag : 1;
|
||||
UINT32 pcm_enabled_flag : 1;
|
||||
UINT32 pcm_sample_bit_depth_luma_minus1 : 4;
|
||||
UINT32 pcm_sample_bit_depth_chroma_minus1 : 4;
|
||||
UINT32 log2_min_pcm_luma_coding_block_size_minus3 : 2;
|
||||
UINT32 log2_diff_max_min_pcm_luma_coding_block_size : 2;
|
||||
UINT32 pcm_loop_filter_disabled_flag : 1;
|
||||
UINT32 long_term_ref_pics_present_flag : 1;
|
||||
UINT32 sps_temporal_mvp_enabled_flag : 1;
|
||||
UINT32 strong_intra_smoothing_enabled_flag : 1;
|
||||
UINT32 dependent_slice_segments_enabled_flag : 1;
|
||||
UINT32 output_flag_present_flag : 1;
|
||||
UINT32 num_extra_slice_header_bits : 3;
|
||||
UINT32 sign_data_hiding_enabled_flag : 1;
|
||||
UINT32 cabac_init_present_flag : 1;
|
||||
UINT32 ReservedBits3 : 5;
|
||||
};
|
||||
UINT32 dwCodingParamToolFlags;
|
||||
};
|
||||
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
UINT32 constrained_intra_pred_flag : 1;
|
||||
UINT32 transform_skip_enabled_flag : 1;
|
||||
UINT32 cu_qp_delta_enabled_flag : 1;
|
||||
UINT32 pps_slice_chroma_qp_offsets_present_flag : 1;
|
||||
UINT32 weighted_pred_flag : 1;
|
||||
UINT32 weighted_bipred_flag : 1;
|
||||
UINT32 transquant_bypass_enabled_flag : 1;
|
||||
UINT32 tiles_enabled_flag : 1;
|
||||
UINT32 entropy_coding_sync_enabled_flag : 1;
|
||||
UINT32 uniform_spacing_flag : 1;
|
||||
UINT32 loop_filter_across_tiles_enabled_flag : 1;
|
||||
UINT32 pps_loop_filter_across_slices_enabled_flag : 1;
|
||||
UINT32 deblocking_filter_override_enabled_flag : 1;
|
||||
UINT32 pps_deblocking_filter_disabled_flag : 1;
|
||||
UINT32 lists_modification_present_flag : 1;
|
||||
UINT32 slice_segment_header_extension_present_flag : 1;
|
||||
UINT32 IrapPicFlag : 1;
|
||||
UINT32 IdrPicFlag : 1;
|
||||
UINT32 IntraPicFlag : 1;
|
||||
UINT32 ReservedBits4 : 13;
|
||||
};
|
||||
UINT32 dwCodingSettingPicturePropertyFlags;
|
||||
};
|
||||
CHAR pps_cb_qp_offset;
|
||||
CHAR pps_cr_qp_offset;
|
||||
UCHAR num_tile_columns_minus1;
|
||||
UCHAR num_tile_rows_minus1;
|
||||
USHORT column_width_minus1[19];
|
||||
USHORT row_height_minus1[21];
|
||||
UCHAR diff_cu_qp_delta_depth;
|
||||
CHAR pps_beta_offset_div2;
|
||||
CHAR pps_tc_offset_div2;
|
||||
UCHAR log2_parallel_merge_level_minus2;
|
||||
INT CurrPicOrderCntVal;
|
||||
DXVA_PicEntry_HEVC RefPicList[15];
|
||||
UCHAR ReservedBits5;
|
||||
INT PicOrderCntValList[15];
|
||||
UCHAR RefPicSetStCurrBefore[8];
|
||||
UCHAR RefPicSetStCurrAfter[8];
|
||||
UCHAR RefPicSetLtCurr[8];
|
||||
USHORT ReservedBits6;
|
||||
USHORT ReservedBits7;
|
||||
UINT StatusReportFeedbackNumber;
|
||||
} DXVA_PicParams_HEVC, *LPDXVA_PicParams_HEVC;
|
||||
|
||||
typedef struct _DXVA_Qmatrix_HEVC
|
||||
{
|
||||
UCHAR ucScalingLists0[6][16];
|
||||
UCHAR ucScalingLists1[6][64];
|
||||
UCHAR ucScalingLists2[6][64];
|
||||
UCHAR ucScalingLists3[2][64];
|
||||
UCHAR ucScalingListDCCoefSizeID2[6];
|
||||
UCHAR ucScalingListDCCoefSizeID3[2];
|
||||
} DXVA_Qmatrix_HEVC, *LPDXVA_Qmatrix_HEVC;
|
||||
|
||||
typedef struct _DXVA_Slice_HEVC_Short
|
||||
{
|
||||
UINT BSNALunitDataLocation;
|
||||
UINT SliceBytesInBuffer;
|
||||
USHORT wBadSliceChopping;
|
||||
} DXVA_Slice_HEVC_Short, *LPDXVA_Slice_HEVC_Short;
|
||||
|
||||
typedef struct _DXVA_PicEntry_VPx
|
||||
{
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
UCHAR Index7Bits : 7;
|
||||
UCHAR AssociatedFlag : 1;
|
||||
};
|
||||
UCHAR bPicEntry;
|
||||
};
|
||||
} DXVA_PicEntry_VPx, *LPDXVA_PicEntry_VPx;
|
||||
|
||||
typedef struct _segmentation_VP9
|
||||
{
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
UCHAR enabled : 1;
|
||||
UCHAR update_map : 1;
|
||||
UCHAR temporal_update : 1;
|
||||
UCHAR abs_delta : 1;
|
||||
UCHAR ReservedSegmentFlags4Bits : 4;
|
||||
};
|
||||
UCHAR wSegmentInfoFlags;
|
||||
};
|
||||
UCHAR tree_probs[7];
|
||||
UCHAR pred_probs[3];
|
||||
SHORT feature_data[8][4];
|
||||
UCHAR feature_mask[8];
|
||||
} DXVA_segmentation_VP9;
|
||||
|
||||
typedef struct _DXVA_PicParams_VP9
|
||||
{
|
||||
DXVA_PicEntry_VPx CurrPic;
|
||||
UCHAR profile;
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
USHORT frame_type : 1;
|
||||
USHORT show_frame : 1;
|
||||
USHORT error_resilient_mode : 1;
|
||||
USHORT subsampling_x : 1;
|
||||
USHORT subsampling_y : 1;
|
||||
USHORT extra_plane : 1;
|
||||
USHORT refresh_frame_context : 1;
|
||||
USHORT frame_parallel_decoding_mode : 1;
|
||||
USHORT intra_only : 1;
|
||||
USHORT frame_context_idx : 2;
|
||||
USHORT reset_frame_context : 2;
|
||||
USHORT allow_high_precision_mv : 1;
|
||||
USHORT ReservedFormatInfo2Bits : 2;
|
||||
};
|
||||
USHORT wFormatAndPictureInfoFlags;
|
||||
};
|
||||
UINT width;
|
||||
UINT height;
|
||||
UCHAR BitDepthMinus8Luma;
|
||||
UCHAR BitDepthMinus8Chroma;
|
||||
UCHAR interp_filter;
|
||||
UCHAR Reserved8Bits;
|
||||
DXVA_PicEntry_VPx ref_frame_map[8];
|
||||
UINT ref_frame_coded_width[8];
|
||||
UINT ref_frame_coded_height[8];
|
||||
DXVA_PicEntry_VPx frame_refs[3];
|
||||
CHAR ref_frame_sign_bias[4];
|
||||
CHAR filter_level;
|
||||
CHAR sharpness_level;
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
UCHAR mode_ref_delta_enabled : 1;
|
||||
UCHAR mode_ref_delta_update : 1;
|
||||
UCHAR use_prev_in_find_mv_refs : 1;
|
||||
UCHAR ReservedControlInfo5Bits : 5;
|
||||
};
|
||||
UCHAR wControlInfoFlags;
|
||||
};
|
||||
CHAR ref_deltas[4];
|
||||
CHAR mode_deltas[2];
|
||||
SHORT base_qindex;
|
||||
CHAR y_dc_delta_q;
|
||||
CHAR uv_dc_delta_q;
|
||||
CHAR uv_ac_delta_q;
|
||||
DXVA_segmentation_VP9 stVP9Segments;
|
||||
UCHAR log2_tile_cols;
|
||||
UCHAR log2_tile_rows;
|
||||
USHORT uncompressed_header_size_byte_aligned;
|
||||
USHORT first_partition_size;
|
||||
USHORT Reserved16Bits;
|
||||
UINT Reserved32Bits;
|
||||
UINT StatusReportFeedbackNumber;
|
||||
} DXVA_PicParams_VP9, *LPDXVA_PicParams_VP9;
|
||||
|
||||
typedef struct _segmentation_VP8
|
||||
{
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
UCHAR segmentation_enabled : 1;
|
||||
UCHAR update_mb_segmentation_map : 1;
|
||||
UCHAR update_mb_segmentation_data : 1;
|
||||
UCHAR mb_segement_abs_delta : 1;
|
||||
UCHAR ReservedSegmentFlags4Bits : 4;
|
||||
};
|
||||
UCHAR wSegmentFlags;
|
||||
};
|
||||
CHAR segment_feature_data[2][4];
|
||||
UCHAR mb_segment_tree_probs[3];
|
||||
} DXVA_segmentation_VP8;
|
||||
|
||||
typedef struct _DXVA_PicParams_VP8
|
||||
{
|
||||
UINT first_part_size;
|
||||
UINT width;
|
||||
UINT height;
|
||||
DXVA_PicEntry_VPx CurrPic;
|
||||
union
|
||||
{
|
||||
struct
|
||||
{
|
||||
UCHAR frame_type : 1;
|
||||
UCHAR version : 3;
|
||||
UCHAR show_frame : 1;
|
||||
UCHAR clamp_type : 1;
|
||||
UCHAR ReservedFrameTag3Bits : 2;
|
||||
};
|
||||
UCHAR wFrameTagFlags;
|
||||
};
|
||||
DXVA_segmentation_VP8 stVP8Segments;
|
||||
UCHAR filter_type;
|
||||
UCHAR filter_level;
|
||||
UCHAR sharpness_level;
|
||||
UCHAR mode_ref_lf_delta_enabled;
|
||||
UCHAR mode_ref_lf_delta_update;
|
||||
CHAR ref_lf_deltas[4];
|
||||
CHAR mode_lf_deltas[4];
|
||||
UCHAR log2_nbr_of_dct_partitions;
|
||||
UCHAR base_qindex;
|
||||
CHAR y1dc_delta_q;
|
||||
CHAR y2dc_delta_q;
|
||||
CHAR y2ac_delta_q;
|
||||
CHAR uvdc_delta_q;
|
||||
CHAR uvac_delta_q;
|
||||
DXVA_PicEntry_VPx alt_fb_idx;
|
||||
DXVA_PicEntry_VPx gld_fb_idx;
|
||||
DXVA_PicEntry_VPx lst_fb_idx;
|
||||
UCHAR ref_frame_sign_bias_golden;
|
||||
UCHAR ref_frame_sign_bias_altref;
|
||||
UCHAR refresh_entropy_probs;
|
||||
UCHAR vp8_coef_update_probs[4][8][3][11];
|
||||
UCHAR mb_no_coeff_skip;
|
||||
UCHAR prob_skip_false;
|
||||
UCHAR prob_intra;
|
||||
UCHAR prob_last;
|
||||
UCHAR prob_golden;
|
||||
UCHAR intra_16x16_prob[4];
|
||||
UCHAR intra_chroma_prob[3];
|
||||
UCHAR vp8_mv_update_probs[2][19];
|
||||
USHORT ReservedBits1;
|
||||
USHORT ReservedBits2;
|
||||
USHORT ReservedBits3;
|
||||
UINT StatusReportFeedbackNumber;
|
||||
} DXVA_PicParams_VP8, *LPDXVA_PicParams_VP8;
|
||||
|
||||
typedef struct _DXVA_Slice_VPx_Short
|
||||
{
|
||||
UINT BSNALunitDataLocation;
|
||||
UINT SliceBytesInBuffer;
|
||||
USHORT wBadSliceChopping;
|
||||
} DXVA_Slice_VPx_Short, *LPDXVA_Slice_VPx_Short;
|
||||
|
||||
typedef struct _DXVA_Status_VPx
|
||||
{
|
||||
UINT StatusReportFeedbackNumber;
|
||||
DXVA_PicEntry_VPx CurrPic;
|
||||
UCHAR bBufType;
|
||||
UCHAR bStatus;
|
||||
UCHAR bReserved8Bits;
|
||||
USHORT wNumMbsAffected;
|
||||
} DXVA_Status_VPx, *LPDXVA_Status_VPx;
|
||||
|
||||
#include <poppack.h>
|
||||
|
||||
|
|
Loading…
Reference in New Issue