vlc | branch: master | Steve Lhomme <[email protected]> | Tue Mar 10 10:50:15 2020 +0100| [754002efdb7c972bbf9675c6d0cb722f8c3faf2e] | committer: Steve Lhomme
contrib: wine-headers: bring back HEVC/VPx in dxva.h Wine currently doesn't have support for these. Regression from: Revision: 17cfa33e208f4ca504aad827365ec2820998c87d Author: Steve Lhomme <[email protected]> Date: 2020-03-01 12:57:53 Message: contrib: wine-headers: install dxva.h headers from wine > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=754002efdb7c972bbf9675c6d0cb722f8c3faf2e --- ...de-add-HEVC-and-VP8-VP9-support-to-dxva.h.patch | 332 +++++++++++++++++++++ contrib/src/wine-headers/rules.mak | 1 + 2 files changed, 333 insertions(+) diff --git a/contrib/src/wine-headers/0001-include-add-HEVC-and-VP8-VP9-support-to-dxva.h.patch b/contrib/src/wine-headers/0001-include-add-HEVC-and-VP8-VP9-support-to-dxva.h.patch new file mode 100644 index 0000000000..0ec4e5d2bb --- /dev/null +++ b/contrib/src/wine-headers/0001-include-add-HEVC-and-VP8-VP9-support-to-dxva.h.patch @@ -0,0 +1,332 @@ +From 58c9d0911bbbcf788ef06af884ff0f8d38e7bb1c Mon Sep 17 00:00:00 2001 +From: Steve Lhomme <[email protected]> +Date: Tue, 10 Mar 2020 10:33:32 +0100 +Subject: [PATCH] include: add HEVC and VP8/VP9 support to dxva.h + +Copied from mingw64. +--- + include/dxva.h | 308 +++++++++++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 308 insertions(+) + +diff --git a/include/dxva.h b/include/dxva.h +index 1260d75b37..8c8bec62b6 100644 +--- a/include/dxva.h ++++ b/include/dxva.h +@@ -206,6 +206,314 @@ typedef struct + USHORT wBadSliceChopping; + } DXVA_Slice_H264_Short; + ++ ++typedef struct { ++ union { ++ struct { ++ UCHAR Index7Bits : 7; ++ UCHAR AssociatedFlag : 1; ++ }; ++ UCHAR bPicEntry; ++ }; ++} DXVA_PicEntry_HEVC, *LPDXVA_PicEntry_HEVC; ++ ++/* HEVC Picture Parameter structure */ ++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; ++ ++/* HEVC Quantizatiuon Matrix structure */ ++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; ++ ++ ++/* HEVC Slice Control Structure */ ++typedef struct _DXVA_Slice_HEVC_Short { ++ UINT BSNALunitDataLocation; ++ UINT SliceBytesInBuffer; ++ USHORT wBadSliceChopping; ++} DXVA_Slice_HEVC_Short, *LPDXVA_Slice_HEVC_Short; ++ ++/* VPx picture entry data structure */ ++typedef struct _DXVA_PicEntry_VPx { ++ union { ++ struct { ++ UCHAR Index7Bits : 7; ++ UCHAR AssociatedFlag : 1; ++ }; ++ UCHAR bPicEntry; ++ }; ++} DXVA_PicEntry_VPx, *LPDXVA_PicEntry_VPx; ++ ++/* VP9 segmentation structure */ ++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; ++ ++/* VP9 picture parameters structure */ ++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; ++ ++/* VP8 segmentation structure */ ++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; ++ ++/* VP8 picture parameters structure */ ++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; ++ ++/* VPx slice control data structure - short form */ ++typedef struct _DXVA_Slice_VPx_Short { ++ UINT BSNALunitDataLocation; ++ UINT SliceBytesInBuffer; ++ USHORT wBadSliceChopping; ++} DXVA_Slice_VPx_Short, *LPDXVA_Slice_VPx_Short; ++ ++/* VPx status reporting data structure */ ++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> + + #ifdef __cplusplus +-- +2.19.1.windows.1 + diff --git a/contrib/src/wine-headers/rules.mak b/contrib/src/wine-headers/rules.mak index 47a36086be..2bde511009 100644 --- a/contrib/src/wine-headers/rules.mak +++ b/contrib/src/wine-headers/rules.mak @@ -27,6 +27,7 @@ $(TARBALLS)/wine-$(WINE_VERSION).tar.xz: wine-headers: wine-$(WINE_VERSION).tar.xz .sum-wine-headers $(UNPACK) + $(APPLY) $(SRC)/wine-headers/0001-include-add-HEVC-and-VP8-VP9-support-to-dxva.h.patch $(MOVE) wine_widl = echo "GEN $(1)" && \ _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
