There is no regression, I have check it.
From f502c4b428ba7dbf35a31fcf18f8cd0646476306 Mon Sep 17 00:00:00 2001 From: Biswapriyo Nath <[email protected]> Date: Fri, 7 Feb 2020 20:04:11 +0530 Subject: [PATCH] dxva2api.idl: import from wine
Signed-off-by: Biswapriyo Nath <[email protected]> --- mingw-w64-headers/include/dxva2api.idl | 1161 +++++++++++++++--------- mingw-w64-headers/wine-import.sh | 1 + 2 files changed, 738 insertions(+), 424 deletions(-) diff --git a/mingw-w64-headers/include/dxva2api.idl b/mingw-w64-headers/include/dxva2api.idl index 8aa0389..14d19d5 100644 --- a/mingw-w64-headers/include/dxva2api.idl +++ b/mingw-w64-headers/include/dxva2api.idl @@ -1,418 +1,555 @@ -/** - * 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. +/* + * Copyright 2014 Michael Müller for Pipelight + * + * 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 */ import "unknwn.idl"; -/* Fake widl types */ cpp_quote("#if 0") typedef DWORD IDirect3DDevice9; typedef DWORD IDirect3DSurface9; + typedef DWORD D3DFORMAT; typedef DWORD D3DPOOL; cpp_quote("#endif") -interface IDirectXVideoDecoderService; - -cpp_quote("#ifndef __REFERENCE_TIME_DEFINED") -cpp_quote("#define __REFERENCE_TIME_DEFINED") -cpp_quote("typedef LONGLONG REFERENCE_TIME;") -cpp_quote("#endif /*__REFERENCE_TIME_DEFINED*/") - -cpp_quote("#define DXVA2_ProcAmp_None 0x0000") -cpp_quote("#define DXVA2_ProcAmp_Brightness 0x0001") -cpp_quote("#define DXVA2_ProcAmp_Contrast 0x0002") -cpp_quote("#define DXVA2_ProcAmp_Hue 0x0004") -cpp_quote("#define DXVA2_ProcAmp_Saturation 0x0008") -cpp_quote("") -cpp_quote("#define DXVA2_E_NOT_INITIALIZED MAKE_HRESULT(1, 4, 4096)") -cpp_quote("#define DXVA2_E_NEW_VIDEO_DEVICE MAKE_HRESULT(1, 4, 4097)") -cpp_quote("#define DXVA2_E_VIDEO_DEVICE_LOCKED MAKE_HRESULT(1, 4, 4098)") -cpp_quote("#define DXVA2_E_NOT_AVAILABLE MAKE_HRESULT(1, 4, 4099)") -cpp_quote("") +/* MPEG2 */ cpp_quote("DEFINE_GUID(DXVA2_ModeMPEG2_MoComp, 0xe6a9f44b, 0x61b0,0x4563, 0x9e,0xa4,0x63,0xd2,0xa3,0xc6,0xfe,0x66);") -cpp_quote("DEFINE_GUID(DXVA2_ModeMPEG2_IDCT, 0xbf22ad00, 0x03ea,0x4690, 0x80,0x77,0x47,0x33,0x46,0x20,0x9b,0x7e);") -cpp_quote("DEFINE_GUID(DXVA2_ModeMPEG2_VLD, 0xee27417f, 0x5e28,0x4e65, 0xbe,0xea,0x1d,0x26,0xb5,0x08,0xad,0xc9);") -cpp_quote("DEFINE_GUID(DXVA2_ModeH264_A, 0x1b81be64, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") -cpp_quote("DEFINE_GUID(DXVA2_ModeH264_B, 0x1b81be65, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") -cpp_quote("DEFINE_GUID(DXVA2_ModeH264_C, 0x1b81be66, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") -cpp_quote("DEFINE_GUID(DXVA2_ModeH264_D, 0x1b81be67, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") -cpp_quote("DEFINE_GUID(DXVA2_ModeH264_E, 0x1b81be68, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") -cpp_quote("DEFINE_GUID(DXVA2_ModeH264_F, 0x1b81be69, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") -cpp_quote("DEFINE_GUID(DXVA2_ModeWMV8_A, 0x1b81be80, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") -cpp_quote("DEFINE_GUID(DXVA2_ModeWMV8_B, 0x1b81be81, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") -cpp_quote("DEFINE_GUID(DXVA2_ModeWMV9_A, 0x1b81be90, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") -cpp_quote("DEFINE_GUID(DXVA2_ModeWMV9_B, 0x1b81be91, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") -cpp_quote("DEFINE_GUID(DXVA2_ModeWMV9_C, 0x1b81be94, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") -cpp_quote("DEFINE_GUID(DXVA2_ModeVC1_A, 0x1b81beA0, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") -cpp_quote("DEFINE_GUID(DXVA2_ModeVC1_B, 0x1b81beA1, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") -cpp_quote("DEFINE_GUID(DXVA2_ModeVC1_C, 0x1b81beA2, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") -cpp_quote("DEFINE_GUID(DXVA2_ModeVC1_D, 0x1b81beA3, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") -cpp_quote("") -cpp_quote("typedef enum _DXVA2_SampleFormat {") -cpp_quote(" DXVA2_SampleFormatMask = 0x00FF,") -cpp_quote(" DXVA2_SampleUnknown = 0,") -cpp_quote(" DXVA2_SampleProgressiveFrame = 2,") -cpp_quote(" DXVA2_SampleFieldInterleavedEvenFirst = 3,") -cpp_quote(" DXVA2_SampleFieldInterleavedOddFirst = 4,") -cpp_quote(" DXVA2_SampleFieldSingleEven = 5,") -cpp_quote(" DXVA2_SampleFieldSingleOdd = 6,") -cpp_quote(" DXVA2_SampleSubStream = 7 ") -cpp_quote("} DXVA2_SampleFormat;") -cpp_quote("") -cpp_quote("typedef enum _DXVA2_VideoChromaSubSampling {") -cpp_quote(" DXVA2_VideoChromaSubsamplingMask = 0x0F,") -cpp_quote(" DXVA2_VideoChromaSubsampling_Unknown = 0,") -cpp_quote(" DXVA2_VideoChromaSubsampling_ProgressiveChroma = 0x8,") -cpp_quote(" DXVA2_VideoChromaSubsampling_Horizontally_Cosited = 0x4,") -cpp_quote(" DXVA2_VideoChromaSubsampling_Vertically_Cosited = 0x2,") -cpp_quote(" DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1,") -cpp_quote(" DXVA2_VideoChromaSubsampling_MPEG2 = ") -cpp_quote(" DXVA2_VideoChromaSubsampling_Horizontally_Cosited |") -cpp_quote(" DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes,") -cpp_quote(" DXVA2_VideoChromaSubsampling_MPEG1 = ") -cpp_quote(" DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes,") -cpp_quote(" DXVA2_VideoChromaSubsampling_DV_PAL = ") -cpp_quote(" DXVA2_VideoChromaSubsampling_Horizontally_Cosited | ") -cpp_quote(" DXVA2_VideoChromaSubsampling_Vertically_Cosited,") -cpp_quote(" DXVA2_VideoChromaSubsampling_Cosited = ") -cpp_quote(" DXVA2_VideoChromaSubsampling_Horizontally_Cosited | ") -cpp_quote(" DXVA2_VideoChromaSubsampling_Vertically_Cosited | ") -cpp_quote(" DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes ") -cpp_quote("} DXVA2_VideoChromaSubSampling;") -cpp_quote("") -cpp_quote("typedef enum _DXVA2_NominalRange {") -cpp_quote(" DXVA2_NominalRangeMask = 0x07,") -cpp_quote(" DXVA2_NominalRange_Unknown = 0,") -cpp_quote(" DXVA2_NominalRange_Normal = 1,") -cpp_quote(" DXVA2_NominalRange_Wide = 2,") -cpp_quote(" DXVA2_NominalRange_0_255 = 1,") -cpp_quote(" DXVA2_NominalRange_16_235 = 2,") -cpp_quote(" DXVA2_NominalRange_48_208 = 3 ") -cpp_quote("} DXVA2_NominalRange;") -cpp_quote("") -cpp_quote("typedef enum _DXVA2_VideoLighting {") -cpp_quote(" DXVA2_VideoLightingMask = 0x0F,") -cpp_quote(" DXVA2_VideoLighting_Unknown = 0,") -cpp_quote(" DXVA2_VideoLighting_bright = 1,") -cpp_quote(" DXVA2_VideoLighting_office = 2,") -cpp_quote(" DXVA2_VideoLighting_dim = 3,") -cpp_quote(" DXVA2_VideoLighting_dark = 4 ") -cpp_quote("} DXVA2_VideoLighting;") -cpp_quote("") -cpp_quote("typedef enum _DXVA2_VideoPrimaries {") -cpp_quote(" DXVA2_VideoPrimariesMask = 0x001f,") -cpp_quote(" DXVA2_VideoPrimaries_Unknown = 0,") -cpp_quote(" DXVA2_VideoPrimaries_reserved = 1,") -cpp_quote(" DXVA2_VideoPrimaries_BT709 = 2,") -cpp_quote(" DXVA2_VideoPrimaries_BT470_2_SysM = 3,") -cpp_quote(" DXVA2_VideoPrimaries_BT470_2_SysBG = 4,") -cpp_quote(" DXVA2_VideoPrimaries_SMPTE170M = 5,") -cpp_quote(" DXVA2_VideoPrimaries_SMPTE240M = 6,") -cpp_quote(" DXVA2_VideoPrimaries_EBU3213 = 7,") -cpp_quote(" DXVA2_VideoPrimaries_SMPTE_C = 8 ") -cpp_quote("} DXVA2_VideoPrimaries;") -cpp_quote("") -cpp_quote("typedef enum _DXVA2_VideoTransferFunction {") -cpp_quote(" DXVA2_VideoTransFuncMask = 0x001f,") -cpp_quote(" DXVA2_VideoTransFunc_Unknown = 0,") -cpp_quote(" DXVA2_VideoTransFunc_10 = 1,") -cpp_quote(" DXVA2_VideoTransFunc_18 = 2,") -cpp_quote(" DXVA2_VideoTransFunc_20 = 3,") -cpp_quote(" DXVA2_VideoTransFunc_22 = 4,") -cpp_quote(" DXVA2_VideoTransFunc_709 = 5,") -cpp_quote(" DXVA2_VideoTransFunc_240M = 6,") -cpp_quote(" DXVA2_VideoTransFunc_sRGB = 7,") -cpp_quote(" DXVA2_VideoTransFunc_28 = 8 ") -cpp_quote("} DXVA2_VideoTransferFunction;") -cpp_quote("") -cpp_quote("typedef enum {") -cpp_quote(" DXVA2_SurfaceType_DecoderRenderTarget = 0,") -cpp_quote(" DXVA2_SurfaceType_ProcessorRenderTarget = 1,") -cpp_quote(" DXVA2_SurfaceType_D3DRenderTargetTexture = 2 ") -cpp_quote("} DXVA2_SurfaceType;") -cpp_quote("") -cpp_quote("typedef enum _DXVA2_VideoTransferMatrix {") -cpp_quote(" DXVA2_VideoTransferMatrixMask = 0x07,") -cpp_quote(" DXVA2_VideoTransferMatrix_Unknown = 0,") -cpp_quote(" DXVA2_VideoTransferMatrix_BT709 = 1,") -cpp_quote(" DXVA2_VideoTransferMatrix_BT601 = 2,") -cpp_quote(" DXVA2_VideoTransferMatrix_SMPTE240M = 3 ") -cpp_quote("} DXVA2_VideoTransferMatrix;") -cpp_quote("") -cpp_quote("typedef struct _DXVA2_AYUVSample16 {") -cpp_quote(" USHORT Cr;") -cpp_quote(" USHORT Cb;") -cpp_quote(" USHORT Y;") -cpp_quote(" USHORT Alpha;") -cpp_quote("} DXVA2_AYUVSample16;") -cpp_quote("") -cpp_quote("typedef struct _DXVA2_AYUVSample8 {") -cpp_quote(" UCHAR Cr;") -cpp_quote(" UCHAR Cb;") -cpp_quote(" UCHAR Y;") -cpp_quote(" UCHAR Alpha;") -cpp_quote("} DXVA2_AYUVSample8;") - -typedef struct _DXVA2_ConfigPictureDecode { - GUID guidConfigBitstreamEncryption; - GUID guidConfigMBcontrolEncryption; - GUID guidConfigResidDiffEncryption; - UINT ConfigBitstreamRaw; - UINT ConfigMBcontrolRasterOrder; - UINT ConfigResidDiffHost; - UINT ConfigSpatialResid8; - UINT ConfigResid8Subtraction; - UINT ConfigSpatialHost8or9Clipping; - UINT ConfigSpatialResidInterleaved; - UINT ConfigIntraResidUnsigned; - UINT ConfigResidDiffAccelerator; - UINT ConfigHostInverseScan; - UINT ConfigSpecificIDCT; - UINT Config4GroupedCoefs; - USHORT ConfigMinRenderTargetBuffCount; - USHORT ConfigDecoderSpecific; +cpp_quote("#define DXVA2_ModeMPEG2_MOCOMP DXVA2_ModeMPEG2_MoComp") + +cpp_quote("DEFINE_GUID(DXVA2_ModeMPEG2_IDCT, 0xbf22ad00, 0x03ea,0x4690, 0x80,0x77,0x47,0x33,0x46,0x20,0x9b,0x7e);") + +cpp_quote("DEFINE_GUID(DXVA2_ModeMPEG2_VLD, 0xee27417f, 0x5e28,0x4e65, 0xbe,0xea,0x1d,0x26,0xb5,0x08,0xad,0xc9);") + +cpp_quote("DEFINE_GUID(DXVA2_ModeMPEG1_VLD, 0x6f3ec719, 0x3735,0x42cc, 0x80,0x63,0x65,0xcc,0x3c,0xb3,0x66,0x16);") + +cpp_quote("DEFINE_GUID(DXVA2_ModeMPEG2and1_VLD, 0x86695f12, 0x340e,0x4f04, 0x9f,0xd3,0x92,0x53,0xdd,0x32,0x74,0x60);") + +/* H264 */ +cpp_quote("DEFINE_GUID(DXVA2_ModeH264_A, 0x1b81be64, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") +cpp_quote("#define DXVA2_ModeH264_MoComp_NoFGT DXVA2_ModeH264_A") + +cpp_quote("DEFINE_GUID(DXVA2_ModeH264_B, 0x1b81be65, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") +cpp_quote("#define DXVA2_ModeH264_MoComp_FGT DXVA2_ModeH264_B") + +cpp_quote("DEFINE_GUID(DXVA2_ModeH264_C, 0x1b81be66, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") +cpp_quote("#define DXVA2_ModeH264_IDCT_NoFGT DXVA2_ModeH264_C") + +cpp_quote("DEFINE_GUID(DXVA2_ModeH264_D, 0x1b81be67, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") +cpp_quote("#define DXVA2_ModeH264_IDCT_FGT DXVA2_ModeH264_D") + +cpp_quote("DEFINE_GUID(DXVA2_ModeH264_E, 0x1b81be68, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") +cpp_quote("#define DXVA2_ModeH264_VLD_NoFGT DXVA2_ModeH264_E") + +cpp_quote("DEFINE_GUID(DXVA2_ModeH264_F, 0x1b81be69, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") +cpp_quote("#define DXVA2_ModeH264_VLD_FGT DXVA2_ModeH264_F") + +cpp_quote("DEFINE_GUID(DXVA2_ModeH264_VLD_WithFMOASO_NoFGT, 0xd5f04ff9, 0x3418,0x45d8, 0x95,0x61,0x32,0xa7,0x6a,0xae,0x2d,0xdd);") + +cpp_quote("DEFINE_GUID(DXVA2_ModeH264_VLD_Stereo_Progressive_NoFGT, 0xd79be8da, 0x0cf1,0x4c81, 0xb8,0x2a,0x69,0xa4,0xe2,0x36,0xf4,0x3d);") +cpp_quote("DEFINE_GUID(DXVA2_ModeH264_VLD_Stereo_NoFGT, 0xf9aaccbb, 0xc2b6,0x4cfc, 0x87,0x79,0x57,0x07,0xb1,0x76,0x05,0x52);") +cpp_quote("DEFINE_GUID(DXVA2_ModeH264_VLD_Multiview_NoFGT, 0x705b9d82, 0x76cf,0x49d6, 0xb7,0xe6,0xac,0x88,0x72,0xdb,0x01,0x3c);") + +/* WMV8 */ +cpp_quote("DEFINE_GUID(DXVA2_ModeWMV8_A, 0x1b81be80, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") +cpp_quote("#define DXVA2_ModeWMV8_PostProc DXVA2_ModeWMV8_A") + +cpp_quote("DEFINE_GUID(DXVA2_ModeWMV8_B, 0x1b81be81, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") +cpp_quote("#define DXVA2_ModeWMV8_MoComp DXVA2_ModeWMV8_B") + +/* WMV9 */ +cpp_quote("DEFINE_GUID(DXVA2_ModeWMV9_A, 0x1b81be90, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") +cpp_quote("#define DXVA2_ModeWMV9_PostProc DXVA2_ModeWMV9_A") + +cpp_quote("DEFINE_GUID(DXVA2_ModeWMV9_B, 0x1b81be91, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") +cpp_quote("#define DXVA2_ModeWMV9_MoComp DXVA2_ModeWMV9_B") + +cpp_quote("DEFINE_GUID(DXVA2_ModeWMV9_C, 0x1b81be94, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") +cpp_quote("#define DXVA2_ModeWMV9_IDCT DXVA2_ModeWMV9_C") + +/* VC1 */ +cpp_quote("DEFINE_GUID(DXVA2_ModeVC1_A, 0x1b81beA0, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") +cpp_quote("#define DXVA2_ModeVC1_PostProc DXVA2_ModeVC1_A") + +cpp_quote("DEFINE_GUID(DXVA2_ModeVC1_B, 0x1b81beA1, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") +cpp_quote("#define DXVA2_ModeVC1_MoComp DXVA2_ModeVC1_B") + +cpp_quote("DEFINE_GUID(DXVA2_ModeVC1_C, 0x1b81beA2, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") +cpp_quote("#define DXVA2_ModeVC1_IDCT DXVA2_ModeVC1_C") + +cpp_quote("DEFINE_GUID(DXVA2_ModeVC1_D, 0x1b81beA3, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") +cpp_quote("#define DXVA2_ModeVC1_VLD DXVA2_ModeVC1_D") + +cpp_quote("DEFINE_GUID(DXVA2_ModeVC1_D2010, 0x1b81bea4, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") + +/* Encryption */ +cpp_quote("DEFINE_GUID(DXVA_NoEncrypt, 0x1b81bed0, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);") + +cpp_quote("DEFINE_GUID(DXVA2_VideoProcProgressiveDevice, 0x5a54a0c9, 0xc7ec,0x4bd9, 0x8e,0xde,0xf3,0xc7,0x5d,0xc4,0x39,0x3b);") +cpp_quote("DEFINE_GUID(DXVA2_VideoProcBobDevice, 0x335aa36e, 0x7884,0x43a4, 0x9c,0x91,0x7f,0x87,0xfa,0xf3,0xe3,0x7e);") +cpp_quote("DEFINE_GUID(DXVA2_VideoProcSoftwareDevice, 0x4553d47f, 0xee7e,0x4e3f, 0x94,0x75,0xdb,0xf1,0x37,0x6c,0x48,0x10);") + +cpp_quote("DEFINE_GUID(DXVA2_ModeMPEG4pt2_VLD_Simple, 0xefd64d74, 0xc9e8,0x41d7, 0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19);") +cpp_quote("DEFINE_GUID(DXVA2_ModeMPEG4pt2_VLD_AdvSimple_NoGMC, 0xed418a9f, 0x010d,0x4eda, 0x9a,0xe3,0x9a,0x65,0x35,0x8d,0x8d,0x2e);") +cpp_quote("DEFINE_GUID(DXVA2_ModeMPEG4pt2_VLD_AdvSimple_GMC, 0xab998b5b, 0x4258,0x44a9, 0x9f,0xeb,0x94,0xe5,0x97,0xa6,0xba,0xae);") + +cpp_quote("DEFINE_GUID(DXVA2_ModeHEVC_VLD_Main, 0x5b11d51b, 0x2f4c,0x4452, 0xbc,0xc3,0x09,0xf2,0xa1,0x16,0x0c,0xc0);") +cpp_quote("DEFINE_GUID(DXVA2_ModeHEVC_VLD_Main10, 0x107af0e0, 0xef1a,0x4d19, 0xab,0xa8,0x67,0xa1,0x63,0x07,0x3d,0x13);") + +cpp_quote("DEFINE_GUID(DXVA2_ModeVP9_VLD_Profile0, 0x463707f8, 0xa1d0,0x4585, 0x87,0x6d,0x83,0xaa,0x6d,0x60,0xb8,0x9e);") +cpp_quote("DEFINE_GUID(DXVA2_ModeVP9_VLD_10bit_Profile2, 0xa4c749ef, 0x6ecf,0x48aa, 0x84,0x48,0x50,0xa7,0xa1,0x16,0x5f,0xf7);") +cpp_quote("DEFINE_GUID(DXVA2_ModeVP8_VLD, 0x90b899ea, 0x3a62,0x4705, 0x88,0xb3,0x8d,0xf0,0x4b,0x27,0x44,0xe7);") + +cpp_quote("#ifndef REFERENCE_TIME_DEFINED") +cpp_quote("#define REFERENCE_TIME_DEFINED") +typedef LONGLONG REFERENCE_TIME; +cpp_quote("#endif") + +/* DXVA2-specific error codes */ +cpp_quote("#define DXVA2_E_NOT_INITIALIZED ((HRESULT)0x80041000)") +cpp_quote("#define DXVA2_E_NEW_VIDEO_DEVICE ((HRESULT)0x80041001)") +cpp_quote("#define DXVA2_E_VIDEO_DEVICE_LOCKED ((HRESULT)0x80041002)") +cpp_quote("#define DXVA2_E_NOT_AVAILABLE ((HRESULT)0x80041003)") + +enum +{ + DXVA2_PictureParametersBufferType, + DXVA2_MacroBlockControlBufferType, + DXVA2_ResidualDifferenceBufferType, + DXVA2_DeblockingControlBufferType, + DXVA2_InverseQuantizationMatrixBufferType, + DXVA2_SliceControlBufferType, + DXVA2_BitStreamDateBufferType, + DXVA2_MotionVectorBuffer, + DXVA2_FilmGrainBuffer +}; + +enum +{ + DXVA2_VideoDecoderRenderTarget, + DXVA2_VideoProcessorRenderTarget, + DXVA2_VideoSoftwareRenderTarget +}; + +typedef struct _DXVA2_ExtendedFormat +{ + union + { + struct + { + UINT SampleFormat :8; + UINT VideoChromaSubsampling :4; + UINT NominalRange :3; + UINT VideoTransferMatrix :3; + UINT VideoLighting :4; + UINT VideoPrimaries :5; + UINT VideoTransferFunction :5; + }; + UINT value; + }; +} DXVA2_ExtendedFormat; + +typedef enum _DXVA2_SampleFormat +{ + DXVA2_SampleFormatMask = 0x00FF, + DXVA2_SampleUnknown = 0, + DXVA2_SampleProgressiveFrame = 2, + DXVA2_SampleFieldInterleavedEvenFirst = 3, + DXVA2_SampleFieldInterleavedOddFirst = 4, + DXVA2_SampleFieldSingleEven = 5, + DXVA2_SampleFieldSingleOdd = 6, + DXVA2_SampleSubStream = 7 +} DXVA2_SampleFormat; + +typedef enum _DXVA2_VideoChromaSubSampling +{ + DXVA2_VideoChromaSubsamplingMask = 0x0F, + DXVA2_VideoChromaSubsampling_Unknown = 0, + DXVA2_VideoChromaSubsampling_ProgressiveChroma = 0x8, + DXVA2_VideoChromaSubsampling_Horizontally_Cosited = 0x4, + DXVA2_VideoChromaSubsampling_Vertically_Cosited = 0x2, + DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1, + DXVA2_VideoChromaSubsampling_MPEG2 = DXVA2_VideoChromaSubsampling_Horizontally_Cosited | + DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes, + DXVA2_VideoChromaSubsampling_MPEG1 = DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes, + DXVA2_VideoChromaSubsampling_DV_PAL = DXVA2_VideoChromaSubsampling_Horizontally_Cosited | + DXVA2_VideoChromaSubsampling_Vertically_Cosited, + DXVA2_VideoChromaSubsampling_Cosited = DXVA2_VideoChromaSubsampling_Horizontally_Cosited | + DXVA2_VideoChromaSubsampling_Vertically_Cosited | + DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes +} DXVA2_VideoChromaSubSampling; + +typedef enum _DXVA2_NominalRange +{ + DXVA2_NominalRangeMask = 0x07, + DXVA2_NominalRange_Unknown = 0, + DXVA2_NominalRange_Normal = 1, + DXVA2_NominalRange_Wide = 2, + DXVA2_NominalRange_0_255 = 1, + DXVA2_NominalRange_16_235 = 2, + DXVA2_NominalRange_48_208 = 3 +} DXVA2_NominalRange; + +typedef enum _DXVA2_VideoTransferMatrix +{ + DXVA2_VideoTransferMatrixMask = 0x07, + DXVA2_VideoTransferMatrix_Unknown = 0, + DXVA2_VideoTransferMatrix_BT709 = 1, + DXVA2_VideoTransferMatrix_BT601 = 2, + DXVA2_VideoTransferMatrix_SMPTE240M = 3 +} DXVA2_VideoTransferMatrix; + +typedef enum _DXVA2_VideoLighting +{ + DXVA2_VideoLightingMask = 0x0F, + DXVA2_VideoLighting_Unknown = 0, + DXVA2_VideoLighting_bright = 1, + DXVA2_VideoLighting_office = 2, + DXVA2_VideoLighting_dim = 3, + DXVA2_VideoLighting_dark = 4 +} DXVA2_VideoLighting; + +typedef enum _DXVA2_VideoPrimaries +{ + DXVA2_VideoPrimariesMask = 0x001f, + DXVA2_VideoPrimaries_Unknown = 0, + DXVA2_VideoPrimaries_reserved = 1, + DXVA2_VideoPrimaries_BT709 = 2, + DXVA2_VideoPrimaries_BT470_2_SysM = 3, + DXVA2_VideoPrimaries_BT470_2_SysBG = 4, + DXVA2_VideoPrimaries_SMPTE170M = 5, + DXVA2_VideoPrimaries_SMPTE240M = 6, + DXVA2_VideoPrimaries_EBU3213 = 7, + DXVA2_VideoPrimaries_SMPTE_C = 8 +} DXVA2_VideoPrimaries; + +typedef enum _DXVA2_VideoTransferFunction +{ + DXVA2_VideoTransFuncMask = 0x001f, + DXVA2_VideoTransFunc_Unknown = 0, + DXVA2_VideoTransFunc_10 = 1, + DXVA2_VideoTransFunc_18 = 2, + DXVA2_VideoTransFunc_20 = 3, + DXVA2_VideoTransFunc_22 = 4, + DXVA2_VideoTransFunc_709 = 5, + DXVA2_VideoTransFunc_240M = 6, + DXVA2_VideoTransFunc_sRGB = 7, + DXVA2_VideoTransFunc_28 = 8 +} DXVA2_VideoTransferFunction; + +cpp_quote("#define DXVA2_VideoTransFunc_22_709 DXVA2_VideoTransFunc_709") +cpp_quote("#define DXVA2_VideoTransFunc_22_240M DXVA2_VideoTransFunc_240M") +cpp_quote("#define DXVA2_VideoTransFunc_22_8bit_sRGB DXVA2_VideoTransFunc_sRGB") + +typedef struct _DXVA2_Frequency +{ + UINT Numerator; + UINT Denominator; +} DXVA2_Frequency; + +typedef struct _DXVA2_ConfigPictureDecode +{ + GUID guidConfigBitstreamEncryption; + GUID guidConfigMBcontrolEncryption; + GUID guidConfigResidDiffEncryption; + UINT ConfigBitstreamRaw; + UINT ConfigMBcontrolRasterOrder; + UINT ConfigResidDiffHost; + UINT ConfigSpatialResid8; + UINT ConfigResid8Subtraction; + UINT ConfigSpatialHost8or9Clipping; + UINT ConfigSpatialResidInterleaved; + UINT ConfigIntraResidUnsigned; + UINT ConfigResidDiffAccelerator; + UINT ConfigHostInverseScan; + UINT ConfigSpecificIDCT; + UINT Config4GroupedCoefs; + UINT ConfigMinRenderTargetBuffCount; + USHORT ConfigDecoderSpecific; } DXVA2_ConfigPictureDecode; -typedef struct _DXVA2_DecodeBufferDesc { - DWORD CompressedBufferType; - UINT BufferIndex; - UINT DataOffset; - UINT DataSize; - UINT FirstMBaddress; - UINT NumMBsInBuffer; - UINT Width; - UINT Height; - UINT Stride; - UINT ReservedBits; - PVOID pvPVPState; +typedef struct _DXVA2_VideoDesc +{ + UINT SampleWidth; + UINT SampleHeight; + DXVA2_ExtendedFormat SampleFormat; + D3DFORMAT Format; + DXVA2_Frequency InputSampleFreq; + DXVA2_Frequency OutputFrameFreq; + UINT UABProtectionLevel; + UINT Reserved; +} DXVA2_VideoDesc; + +enum +{ + DXVA2_DeinterlaceTech_Unknown = 0x0000, + DXVA2_DeinterlaceTech_BOBLineReplicate = 0x0001, + DXVA2_DeinterlaceTech_BOBVerticalStretch = 0x0002, + DXVA2_DeinterlaceTech_BOBVerticalStretch4Tap = 0x0004, + DXVA2_DeinterlaceTech_MedianFiltering = 0x0008, + DXVA2_DeinterlaceTech_EdgeFiltering = 0x0010, + DXVA2_DeinterlaceTech_FieldAdaptive = 0x0020, + DXVA2_DeinterlaceTech_PixelAdaptive = 0x0040, + DXVA2_DeinterlaceTech_MotionVectorSteered = 0x0080, + DXVA2_DeinterlaceTech_InverseTelecine = 0x0100, + DXVA2_DeinterlaceTech_Mask = 0x01ff +}; + +enum +{ + DXVA2_NoiseFilterLumaLevel = 1, + DXVA2_NoiseFilterLumaThreshold = 2, + DXVA2_NoiseFilterLumaRadius = 3, + DXVA2_NoiseFilterChromaLevel = 4, + DXVA2_NoiseFilterChromaThreshold = 5, + DXVA2_NoiseFilterChromaRadius = 6, + DXVA2_DetailFilterLumaLevel = 7, + DXVA2_DetailFilterLumaThreshold = 8, + DXVA2_DetailFilterLumaRadius = 9, + DXVA2_DetailFilterChromaLevel = 10, + DXVA2_DetailFilterChromaThreshold = 11, + DXVA2_DetailFilterChromaRadius = 12 +}; + +enum +{ + DXVA2_NoiseFilterTech_Unsupported = 0, + DXVA2_NoiseFilterTech_Unknown = 0x0001, + DXVA2_NoiseFilterTech_Median = 0x0002, + DXVA2_NoiseFilterTech_Temporal = 0x0004, + DXVA2_NoiseFilterTech_BlockNoise = 0x0008, + DXVA2_NoiseFilterTech_MosquitoNoise = 0x0010, + DXVA2_NoiseFilterTech_Mask = 0x001f +}; + +enum +{ + DXVA2_DetailFilterTech_Unsupported = 0, + DXVA2_DetailFilterTech_Unknown = 0x0001, + DXVA2_DetailFilterTech_Edge = 0x0002, + DXVA2_DetailFilterTech_Sharpening = 0x0004, + DXVA2_DetailFilterTech_Mask = 0x0007 +}; + +enum +{ + DXVA2_ProcAmp_None = 0x0000, + DXVA2_ProcAmp_Brightness = 0x0001, + DXVA2_ProcAmp_Contrast = 0x0002, + DXVA2_ProcAmp_Hue = 0x0004, + DXVA2_ProcAmp_Saturation = 0x0008, + DXVA2_ProcAmp_Mask = 0x000f +}; + +enum +{ + DXVA2_VideoProcess_None = 0x0000, + DXVA2_VideoProcess_YUV2RGB = 0x0001, + DXVA2_VideoProcess_StretchX = 0x0002, + DXVA2_VideoProcess_StretchY = 0x0004, + DXVA2_VideoProcess_AlphaBlend = 0x0008, + DXVA2_VideoProcess_SubRects = 0x0010, + DXVA2_VideoProcess_SubStreams = 0x0020, + DXVA2_VideoProcess_SubStreamsExtended = 0x0040, + DXVA2_VideoProcess_YUV2RGBExtended = 0x0080, + DXVA2_VideoProcess_AlphaBlendExtended = 0x0100, + DXVA2_VideoProcess_Constriction = 0x0200, + DXVA2_VideoProcess_NoiseFilter = 0x0400, + DXVA2_VideoProcess_DetailFilter = 0x0800, + DXVA2_VideoProcess_PlanarAlpha = 0x1000, + DXVA2_VideoProcess_LinearScaling = 0x2000, + DXVA2_VideoProcess_GammaCompensated = 0x4000, + DXVA2_VideoProcess_MaintainsOriginalFieldData = 0x8000, + DXVA2_VideoProcess_Mask = 0xffff +}; + +enum +{ + DXVA2_VPDev_HardwareDevice = 0x0001, + DXVA2_VPDev_EmulatedDXVA1 = 0x0002, + DXVA2_VPDev_SoftwareDevice = 0x0004, + DXVA2_VPDev_Mask = 0x0007 +}; + +enum +{ + DXVA2_SampleData_RFF = 0x0001, + DXVA2_SampleData_TFF = 0x0002, + DXVA2_SampleData_RFF_TFF_Present = 0x0004, + DXVA2_SampleData_Mask = 0xffff +}; + +enum +{ + DXVA2_DestData_RFF = 0x0001, + DXVA2_DestData_TFF = 0x0002, + DXVA2_DestData_RFF_TFF_Present = 0x0004, + DXVA2_DestData_Mask = 0xffff +}; + +typedef struct _DXVA2_DecodeBufferDesc +{ + DWORD CompressedBufferType; + UINT BufferIndex; + UINT DataOffset; + UINT DataSize; + UINT FirstMBaddress; + UINT NumMBsInBuffer; + UINT Width; + UINT Height; + UINT Stride; + UINT ReservedBits; + PVOID pvPVPState; } DXVA2_DecodeBufferDesc; -typedef struct _DXVA2_DecodeExtensionData { - UINT Function; - PVOID pPrivateInputData; - UINT PrivateInputDataSize; - PVOID pPrivateOutputData; - UINT PrivateOutputDataSize; +typedef struct _DXVA2_AES_CTR_IV +{ + UINT64 IV; + UINT64 Count; +} DXVA2_AES_CTR_IV; + +typedef struct _DXVA2_DecodeExtensionData +{ + UINT Function; + PVOID pPrivateInputData; + UINT PrivateInputDataSize; + PVOID pPrivateOutputData; + UINT PrivateOutputDataSize; } DXVA2_DecodeExtensionData; -typedef struct _DXVA2_DecodeExecuteParams { - UINT NumCompBuffers; - DXVA2_DecodeBufferDesc *pCompressedBuffers; - DXVA2_DecodeExtensionData *pExtensionData; +typedef struct _DXVA2_DecodeExecuteParams +{ + UINT NumCompBuffers; + DXVA2_DecodeBufferDesc* pCompressedBuffers; + DXVA2_DecodeExtensionData* pExtensionData; } DXVA2_DecodeExecuteParams; -typedef struct _DXVA2_ExtendedFormat { - union { - struct { - UINT SampleFormat :8; - UINT VideoChromaSubsampling :4; - UINT NominalRange :3; - UINT VideoTransferMatrix :3; - UINT VideoLighting :4; - UINT VideoPrimaries :5; - UINT VideoTransferFunction :5; +typedef struct _DXVA2_VideoProcessorCaps +{ + UINT DeviceCaps; + D3DPOOL InputPool; + UINT NumForwardRefSamples; + UINT NumBackwardRefSamples; + UINT Reserved; + UINT DeinterlaceTechnology; + UINT ProcAmpControlCaps; + UINT VideoProcessorOperations; + UINT NoiseFilterTechnology; + UINT DetailFilterTechnology; +} DXVA2_VideoProcessorCaps; + +typedef struct _DXVA2_Fixed32 +{ + union + { + struct + { + USHORT Fraction; + SHORT Value; + }; + LONG ll; }; - UINT value; - }; -} DXVA2_ExtendedFormat; +} DXVA2_Fixed32; -cpp_quote("typedef struct _DXVA2_Fixed32 {") -cpp_quote(" __C89_NAMELESS union {") -cpp_quote(" __C89_NAMELESS struct {") -cpp_quote(" USHORT Fraction;") -cpp_quote(" SHORT Value;") -cpp_quote(" } DUMMYSTRUCTNAME;") -cpp_quote(" LONG ll;") -cpp_quote(" } DUMMYUNIONNAME;") -cpp_quote("} DXVA2_Fixed32;") -cpp_quote("") -cpp_quote("typedef struct _DXVA2_FilterValues {") -cpp_quote(" DXVA2_Fixed32 Level;") -cpp_quote(" DXVA2_Fixed32 Threshold;") -cpp_quote(" DXVA2_Fixed32 Radius;") -cpp_quote("} DXVA2_FilterValues;") - -typedef struct _DXVA2_Frequency { - UINT Numerator; - UINT Denominator; -} DXVA2_Frequency; +typedef struct _DXVA2_ValueRange +{ + DXVA2_Fixed32 MinValue; + DXVA2_Fixed32 MaxValue; + DXVA2_Fixed32 DefaultValue; + DXVA2_Fixed32 StepSize; +} DXVA2_ValueRange; -cpp_quote("typedef struct _DXVA2_ProcAmpValues {") -cpp_quote(" DXVA2_Fixed32 Brightness;") -cpp_quote(" DXVA2_Fixed32 Contrast;") -cpp_quote(" DXVA2_Fixed32 Hue;") -cpp_quote(" DXVA2_Fixed32 Saturation;") -cpp_quote("} DXVA2_ProcAmpValues;") -cpp_quote("") -cpp_quote("typedef struct _DXVA2_ValueRange {") -cpp_quote(" DXVA2_Fixed32 MinValue;") -cpp_quote(" DXVA2_Fixed32 MaxValue;") -cpp_quote(" DXVA2_Fixed32 DefaultValue;") -cpp_quote(" DXVA2_Fixed32 StepSize;") -cpp_quote("} DXVA2_ValueRange;") - -typedef struct _DXVA2_VideoDesc { - UINT SampleWidth; - UINT SampleHeight; - DXVA2_ExtendedFormat SampleFormat; - D3DFORMAT Format; - DXVA2_Frequency InputSampleFreq; - DXVA2_Frequency OutputFrameFreq; - UINT UABProtectionLevel; - UINT Reserved; -} DXVA2_VideoDesc; +typedef struct _DXVA2_AYUVSample8 +{ + UCHAR Cr; + UCHAR Cb; + UCHAR Y; + UCHAR Alpha; +} DXVA2_AYUVSample8; -cpp_quote("/* DeviceCaps") -cpp_quote("DXVA2_VPDev_EmulatedDXVA1") -cpp_quote("DXVA2_VPDev_HardwareDevice") -cpp_quote("DXVA2_VPDev_SoftwareDevice") -cpp_quote("*/") -cpp_quote("/* DeinterlaceTechnology") -cpp_quote("DXVA2_DeinterlaceTech_Unknown") -cpp_quote("DXVA2_DeinterlaceTech_BOBLineReplicate") -cpp_quote("DXVA2_DeinterlaceTech_BOBVerticalStretch") -cpp_quote("DXVA2_DeinterlaceTech_BOBVerticalStretch4Tap") -cpp_quote("DXVA2_DeinterlaceTech_MedianFiltering") -cpp_quote("DXVA2_DeinterlaceTech_EdgeFiltering") -cpp_quote("DXVA2_DeinterlaceTech_FieldAdaptive") -cpp_quote("DXVA2_DeinterlaceTech_PixelAdaptive") -cpp_quote("DXVA2_DeinterlaceTech_MotionVectorSteered") -cpp_quote("DXVA2_DeinterlaceTech_InverseTelecine") -cpp_quote("*/") -cpp_quote("") -cpp_quote("/* VideoProcessorOperations") -cpp_quote("DXVA2_VideoProcess_YUV2RGB") -cpp_quote("DXVA2_VideoProcess_StretchX") -cpp_quote("DXVA2_VideoProcess_StretchY") -cpp_quote("DXVA2_VideoProcess_AlphaBlend") -cpp_quote("DXVA2_VideoProcess_SubRects") -cpp_quote("DXVA2_VideoProcess_SubStreams") -cpp_quote("DXVA2_VideoProcess_SubStreamsExtended") -cpp_quote("DXVA2_VideoProcess_YUV2RGBExtended") -cpp_quote("DXVA2_VideoProcess_AlphaBlendExtended") -cpp_quote("DXVA2_VideoProcess_Constriction") -cpp_quote("DXVA2_VideoProcess_NoiseFilter") -cpp_quote("DXVA2_VideoProcess_DetailFilter") -cpp_quote("DXVA2_VideoProcess_PlanarAlpha") -cpp_quote("DXVA2_VideoProcess_LinearScaling") -cpp_quote("DXVA2_VideoProcess_GammaCompensated") -cpp_quote("DXVA2_VideoProcess_MaintainsOriginalFieldData") -cpp_quote("*/") -cpp_quote("") -cpp_quote("/*NoiseFilterTechnology") -cpp_quote("DXVA2_NoiseFilterTech_Unsupported") -cpp_quote("DXVA2_NoiseFilterTech_Unknown") -cpp_quote("DXVA2_NoiseFilterTech_Median") -cpp_quote("DXVA2_NoiseFilterTech_Temporal") -cpp_quote("DXVA2_NoiseFilterTech_BlockNoise") -cpp_quote("DXVA2_NoiseFilterTech_MosquitoNoise") -cpp_quote("*/") -cpp_quote("") -cpp_quote("/* DetailFilterTechnology") -cpp_quote("DXVA2_DetailFilterTech_Unsupported") -cpp_quote("DXVA2_DetailFilterTech_Unknown") -cpp_quote("DXVA2_DetailFilterTech_Edge") -cpp_quote("DXVA2_DetailFilterTech_Sharpening") -cpp_quote("*/") -cpp_quote("typedef struct _DXVA2_VideoProcessBltParams {") -cpp_quote(" REFERENCE_TIME TargetFrame;") -cpp_quote(" RECT TargetRect;") -cpp_quote(" SIZE ConstrictionSize;") -cpp_quote(" UINT StreamingFlags;") -cpp_quote(" DXVA2_AYUVSample16 BackgroundColor;") -cpp_quote(" DXVA2_ExtendedFormat DestFormat;") -cpp_quote(" DXVA2_ProcAmpValues ProcAmpValues;") -cpp_quote(" DXVA2_Fixed32 Alpha;") -cpp_quote(" DXVA2_FilterValues NoiseFilterLuma;") -cpp_quote(" DXVA2_FilterValues NoiseFilterChroma;") -cpp_quote(" DXVA2_FilterValues DetailFilterLuma;") -cpp_quote(" DXVA2_FilterValues DetailFilterChroma;") -cpp_quote(" DWORD DestData;") -cpp_quote("} DXVA2_VideoProcessBltParams;") -cpp_quote("") -cpp_quote("#ifdef _D3D9_H_") -cpp_quote("typedef struct _DXVA2_VideoProcessorCaps {") -cpp_quote(" UINT DeviceCaps;") -cpp_quote(" D3DPOOL InputPool;") -cpp_quote(" UINT NumForwardRefSamples;") -cpp_quote(" UINT NumBackwardRefSamples;") -cpp_quote(" UINT Reserved;") -cpp_quote(" UINT DeinterlaceTechnology;") -cpp_quote(" UINT ProcAmpControlCaps;") -cpp_quote(" UINT VideoProcessorOperations;") -cpp_quote(" UINT NoiseFilterTechnology;") -cpp_quote(" UINT DetailFilterTechnology;") -cpp_quote("} DXVA2_VideoProcessorCaps;") -cpp_quote("#endif") -cpp_quote("") -cpp_quote("/* SampleData") -cpp_quote("DXVA2_SampleData_RFF") -cpp_quote("DXVA2_SampleData_TFF") -cpp_quote("DXVA2_SampleData_RFF_TFF_Present") -cpp_quote("*/") -cpp_quote("") -cpp_quote("#ifdef _D3D9_H_") -cpp_quote("typedef struct _DXVA2_VideoSample {") -cpp_quote(" REFERENCE_TIME Start;") -cpp_quote(" REFERENCE_TIME End;") -cpp_quote(" DXVA2_ExtendedFormat SampleFormat;") -cpp_quote(" IDirect3DSurface9* SrcSurface;") -cpp_quote(" RECT SrcRect;") -cpp_quote(" RECT DstRect;") -cpp_quote(" DXVA2_AYUVSample8 Pal[16];") -cpp_quote(" DXVA2_Fixed32 PlanarAlpha;") -cpp_quote(" DWORD SampleData;") -cpp_quote("} DXVA2_VideoSample;") -cpp_quote("#endif") -cpp_quote("") -cpp_quote("/* Constants */") -cpp_quote("") -cpp_quote("#define DXVA2_VideoDecoderRenderTarget 0") -cpp_quote("#define DXVA2_VideoProcessorRenderTarget 1") -cpp_quote("#define DXVA2_VideoSoftwareRenderTarget 2") -cpp_quote("") -cpp_quote("/* CompressedBufferType */") -cpp_quote("#define DXVA2_PictureParametersBufferType 0") -cpp_quote("#define DXVA2_MacroBlockControlBufferType 1") -cpp_quote("#define DXVA2_ResidualDifferenceBufferType 2") -cpp_quote("#define DXVA2_DeblockingControlBufferType 3") -cpp_quote("#define DXVA2_InverseQuantizationMatrixBufferType 4") -cpp_quote("#define DXVA2_SliceControlBufferType 5") -cpp_quote("#define DXVA2_BitStreamDateBufferType 6") -cpp_quote("#define DXVA2_MotionVectorBuffer 7") -cpp_quote("#define DXVA2_FilmGrainBuffer 8") -cpp_quote("") -cpp_quote("__forceinline const DXVA2_Fixed32 DXVA2_Fixed32OpaqueAlpha (void) {") -cpp_quote(" DXVA2_Fixed32 f32;") -cpp_quote(" f32.ll = 0 + (1 << 16);") -cpp_quote(" return f32;") -cpp_quote("}") -cpp_quote("") -cpp_quote("__forceinline const DXVA2_Fixed32 DXVA2_Fixed32TransparentAlpha (void) {") -cpp_quote(" DXVA2_Fixed32 f32;") -cpp_quote(" f32.ll = 0;") -cpp_quote(" return f32;") -cpp_quote("}") -cpp_quote("") -cpp_quote("__forceinline float DXVA2FixedToFloat (const DXVA2_Fixed32 f32) {") -cpp_quote(" return (float)f32.Value + (float)f32.Fraction / (1 << 16);") -cpp_quote("}") -cpp_quote("") -cpp_quote("__forceinline DXVA2_Fixed32 DXVA2FloatToFixed (const float f) {") -cpp_quote(" DXVA2_Fixed32 f32;") -cpp_quote(" f32.Value = ((ULONG) (f * (1 << 16))) >> 16;") -cpp_quote(" f32.Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF;") -cpp_quote(" return f32;") -cpp_quote("}") - -cpp_quote("#ifdef _D3D9_H_") - -cpp_quote("HRESULT WINAPI DXVA2CreateDirect3DDeviceManager9(UINT *pResetToken,IDirect3DDeviceManager9 **ppDXVAManager);") -cpp_quote("HRESULT WINAPI DXVA2CreateVideoService(IDirect3DDevice9 *pDD,REFIID riid,void **ppService);") +typedef struct _DXVA2_AYUVSample16 +{ + USHORT Cr; + USHORT Cb; + USHORT Y; + USHORT Alpha; +} DXVA2_AYUVSample16; + +typedef struct _DXVA2_ProcAmpValues +{ + DXVA2_Fixed32 Brightness; + DXVA2_Fixed32 Contrast; + DXVA2_Fixed32 Hue; + DXVA2_Fixed32 Saturation; +} DXVA2_ProcAmpValues; + +typedef struct _DXVA2_FilterValues +{ + DXVA2_Fixed32 Level; + DXVA2_Fixed32 Threshold; + DXVA2_Fixed32 Radius; +} DXVA2_FilterValues; +typedef struct _DXVA2_VideoProcessBltParams +{ + REFERENCE_TIME TargetFrame; + RECT TargetRect; + SIZE ConstrictionSize; + UINT StreamingFlags; + DXVA2_AYUVSample16 BackgroundColor; + DXVA2_ExtendedFormat DestFormat; + DXVA2_ProcAmpValues ProcAmpValues; + DXVA2_Fixed32 Alpha; + DXVA2_FilterValues NoiseFilterLuma; + DXVA2_FilterValues NoiseFilterChroma; + DXVA2_FilterValues DetailFilterLuma; + DXVA2_FilterValues DetailFilterChroma; + DWORD DestData; +} DXVA2_VideoProcessBltParams; + +typedef struct _DXVA2_VideoSample +{ + REFERENCE_TIME Start; + REFERENCE_TIME End; + DXVA2_ExtendedFormat SampleFormat; + IDirect3DSurface9* SrcSurface; + RECT SrcRect; + RECT DstRect; + DXVA2_AYUVSample8 Pal[16]; + DXVA2_Fixed32 PlanarAlpha; + DWORD SampleData; +} DXVA2_VideoSample; + +typedef enum +{ + DXVA2_SurfaceType_DecoderRenderTarget, + DXVA2_SurfaceType_ProcessorRenderTarget, + DXVA2_SurfaceType_D3DRenderTargetTexture, +} DXVA2_SurfaceType; + +interface IDirect3DDeviceManager9; +interface IDirectXVideoAccelerationService; +interface IDirectXVideoDecoderService; +interface IDirectXVideoProcessorService; +interface IDirectXVideoDecoder; +interface IDirectXVideoProcessor; + +/***************************************************************************** + * IDirect3DDeviceManager9 interface + */ [ object, uuid(a0cade0f-06d5-4cf4-a1c7-f3cdd725aa75), @@ -420,15 +557,94 @@ cpp_quote("HRESULT WINAPI DXVA2CreateVideoService(IDirect3DDevice9 *pDD,REFIID r ] interface IDirect3DDeviceManager9 : IUnknown { - HRESULT ResetDevice([in] IDirect3DDevice9 *pDevice, [in] UINT resetToken); - HRESULT OpenDeviceHandle([out] HANDLE *phDevice); - HRESULT CloseDeviceHandle([in] HANDLE hDevice); - HRESULT TestDevice([in] HANDLE hDevice); - HRESULT LockDevice([in] HANDLE hDevice, [out] IDirect3DDevice9 **ppDevice, [in] BOOL fBlock); - HRESULT UnlockDevice([in] HANDLE hDevice, [in] BOOL fSaveState); - HRESULT GetVideoService([in] HANDLE hDevice, [in] REFIID riid, [out] void **ppService); + HRESULT ResetDevice( + [in] IDirect3DDevice9* pDevice, + [in] UINT resetToken); + + HRESULT OpenDeviceHandle( + [out] HANDLE* phDevice); + + HRESULT CloseDeviceHandle( + [in] HANDLE hDevice); + + HRESULT TestDevice( + [in] HANDLE hDevice); + + HRESULT LockDevice( + [in] HANDLE hDevice, + [out] IDirect3DDevice9** ppDevice, + [in] BOOL fBlock); + + HRESULT UnlockDevice( + [in] HANDLE hDevice, + [in] BOOL fSaveState); + + HRESULT GetVideoService( + [in] HANDLE hDevice, + [in] REFIID riid, + [out] void** ppService); } +/***************************************************************************** + * IDirectXVideoAccelerationService interface + */ +[ + object, + uuid(fc51a550-d5e7-11d9-af55-00054e43ff02), + local +] +interface IDirectXVideoAccelerationService : IUnknown +{ + HRESULT CreateSurface( + [in] UINT width, + [in] UINT height, + [in] UINT backBuffers, + [in] D3DFORMAT format, + [in] D3DPOOL pool, + [in] DWORD usage, + [in] DWORD dxvaType, + [out] IDirect3DSurface9 **ppSurface, + [in, out] HANDLE *pSharedHandle); +} + +/***************************************************************************** + * IDirectXVideoDecoderService interface + */ +[ + object, + uuid(fc51a551-d5e7-11d9-af55-00054e43ff02), + local +] +interface IDirectXVideoDecoderService : IDirectXVideoAccelerationService +{ + HRESULT GetDecoderDeviceGuids( + [out] UINT *count, + [out] GUID **pGuids); + + HRESULT GetDecoderRenderTargets( + [in] REFGUID guid, + [out] UINT *pCount, + [out] D3DFORMAT **pFormats); + + HRESULT GetDecoderConfigurations( + [in] REFGUID guid, + [in] const DXVA2_VideoDesc *pVideoDesc, + [in] IUnknown *pReserved, + [out] UINT *pCount, + [out] DXVA2_ConfigPictureDecode **ppConfigs); + + HRESULT CreateVideoDecoder( + [in] REFGUID guid, + [in] const DXVA2_VideoDesc *pVideoDesc, + [in] DXVA2_ConfigPictureDecode *pConfig, + [in] IDirect3DSurface9 **ppDecoderRenderTargets, + [in] UINT NumSurfaces, + [out] IDirectXVideoDecoder **ppDecode); +} + +/***************************************************************************** + * IDirectXVideoDecoder interface + */ [ object, uuid(f2b0810a-fd00-43c9-918c-df94e2d8ef7d), @@ -436,49 +652,146 @@ interface IDirect3DDeviceManager9 : IUnknown ] interface IDirectXVideoDecoder : IUnknown { - HRESULT GetVideoDecoderService([out] IDirectXVideoDecoderService **ppService); - HRESULT GetCreationParameters([out] GUID *pDeviceGuid, [out] DXVA2_VideoDesc *pVideoDesc, - [out] DXVA2_ConfigPictureDecode *pConfig, - [out, unique, size_is(*pNumSurfaces)] IDirect3DSurface9 ***pDecoderRenderTargets, - [out] UINT *pNumSurfaces); - - HRESULT GetBuffer([in] UINT BufferType, [out] void **ppBuffer, [out] UINT *pBufferSize); - HRESULT ReleaseBuffer([in] UINT BufferType); - HRESULT BeginFrame([in] IDirect3DSurface9 *pRenderTarget, [in] void *pvPVPData); - HRESULT EndFrame([out] HANDLE *pHandleComplete); - HRESULT Execute([in] const DXVA2_DecodeExecuteParams *pExecuteParams); + HRESULT GetVideoDecoderService( + [out] IDirectXVideoDecoderService** ppService); + + HRESULT GetCreationParameters( + [out] GUID* pDeviceGuid, + [out] DXVA2_VideoDesc* pVideoDesc, + [out] DXVA2_ConfigPictureDecode* pConfig, + [out] IDirect3DSurface9*** pDecoderRenderTargets, + [out] UINT* pNumSurfaces); + + HRESULT GetBuffer( + [in] UINT BufferType, + [out] void** ppBuffer, + [out] UINT* pBufferSize); + + HRESULT ReleaseBuffer( + [in] UINT BufferType); + + HRESULT BeginFrame( + [in] IDirect3DSurface9* pRenderTarget, + [in] void* pvPVPData); + + HRESULT EndFrame( + [out] HANDLE* pHandleComplete); + + HRESULT Execute( + [in] const DXVA2_DecodeExecuteParams* pExecuteParams); } +/***************************************************************************** + * IDirectXVideoProcessorService interface + */ [ object, - uuid(fc51a550-d5e7-11d9-af55-00054e43ff02), + uuid(fc51a552-d5e7-11d9-af55-00054e43ff02), local ] -interface IDirectXVideoAccelerationService : IUnknown +interface IDirectXVideoProcessorService : IDirectXVideoAccelerationService { - HRESULT CreateSurface([in] UINT Width, [in] UINT Height, [in] UINT BackBuffers, [in] D3DFORMAT Format, - [in] D3DPOOL Pool, [in] DWORD Usage, [in] DWORD DxvaType, [out, size_is(BackBuffers+1)] IDirect3DSurface9 **ppSurface, - [in, out] HANDLE *pSharedHandle); + HRESULT RegisterVideoProcessorSoftwareDevice( + [in] void* pCallbacks); + + HRESULT GetVideoProcessorDeviceGuids( + [in] const DXVA2_VideoDesc* pVideoDesc, + [out] UINT* pCount, + [out] GUID** pGuids); + + HRESULT GetVideoProcessorRenderTargets( + [in] REFGUID VideoProcDeviceGuid, + [in] const DXVA2_VideoDesc* pVideoDesc, + [out] UINT* pCount, + [out] D3DFORMAT** pFormats); + + HRESULT GetVideoProcessorSubStreamFormats( + [in] REFGUID VideoProcDeviceGuid, + [in] const DXVA2_VideoDesc* pVideoDesc, + [in] D3DFORMAT RenderTargetFormat, + [out] UINT* pCount, + [out] D3DFORMAT** pFormats); + + HRESULT GetVideoProcessorCaps( + [in] REFGUID VideoProcDeviceGuid, + [in] const DXVA2_VideoDesc* pVideoDesc, + [in] D3DFORMAT RenderTargetFormat, + [out] DXVA2_VideoProcessorCaps* pCaps); + + HRESULT GetProcAmpRange( + [in] REFGUID VideoProcDeviceGuid, + [in] const DXVA2_VideoDesc* pVideoDesc, + [in] D3DFORMAT RenderTargetFormat, + [in] UINT ProcAmpCap, + [out] DXVA2_ValueRange* pRange); + + HRESULT GetFilterPropertyRange( + [in] REFGUID VideoProcDeviceGuid, + [in] const DXVA2_VideoDesc* pVideoDesc, + [in] D3DFORMAT renderTargetFormat, + [in] UINT FilterSetting, + [out] DXVA2_ValueRange* pRange); + + HRESULT CreateVideoProcessor( + [in] REFGUID VideoProcDeviceGuid, + [in] const DXVA2_VideoDesc* pVideoDesc, + [in] D3DFORMAT RenderTargetFormat, + [in] UINT MaxNumSubStreams, + [out] IDirectXVideoProcessor** ppVidProcess); } +/***************************************************************************** + * IDirectXVideoProcessor interface + */ [ object, - uuid(fc51a551-d5e7-11d9-af55-00054e43ff02), + uuid(8c3a39f0-916e-4690-804f-4c8001355d25), local ] -interface IDirectXVideoDecoderService : IDirectXVideoAccelerationService +interface IDirectXVideoProcessor : IUnknown { - HRESULT GetDecoderDeviceGuids([out] UINT *pCount, [out, unique, size_is(*pCount)] GUID **pGuids); + HRESULT GetVideoProcessorService( + [out] IDirectXVideoProcessorService** ppService); - HRESULT GetDecoderRenderTargets([in] REFGUID Guid, [out] UINT *pCount, [out, unique, size_is(*pCount)] D3DFORMAT **pFormats); + HRESULT GetCreationParameters( + [out] GUID* pDeviceGuid, + [out] DXVA2_VideoDesc* pVideoDesc, + [out] D3DFORMAT* pRenderTargetFormat, + [out] UINT* pMaxNumSubStreams); - HRESULT GetDecoderConfigurations([in] REFGUID Guid, [in] const DXVA2_VideoDesc *pVideoDesc, [in] void *pReserved, - [out] UINT *pCount, [out, unique, size_is(*pCount)] DXVA2_ConfigPictureDecode **ppConfigs); + HRESULT GetVideoProcessorCaps( + [out] DXVA2_VideoProcessorCaps* pCaps); - HRESULT CreateVideoDecoder([in] REFGUID Guid, [in] const DXVA2_VideoDesc *pVideoDesc, - [in] const DXVA2_ConfigPictureDecode *pConfig, - [in, size_is(NumRenderTargets)] IDirect3DSurface9 **ppDecoderRenderTargets, - [in] UINT NumRenderTargets, [out] IDirectXVideoDecoder **ppDecode); + HRESULT GetProcAmpRange( + [in] UINT ProcAmpCap, + [out] DXVA2_ValueRange* pRange); + + HRESULT GetFilterPropertyRange( + [in] UINT FilterSetting, + [out] DXVA2_ValueRange* pRange); + + HRESULT VideoProcessBlt( + [in] IDirect3DSurface9* pRenderTarget, + [in] const DXVA2_VideoProcessBltParams* pBltParams, + [in] const DXVA2_VideoSample* pSamples, + [in] UINT NumSamples, + [out] HANDLE* pHandleCompleteIDirect3DDeviceManager9); } -cpp_quote("#endif /* _D3D9_H_ */") +/***************************************************************************** + * IDirectXVideoMemoryConfiguration interface + */ +[ + object, + uuid(b7f916dd-db3b-49c1-84d7-e45ef99ec726), + local +] +interface IDirectXVideoMemoryConfiguration : IUnknown +{ + HRESULT GetAvailableSurfaceTypeByIndex( + [in] DWORD wTypeIndex, + [out] DXVA2_SurfaceType *pdwType); + + HRESULT SetSurfaceType( + [in] DXVA2_SurfaceType dwType); +} diff --git a/mingw-w64-headers/wine-import.sh b/mingw-w64-headers/wine-import.sh index 783c753..0438354 100755 --- a/mingw-w64-headers/wine-import.sh +++ b/mingw-w64-headers/wine-import.sh @@ -149,6 +149,7 @@ for f in \ dxgidebug \ dxgiformat \ dxgitype \ + dxva2api \ endpointvolume \ fusion \ icftypes \ -- 2.25.0
_______________________________________________ Mingw-w64-public mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
