/** * This file has no copyright assigned and is placed in the Public Domain. * This file is part of the mingw-w64 runtime package. * No warranty is given; refer to the file DISCLAIMER.PD within this package. */ #ifndef _INC_DXVA #define _INC_DXVA #include <objbase.h> #include <guiddef.h> #ifdef __cplusplus extern "C" { #endif DEFINE_GUID(DXVA_NoEncrypt, 0x1b81bed0, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); /* DXVA H264 */ typedef struct { __C89_NAMELESS union { __C89_NAMELESS struct { UCHAR Index7Bits : 7; UCHAR AssociatedFlag : 1; }; UCHAR bPicEntry; }; } DXVA_PicEntry_H264; #pragma pack(push, 1) typedef struct { 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; #pragma pack(pop) /* DXVA MPEG-I/II and VC-1 */ typedef struct _DXVA_PictureParameters { USHORT wDecodedPictureIndex; USHORT wDeblockedPictureIndex; USHORT wForwardRefPictureIndex; USHORT wBackwardRefPictureIndex; USHORT wPicWidthInMBminus1; USHORT wPicHeightInMBminus1; UCHAR bMacroblockWidthMinus1; UCHAR bMacroblockHeightMinus1; UCHAR bBlockWidthMinus1; UCHAR bBlockHeightMinus1; UCHAR bBPPminus1; UCHAR bPicStructure; UCHAR bSecondField; UCHAR bPicIntra; UCHAR bPicBackwardPrediction; UCHAR bBidirectionalAveragingMode; UCHAR bMVprecisionAndChromaRelation; UCHAR bChromaFormat; UCHAR bPicScanFixed; UCHAR bPicScanMethod; UCHAR bPicReadbackRequests; UCHAR bRcontrol; UCHAR bPicSpatialResid8; UCHAR bPicOverflowBlocks; UCHAR bPicExtrapolation; UCHAR bPicDeblocked; UCHAR bPicDeblockConfined; UCHAR bPic4MVallowed; UCHAR bPicOBMC; UCHAR bPicBinPB; UCHAR bMV_RPS; UCHAR bReservedBits; USHORT wBitstreamFcodes; USHORT wBitstreamPCEelements; UCHAR bBitstreamConcealmentNeed; UCHAR bBitstreamConcealmentMethod; } DXVA_PictureParameters, *LPDXVA_PictureParameters; typedef struct _DXVA_QmatrixData { BYTE bNewQmatrix[4]; WORD Qmatrix[4][8 * 8]; } DXVA_QmatrixData, *LPDXVA_QmatrixData; #pragma pack(push, 1) typedef struct _DXVA_SliceInfo { USHORT wHorizontalPosition; USHORT wVerticalPosition; UINT dwSliceBitsInBuffer; UINT dwSliceDataLocation; UCHAR bStartCodeBitOffset; UCHAR bReservedBits; USHORT wMBbitOffset; USHORT wNumberMBsInSlice; USHORT wQuantizerScaleCode; USHORT wBadSliceChopping; } DXVA_SliceInfo, *LPDXVA_SliceInfo; #pragma pack(pop) typedef struct { USHORT wFrameWidthInMbsMinus1; USHORT wFrameHeightInMbsMinus1; DXVA_PicEntry_H264 CurrPic; UCHAR num_ref_frames; __C89_NAMELESS union { __C89_NAMELESS struct { USHORT field_pic_flag : 1; USHORT MbaffFrameFlag : 1; USHORT residual_colour_transform_flag : 1; USHORT sp_for_switch_flag : 1; USHORT chroma_format_idc : 2; USHORT RefPicFlag : 1; USHORT constrained_intra_pred_flag : 1; USHORT weighted_pred_flag : 1; USHORT weighted_bipred_idc : 2; USHORT MbsConsecutiveFlag : 1; USHORT frame_mbs_only_flag : 1; USHORT transform_8x8_mode_flag : 1; USHORT MinLumaBipredSize8x8Flag : 1; USHORT IntraPicFlag : 1; }; USHORT wBitFields; }; UCHAR bit_depth_luma_minus8; UCHAR bit_depth_chroma_minus8; USHORT Reserved16Bits; UINT StatusReportFeedbackNumber; DXVA_PicEntry_H264 RefFrameList[16]; INT CurrFieldOrderCnt[2]; INT FieldOrderCntList[16][2]; CHAR pic_init_qs_minus26; CHAR chroma_qp_index_offset; CHAR second_chroma_qp_index_offset; UCHAR ContinuationFlag; CHAR pic_init_qp_minus26; UCHAR num_ref_idx_l0_active_minus1; UCHAR num_ref_idx_l1_active_minus1; UCHAR Reserved8BitsA; USHORT FrameNumList[16]; UINT UsedForReferenceFlags; USHORT NonExistingFrameFlags; USHORT frame_num; UCHAR log2_max_frame_num_minus4; UCHAR pic_order_cnt_type; UCHAR log2_max_pic_order_cnt_lsb_minus4; UCHAR delta_pic_order_always_zero_flag; UCHAR direct_8x8_inference_flag; UCHAR entropy_coding_mode_flag; UCHAR pic_order_present_flag; UCHAR num_slice_groups_minus1; UCHAR slice_group_map_type; UCHAR deblocking_filter_control_present_flag; UCHAR redundant_pic_cnt_present_flag; UCHAR Reserved8BitsB; USHORT slice_group_change_rate_minus1; UCHAR SliceGroupMap[810]; } DXVA_PicParams_H264; typedef struct { UCHAR bScalingLists4x4[6][16]; UCHAR bScalingLists8x8[2][64]; } DXVA_Qmatrix_H264; typedef struct { UINT BSNALunitDataLocation; UINT SliceBytesInBuffer; USHORT wBadSliceChopping; USHORT first_mb_in_slice; USHORT NumMbsForSlice; USHORT BitOffsetToSliceData; UCHAR slice_type; UCHAR luma_log2_weight_denom; UCHAR chroma_log2_weight_denom; UCHAR num_ref_idx_l0_active_minus1; UCHAR num_ref_idx_l1_active_minus1; CHAR slice_alpha_c0_offset_div2; CHAR slice_beta_offset_div2; UCHAR Reserved8Bits; DXVA_PicEntry_H264 RefPicList[2][32]; SHORT Weights[2][32][3][2]; CHAR slice_qs_delta; CHAR slice_qp_delta; UCHAR redundant_pic_cnt; UCHAR direct_spatial_mv_pred_flag; UCHAR cabac_init_idc; UCHAR disable_deblocking_filter_idc; USHORT slice_id; } DXVA_Slice_H264_Long; #pragma pack(push, 1) typedef struct { UINT BSNALunitDataLocation; UINT SliceBytesInBuffer; USHORT wBadSliceChopping; } DXVA_Slice_H264_Short; #pragma pack(pop) #ifdef __cplusplus } #endif #endif /*_INC_DXVA */