| /* | 
 |  * Copyright 2015 Michael Müller | 
 |  * | 
 |  * This library is free software; you can redistribute it and/or | 
 |  * modify it under the terms of the GNU Lesser General Public | 
 |  * License as published by the Free Software Foundation; either | 
 |  * version 2.1 of the License, or (at your option) any later version. | 
 |  * | 
 |  * This library is distributed in the hope that it will be useful, | 
 |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
 |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
 |  * Lesser General Public License for more details. | 
 |  * | 
 |  * You should have received a copy of the GNU Lesser General Public | 
 |  * License along with this library; if not, write to the Free Software | 
 |  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA | 
 |  */ | 
 |  | 
 | #ifndef __WINE_DXVA_H | 
 | #define __WINE_DXVA_H | 
 |  | 
 | #ifdef __cplusplus | 
 | extern "C" { | 
 | #endif | 
 |  | 
 | DEFINE_GUID(DXVA_ModeNone, 0x1b81be00, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeH261_A, 0x1b81be01, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeH261_B, 0x1b81be02, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 |  | 
 | DEFINE_GUID(DXVA_ModeH263_A, 0x1b81be03, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeH263_B, 0x1b81be04, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeH263_C, 0x1b81be05, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeH263_D, 0x1b81be06, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeH263_E, 0x1b81be07, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeH263_F, 0x1b81be08, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 |  | 
 | DEFINE_GUID(DXVA_ModeMPEG1_A, 0x1b81be09, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeMPEG1_VLD, 0x6f3ec719, 0x3735, 0x42cc, 0x80, 0x63, 0x65, 0xcc, 0x3c, 0xb3, 0x66, 0x16); | 
 |  | 
 | DEFINE_GUID(DXVA_ModeMPEG2_A, 0x1b81be0a, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeMPEG2_B, 0x1b81be0b, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeMPEG2_C, 0x1b81be0c, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeMPEG2_D, 0x1b81be0d, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeMPEG2and1_VLD, 0x86695f12, 0x340e, 0x4f04, 0x9f, 0xd3, 0x92, 0x53, 0xdd, 0x32, 0x74, 0x60); | 
 |  | 
 | DEFINE_GUID(DXVA_ModeH264_A, 0x1b81be64, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeH264_B, 0x1b81be65, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeH264_C, 0x1b81be66, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeH264_D, 0x1b81be67, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeH264_E, 0x1b81be68, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeH264_F, 0x1b81be69, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeH264_VLD_WithFMOASO_NoFGT, 0xd5f04ff9, 0x3418, 0x45d8, 0x95, 0x61, 0x32, 0xa7, 0x6a, 0xae, 0x2d, 0xdd); | 
 |  | 
 | DEFINE_GUID(DXVA_ModeH264_VLD_Stereo_Progressive_NoFGT, 0xd79be8da, 0x0cf1, 0x4c81, 0xb8, 0x2a, 0x69, 0xa4, 0xe2, 0x36, 0xf4, 0x3d); | 
 | DEFINE_GUID(DXVA_ModeH264_VLD_Stereo_NoFGT, 0xf9aaccbb, 0xc2b6, 0x4cfc, 0x87, 0x79, 0x57, 0x07, 0xb1, 0x76, 0x05, 0x52); | 
 | DEFINE_GUID(DXVA_ModeH264_VLD_Multiview_NoFGT, 0x705b9d82, 0x76cf, 0x49d6, 0xb7, 0xe6, 0xac, 0x88, 0x72, 0xdb, 0x01, 0x3c); | 
 |  | 
 | DEFINE_GUID(DXVA_ModeWMV8_A, 0x1b81be80, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeWMV8_B, 0x1b81be81, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 |  | 
 | DEFINE_GUID(DXVA_ModeWMV9_A, 0x1b81be90, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeWMV9_B, 0x1b81be91, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeWMV9_C, 0x1b81be94, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 |  | 
 | DEFINE_GUID(DXVA_ModeVC1_A, 0x1b81bea0, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeVC1_B, 0x1b81bea1, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeVC1_C, 0x1b81bea2, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeVC1_D, 0x1b81bea3, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 | DEFINE_GUID(DXVA_ModeVC1_D2010, 0x1b81bea4, 0xa0c7, 0x11d3, 0xb9, 0x84, 0x00, 0xc0, 0x4f, 0x2e, 0x73, 0xc5); | 
 |  | 
 | DEFINE_GUID(DXVA_ModeMPEG4pt2_VLD_Simple, 0xefd64d74, 0xc9e8, 0x41d7, 0xa5, 0xe9, 0xe9, 0xb0, 0xe3, 0x9f, 0xa3, 0x19); | 
 | DEFINE_GUID(DXVA_ModeMPEG4pt2_VLD_AdvSimple_NoGMC, 0xed418a9f, 0x010d, 0x4eda, 0x9a, 0xe3, 0x9a, 0x65, 0x35, 0x8d, 0x8d, 0x2e); | 
 | DEFINE_GUID(DXVA_ModeMPEG4pt2_VLD_AdvSimple_GMC, 0xab998b5b, 0x4258, 0x44a9, 0x9f, 0xeb, 0x94, 0xe5, 0x97, 0xa6, 0xba, 0xae); | 
 |  | 
 | DEFINE_GUID(DXVA_ModeHEVC_VLD_Main, 0x5b11d51b, 0x2f4c, 0x4452, 0xbc, 0xc3, 0x09, 0xf2, 0xa1, 0x16, 0x0c, 0xc0); | 
 | DEFINE_GUID(DXVA_ModeHEVC_VLD_Main10, 0x107af0e0, 0xef1a, 0x4d19, 0xab, 0xa8, 0x67, 0xa1, 0x63, 0x07, 0x3d, 0x13); | 
 | DEFINE_GUID(DXVA_ModeHEVC_VLD_Monochrome, 0x0685b993, 0x3d8c, 0x43a0, 0x8b, 0x28, 0xd7, 0x4c, 0x2d, 0x68, 0x99, 0xa4); | 
 | DEFINE_GUID(DXVA_ModeHEVC_VLD_Monochrome10, 0x142a1d0f, 0x69dd, 0x4ec9, 0x85, 0x91, 0xb1, 0x2f, 0xfc, 0xb9, 0x1a, 0x29); | 
 | DEFINE_GUID(DXVA_ModeHEVC_VLD_Main12, 0x1a72925f, 0x0c2c, 0x4f15, 0x96, 0xfb, 0xb1, 0x7d, 0x14, 0x73, 0x60, 0x3f); | 
 | DEFINE_GUID(DXVA_ModeHEVC_VLD_Main10_422, 0x0bac4fe5, 0x1532, 0x4429, 0xa8, 0x54, 0xf8, 0x4d, 0xe0, 0x49, 0x53, 0xdb); | 
 | DEFINE_GUID(DXVA_ModeHEVC_VLD_Main12_422, 0x55bcac81, 0xf311, 0x4093, 0xa7, 0xd0, 0x1c, 0xbc, 0x0b, 0x84, 0x9b, 0xee); | 
 | DEFINE_GUID(DXVA_ModeHEVC_VLD_Main_444, 0x4008018f, 0xf537, 0x4b36, 0x98, 0xcf, 0x61, 0xaf, 0x8a, 0x2c, 0x1a, 0x33); | 
 | DEFINE_GUID(DXVA_ModeHEVC_VLD_Main10_Ext, 0x9cc55490, 0xe37c, 0x4932, 0x86, 0x84, 0x49, 0x20, 0xf9, 0xf6, 0x40, 0x9c); | 
 | DEFINE_GUID(DXVA_ModeHEVC_VLD_Main10_444, 0x0dabeffa, 0x4458, 0x4602, 0xbc, 0x03, 0x07, 0x95, 0x65, 0x9d, 0x61, 0x7c); | 
 | DEFINE_GUID(DXVA_ModeHEVC_VLD_Main12_444, 0x9798634d, 0xfe9d, 0x48e5, 0xb4, 0xda, 0xdb, 0xec, 0x45, 0xb3, 0xdf, 0x01); | 
 | DEFINE_GUID(DXVA_ModeHEVC_VLD_Main16, 0xa4fbdbb0, 0xa113, 0x482b, 0xa2, 0x32, 0x63, 0x5c, 0xc0, 0x69, 0x7f, 0x6d); | 
 |  | 
 | DEFINE_GUID(DXVA_ModeVP9_VLD_Profile0, 0x463707f8, 0xa1d0, 0x4585, 0x87, 0x6d, 0x83, 0xaa, 0x6d, 0x60, 0xb8, 0x9e); | 
 | DEFINE_GUID(DXVA_ModeVP9_VLD_10bit_Profile2, 0xa4c749ef, 0x6ecf, 0x48aa, 0x84, 0x48, 0x50, 0xa7, 0xa1, 0x16, 0x5f, 0xf7); | 
 | DEFINE_GUID(DXVA_ModeVP8_VLD, 0x90b899ea, 0x3a62, 0x4705, 0x88, 0xb3, 0x8d, 0xf0, 0x4b, 0x27, 0x44, 0xe7); | 
 |  | 
 | DEFINE_GUID(DXVA_ModeMJPEG_VLD_420, 0x725cb506, 0x0c29, 0x43c4, 0x94, 0x40, 0x8e, 0x93, 0x97, 0x90, 0x3a, 0x04); | 
 | DEFINE_GUID(DXVA_ModeMJPEG_VLD_422, 0x5b77b9cd, 0x1a35, 0x4c30, 0x9f, 0xd8, 0xef, 0x4b, 0x60, 0xc0, 0x35, 0xdd); | 
 | DEFINE_GUID(DXVA_ModeMJPEG_VLD_444, 0xd95161f9, 0x0d44, 0x47e6, 0xbc, 0xf5, 0x1b, 0xfb, 0xfb, 0x26, 0x8f, 0x97); | 
 | DEFINE_GUID(DXVA_ModeMJPEG_VLD_4444, 0xc91748d5, 0xfd18, 0x4aca, 0x9d, 0xb3, 0x3a, 0x66, 0x34, 0xab, 0x54, 0x7d); | 
 | DEFINE_GUID(DXVA_ModeJPEG_VLD_420, 0xcf782c83, 0xbef5, 0x4a2c, 0x87, 0xcb, 0x60, 0x19, 0xe7, 0xb1, 0x75, 0xac); | 
 | DEFINE_GUID(DXVA_ModeJPEG_VLD_422, 0xf04df417, 0xeee2, 0x4067, 0xa7, 0x78, 0xf3, 0x5c, 0x15, 0xab, 0x97, 0x21); | 
 | DEFINE_GUID(DXVA_ModeJPEG_VLD_444, 0x4cd00e17, 0x89ba, 0x48ef, 0xb9, 0xf9, 0xed, 0xcb, 0x82, 0x71, 0x3f, 0x65); | 
 |  | 
 | DEFINE_GUID(DXVA_NoEncrypt, 0x1b81bed0, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); | 
 |  | 
 | #define DXVA_ModeH264_MoComp_NoFGT  DXVA_ModeH264_A | 
 | #define DXVA_ModeH264_MoComp_FGT    DXVA_ModeH264_B | 
 | #define DXVA_ModeH264_IDCT_NoFGT    DXVA_ModeH264_C | 
 | #define DXVA_ModeH264_IDCT_FGT      DXVA_ModeH264_D | 
 | #define DXVA_ModeH264_VLD_NoFGT     DXVA_ModeH264_E | 
 | #define DXVA_ModeH264_VLD_FGT       DXVA_ModeH264_F | 
 |  | 
 | #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) | 
 |  | 
 | #define DXVA_PICTURE_DECODING_FUNCTION          1 | 
 | #define DXVA_ALPHA_BLEND_DATA_LOAD_FUNCTION     2 | 
 | #define DXVA_ALPHA_BLEND_COMBINATION_FUNCTION   3 | 
 | #define DXVA_PICTURE_RESAMPLE_FUNCTION          4 | 
 | #define DXVA_DEBLOCKING_FILTER_FUNCTION         5 | 
 | #define DXVA_FILM_GRAIN_SYNTHESIS_FUNCTION      6 | 
 | #define DXVA_STATUS_REPORTING_FUNCTION          7 | 
 |  | 
 | #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; | 
 |     WORD wDeblockedPictureIndex; | 
 |     WORD wForwardRefPictureIndex; | 
 |     WORD wBackwardRefPictureIndex; | 
 |     WORD wPicWidthInMBminus1; | 
 |     WORD wPicHeightInMBminus1; | 
 |     BYTE bMacroblockWidthMinus1; | 
 |     BYTE bMacroblockHeightMinus1; | 
 |     BYTE bBlockWidthMinus1; | 
 |     BYTE bBlockHeightMinus1; | 
 |     BYTE bBPPminus1; | 
 |     BYTE bPicStructure; | 
 |     BYTE bSecondField; | 
 |     BYTE bPicIntra; | 
 |     BYTE bPicBackwardPrediction; | 
 |     BYTE bBidirectionalAveragingMode; | 
 |     BYTE bMVprecisionAndChromaRelation; | 
 |     BYTE bChromaFormat; | 
 |     BYTE bPicScanFixed; | 
 |     BYTE bPicScanMethod; | 
 |     BYTE bPicReadbackRequests; | 
 |     BYTE bRcontrol; | 
 |     BYTE bPicSpatialResid8; | 
 |     BYTE bPicOverflowBlocks; | 
 |     BYTE bPicExtrapolation; | 
 |     BYTE bPicDeblocked; | 
 |     BYTE bPicDeblockConfined; | 
 |     BYTE bPic4MVallowed; | 
 |     BYTE bPicOBMC; | 
 |     BYTE bPicBinPB; | 
 |     BYTE bMV_RPS; | 
 |     BYTE bReservedBits; | 
 |     WORD wBitstreamFcodes; | 
 |     WORD wBitstreamPCEelements; | 
 |     BYTE bBitstreamConcealmentNeed; | 
 |     BYTE bBitstreamConcealmentMethod; | 
 | } DXVA_PictureParameters, *LPDXVA_PictureParameters; | 
 |  | 
 | typedef struct _DXVA_SliceInfo | 
 | { | 
 |     WORD wHorizontalPosition; | 
 |     WORD wVerticalPosition; | 
 |     DWORD dwSliceBitsInBuffer; | 
 |     DWORD dwSliceDataLocation; | 
 |     BYTE bStartCodeBitOffset; | 
 |     BYTE bReservedBits; | 
 |     WORD wMBbitOffset; | 
 |     WORD wNumberMBsInSlice; | 
 |     WORD wQuantizerScaleCode; | 
 |     WORD wBadSliceChopping; | 
 | } DXVA_SliceInfo, *LPDXVA_SliceInfo; | 
 |  | 
 | typedef struct _DXVA_QmatrixData | 
 | { | 
 |     BYTE bNewQmatrix[4]; | 
 |     WORD Qmatrix[4][DXVA_USUAL_BLOCK_WIDTH * DXVA_USUAL_BLOCK_HEIGHT]; | 
 | } DXVA_QmatrixData, *LPDXVA_QmatrixData; | 
 |  | 
 | typedef struct _DXVA_PicParams_H264 | 
 | { | 
 |     USHORT wFrameWidthInMbsMinus1; | 
 |     USHORT wFrameHeightInMbsMinus1; | 
 |     DXVA_PicEntry_H264 CurrPic; | 
 |     UCHAR num_ref_frames; | 
 |     union | 
 |     { | 
 |         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; | 
 |         } DUMMYSTRUCTNAME; | 
 |         USHORT wBitFields; | 
 |     } DUMMYUNIONNAME; | 
 |     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, *LPDXVA_PicParams_H264; | 
 |  | 
 | typedef struct _DXVA_Qmatrix_H264 | 
 | { | 
 |     UCHAR bScalingLists4x4[6][16]; | 
 |     UCHAR bScalingLists8x8[2][64]; | 
 | } DXVA_Qmatrix_H264, *LPDXVA_Qmatrix_H264; | 
 |  | 
 | typedef struct _DXVA_Slice_H264_Long | 
 | { | 
 |     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, *LPDXVA_Slice_H264_Long; | 
 |  | 
 | typedef struct _DXVA_Slice_H264_Short | 
 | { | 
 |     UINT BSNALunitDataLocation; | 
 |     UINT SliceBytesInBuffer; | 
 |     USHORT wBadSliceChopping; | 
 | } DXVA_Slice_H264_Short, *LPDXVA_Slice_H264_Short; | 
 |  | 
 | typedef struct _DXVA_Status_H264 | 
 | { | 
 |     UINT StatusReportFeedbackNumber; | 
 |     DXVA_PicEntry_H264 CurrPic; | 
 |     UCHAR field_pic_flag; | 
 |     UCHAR bDXVA_Func; | 
 |     UCHAR bBufType; | 
 |     UCHAR bStatus; | 
 |     UCHAR bReserved8Bits; | 
 |     USHORT wNumMbsAffected; | 
 | } DXVA_Status_H264, *LPDXVA_Status_H264; | 
 |  | 
 | 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_PicParams_HEVC_RangeExt | 
 | { | 
 |     DXVA_PicParams_HEVC params; | 
 |     union | 
 |     { | 
 |         struct | 
 |         { | 
 |             USHORT transform_skip_rotation_enabled_flag    : 1; | 
 |             USHORT transform_skip_context_enabled_flag     : 1; | 
 |             USHORT implicit_rdpcm_enabled_flag             : 1; | 
 |             USHORT explicit_rdpcm_enabled_flag             : 1; | 
 |             USHORT extended_precision_processing_flag      : 1; | 
 |             USHORT intra_smoothing_disabled_flag           : 1; | 
 |             USHORT persistent_rice_adaptation_enabled_flag : 1; | 
 |             USHORT high_precision_offsets_enabled_flag     : 1; | 
 |             USHORT cabac_bypass_alignment_enabled_flag     : 1; | 
 |             USHORT cross_component_prediction_enabled_flag : 1; | 
 |             USHORT chroma_qp_offset_list_enabled_flag      : 1; | 
 |             USHORT ReservedBits8                           : 5; | 
 |         }; | 
 |         USHORT dwRangeExtensionFlags; | 
 |     }; | 
 |     UCHAR diff_cu_chroma_qp_offset_depth; | 
 |     UCHAR log2_sao_offset_scale_luma; | 
 |     UCHAR log2_sao_offset_scale_chroma; | 
 |     UCHAR log2_max_transform_skip_block_size_minus2; | 
 |     CHAR cb_qp_offset_list[6]; | 
 |     CHAR cr_qp_offset_list[6]; | 
 |     UCHAR chroma_qp_offset_list_len_minus1; | 
 |     USHORT ReservedBits9; | 
 | } DXVA_PicParams_HEVC_RangeExt, *LPDXVA_PicParams_HEVC_RangeExt; | 
 |  | 
 | 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; | 
 |  | 
 |  | 
 | #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 | 
 | { | 
 |     DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes  = 0x1, | 
 |     DXVA_VideoChromaSubsampling_Vertically_Cosited              = 0x2, | 
 |     DXVA_VideoChromaSubsampling_Horizontally_Cosited            = 0x4, | 
 |     DXVA_VideoChromaSubsampling_ProgressiveChroma               = 0x8, | 
 |  | 
 |     DXVA_VideoChromaSubsampling_Unknown = 0, | 
 |     DXVA_VideoChromaSubsampling_Cosited = DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes | 
 |             | DXVA_VideoChromaSubsampling_Vertically_Cosited | 
 |             | DXVA_VideoChromaSubsampling_Horizontally_Cosited, | 
 |     DXVA_VideoChromaSubsampling_DV_PAL = DXVA_VideoChromaSubsampling_Vertically_Cosited | 
 |             | DXVA_VideoChromaSubsampling_Horizontally_Cosited, | 
 |     DXVA_VideoChromaSubsampling_MPEG1 = DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes, | 
 |     DXVA_VideoChromaSubsampling_MPEG2 = DXVA_VideoChromaSubsampling_Vertically_AlignedChromaPlanes | 
 |             | DXVA_VideoChromaSubsampling_Horizontally_Cosited, | 
 | } DXVA_VideoChromaSubsampling; | 
 |  | 
 | typedef enum _DXVA_NominalRange | 
 | { | 
 |     DXVA_NominalRange_Unknown = 0, | 
 |     DXVA_NominalRange_0_255 = 1, | 
 |     DXVA_NominalRange_16_235 = 2, | 
 |     DXVA_NominalRange_48_208 = 3, | 
 |     DXVA_NominalRange_Normal = DXVA_NominalRange_0_255, | 
 |     DXVA_NominalRange_Wide = DXVA_NominalRange_16_235, | 
 | } DXVA_NominalRange; | 
 |  | 
 | typedef enum _DXVA_VideoTransferMatrix | 
 | { | 
 |     DXVA_VideoTransferMatrix_Unknown = 0, | 
 |     DXVA_VideoTransferMatrix_BT709 = 1, | 
 |     DXVA_VideoTransferMatrix_BT601 = 2, | 
 |     DXVA_VideoTransferMatrix_SMPTE240M = 3, | 
 | } DXVA_VideoTransferMatrix; | 
 |  | 
 | typedef enum _DXVA_VideoLighting | 
 | { | 
 |     DXVA_VideoLighting_Unknown = 0, | 
 |     DXVA_VideoLighting_bright = 1, | 
 |     DXVA_VideoLighting_office = 2, | 
 |     DXVA_VideoLighting_dim = 3, | 
 |     DXVA_VideoLighting_dark = 4, | 
 | } DXVA_VideoLighting; | 
 |  | 
 | typedef enum _DXVA_VideoPrimaries | 
 | { | 
 |     DXVA_VideoPrimaries_Unknown = 0, | 
 |     DXVA_VideoPrimaries_reserved = 1, | 
 |     DXVA_VideoPrimaries_BT709 = 2, | 
 |     DXVA_VideoPrimaries_BT470_2_SysM = 3, | 
 |     DXVA_VideoPrimaries_BT470_2_SysBG = 4, | 
 |     DXVA_VideoPrimaries_SMPTE170M = 5, | 
 |     DXVA_VideoPrimaries_SMPTE420M = 6, | 
 |     DXVA_VideoPrimaries_EBU3213 = 7, | 
 |     DXVA_VideoPrimaries_SMPTE_C = 8, | 
 | } DXVA_VideoPrimaries; | 
 |  | 
 | typedef enum _DXVA_VideoTransferFunction | 
 | { | 
 |     DXVA_VideoTransFunc_Unknown = 0, | 
 |     DXVA_VideoTransFunc_10 = 1, | 
 |     DXVA_VideoTransFunc_18 = 2, | 
 |     DXVA_VideoTransFunc_20 = 3, | 
 |     DXVA_VideoTransFunc_22 = 4, | 
 |     DXVA_VideoTransFunc_22_709 = 5, | 
 |     DXVA_VideoTransFunc_22_240M = 6, | 
 |     DXVA_VideoTransFunc_22_8bit_sRGB = 7, | 
 |     DXVA_VideoTransFunc_28 = 8, | 
 | } DXVA_VideoTransferFunction; | 
 |  | 
 | typedef struct _DXVA_ExtendedFormat | 
 | { | 
 |     UINT SampleFormat : 8; | 
 |     UINT VideoChromaSubsampling : 4; | 
 |     DXVA_NominalRange NominalRange : 3; | 
 |     DXVA_VideoTransferMatrix VideoTransferMatrix : 3; | 
 |     DXVA_VideoLighting VideoLighting : 4; | 
 |     DXVA_VideoPrimaries VideoPrimaries : 5; | 
 |     DXVA_VideoTransferFunction VideoTransferFunction : 5; | 
 | } DXVA_ExtendedFormat; | 
 |  | 
 | #ifdef __cplusplus | 
 | } | 
 | #endif | 
 |  | 
 | #endif /* __WINE_DXVA_H */ |