diff options
author | Anton Fedchin <afedchin@users.noreply.github.com> | 2015-03-14 15:30:12 +0400 |
---|---|---|
committer | Anton Fedchin <afedchin@users.noreply.github.com> | 2015-03-14 15:30:12 +0400 |
commit | c2ca88b5b5c844b219382e686101c5dbceee23ae (patch) | |
tree | b252b9676b609f3d81cac6db79c80d79ac8b0e44 /lib | |
parent | 46d475e5e95db566e511b689dbf04f189d8e0496 (diff) | |
parent | a70297c93cfb308560782a78dacc496281729747 (diff) |
Merge pull request #6647 from afedchin/dxva_hevc
[dxva] Added dxva hevc decoding.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/win32/ffmpeg_dxva2/dxva.h | 150 |
1 files changed, 150 insertions, 0 deletions
diff --git a/lib/win32/ffmpeg_dxva2/dxva.h b/lib/win32/ffmpeg_dxva2/dxva.h new file mode 100644 index 0000000000..22efc9c65d --- /dev/null +++ b/lib/win32/ffmpeg_dxva2/dxva.h @@ -0,0 +1,150 @@ +//------------------------------------------------------------------------------ +// Copyright (c) 1999 - 2002, Microsoft Corporation. All rights reserved. +//------------------------------------------------------------------------------ + +#ifndef __DIRECTX_VA_HEVC__ +#define __DIRECTX_VA_HEVC__ + +/****************STRUCTURES******************/ +#pragma pack(push, 1) + +/* HEVC Picture Entry structure */ +typedef struct _DXVA_PicEntry_HEVC +{ + 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; + +#pragma pack(pop) +#endif //__DIRECTX_VA_HEVC__
\ No newline at end of file |