include: Add AV1 support to dxva.h.
Signed-off-by: Steve Lhomme <robux4@ycbcr.xyz> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
d5c9b26538
commit
2f05dd0719
269
include/dxva.h
269
include/dxva.h
|
@ -563,6 +563,275 @@ typedef struct _DXVA_Status_VPx
|
|||
USHORT wNumMbsAffected;
|
||||
} DXVA_Status_VPx, *LPDXVA_Status_VPx;
|
||||
|
||||
|
||||
#define _DIRECTX_AV1_VA_
|
||||
|
||||
/* AV1 decoder GUIDs */
|
||||
DEFINE_GUID(DXVA_ModeAV1_VLD_Profile0, 0xb8be4ccb, 0xcf53, 0x46ba, 0x8d, 0x59, 0xd6, 0xb8, 0xa6, 0xda, 0x5d, 0x2a);
|
||||
DEFINE_GUID(DXVA_ModeAV1_VLD_Profile1, 0x6936ff0f, 0x45b1, 0x4163, 0x9c, 0xc1, 0x64, 0x6e, 0xf6, 0x94, 0x61, 0x08);
|
||||
DEFINE_GUID(DXVA_ModeAV1_VLD_Profile2, 0x0c5f2aa1, 0xe541, 0x4089, 0xbb, 0x7b, 0x98, 0x11, 0x0a, 0x19, 0xd7, 0xc8);
|
||||
DEFINE_GUID(DXVA_ModeAV1_VLD_12bit_Profile2, 0x17127009, 0xa00f, 0x4ce1, 0x99, 0x4e, 0xbf, 0x40, 0x81, 0xf6, 0xf3, 0xf0);
|
||||
DEFINE_GUID(DXVA_ModeAV1_VLD_12bit_Profile2_420, 0x2d80bed6, 0x9cac, 0x4835, 0x9e, 0x91, 0x32, 0x7b, 0xbc, 0x4f, 0x9e, 0xe8);
|
||||
|
||||
/* AV1 picture entry data structure */
|
||||
typedef struct _DXVA_PicEntry_AV1 {
|
||||
UINT width;
|
||||
UINT height;
|
||||
|
||||
INT wmmat[6];
|
||||
__C89_NAMELESS union {
|
||||
__C89_NAMELESS struct {
|
||||
UCHAR wminvalid : 1;
|
||||
UCHAR wmtype : 2;
|
||||
UCHAR Reserved : 5;
|
||||
} __C89_NAMELESSSTRUCTNAME;
|
||||
UCHAR GlobalMotionFlags;
|
||||
} __C89_NAMELESSUNIONNAME;
|
||||
UCHAR Index;
|
||||
UINT16 Reserved16Bits;
|
||||
} DXVA_PicEntry_AV1, *LPDXVA_PicEntry_AV1;
|
||||
|
||||
/* AV1 picture parameters data structure */
|
||||
typedef struct _DXVA_PicParams_AV1 {
|
||||
UINT width;
|
||||
UINT height;
|
||||
|
||||
UINT max_width;
|
||||
UINT max_height;
|
||||
|
||||
UCHAR CurrPicTextureIndex;
|
||||
UCHAR superres_denom;
|
||||
UCHAR bitdepth;
|
||||
UCHAR seq_profile;
|
||||
|
||||
struct {
|
||||
UCHAR cols;
|
||||
UCHAR rows;
|
||||
USHORT context_update_id;
|
||||
USHORT widths[64];
|
||||
USHORT heights[64];
|
||||
} tiles;
|
||||
|
||||
union {
|
||||
__C89_NAMELESS struct {
|
||||
UINT use_128x128_superblock : 1;
|
||||
UINT intra_edge_filter : 1;
|
||||
UINT interintra_compound : 1;
|
||||
UINT masked_compound : 1;
|
||||
UINT warped_motion : 1;
|
||||
UINT dual_filter : 1;
|
||||
UINT jnt_comp : 1;
|
||||
UINT screen_content_tools : 1;
|
||||
UINT integer_mv : 1;
|
||||
UINT cdef : 1;
|
||||
UINT restoration : 1;
|
||||
UINT film_grain : 1;
|
||||
UINT intrabc : 1;
|
||||
UINT high_precision_mv : 1;
|
||||
UINT switchable_motion_mode : 1;
|
||||
UINT filter_intra : 1;
|
||||
UINT disable_frame_end_update_cdf : 1;
|
||||
UINT disable_cdf_update : 1;
|
||||
UINT reference_mode : 1;
|
||||
UINT skip_mode : 1;
|
||||
UINT reduced_tx_set : 1;
|
||||
UINT superres : 1;
|
||||
UINT tx_mode : 2;
|
||||
UINT use_ref_frame_mvs : 1;
|
||||
UINT enable_ref_frame_mvs : 1;
|
||||
UINT reference_frame_update : 1;
|
||||
UINT Reserved : 5;
|
||||
} __C89_NAMELESSSTRUCTNAME;
|
||||
UINT32 CodingParamToolFlags;
|
||||
} coding;
|
||||
|
||||
union {
|
||||
__C89_NAMELESS struct {
|
||||
UCHAR frame_type : 2;
|
||||
UCHAR show_frame : 1;
|
||||
UCHAR showable_frame : 1;
|
||||
UCHAR subsampling_x : 1;
|
||||
UCHAR subsampling_y : 1;
|
||||
UCHAR mono_chrome : 1;
|
||||
UCHAR Reserved : 1;
|
||||
} __C89_NAMELESSSTRUCTNAME;
|
||||
UCHAR FormatAndPictureInfoFlags;
|
||||
} format;
|
||||
|
||||
UCHAR primary_ref_frame;
|
||||
UCHAR order_hint;
|
||||
UCHAR order_hint_bits;
|
||||
|
||||
DXVA_PicEntry_AV1 frame_refs[7];
|
||||
UCHAR RefFrameMapTextureIndex[8];
|
||||
|
||||
struct {
|
||||
UCHAR filter_level[2];
|
||||
UCHAR filter_level_u;
|
||||
UCHAR filter_level_v;
|
||||
|
||||
UCHAR sharpness_level;
|
||||
__C89_NAMELESS union {
|
||||
__C89_NAMELESS struct {
|
||||
UCHAR mode_ref_delta_enabled : 1;
|
||||
UCHAR mode_ref_delta_update : 1;
|
||||
UCHAR delta_lf_multi : 1;
|
||||
UCHAR delta_lf_present : 1;
|
||||
UCHAR Reserved : 4;
|
||||
} __C89_NAMELESSSTRUCTNAME;
|
||||
UCHAR ControlFlags;
|
||||
} __C89_NAMELESSUNIONNAME;
|
||||
CHAR ref_deltas[8];
|
||||
CHAR mode_deltas[2];
|
||||
UCHAR delta_lf_res;
|
||||
UCHAR frame_restoration_type[3];
|
||||
USHORT log2_restoration_unit_size[3];
|
||||
UINT16 Reserved16Bits;
|
||||
} loop_filter;
|
||||
|
||||
struct {
|
||||
__C89_NAMELESS union {
|
||||
__C89_NAMELESS struct {
|
||||
UCHAR delta_q_present : 1;
|
||||
UCHAR delta_q_res : 2;
|
||||
UCHAR Reserved : 5;
|
||||
} __C89_NAMELESSSTRUCTNAME;
|
||||
UCHAR ControlFlags;
|
||||
} __C89_NAMELESSUNIONNAME;
|
||||
|
||||
UCHAR base_qindex;
|
||||
CHAR y_dc_delta_q;
|
||||
CHAR u_dc_delta_q;
|
||||
CHAR v_dc_delta_q;
|
||||
CHAR u_ac_delta_q;
|
||||
CHAR v_ac_delta_q;
|
||||
UCHAR qm_y;
|
||||
UCHAR qm_u;
|
||||
UCHAR qm_v;
|
||||
UINT16 Reserved16Bits;
|
||||
} quantization;
|
||||
|
||||
struct {
|
||||
__C89_NAMELESS union {
|
||||
__C89_NAMELESS struct {
|
||||
UCHAR damping : 2;
|
||||
UCHAR bits : 2;
|
||||
UCHAR Reserved : 4;
|
||||
} __C89_NAMELESSSTRUCTNAME;
|
||||
UCHAR ControlFlags;
|
||||
} __C89_NAMELESSUNIONNAME;
|
||||
|
||||
union {
|
||||
__C89_NAMELESS struct {
|
||||
UCHAR primary : 6;
|
||||
UCHAR secondary : 2;
|
||||
} __C89_NAMELESSSTRUCTNAME;
|
||||
UCHAR combined;
|
||||
} y_strengths[8];
|
||||
|
||||
union {
|
||||
__C89_NAMELESS struct {
|
||||
UCHAR primary : 6;
|
||||
UCHAR secondary : 2;
|
||||
} __C89_NAMELESSSTRUCTNAME;
|
||||
UCHAR combined;
|
||||
} uv_strengths[8];
|
||||
|
||||
} cdef;
|
||||
|
||||
UCHAR interp_filter;
|
||||
|
||||
struct {
|
||||
__C89_NAMELESS union {
|
||||
__C89_NAMELESS struct {
|
||||
UCHAR enabled : 1;
|
||||
UCHAR update_map : 1;
|
||||
UCHAR update_data : 1;
|
||||
UCHAR temporal_update : 1;
|
||||
UCHAR Reserved : 4;
|
||||
} __C89_NAMELESSSTRUCTNAME;
|
||||
UCHAR ControlFlags;
|
||||
} __C89_NAMELESSUNIONNAME;
|
||||
UCHAR Reserved24Bits[3];
|
||||
|
||||
union {
|
||||
__C89_NAMELESS struct {
|
||||
UCHAR alt_q : 1;
|
||||
UCHAR alt_lf_y_v : 1;
|
||||
UCHAR alt_lf_y_h : 1;
|
||||
UCHAR alt_lf_u : 1;
|
||||
UCHAR alt_lf_v : 1;
|
||||
UCHAR ref_frame : 1;
|
||||
UCHAR skip : 1;
|
||||
UCHAR globalmv : 1;
|
||||
} __C89_NAMELESSSTRUCTNAME;
|
||||
UCHAR mask;
|
||||
} feature_mask[8];
|
||||
|
||||
SHORT feature_data[8][8];
|
||||
|
||||
} segmentation;
|
||||
|
||||
struct {
|
||||
__C89_NAMELESS union {
|
||||
__C89_NAMELESS struct {
|
||||
USHORT apply_grain : 1;
|
||||
USHORT scaling_shift_minus8 : 2;
|
||||
USHORT chroma_scaling_from_luma : 1;
|
||||
USHORT ar_coeff_lag : 2;
|
||||
USHORT ar_coeff_shift_minus6 : 2;
|
||||
USHORT grain_scale_shift : 2;
|
||||
USHORT overlap_flag : 1;
|
||||
USHORT clip_to_restricted_range : 1;
|
||||
USHORT matrix_coeff_is_identity : 1;
|
||||
USHORT Reserved : 3;
|
||||
} __C89_NAMELESSSTRUCTNAME;
|
||||
USHORT ControlFlags;
|
||||
} __C89_NAMELESSUNIONNAME;
|
||||
|
||||
USHORT grain_seed;
|
||||
UCHAR scaling_points_y[14][2];
|
||||
UCHAR num_y_points;
|
||||
UCHAR scaling_points_cb[10][2];
|
||||
UCHAR num_cb_points;
|
||||
UCHAR scaling_points_cr[10][2];
|
||||
UCHAR num_cr_points;
|
||||
UCHAR ar_coeffs_y[24];
|
||||
UCHAR ar_coeffs_cb[25];
|
||||
UCHAR ar_coeffs_cr[25];
|
||||
UCHAR cb_mult;
|
||||
UCHAR cb_luma_mult;
|
||||
UCHAR cr_mult;
|
||||
UCHAR cr_luma_mult;
|
||||
UCHAR Reserved8Bits;
|
||||
SHORT cb_offset;
|
||||
SHORT cr_offset;
|
||||
} film_grain;
|
||||
|
||||
UINT Reserved32Bits;
|
||||
UINT StatusReportFeedbackNumber;
|
||||
} DXVA_PicParams_AV1, *LPDXVA_PicParams_AV1;
|
||||
|
||||
/* AV1 tile data structure */
|
||||
typedef struct _DXVA_Tile_AV1 {
|
||||
UINT DataOffset;
|
||||
UINT DataSize;
|
||||
USHORT row;
|
||||
USHORT column;
|
||||
UINT16 Reserved16Bits;
|
||||
UCHAR anchor_frame;
|
||||
UCHAR Reserved8Bits;
|
||||
} DXVA_Tile_AV1, *LPDXVA_Tile_AV1;
|
||||
|
||||
typedef struct _DXVA_Status_AV1 {
|
||||
UINT StatusReportFeedbackNumber;
|
||||
DXVA_PicEntry_AV1 CurrPic;
|
||||
UCHAR BufType;
|
||||
UCHAR Status;
|
||||
UCHAR Reserved8Bits;
|
||||
USHORT NumMbsAffected;
|
||||
} DXVA_Status_AV1, *LPDXVA_Status_AV1;
|
||||
|
||||
#include <poppack.h>
|
||||
|
||||
typedef enum _DXVA_VideoChromaSubsampling
|
||||
|
|
Loading…
Reference in New Issue