dxva2api.h (67220B) - Raw
1 /*** Autogenerated by WIDL 10.4 from include/dxva2api.idl - Do not edit ***/ 2 3 #ifdef _WIN32 4 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 5 #define __REQUIRED_RPCNDR_H_VERSION__ 475 6 #endif 7 #include <rpc.h> 8 #include <rpcndr.h> 9 #endif 10 11 #ifndef COM_NO_WINDOWS_H 12 #include <windows.h> 13 #include <ole2.h> 14 #endif 15 16 #ifndef __dxva2api_h__ 17 #define __dxva2api_h__ 18 19 /* Forward declarations */ 20 21 #ifndef __IDirect3DDeviceManager9_FWD_DEFINED__ 22 #define __IDirect3DDeviceManager9_FWD_DEFINED__ 23 typedef interface IDirect3DDeviceManager9 IDirect3DDeviceManager9; 24 #ifdef __cplusplus 25 interface IDirect3DDeviceManager9; 26 #endif /* __cplusplus */ 27 #endif 28 29 #ifndef __IDirectXVideoAccelerationService_FWD_DEFINED__ 30 #define __IDirectXVideoAccelerationService_FWD_DEFINED__ 31 typedef interface IDirectXVideoAccelerationService IDirectXVideoAccelerationService; 32 #ifdef __cplusplus 33 interface IDirectXVideoAccelerationService; 34 #endif /* __cplusplus */ 35 #endif 36 37 #ifndef __IDirectXVideoDecoderService_FWD_DEFINED__ 38 #define __IDirectXVideoDecoderService_FWD_DEFINED__ 39 typedef interface IDirectXVideoDecoderService IDirectXVideoDecoderService; 40 #ifdef __cplusplus 41 interface IDirectXVideoDecoderService; 42 #endif /* __cplusplus */ 43 #endif 44 45 #ifndef __IDirectXVideoDecoder_FWD_DEFINED__ 46 #define __IDirectXVideoDecoder_FWD_DEFINED__ 47 typedef interface IDirectXVideoDecoder IDirectXVideoDecoder; 48 #ifdef __cplusplus 49 interface IDirectXVideoDecoder; 50 #endif /* __cplusplus */ 51 #endif 52 53 #ifndef __IDirectXVideoProcessorService_FWD_DEFINED__ 54 #define __IDirectXVideoProcessorService_FWD_DEFINED__ 55 typedef interface IDirectXVideoProcessorService IDirectXVideoProcessorService; 56 #ifdef __cplusplus 57 interface IDirectXVideoProcessorService; 58 #endif /* __cplusplus */ 59 #endif 60 61 #ifndef __IDirectXVideoProcessor_FWD_DEFINED__ 62 #define __IDirectXVideoProcessor_FWD_DEFINED__ 63 typedef interface IDirectXVideoProcessor IDirectXVideoProcessor; 64 #ifdef __cplusplus 65 interface IDirectXVideoProcessor; 66 #endif /* __cplusplus */ 67 #endif 68 69 #ifndef __IDirectXVideoMemoryConfiguration_FWD_DEFINED__ 70 #define __IDirectXVideoMemoryConfiguration_FWD_DEFINED__ 71 typedef interface IDirectXVideoMemoryConfiguration IDirectXVideoMemoryConfiguration; 72 #ifdef __cplusplus 73 interface IDirectXVideoMemoryConfiguration; 74 #endif /* __cplusplus */ 75 #endif 76 77 /* Headers for imported files */ 78 79 #include <unknwn.h> 80 81 #ifdef __cplusplus 82 extern "C" { 83 #endif 84 85 #if 0 86 typedef DWORD IDirect3DDevice9; 87 typedef DWORD IDirect3DSurface9; 88 typedef DWORD D3DFORMAT; 89 typedef DWORD D3DPOOL; 90 #endif 91 DEFINE_GUID(DXVA2_ModeMPEG2_MoComp, 0xe6a9f44b, 0x61b0,0x4563, 0x9e,0xa4,0x63,0xd2,0xa3,0xc6,0xfe,0x66); 92 #define DXVA2_ModeMPEG2_MOCOMP DXVA2_ModeMPEG2_MoComp 93 DEFINE_GUID(DXVA2_ModeMPEG2_IDCT, 0xbf22ad00, 0x03ea,0x4690, 0x80,0x77,0x47,0x33,0x46,0x20,0x9b,0x7e); 94 DEFINE_GUID(DXVA2_ModeMPEG2_VLD, 0xee27417f, 0x5e28,0x4e65, 0xbe,0xea,0x1d,0x26,0xb5,0x08,0xad,0xc9); 95 DEFINE_GUID(DXVA2_ModeMPEG1_VLD, 0x6f3ec719, 0x3735,0x42cc, 0x80,0x63,0x65,0xcc,0x3c,0xb3,0x66,0x16); 96 DEFINE_GUID(DXVA2_ModeMPEG2and1_VLD, 0x86695f12, 0x340e,0x4f04, 0x9f,0xd3,0x92,0x53,0xdd,0x32,0x74,0x60); 97 DEFINE_GUID(DXVA2_ModeH264_A, 0x1b81be64, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 98 #define DXVA2_ModeH264_MoComp_NoFGT DXVA2_ModeH264_A 99 DEFINE_GUID(DXVA2_ModeH264_B, 0x1b81be65, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 100 #define DXVA2_ModeH264_MoComp_FGT DXVA2_ModeH264_B 101 DEFINE_GUID(DXVA2_ModeH264_C, 0x1b81be66, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 102 #define DXVA2_ModeH264_IDCT_NoFGT DXVA2_ModeH264_C 103 DEFINE_GUID(DXVA2_ModeH264_D, 0x1b81be67, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 104 #define DXVA2_ModeH264_IDCT_FGT DXVA2_ModeH264_D 105 DEFINE_GUID(DXVA2_ModeH264_E, 0x1b81be68, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 106 #define DXVA2_ModeH264_VLD_NoFGT DXVA2_ModeH264_E 107 DEFINE_GUID(DXVA2_ModeH264_F, 0x1b81be69, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 108 #define DXVA2_ModeH264_VLD_FGT DXVA2_ModeH264_F 109 DEFINE_GUID(DXVA2_ModeH264_VLD_WithFMOASO_NoFGT, 0xd5f04ff9, 0x3418,0x45d8, 0x95,0x61,0x32,0xa7,0x6a,0xae,0x2d,0xdd); 110 DEFINE_GUID(DXVA2_ModeH264_VLD_Stereo_Progressive_NoFGT, 0xd79be8da, 0x0cf1,0x4c81, 0xb8,0x2a,0x69,0xa4,0xe2,0x36,0xf4,0x3d); 111 DEFINE_GUID(DXVA2_ModeH264_VLD_Stereo_NoFGT, 0xf9aaccbb, 0xc2b6,0x4cfc, 0x87,0x79,0x57,0x07,0xb1,0x76,0x05,0x52); 112 DEFINE_GUID(DXVA2_ModeH264_VLD_Multiview_NoFGT, 0x705b9d82, 0x76cf,0x49d6, 0xb7,0xe6,0xac,0x88,0x72,0xdb,0x01,0x3c); 113 DEFINE_GUID(DXVA2_ModeWMV8_A, 0x1b81be80, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 114 #define DXVA2_ModeWMV8_PostProc DXVA2_ModeWMV8_A 115 DEFINE_GUID(DXVA2_ModeWMV8_B, 0x1b81be81, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 116 #define DXVA2_ModeWMV8_MoComp DXVA2_ModeWMV8_B 117 DEFINE_GUID(DXVA2_ModeWMV9_A, 0x1b81be90, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 118 #define DXVA2_ModeWMV9_PostProc DXVA2_ModeWMV9_A 119 DEFINE_GUID(DXVA2_ModeWMV9_B, 0x1b81be91, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 120 #define DXVA2_ModeWMV9_MoComp DXVA2_ModeWMV9_B 121 DEFINE_GUID(DXVA2_ModeWMV9_C, 0x1b81be94, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 122 #define DXVA2_ModeWMV9_IDCT DXVA2_ModeWMV9_C 123 DEFINE_GUID(DXVA2_ModeVC1_A, 0x1b81beA0, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 124 #define DXVA2_ModeVC1_PostProc DXVA2_ModeVC1_A 125 DEFINE_GUID(DXVA2_ModeVC1_B, 0x1b81beA1, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 126 #define DXVA2_ModeVC1_MoComp DXVA2_ModeVC1_B 127 DEFINE_GUID(DXVA2_ModeVC1_C, 0x1b81beA2, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 128 #define DXVA2_ModeVC1_IDCT DXVA2_ModeVC1_C 129 DEFINE_GUID(DXVA2_ModeVC1_D, 0x1b81beA3, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 130 #define DXVA2_ModeVC1_VLD DXVA2_ModeVC1_D 131 DEFINE_GUID(DXVA2_ModeVC1_D2010, 0x1b81bea4, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 132 DEFINE_GUID(DXVA2_NoEncrypt, 0x1b81bed0, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5); 133 DEFINE_GUID(DXVA2_VideoProcProgressiveDevice, 0x5a54a0c9, 0xc7ec,0x4bd9, 0x8e,0xde,0xf3,0xc7,0x5d,0xc4,0x39,0x3b); 134 DEFINE_GUID(DXVA2_VideoProcBobDevice, 0x335aa36e, 0x7884,0x43a4, 0x9c,0x91,0x7f,0x87,0xfa,0xf3,0xe3,0x7e); 135 DEFINE_GUID(DXVA2_VideoProcSoftwareDevice, 0x4553d47f, 0xee7e,0x4e3f, 0x94,0x75,0xdb,0xf1,0x37,0x6c,0x48,0x10); 136 DEFINE_GUID(DXVA2_ModeMPEG4pt2_VLD_Simple, 0xefd64d74, 0xc9e8,0x41d7, 0xa5,0xe9,0xe9,0xb0,0xe3,0x9f,0xa3,0x19); 137 DEFINE_GUID(DXVA2_ModeMPEG4pt2_VLD_AdvSimple_NoGMC, 0xed418a9f, 0x010d,0x4eda, 0x9a,0xe3,0x9a,0x65,0x35,0x8d,0x8d,0x2e); 138 DEFINE_GUID(DXVA2_ModeMPEG4pt2_VLD_AdvSimple_GMC, 0xab998b5b, 0x4258,0x44a9, 0x9f,0xeb,0x94,0xe5,0x97,0xa6,0xba,0xae); 139 DEFINE_GUID(DXVA2_ModeHEVC_VLD_Main, 0x5b11d51b, 0x2f4c,0x4452, 0xbc,0xc3,0x09,0xf2,0xa1,0x16,0x0c,0xc0); 140 DEFINE_GUID(DXVA2_ModeHEVC_VLD_Main10, 0x107af0e0, 0xef1a,0x4d19, 0xab,0xa8,0x67,0xa1,0x63,0x07,0x3d,0x13); 141 DEFINE_GUID(DXVA2_ModeVP9_VLD_Profile0, 0x463707f8, 0xa1d0,0x4585, 0x87,0x6d,0x83,0xaa,0x6d,0x60,0xb8,0x9e); 142 DEFINE_GUID(DXVA2_ModeVP9_VLD_10bit_Profile2, 0xa4c749ef, 0x6ecf,0x48aa, 0x84,0x48,0x50,0xa7,0xa1,0x16,0x5f,0xf7); 143 DEFINE_GUID(DXVA2_ModeVP8_VLD, 0x90b899ea, 0x3a62,0x4705, 0x88,0xb3,0x8d,0xf0,0x4b,0x27,0x44,0xe7); 144 #ifndef REFERENCE_TIME_DEFINED 145 #define REFERENCE_TIME_DEFINED 146 typedef LONGLONG REFERENCE_TIME; 147 #endif 148 #define DXVA2_E_NOT_INITIALIZED ((HRESULT)0x80041000) 149 #define DXVA2_E_NEW_VIDEO_DEVICE ((HRESULT)0x80041001) 150 #define DXVA2_E_VIDEO_DEVICE_LOCKED ((HRESULT)0x80041002) 151 #define DXVA2_E_NOT_AVAILABLE ((HRESULT)0x80041003) 152 enum { 153 DXVA2_PictureParametersBufferType = 0, 154 DXVA2_MacroBlockControlBufferType = 1, 155 DXVA2_ResidualDifferenceBufferType = 2, 156 DXVA2_DeblockingControlBufferType = 3, 157 DXVA2_InverseQuantizationMatrixBufferType = 4, 158 DXVA2_SliceControlBufferType = 5, 159 DXVA2_BitStreamDateBufferType = 6, 160 DXVA2_MotionVectorBuffer = 7, 161 DXVA2_FilmGrainBuffer = 8 162 }; 163 enum { 164 DXVA2_VideoDecoderRenderTarget = 0, 165 DXVA2_VideoProcessorRenderTarget = 1, 166 DXVA2_VideoSoftwareRenderTarget = 2 167 }; 168 typedef struct _DXVA2_ExtendedFormat { 169 __C89_NAMELESS union { 170 __C89_NAMELESS struct { 171 UINT SampleFormat : 8; 172 UINT VideoChromaSubsampling : 4; 173 UINT NominalRange : 3; 174 UINT VideoTransferMatrix : 3; 175 UINT VideoLighting : 4; 176 UINT VideoPrimaries : 5; 177 UINT VideoTransferFunction : 5; 178 } __C89_NAMELESSSTRUCTNAME; 179 UINT value; 180 } __C89_NAMELESSUNIONNAME; 181 } DXVA2_ExtendedFormat; 182 typedef enum _DXVA2_SampleFormat { 183 DXVA2_SampleFormatMask = 0xff, 184 DXVA2_SampleUnknown = 0, 185 DXVA2_SampleProgressiveFrame = 2, 186 DXVA2_SampleFieldInterleavedEvenFirst = 3, 187 DXVA2_SampleFieldInterleavedOddFirst = 4, 188 DXVA2_SampleFieldSingleEven = 5, 189 DXVA2_SampleFieldSingleOdd = 6, 190 DXVA2_SampleSubStream = 7 191 } DXVA2_SampleFormat; 192 typedef enum _DXVA2_VideoChromaSubSampling { 193 DXVA2_VideoChromaSubsamplingMask = 0xf, 194 DXVA2_VideoChromaSubsampling_Unknown = 0, 195 DXVA2_VideoChromaSubsampling_ProgressiveChroma = 0x8, 196 DXVA2_VideoChromaSubsampling_Horizontally_Cosited = 0x4, 197 DXVA2_VideoChromaSubsampling_Vertically_Cosited = 0x2, 198 DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1, 199 DXVA2_VideoChromaSubsampling_MPEG2 = DXVA2_VideoChromaSubsampling_Horizontally_Cosited | DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes, 200 DXVA2_VideoChromaSubsampling_MPEG1 = DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes, 201 DXVA2_VideoChromaSubsampling_DV_PAL = DXVA2_VideoChromaSubsampling_Horizontally_Cosited | DXVA2_VideoChromaSubsampling_Vertically_Cosited, 202 DXVA2_VideoChromaSubsampling_Cosited = (DXVA2_VideoChromaSubsampling_Horizontally_Cosited | DXVA2_VideoChromaSubsampling_Vertically_Cosited) | DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes 203 } DXVA2_VideoChromaSubSampling; 204 typedef enum _DXVA2_NominalRange { 205 DXVA2_NominalRangeMask = 0x7, 206 DXVA2_NominalRange_Unknown = 0, 207 DXVA2_NominalRange_Normal = 1, 208 DXVA2_NominalRange_Wide = 2, 209 DXVA2_NominalRange_0_255 = 1, 210 DXVA2_NominalRange_16_235 = 2, 211 DXVA2_NominalRange_48_208 = 3 212 } DXVA2_NominalRange; 213 typedef enum _DXVA2_VideoTransferMatrix { 214 DXVA2_VideoTransferMatrixMask = 0x7, 215 DXVA2_VideoTransferMatrix_Unknown = 0, 216 DXVA2_VideoTransferMatrix_BT709 = 1, 217 DXVA2_VideoTransferMatrix_BT601 = 2, 218 DXVA2_VideoTransferMatrix_SMPTE240M = 3 219 } DXVA2_VideoTransferMatrix; 220 typedef enum _DXVA2_VideoLighting { 221 DXVA2_VideoLightingMask = 0xf, 222 DXVA2_VideoLighting_Unknown = 0, 223 DXVA2_VideoLighting_bright = 1, 224 DXVA2_VideoLighting_office = 2, 225 DXVA2_VideoLighting_dim = 3, 226 DXVA2_VideoLighting_dark = 4 227 } DXVA2_VideoLighting; 228 typedef enum _DXVA2_VideoPrimaries { 229 DXVA2_VideoPrimariesMask = 0x1f, 230 DXVA2_VideoPrimaries_Unknown = 0, 231 DXVA2_VideoPrimaries_reserved = 1, 232 DXVA2_VideoPrimaries_BT709 = 2, 233 DXVA2_VideoPrimaries_BT470_2_SysM = 3, 234 DXVA2_VideoPrimaries_BT470_2_SysBG = 4, 235 DXVA2_VideoPrimaries_SMPTE170M = 5, 236 DXVA2_VideoPrimaries_SMPTE240M = 6, 237 DXVA2_VideoPrimaries_EBU3213 = 7, 238 DXVA2_VideoPrimaries_SMPTE_C = 8 239 } DXVA2_VideoPrimaries; 240 typedef enum _DXVA2_VideoTransferFunction { 241 DXVA2_VideoTransFuncMask = 0x1f, 242 DXVA2_VideoTransFunc_Unknown = 0, 243 DXVA2_VideoTransFunc_10 = 1, 244 DXVA2_VideoTransFunc_18 = 2, 245 DXVA2_VideoTransFunc_20 = 3, 246 DXVA2_VideoTransFunc_22 = 4, 247 DXVA2_VideoTransFunc_709 = 5, 248 DXVA2_VideoTransFunc_240M = 6, 249 DXVA2_VideoTransFunc_sRGB = 7, 250 DXVA2_VideoTransFunc_28 = 8 251 } DXVA2_VideoTransferFunction; 252 #define DXVA2_VideoTransFunc_22_709 DXVA2_VideoTransFunc_709 253 #define DXVA2_VideoTransFunc_22_240M DXVA2_VideoTransFunc_240M 254 #define DXVA2_VideoTransFunc_22_8bit_sRGB DXVA2_VideoTransFunc_sRGB 255 typedef struct _DXVA2_Frequency { 256 UINT Numerator; 257 UINT Denominator; 258 } DXVA2_Frequency; 259 typedef struct _DXVA2_ConfigPictureDecode { 260 GUID guidConfigBitstreamEncryption; 261 GUID guidConfigMBcontrolEncryption; 262 GUID guidConfigResidDiffEncryption; 263 UINT ConfigBitstreamRaw; 264 UINT ConfigMBcontrolRasterOrder; 265 UINT ConfigResidDiffHost; 266 UINT ConfigSpatialResid8; 267 UINT ConfigResid8Subtraction; 268 UINT ConfigSpatialHost8or9Clipping; 269 UINT ConfigSpatialResidInterleaved; 270 UINT ConfigIntraResidUnsigned; 271 UINT ConfigResidDiffAccelerator; 272 UINT ConfigHostInverseScan; 273 UINT ConfigSpecificIDCT; 274 UINT Config4GroupedCoefs; 275 UINT ConfigMinRenderTargetBuffCount; 276 USHORT ConfigDecoderSpecific; 277 } DXVA2_ConfigPictureDecode; 278 typedef struct _DXVA2_VideoDesc { 279 UINT SampleWidth; 280 UINT SampleHeight; 281 DXVA2_ExtendedFormat SampleFormat; 282 D3DFORMAT Format; 283 DXVA2_Frequency InputSampleFreq; 284 DXVA2_Frequency OutputFrameFreq; 285 UINT UABProtectionLevel; 286 UINT Reserved; 287 } DXVA2_VideoDesc; 288 enum { 289 DXVA2_DeinterlaceTech_Unknown = 0x0, 290 DXVA2_DeinterlaceTech_BOBLineReplicate = 0x1, 291 DXVA2_DeinterlaceTech_BOBVerticalStretch = 0x2, 292 DXVA2_DeinterlaceTech_BOBVerticalStretch4Tap = 0x4, 293 DXVA2_DeinterlaceTech_MedianFiltering = 0x8, 294 DXVA2_DeinterlaceTech_EdgeFiltering = 0x10, 295 DXVA2_DeinterlaceTech_FieldAdaptive = 0x20, 296 DXVA2_DeinterlaceTech_PixelAdaptive = 0x40, 297 DXVA2_DeinterlaceTech_MotionVectorSteered = 0x80, 298 DXVA2_DeinterlaceTech_InverseTelecine = 0x100, 299 DXVA2_DeinterlaceTech_Mask = 0x1ff 300 }; 301 enum { 302 DXVA2_NoiseFilterLumaLevel = 1, 303 DXVA2_NoiseFilterLumaThreshold = 2, 304 DXVA2_NoiseFilterLumaRadius = 3, 305 DXVA2_NoiseFilterChromaLevel = 4, 306 DXVA2_NoiseFilterChromaThreshold = 5, 307 DXVA2_NoiseFilterChromaRadius = 6, 308 DXVA2_DetailFilterLumaLevel = 7, 309 DXVA2_DetailFilterLumaThreshold = 8, 310 DXVA2_DetailFilterLumaRadius = 9, 311 DXVA2_DetailFilterChromaLevel = 10, 312 DXVA2_DetailFilterChromaThreshold = 11, 313 DXVA2_DetailFilterChromaRadius = 12 314 }; 315 enum { 316 DXVA2_NoiseFilterTech_Unsupported = 0, 317 DXVA2_NoiseFilterTech_Unknown = 0x1, 318 DXVA2_NoiseFilterTech_Median = 0x2, 319 DXVA2_NoiseFilterTech_Temporal = 0x4, 320 DXVA2_NoiseFilterTech_BlockNoise = 0x8, 321 DXVA2_NoiseFilterTech_MosquitoNoise = 0x10, 322 DXVA2_NoiseFilterTech_Mask = 0x1f 323 }; 324 enum { 325 DXVA2_DetailFilterTech_Unsupported = 0, 326 DXVA2_DetailFilterTech_Unknown = 0x1, 327 DXVA2_DetailFilterTech_Edge = 0x2, 328 DXVA2_DetailFilterTech_Sharpening = 0x4, 329 DXVA2_DetailFilterTech_Mask = 0x7 330 }; 331 enum { 332 DXVA2_ProcAmp_None = 0x0, 333 DXVA2_ProcAmp_Brightness = 0x1, 334 DXVA2_ProcAmp_Contrast = 0x2, 335 DXVA2_ProcAmp_Hue = 0x4, 336 DXVA2_ProcAmp_Saturation = 0x8, 337 DXVA2_ProcAmp_Mask = 0xf 338 }; 339 enum { 340 DXVA2_VideoProcess_None = 0x0, 341 DXVA2_VideoProcess_YUV2RGB = 0x1, 342 DXVA2_VideoProcess_StretchX = 0x2, 343 DXVA2_VideoProcess_StretchY = 0x4, 344 DXVA2_VideoProcess_AlphaBlend = 0x8, 345 DXVA2_VideoProcess_SubRects = 0x10, 346 DXVA2_VideoProcess_SubStreams = 0x20, 347 DXVA2_VideoProcess_SubStreamsExtended = 0x40, 348 DXVA2_VideoProcess_YUV2RGBExtended = 0x80, 349 DXVA2_VideoProcess_AlphaBlendExtended = 0x100, 350 DXVA2_VideoProcess_Constriction = 0x200, 351 DXVA2_VideoProcess_NoiseFilter = 0x400, 352 DXVA2_VideoProcess_DetailFilter = 0x800, 353 DXVA2_VideoProcess_PlanarAlpha = 0x1000, 354 DXVA2_VideoProcess_LinearScaling = 0x2000, 355 DXVA2_VideoProcess_GammaCompensated = 0x4000, 356 DXVA2_VideoProcess_MaintainsOriginalFieldData = 0x8000, 357 DXVA2_VideoProcess_Mask = 0xffff 358 }; 359 enum { 360 DXVA2_VPDev_HardwareDevice = 0x1, 361 DXVA2_VPDev_EmulatedDXVA1 = 0x2, 362 DXVA2_VPDev_SoftwareDevice = 0x4, 363 DXVA2_VPDev_Mask = 0x7 364 }; 365 enum { 366 DXVA2_SampleData_RFF = 0x1, 367 DXVA2_SampleData_TFF = 0x2, 368 DXVA2_SampleData_RFF_TFF_Present = 0x4, 369 DXVA2_SampleData_Mask = 0xffff 370 }; 371 enum { 372 DXVA2_DestData_RFF = 0x1, 373 DXVA2_DestData_TFF = 0x2, 374 DXVA2_DestData_RFF_TFF_Present = 0x4, 375 DXVA2_DestData_Mask = 0xffff 376 }; 377 typedef struct _DXVA2_DecodeBufferDesc { 378 DWORD CompressedBufferType; 379 UINT BufferIndex; 380 UINT DataOffset; 381 UINT DataSize; 382 UINT FirstMBaddress; 383 UINT NumMBsInBuffer; 384 UINT Width; 385 UINT Height; 386 UINT Stride; 387 UINT ReservedBits; 388 PVOID pvPVPState; 389 } DXVA2_DecodeBufferDesc; 390 typedef struct _DXVA2_AES_CTR_IV { 391 UINT64 IV; 392 UINT64 Count; 393 } DXVA2_AES_CTR_IV; 394 typedef struct _DXVA2_DecodeExtensionData { 395 UINT Function; 396 PVOID pPrivateInputData; 397 UINT PrivateInputDataSize; 398 PVOID pPrivateOutputData; 399 UINT PrivateOutputDataSize; 400 } DXVA2_DecodeExtensionData; 401 typedef struct _DXVA2_DecodeExecuteParams { 402 UINT NumCompBuffers; 403 DXVA2_DecodeBufferDesc *pCompressedBuffers; 404 DXVA2_DecodeExtensionData *pExtensionData; 405 } DXVA2_DecodeExecuteParams; 406 typedef struct _DXVA2_VideoProcessorCaps { 407 UINT DeviceCaps; 408 D3DPOOL InputPool; 409 UINT NumForwardRefSamples; 410 UINT NumBackwardRefSamples; 411 UINT Reserved; 412 UINT DeinterlaceTechnology; 413 UINT ProcAmpControlCaps; 414 UINT VideoProcessorOperations; 415 UINT NoiseFilterTechnology; 416 UINT DetailFilterTechnology; 417 } DXVA2_VideoProcessorCaps; 418 typedef struct _DXVA2_Fixed32 { 419 __C89_NAMELESS union { 420 __C89_NAMELESS struct { 421 USHORT Fraction; 422 SHORT Value; 423 } __C89_NAMELESSSTRUCTNAME; 424 LONG ll; 425 } __C89_NAMELESSUNIONNAME; 426 } DXVA2_Fixed32; 427 typedef struct _DXVA2_ValueRange { 428 DXVA2_Fixed32 MinValue; 429 DXVA2_Fixed32 MaxValue; 430 DXVA2_Fixed32 DefaultValue; 431 DXVA2_Fixed32 StepSize; 432 } DXVA2_ValueRange; 433 typedef struct _DXVA2_AYUVSample8 { 434 UCHAR Cr; 435 UCHAR Cb; 436 UCHAR Y; 437 UCHAR Alpha; 438 } DXVA2_AYUVSample8; 439 typedef struct _DXVA2_AYUVSample16 { 440 USHORT Cr; 441 USHORT Cb; 442 USHORT Y; 443 USHORT Alpha; 444 } DXVA2_AYUVSample16; 445 typedef struct _DXVA2_ProcAmpValues { 446 DXVA2_Fixed32 Brightness; 447 DXVA2_Fixed32 Contrast; 448 DXVA2_Fixed32 Hue; 449 DXVA2_Fixed32 Saturation; 450 } DXVA2_ProcAmpValues; 451 typedef struct _DXVA2_FilterValues { 452 DXVA2_Fixed32 Level; 453 DXVA2_Fixed32 Threshold; 454 DXVA2_Fixed32 Radius; 455 } DXVA2_FilterValues; 456 typedef struct _DXVA2_VideoProcessBltParams { 457 REFERENCE_TIME TargetFrame; 458 RECT TargetRect; 459 SIZE ConstrictionSize; 460 UINT StreamingFlags; 461 DXVA2_AYUVSample16 BackgroundColor; 462 DXVA2_ExtendedFormat DestFormat; 463 DXVA2_ProcAmpValues ProcAmpValues; 464 DXVA2_Fixed32 Alpha; 465 DXVA2_FilterValues NoiseFilterLuma; 466 DXVA2_FilterValues NoiseFilterChroma; 467 DXVA2_FilterValues DetailFilterLuma; 468 DXVA2_FilterValues DetailFilterChroma; 469 DWORD DestData; 470 } DXVA2_VideoProcessBltParams; 471 #ifdef _D3D9_H_ 472 typedef struct _DXVA2_VideoSample { 473 REFERENCE_TIME Start; 474 REFERENCE_TIME End; 475 DXVA2_ExtendedFormat SampleFormat; 476 IDirect3DSurface9 *SrcSurface; 477 RECT SrcRect; 478 RECT DstRect; 479 DXVA2_AYUVSample8 Pal[16]; 480 DXVA2_Fixed32 PlanarAlpha; 481 DWORD SampleData; 482 } DXVA2_VideoSample; 483 typedef enum __WIDL_dxva2api_generated_name_0000000C { 484 DXVA2_SurfaceType_DecoderRenderTarget = 0, 485 DXVA2_SurfaceType_ProcessorRenderTarget = 1, 486 DXVA2_SurfaceType_D3DRenderTargetTexture = 2 487 } DXVA2_SurfaceType; 488 #ifndef __IDirect3DDeviceManager9_FWD_DEFINED__ 489 #define __IDirect3DDeviceManager9_FWD_DEFINED__ 490 typedef interface IDirect3DDeviceManager9 IDirect3DDeviceManager9; 491 #ifdef __cplusplus 492 interface IDirect3DDeviceManager9; 493 #endif /* __cplusplus */ 494 #endif 495 496 #ifndef __IDirectXVideoAccelerationService_FWD_DEFINED__ 497 #define __IDirectXVideoAccelerationService_FWD_DEFINED__ 498 typedef interface IDirectXVideoAccelerationService IDirectXVideoAccelerationService; 499 #ifdef __cplusplus 500 interface IDirectXVideoAccelerationService; 501 #endif /* __cplusplus */ 502 #endif 503 504 #ifndef __IDirectXVideoDecoderService_FWD_DEFINED__ 505 #define __IDirectXVideoDecoderService_FWD_DEFINED__ 506 typedef interface IDirectXVideoDecoderService IDirectXVideoDecoderService; 507 #ifdef __cplusplus 508 interface IDirectXVideoDecoderService; 509 #endif /* __cplusplus */ 510 #endif 511 512 #ifndef __IDirectXVideoProcessorService_FWD_DEFINED__ 513 #define __IDirectXVideoProcessorService_FWD_DEFINED__ 514 typedef interface IDirectXVideoProcessorService IDirectXVideoProcessorService; 515 #ifdef __cplusplus 516 interface IDirectXVideoProcessorService; 517 #endif /* __cplusplus */ 518 #endif 519 520 #ifndef __IDirectXVideoDecoder_FWD_DEFINED__ 521 #define __IDirectXVideoDecoder_FWD_DEFINED__ 522 typedef interface IDirectXVideoDecoder IDirectXVideoDecoder; 523 #ifdef __cplusplus 524 interface IDirectXVideoDecoder; 525 #endif /* __cplusplus */ 526 #endif 527 528 #ifndef __IDirectXVideoProcessor_FWD_DEFINED__ 529 #define __IDirectXVideoProcessor_FWD_DEFINED__ 530 typedef interface IDirectXVideoProcessor IDirectXVideoProcessor; 531 #ifdef __cplusplus 532 interface IDirectXVideoProcessor; 533 #endif /* __cplusplus */ 534 #endif 535 536 /***************************************************************************** 537 * IDirect3DDeviceManager9 interface 538 */ 539 #ifndef __IDirect3DDeviceManager9_INTERFACE_DEFINED__ 540 #define __IDirect3DDeviceManager9_INTERFACE_DEFINED__ 541 542 DEFINE_GUID(IID_IDirect3DDeviceManager9, 0xa0cade0f, 0x06d5, 0x4cf4, 0xa1,0xc7, 0xf3,0xcd,0xd7,0x25,0xaa,0x75); 543 #if defined(__cplusplus) && !defined(CINTERFACE) 544 MIDL_INTERFACE("a0cade0f-06d5-4cf4-a1c7-f3cdd725aa75") 545 IDirect3DDeviceManager9 : public IUnknown 546 { 547 virtual HRESULT STDMETHODCALLTYPE ResetDevice( 548 IDirect3DDevice9 *pDevice, 549 UINT resetToken) = 0; 550 551 virtual HRESULT STDMETHODCALLTYPE OpenDeviceHandle( 552 HANDLE *phDevice) = 0; 553 554 virtual HRESULT STDMETHODCALLTYPE CloseDeviceHandle( 555 HANDLE hDevice) = 0; 556 557 virtual HRESULT STDMETHODCALLTYPE TestDevice( 558 HANDLE hDevice) = 0; 559 560 virtual HRESULT STDMETHODCALLTYPE LockDevice( 561 HANDLE hDevice, 562 IDirect3DDevice9 **ppDevice, 563 WINBOOL fBlock) = 0; 564 565 virtual HRESULT STDMETHODCALLTYPE UnlockDevice( 566 HANDLE hDevice, 567 WINBOOL fSaveState) = 0; 568 569 virtual HRESULT STDMETHODCALLTYPE GetVideoService( 570 HANDLE hDevice, 571 REFIID riid, 572 void **ppService) = 0; 573 574 }; 575 #ifdef __CRT_UUID_DECL 576 __CRT_UUID_DECL(IDirect3DDeviceManager9, 0xa0cade0f, 0x06d5, 0x4cf4, 0xa1,0xc7, 0xf3,0xcd,0xd7,0x25,0xaa,0x75) 577 #endif 578 #else 579 typedef struct IDirect3DDeviceManager9Vtbl { 580 BEGIN_INTERFACE 581 582 /*** IUnknown methods ***/ 583 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 584 IDirect3DDeviceManager9 *This, 585 REFIID riid, 586 void **ppvObject); 587 588 ULONG (STDMETHODCALLTYPE *AddRef)( 589 IDirect3DDeviceManager9 *This); 590 591 ULONG (STDMETHODCALLTYPE *Release)( 592 IDirect3DDeviceManager9 *This); 593 594 /*** IDirect3DDeviceManager9 methods ***/ 595 HRESULT (STDMETHODCALLTYPE *ResetDevice)( 596 IDirect3DDeviceManager9 *This, 597 IDirect3DDevice9 *pDevice, 598 UINT resetToken); 599 600 HRESULT (STDMETHODCALLTYPE *OpenDeviceHandle)( 601 IDirect3DDeviceManager9 *This, 602 HANDLE *phDevice); 603 604 HRESULT (STDMETHODCALLTYPE *CloseDeviceHandle)( 605 IDirect3DDeviceManager9 *This, 606 HANDLE hDevice); 607 608 HRESULT (STDMETHODCALLTYPE *TestDevice)( 609 IDirect3DDeviceManager9 *This, 610 HANDLE hDevice); 611 612 HRESULT (STDMETHODCALLTYPE *LockDevice)( 613 IDirect3DDeviceManager9 *This, 614 HANDLE hDevice, 615 IDirect3DDevice9 **ppDevice, 616 WINBOOL fBlock); 617 618 HRESULT (STDMETHODCALLTYPE *UnlockDevice)( 619 IDirect3DDeviceManager9 *This, 620 HANDLE hDevice, 621 WINBOOL fSaveState); 622 623 HRESULT (STDMETHODCALLTYPE *GetVideoService)( 624 IDirect3DDeviceManager9 *This, 625 HANDLE hDevice, 626 REFIID riid, 627 void **ppService); 628 629 END_INTERFACE 630 } IDirect3DDeviceManager9Vtbl; 631 632 interface IDirect3DDeviceManager9 { 633 CONST_VTBL IDirect3DDeviceManager9Vtbl* lpVtbl; 634 }; 635 636 #ifdef COBJMACROS 637 #ifndef WIDL_C_INLINE_WRAPPERS 638 /*** IUnknown methods ***/ 639 #define IDirect3DDeviceManager9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 640 #define IDirect3DDeviceManager9_AddRef(This) (This)->lpVtbl->AddRef(This) 641 #define IDirect3DDeviceManager9_Release(This) (This)->lpVtbl->Release(This) 642 /*** IDirect3DDeviceManager9 methods ***/ 643 #define IDirect3DDeviceManager9_ResetDevice(This,pDevice,resetToken) (This)->lpVtbl->ResetDevice(This,pDevice,resetToken) 644 #define IDirect3DDeviceManager9_OpenDeviceHandle(This,phDevice) (This)->lpVtbl->OpenDeviceHandle(This,phDevice) 645 #define IDirect3DDeviceManager9_CloseDeviceHandle(This,hDevice) (This)->lpVtbl->CloseDeviceHandle(This,hDevice) 646 #define IDirect3DDeviceManager9_TestDevice(This,hDevice) (This)->lpVtbl->TestDevice(This,hDevice) 647 #define IDirect3DDeviceManager9_LockDevice(This,hDevice,ppDevice,fBlock) (This)->lpVtbl->LockDevice(This,hDevice,ppDevice,fBlock) 648 #define IDirect3DDeviceManager9_UnlockDevice(This,hDevice,fSaveState) (This)->lpVtbl->UnlockDevice(This,hDevice,fSaveState) 649 #define IDirect3DDeviceManager9_GetVideoService(This,hDevice,riid,ppService) (This)->lpVtbl->GetVideoService(This,hDevice,riid,ppService) 650 #else 651 /*** IUnknown methods ***/ 652 static inline HRESULT IDirect3DDeviceManager9_QueryInterface(IDirect3DDeviceManager9* This,REFIID riid,void **ppvObject) { 653 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 654 } 655 static inline ULONG IDirect3DDeviceManager9_AddRef(IDirect3DDeviceManager9* This) { 656 return This->lpVtbl->AddRef(This); 657 } 658 static inline ULONG IDirect3DDeviceManager9_Release(IDirect3DDeviceManager9* This) { 659 return This->lpVtbl->Release(This); 660 } 661 /*** IDirect3DDeviceManager9 methods ***/ 662 static inline HRESULT IDirect3DDeviceManager9_ResetDevice(IDirect3DDeviceManager9* This,IDirect3DDevice9 *pDevice,UINT resetToken) { 663 return This->lpVtbl->ResetDevice(This,pDevice,resetToken); 664 } 665 static inline HRESULT IDirect3DDeviceManager9_OpenDeviceHandle(IDirect3DDeviceManager9* This,HANDLE *phDevice) { 666 return This->lpVtbl->OpenDeviceHandle(This,phDevice); 667 } 668 static inline HRESULT IDirect3DDeviceManager9_CloseDeviceHandle(IDirect3DDeviceManager9* This,HANDLE hDevice) { 669 return This->lpVtbl->CloseDeviceHandle(This,hDevice); 670 } 671 static inline HRESULT IDirect3DDeviceManager9_TestDevice(IDirect3DDeviceManager9* This,HANDLE hDevice) { 672 return This->lpVtbl->TestDevice(This,hDevice); 673 } 674 static inline HRESULT IDirect3DDeviceManager9_LockDevice(IDirect3DDeviceManager9* This,HANDLE hDevice,IDirect3DDevice9 **ppDevice,WINBOOL fBlock) { 675 return This->lpVtbl->LockDevice(This,hDevice,ppDevice,fBlock); 676 } 677 static inline HRESULT IDirect3DDeviceManager9_UnlockDevice(IDirect3DDeviceManager9* This,HANDLE hDevice,WINBOOL fSaveState) { 678 return This->lpVtbl->UnlockDevice(This,hDevice,fSaveState); 679 } 680 static inline HRESULT IDirect3DDeviceManager9_GetVideoService(IDirect3DDeviceManager9* This,HANDLE hDevice,REFIID riid,void **ppService) { 681 return This->lpVtbl->GetVideoService(This,hDevice,riid,ppService); 682 } 683 #endif 684 #endif 685 686 #endif 687 688 689 #endif /* __IDirect3DDeviceManager9_INTERFACE_DEFINED__ */ 690 691 /***************************************************************************** 692 * IDirectXVideoAccelerationService interface 693 */ 694 #ifndef __IDirectXVideoAccelerationService_INTERFACE_DEFINED__ 695 #define __IDirectXVideoAccelerationService_INTERFACE_DEFINED__ 696 697 DEFINE_GUID(IID_IDirectXVideoAccelerationService, 0xfc51a550, 0xd5e7, 0x11d9, 0xaf,0x55, 0x00,0x05,0x4e,0x43,0xff,0x02); 698 #if defined(__cplusplus) && !defined(CINTERFACE) 699 MIDL_INTERFACE("fc51a550-d5e7-11d9-af55-00054e43ff02") 700 IDirectXVideoAccelerationService : public IUnknown 701 { 702 virtual HRESULT STDMETHODCALLTYPE CreateSurface( 703 UINT width, 704 UINT height, 705 UINT backBuffers, 706 D3DFORMAT format, 707 D3DPOOL pool, 708 DWORD usage, 709 DWORD dxvaType, 710 IDirect3DSurface9 **ppSurface, 711 HANDLE *pSharedHandle) = 0; 712 713 }; 714 #ifdef __CRT_UUID_DECL 715 __CRT_UUID_DECL(IDirectXVideoAccelerationService, 0xfc51a550, 0xd5e7, 0x11d9, 0xaf,0x55, 0x00,0x05,0x4e,0x43,0xff,0x02) 716 #endif 717 #else 718 typedef struct IDirectXVideoAccelerationServiceVtbl { 719 BEGIN_INTERFACE 720 721 /*** IUnknown methods ***/ 722 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 723 IDirectXVideoAccelerationService *This, 724 REFIID riid, 725 void **ppvObject); 726 727 ULONG (STDMETHODCALLTYPE *AddRef)( 728 IDirectXVideoAccelerationService *This); 729 730 ULONG (STDMETHODCALLTYPE *Release)( 731 IDirectXVideoAccelerationService *This); 732 733 /*** IDirectXVideoAccelerationService methods ***/ 734 HRESULT (STDMETHODCALLTYPE *CreateSurface)( 735 IDirectXVideoAccelerationService *This, 736 UINT width, 737 UINT height, 738 UINT backBuffers, 739 D3DFORMAT format, 740 D3DPOOL pool, 741 DWORD usage, 742 DWORD dxvaType, 743 IDirect3DSurface9 **ppSurface, 744 HANDLE *pSharedHandle); 745 746 END_INTERFACE 747 } IDirectXVideoAccelerationServiceVtbl; 748 749 interface IDirectXVideoAccelerationService { 750 CONST_VTBL IDirectXVideoAccelerationServiceVtbl* lpVtbl; 751 }; 752 753 #ifdef COBJMACROS 754 #ifndef WIDL_C_INLINE_WRAPPERS 755 /*** IUnknown methods ***/ 756 #define IDirectXVideoAccelerationService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 757 #define IDirectXVideoAccelerationService_AddRef(This) (This)->lpVtbl->AddRef(This) 758 #define IDirectXVideoAccelerationService_Release(This) (This)->lpVtbl->Release(This) 759 /*** IDirectXVideoAccelerationService methods ***/ 760 #define IDirectXVideoAccelerationService_CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle) (This)->lpVtbl->CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle) 761 #else 762 /*** IUnknown methods ***/ 763 static inline HRESULT IDirectXVideoAccelerationService_QueryInterface(IDirectXVideoAccelerationService* This,REFIID riid,void **ppvObject) { 764 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 765 } 766 static inline ULONG IDirectXVideoAccelerationService_AddRef(IDirectXVideoAccelerationService* This) { 767 return This->lpVtbl->AddRef(This); 768 } 769 static inline ULONG IDirectXVideoAccelerationService_Release(IDirectXVideoAccelerationService* This) { 770 return This->lpVtbl->Release(This); 771 } 772 /*** IDirectXVideoAccelerationService methods ***/ 773 static inline HRESULT IDirectXVideoAccelerationService_CreateSurface(IDirectXVideoAccelerationService* This,UINT width,UINT height,UINT backBuffers,D3DFORMAT format,D3DPOOL pool,DWORD usage,DWORD dxvaType,IDirect3DSurface9 **ppSurface,HANDLE *pSharedHandle) { 774 return This->lpVtbl->CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle); 775 } 776 #endif 777 #endif 778 779 #endif 780 781 782 #endif /* __IDirectXVideoAccelerationService_INTERFACE_DEFINED__ */ 783 784 /***************************************************************************** 785 * IDirectXVideoDecoderService interface 786 */ 787 #ifndef __IDirectXVideoDecoderService_INTERFACE_DEFINED__ 788 #define __IDirectXVideoDecoderService_INTERFACE_DEFINED__ 789 790 DEFINE_GUID(IID_IDirectXVideoDecoderService, 0xfc51a551, 0xd5e7, 0x11d9, 0xaf,0x55, 0x00,0x05,0x4e,0x43,0xff,0x02); 791 #if defined(__cplusplus) && !defined(CINTERFACE) 792 MIDL_INTERFACE("fc51a551-d5e7-11d9-af55-00054e43ff02") 793 IDirectXVideoDecoderService : public IDirectXVideoAccelerationService 794 { 795 virtual HRESULT STDMETHODCALLTYPE GetDecoderDeviceGuids( 796 UINT *count, 797 GUID **pGuids) = 0; 798 799 virtual HRESULT STDMETHODCALLTYPE GetDecoderRenderTargets( 800 REFGUID guid, 801 UINT *pCount, 802 D3DFORMAT **pFormats) = 0; 803 804 virtual HRESULT STDMETHODCALLTYPE GetDecoderConfigurations( 805 REFGUID guid, 806 const DXVA2_VideoDesc *pVideoDesc, 807 void *pReserved, 808 UINT *pCount, 809 DXVA2_ConfigPictureDecode **ppConfigs) = 0; 810 811 virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder( 812 REFGUID guid, 813 const DXVA2_VideoDesc *pVideoDesc, 814 const DXVA2_ConfigPictureDecode *pConfig, 815 IDirect3DSurface9 **ppDecoderRenderTargets, 816 UINT NumSurfaces, 817 IDirectXVideoDecoder **ppDecode) = 0; 818 819 }; 820 #ifdef __CRT_UUID_DECL 821 __CRT_UUID_DECL(IDirectXVideoDecoderService, 0xfc51a551, 0xd5e7, 0x11d9, 0xaf,0x55, 0x00,0x05,0x4e,0x43,0xff,0x02) 822 #endif 823 #else 824 typedef struct IDirectXVideoDecoderServiceVtbl { 825 BEGIN_INTERFACE 826 827 /*** IUnknown methods ***/ 828 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 829 IDirectXVideoDecoderService *This, 830 REFIID riid, 831 void **ppvObject); 832 833 ULONG (STDMETHODCALLTYPE *AddRef)( 834 IDirectXVideoDecoderService *This); 835 836 ULONG (STDMETHODCALLTYPE *Release)( 837 IDirectXVideoDecoderService *This); 838 839 /*** IDirectXVideoAccelerationService methods ***/ 840 HRESULT (STDMETHODCALLTYPE *CreateSurface)( 841 IDirectXVideoDecoderService *This, 842 UINT width, 843 UINT height, 844 UINT backBuffers, 845 D3DFORMAT format, 846 D3DPOOL pool, 847 DWORD usage, 848 DWORD dxvaType, 849 IDirect3DSurface9 **ppSurface, 850 HANDLE *pSharedHandle); 851 852 /*** IDirectXVideoDecoderService methods ***/ 853 HRESULT (STDMETHODCALLTYPE *GetDecoderDeviceGuids)( 854 IDirectXVideoDecoderService *This, 855 UINT *count, 856 GUID **pGuids); 857 858 HRESULT (STDMETHODCALLTYPE *GetDecoderRenderTargets)( 859 IDirectXVideoDecoderService *This, 860 REFGUID guid, 861 UINT *pCount, 862 D3DFORMAT **pFormats); 863 864 HRESULT (STDMETHODCALLTYPE *GetDecoderConfigurations)( 865 IDirectXVideoDecoderService *This, 866 REFGUID guid, 867 const DXVA2_VideoDesc *pVideoDesc, 868 void *pReserved, 869 UINT *pCount, 870 DXVA2_ConfigPictureDecode **ppConfigs); 871 872 HRESULT (STDMETHODCALLTYPE *CreateVideoDecoder)( 873 IDirectXVideoDecoderService *This, 874 REFGUID guid, 875 const DXVA2_VideoDesc *pVideoDesc, 876 const DXVA2_ConfigPictureDecode *pConfig, 877 IDirect3DSurface9 **ppDecoderRenderTargets, 878 UINT NumSurfaces, 879 IDirectXVideoDecoder **ppDecode); 880 881 END_INTERFACE 882 } IDirectXVideoDecoderServiceVtbl; 883 884 interface IDirectXVideoDecoderService { 885 CONST_VTBL IDirectXVideoDecoderServiceVtbl* lpVtbl; 886 }; 887 888 #ifdef COBJMACROS 889 #ifndef WIDL_C_INLINE_WRAPPERS 890 /*** IUnknown methods ***/ 891 #define IDirectXVideoDecoderService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 892 #define IDirectXVideoDecoderService_AddRef(This) (This)->lpVtbl->AddRef(This) 893 #define IDirectXVideoDecoderService_Release(This) (This)->lpVtbl->Release(This) 894 /*** IDirectXVideoAccelerationService methods ***/ 895 #define IDirectXVideoDecoderService_CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle) (This)->lpVtbl->CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle) 896 /*** IDirectXVideoDecoderService methods ***/ 897 #define IDirectXVideoDecoderService_GetDecoderDeviceGuids(This,count,pGuids) (This)->lpVtbl->GetDecoderDeviceGuids(This,count,pGuids) 898 #define IDirectXVideoDecoderService_GetDecoderRenderTargets(This,guid,pCount,pFormats) (This)->lpVtbl->GetDecoderRenderTargets(This,guid,pCount,pFormats) 899 #define IDirectXVideoDecoderService_GetDecoderConfigurations(This,guid,pVideoDesc,pReserved,pCount,ppConfigs) (This)->lpVtbl->GetDecoderConfigurations(This,guid,pVideoDesc,pReserved,pCount,ppConfigs) 900 #define IDirectXVideoDecoderService_CreateVideoDecoder(This,guid,pVideoDesc,pConfig,ppDecoderRenderTargets,NumSurfaces,ppDecode) (This)->lpVtbl->CreateVideoDecoder(This,guid,pVideoDesc,pConfig,ppDecoderRenderTargets,NumSurfaces,ppDecode) 901 #else 902 /*** IUnknown methods ***/ 903 static inline HRESULT IDirectXVideoDecoderService_QueryInterface(IDirectXVideoDecoderService* This,REFIID riid,void **ppvObject) { 904 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 905 } 906 static inline ULONG IDirectXVideoDecoderService_AddRef(IDirectXVideoDecoderService* This) { 907 return This->lpVtbl->AddRef(This); 908 } 909 static inline ULONG IDirectXVideoDecoderService_Release(IDirectXVideoDecoderService* This) { 910 return This->lpVtbl->Release(This); 911 } 912 /*** IDirectXVideoAccelerationService methods ***/ 913 static inline HRESULT IDirectXVideoDecoderService_CreateSurface(IDirectXVideoDecoderService* This,UINT width,UINT height,UINT backBuffers,D3DFORMAT format,D3DPOOL pool,DWORD usage,DWORD dxvaType,IDirect3DSurface9 **ppSurface,HANDLE *pSharedHandle) { 914 return This->lpVtbl->CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle); 915 } 916 /*** IDirectXVideoDecoderService methods ***/ 917 static inline HRESULT IDirectXVideoDecoderService_GetDecoderDeviceGuids(IDirectXVideoDecoderService* This,UINT *count,GUID **pGuids) { 918 return This->lpVtbl->GetDecoderDeviceGuids(This,count,pGuids); 919 } 920 static inline HRESULT IDirectXVideoDecoderService_GetDecoderRenderTargets(IDirectXVideoDecoderService* This,REFGUID guid,UINT *pCount,D3DFORMAT **pFormats) { 921 return This->lpVtbl->GetDecoderRenderTargets(This,guid,pCount,pFormats); 922 } 923 static inline HRESULT IDirectXVideoDecoderService_GetDecoderConfigurations(IDirectXVideoDecoderService* This,REFGUID guid,const DXVA2_VideoDesc *pVideoDesc,void *pReserved,UINT *pCount,DXVA2_ConfigPictureDecode **ppConfigs) { 924 return This->lpVtbl->GetDecoderConfigurations(This,guid,pVideoDesc,pReserved,pCount,ppConfigs); 925 } 926 static inline HRESULT IDirectXVideoDecoderService_CreateVideoDecoder(IDirectXVideoDecoderService* This,REFGUID guid,const DXVA2_VideoDesc *pVideoDesc,const DXVA2_ConfigPictureDecode *pConfig,IDirect3DSurface9 **ppDecoderRenderTargets,UINT NumSurfaces,IDirectXVideoDecoder **ppDecode) { 927 return This->lpVtbl->CreateVideoDecoder(This,guid,pVideoDesc,pConfig,ppDecoderRenderTargets,NumSurfaces,ppDecode); 928 } 929 #endif 930 #endif 931 932 #endif 933 934 935 #endif /* __IDirectXVideoDecoderService_INTERFACE_DEFINED__ */ 936 937 /***************************************************************************** 938 * IDirectXVideoDecoder interface 939 */ 940 #ifndef __IDirectXVideoDecoder_INTERFACE_DEFINED__ 941 #define __IDirectXVideoDecoder_INTERFACE_DEFINED__ 942 943 DEFINE_GUID(IID_IDirectXVideoDecoder, 0xf2b0810a, 0xfd00, 0x43c9, 0x91,0x8c, 0xdf,0x94,0xe2,0xd8,0xef,0x7d); 944 #if defined(__cplusplus) && !defined(CINTERFACE) 945 MIDL_INTERFACE("f2b0810a-fd00-43c9-918c-df94e2d8ef7d") 946 IDirectXVideoDecoder : public IUnknown 947 { 948 virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderService( 949 IDirectXVideoDecoderService **ppService) = 0; 950 951 virtual HRESULT STDMETHODCALLTYPE GetCreationParameters( 952 GUID *pDeviceGuid, 953 DXVA2_VideoDesc *pVideoDesc, 954 DXVA2_ConfigPictureDecode *pConfig, 955 IDirect3DSurface9 ***pDecoderRenderTargets, 956 UINT *pNumSurfaces) = 0; 957 958 virtual HRESULT STDMETHODCALLTYPE GetBuffer( 959 UINT BufferType, 960 void **ppBuffer, 961 UINT *pBufferSize) = 0; 962 963 virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer( 964 UINT BufferType) = 0; 965 966 virtual HRESULT STDMETHODCALLTYPE BeginFrame( 967 IDirect3DSurface9 *pRenderTarget, 968 void *pvPVPData) = 0; 969 970 virtual HRESULT STDMETHODCALLTYPE EndFrame( 971 HANDLE *pHandleComplete) = 0; 972 973 virtual HRESULT STDMETHODCALLTYPE Execute( 974 const DXVA2_DecodeExecuteParams *pExecuteParams) = 0; 975 976 }; 977 #ifdef __CRT_UUID_DECL 978 __CRT_UUID_DECL(IDirectXVideoDecoder, 0xf2b0810a, 0xfd00, 0x43c9, 0x91,0x8c, 0xdf,0x94,0xe2,0xd8,0xef,0x7d) 979 #endif 980 #else 981 typedef struct IDirectXVideoDecoderVtbl { 982 BEGIN_INTERFACE 983 984 /*** IUnknown methods ***/ 985 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 986 IDirectXVideoDecoder *This, 987 REFIID riid, 988 void **ppvObject); 989 990 ULONG (STDMETHODCALLTYPE *AddRef)( 991 IDirectXVideoDecoder *This); 992 993 ULONG (STDMETHODCALLTYPE *Release)( 994 IDirectXVideoDecoder *This); 995 996 /*** IDirectXVideoDecoder methods ***/ 997 HRESULT (STDMETHODCALLTYPE *GetVideoDecoderService)( 998 IDirectXVideoDecoder *This, 999 IDirectXVideoDecoderService **ppService); 1000 1001 HRESULT (STDMETHODCALLTYPE *GetCreationParameters)( 1002 IDirectXVideoDecoder *This, 1003 GUID *pDeviceGuid, 1004 DXVA2_VideoDesc *pVideoDesc, 1005 DXVA2_ConfigPictureDecode *pConfig, 1006 IDirect3DSurface9 ***pDecoderRenderTargets, 1007 UINT *pNumSurfaces); 1008 1009 HRESULT (STDMETHODCALLTYPE *GetBuffer)( 1010 IDirectXVideoDecoder *This, 1011 UINT BufferType, 1012 void **ppBuffer, 1013 UINT *pBufferSize); 1014 1015 HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)( 1016 IDirectXVideoDecoder *This, 1017 UINT BufferType); 1018 1019 HRESULT (STDMETHODCALLTYPE *BeginFrame)( 1020 IDirectXVideoDecoder *This, 1021 IDirect3DSurface9 *pRenderTarget, 1022 void *pvPVPData); 1023 1024 HRESULT (STDMETHODCALLTYPE *EndFrame)( 1025 IDirectXVideoDecoder *This, 1026 HANDLE *pHandleComplete); 1027 1028 HRESULT (STDMETHODCALLTYPE *Execute)( 1029 IDirectXVideoDecoder *This, 1030 const DXVA2_DecodeExecuteParams *pExecuteParams); 1031 1032 END_INTERFACE 1033 } IDirectXVideoDecoderVtbl; 1034 1035 interface IDirectXVideoDecoder { 1036 CONST_VTBL IDirectXVideoDecoderVtbl* lpVtbl; 1037 }; 1038 1039 #ifdef COBJMACROS 1040 #ifndef WIDL_C_INLINE_WRAPPERS 1041 /*** IUnknown methods ***/ 1042 #define IDirectXVideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1043 #define IDirectXVideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This) 1044 #define IDirectXVideoDecoder_Release(This) (This)->lpVtbl->Release(This) 1045 /*** IDirectXVideoDecoder methods ***/ 1046 #define IDirectXVideoDecoder_GetVideoDecoderService(This,ppService) (This)->lpVtbl->GetVideoDecoderService(This,ppService) 1047 #define IDirectXVideoDecoder_GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pDecoderRenderTargets,pNumSurfaces) (This)->lpVtbl->GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pDecoderRenderTargets,pNumSurfaces) 1048 #define IDirectXVideoDecoder_GetBuffer(This,BufferType,ppBuffer,pBufferSize) (This)->lpVtbl->GetBuffer(This,BufferType,ppBuffer,pBufferSize) 1049 #define IDirectXVideoDecoder_ReleaseBuffer(This,BufferType) (This)->lpVtbl->ReleaseBuffer(This,BufferType) 1050 #define IDirectXVideoDecoder_BeginFrame(This,pRenderTarget,pvPVPData) (This)->lpVtbl->BeginFrame(This,pRenderTarget,pvPVPData) 1051 #define IDirectXVideoDecoder_EndFrame(This,pHandleComplete) (This)->lpVtbl->EndFrame(This,pHandleComplete) 1052 #define IDirectXVideoDecoder_Execute(This,pExecuteParams) (This)->lpVtbl->Execute(This,pExecuteParams) 1053 #else 1054 /*** IUnknown methods ***/ 1055 static inline HRESULT IDirectXVideoDecoder_QueryInterface(IDirectXVideoDecoder* This,REFIID riid,void **ppvObject) { 1056 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1057 } 1058 static inline ULONG IDirectXVideoDecoder_AddRef(IDirectXVideoDecoder* This) { 1059 return This->lpVtbl->AddRef(This); 1060 } 1061 static inline ULONG IDirectXVideoDecoder_Release(IDirectXVideoDecoder* This) { 1062 return This->lpVtbl->Release(This); 1063 } 1064 /*** IDirectXVideoDecoder methods ***/ 1065 static inline HRESULT IDirectXVideoDecoder_GetVideoDecoderService(IDirectXVideoDecoder* This,IDirectXVideoDecoderService **ppService) { 1066 return This->lpVtbl->GetVideoDecoderService(This,ppService); 1067 } 1068 static inline HRESULT IDirectXVideoDecoder_GetCreationParameters(IDirectXVideoDecoder* This,GUID *pDeviceGuid,DXVA2_VideoDesc *pVideoDesc,DXVA2_ConfigPictureDecode *pConfig,IDirect3DSurface9 ***pDecoderRenderTargets,UINT *pNumSurfaces) { 1069 return This->lpVtbl->GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pDecoderRenderTargets,pNumSurfaces); 1070 } 1071 static inline HRESULT IDirectXVideoDecoder_GetBuffer(IDirectXVideoDecoder* This,UINT BufferType,void **ppBuffer,UINT *pBufferSize) { 1072 return This->lpVtbl->GetBuffer(This,BufferType,ppBuffer,pBufferSize); 1073 } 1074 static inline HRESULT IDirectXVideoDecoder_ReleaseBuffer(IDirectXVideoDecoder* This,UINT BufferType) { 1075 return This->lpVtbl->ReleaseBuffer(This,BufferType); 1076 } 1077 static inline HRESULT IDirectXVideoDecoder_BeginFrame(IDirectXVideoDecoder* This,IDirect3DSurface9 *pRenderTarget,void *pvPVPData) { 1078 return This->lpVtbl->BeginFrame(This,pRenderTarget,pvPVPData); 1079 } 1080 static inline HRESULT IDirectXVideoDecoder_EndFrame(IDirectXVideoDecoder* This,HANDLE *pHandleComplete) { 1081 return This->lpVtbl->EndFrame(This,pHandleComplete); 1082 } 1083 static inline HRESULT IDirectXVideoDecoder_Execute(IDirectXVideoDecoder* This,const DXVA2_DecodeExecuteParams *pExecuteParams) { 1084 return This->lpVtbl->Execute(This,pExecuteParams); 1085 } 1086 #endif 1087 #endif 1088 1089 #endif 1090 1091 1092 #endif /* __IDirectXVideoDecoder_INTERFACE_DEFINED__ */ 1093 1094 /***************************************************************************** 1095 * IDirectXVideoProcessorService interface 1096 */ 1097 #ifndef __IDirectXVideoProcessorService_INTERFACE_DEFINED__ 1098 #define __IDirectXVideoProcessorService_INTERFACE_DEFINED__ 1099 1100 DEFINE_GUID(IID_IDirectXVideoProcessorService, 0xfc51a552, 0xd5e7, 0x11d9, 0xaf,0x55, 0x00,0x05,0x4e,0x43,0xff,0x02); 1101 #if defined(__cplusplus) && !defined(CINTERFACE) 1102 MIDL_INTERFACE("fc51a552-d5e7-11d9-af55-00054e43ff02") 1103 IDirectXVideoProcessorService : public IDirectXVideoAccelerationService 1104 { 1105 virtual HRESULT STDMETHODCALLTYPE RegisterVideoProcessorSoftwareDevice( 1106 void *pCallbacks) = 0; 1107 1108 virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorDeviceGuids( 1109 const DXVA2_VideoDesc *pVideoDesc, 1110 UINT *pCount, 1111 GUID **pGuids) = 0; 1112 1113 virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorRenderTargets( 1114 REFGUID VideoProcDeviceGuid, 1115 const DXVA2_VideoDesc *pVideoDesc, 1116 UINT *pCount, 1117 D3DFORMAT **pFormats) = 0; 1118 1119 virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorSubStreamFormats( 1120 REFGUID VideoProcDeviceGuid, 1121 const DXVA2_VideoDesc *pVideoDesc, 1122 D3DFORMAT RenderTargetFormat, 1123 UINT *pCount, 1124 D3DFORMAT **pFormats) = 0; 1125 1126 virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCaps( 1127 REFGUID VideoProcDeviceGuid, 1128 const DXVA2_VideoDesc *pVideoDesc, 1129 D3DFORMAT RenderTargetFormat, 1130 DXVA2_VideoProcessorCaps *pCaps) = 0; 1131 1132 virtual HRESULT STDMETHODCALLTYPE GetProcAmpRange( 1133 REFGUID VideoProcDeviceGuid, 1134 const DXVA2_VideoDesc *pVideoDesc, 1135 D3DFORMAT RenderTargetFormat, 1136 UINT ProcAmpCap, 1137 DXVA2_ValueRange *pRange) = 0; 1138 1139 virtual HRESULT STDMETHODCALLTYPE GetFilterPropertyRange( 1140 REFGUID VideoProcDeviceGuid, 1141 const DXVA2_VideoDesc *pVideoDesc, 1142 D3DFORMAT renderTargetFormat, 1143 UINT FilterSetting, 1144 DXVA2_ValueRange *pRange) = 0; 1145 1146 virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor( 1147 REFGUID VideoProcDeviceGuid, 1148 const DXVA2_VideoDesc *pVideoDesc, 1149 D3DFORMAT RenderTargetFormat, 1150 UINT MaxNumSubStreams, 1151 IDirectXVideoProcessor **ppVidProcess) = 0; 1152 1153 }; 1154 #ifdef __CRT_UUID_DECL 1155 __CRT_UUID_DECL(IDirectXVideoProcessorService, 0xfc51a552, 0xd5e7, 0x11d9, 0xaf,0x55, 0x00,0x05,0x4e,0x43,0xff,0x02) 1156 #endif 1157 #else 1158 typedef struct IDirectXVideoProcessorServiceVtbl { 1159 BEGIN_INTERFACE 1160 1161 /*** IUnknown methods ***/ 1162 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1163 IDirectXVideoProcessorService *This, 1164 REFIID riid, 1165 void **ppvObject); 1166 1167 ULONG (STDMETHODCALLTYPE *AddRef)( 1168 IDirectXVideoProcessorService *This); 1169 1170 ULONG (STDMETHODCALLTYPE *Release)( 1171 IDirectXVideoProcessorService *This); 1172 1173 /*** IDirectXVideoAccelerationService methods ***/ 1174 HRESULT (STDMETHODCALLTYPE *CreateSurface)( 1175 IDirectXVideoProcessorService *This, 1176 UINT width, 1177 UINT height, 1178 UINT backBuffers, 1179 D3DFORMAT format, 1180 D3DPOOL pool, 1181 DWORD usage, 1182 DWORD dxvaType, 1183 IDirect3DSurface9 **ppSurface, 1184 HANDLE *pSharedHandle); 1185 1186 /*** IDirectXVideoProcessorService methods ***/ 1187 HRESULT (STDMETHODCALLTYPE *RegisterVideoProcessorSoftwareDevice)( 1188 IDirectXVideoProcessorService *This, 1189 void *pCallbacks); 1190 1191 HRESULT (STDMETHODCALLTYPE *GetVideoProcessorDeviceGuids)( 1192 IDirectXVideoProcessorService *This, 1193 const DXVA2_VideoDesc *pVideoDesc, 1194 UINT *pCount, 1195 GUID **pGuids); 1196 1197 HRESULT (STDMETHODCALLTYPE *GetVideoProcessorRenderTargets)( 1198 IDirectXVideoProcessorService *This, 1199 REFGUID VideoProcDeviceGuid, 1200 const DXVA2_VideoDesc *pVideoDesc, 1201 UINT *pCount, 1202 D3DFORMAT **pFormats); 1203 1204 HRESULT (STDMETHODCALLTYPE *GetVideoProcessorSubStreamFormats)( 1205 IDirectXVideoProcessorService *This, 1206 REFGUID VideoProcDeviceGuid, 1207 const DXVA2_VideoDesc *pVideoDesc, 1208 D3DFORMAT RenderTargetFormat, 1209 UINT *pCount, 1210 D3DFORMAT **pFormats); 1211 1212 HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCaps)( 1213 IDirectXVideoProcessorService *This, 1214 REFGUID VideoProcDeviceGuid, 1215 const DXVA2_VideoDesc *pVideoDesc, 1216 D3DFORMAT RenderTargetFormat, 1217 DXVA2_VideoProcessorCaps *pCaps); 1218 1219 HRESULT (STDMETHODCALLTYPE *GetProcAmpRange)( 1220 IDirectXVideoProcessorService *This, 1221 REFGUID VideoProcDeviceGuid, 1222 const DXVA2_VideoDesc *pVideoDesc, 1223 D3DFORMAT RenderTargetFormat, 1224 UINT ProcAmpCap, 1225 DXVA2_ValueRange *pRange); 1226 1227 HRESULT (STDMETHODCALLTYPE *GetFilterPropertyRange)( 1228 IDirectXVideoProcessorService *This, 1229 REFGUID VideoProcDeviceGuid, 1230 const DXVA2_VideoDesc *pVideoDesc, 1231 D3DFORMAT renderTargetFormat, 1232 UINT FilterSetting, 1233 DXVA2_ValueRange *pRange); 1234 1235 HRESULT (STDMETHODCALLTYPE *CreateVideoProcessor)( 1236 IDirectXVideoProcessorService *This, 1237 REFGUID VideoProcDeviceGuid, 1238 const DXVA2_VideoDesc *pVideoDesc, 1239 D3DFORMAT RenderTargetFormat, 1240 UINT MaxNumSubStreams, 1241 IDirectXVideoProcessor **ppVidProcess); 1242 1243 END_INTERFACE 1244 } IDirectXVideoProcessorServiceVtbl; 1245 1246 interface IDirectXVideoProcessorService { 1247 CONST_VTBL IDirectXVideoProcessorServiceVtbl* lpVtbl; 1248 }; 1249 1250 #ifdef COBJMACROS 1251 #ifndef WIDL_C_INLINE_WRAPPERS 1252 /*** IUnknown methods ***/ 1253 #define IDirectXVideoProcessorService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1254 #define IDirectXVideoProcessorService_AddRef(This) (This)->lpVtbl->AddRef(This) 1255 #define IDirectXVideoProcessorService_Release(This) (This)->lpVtbl->Release(This) 1256 /*** IDirectXVideoAccelerationService methods ***/ 1257 #define IDirectXVideoProcessorService_CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle) (This)->lpVtbl->CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle) 1258 /*** IDirectXVideoProcessorService methods ***/ 1259 #define IDirectXVideoProcessorService_RegisterVideoProcessorSoftwareDevice(This,pCallbacks) (This)->lpVtbl->RegisterVideoProcessorSoftwareDevice(This,pCallbacks) 1260 #define IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids(This,pVideoDesc,pCount,pGuids) (This)->lpVtbl->GetVideoProcessorDeviceGuids(This,pVideoDesc,pCount,pGuids) 1261 #define IDirectXVideoProcessorService_GetVideoProcessorRenderTargets(This,VideoProcDeviceGuid,pVideoDesc,pCount,pFormats) (This)->lpVtbl->GetVideoProcessorRenderTargets(This,VideoProcDeviceGuid,pVideoDesc,pCount,pFormats) 1262 #define IDirectXVideoProcessorService_GetVideoProcessorSubStreamFormats(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,pCount,pFormats) (This)->lpVtbl->GetVideoProcessorSubStreamFormats(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,pCount,pFormats) 1263 #define IDirectXVideoProcessorService_GetVideoProcessorCaps(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,pCaps) (This)->lpVtbl->GetVideoProcessorCaps(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,pCaps) 1264 #define IDirectXVideoProcessorService_GetProcAmpRange(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,ProcAmpCap,pRange) (This)->lpVtbl->GetProcAmpRange(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,ProcAmpCap,pRange) 1265 #define IDirectXVideoProcessorService_GetFilterPropertyRange(This,VideoProcDeviceGuid,pVideoDesc,renderTargetFormat,FilterSetting,pRange) (This)->lpVtbl->GetFilterPropertyRange(This,VideoProcDeviceGuid,pVideoDesc,renderTargetFormat,FilterSetting,pRange) 1266 #define IDirectXVideoProcessorService_CreateVideoProcessor(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,MaxNumSubStreams,ppVidProcess) (This)->lpVtbl->CreateVideoProcessor(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,MaxNumSubStreams,ppVidProcess) 1267 #else 1268 /*** IUnknown methods ***/ 1269 static inline HRESULT IDirectXVideoProcessorService_QueryInterface(IDirectXVideoProcessorService* This,REFIID riid,void **ppvObject) { 1270 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1271 } 1272 static inline ULONG IDirectXVideoProcessorService_AddRef(IDirectXVideoProcessorService* This) { 1273 return This->lpVtbl->AddRef(This); 1274 } 1275 static inline ULONG IDirectXVideoProcessorService_Release(IDirectXVideoProcessorService* This) { 1276 return This->lpVtbl->Release(This); 1277 } 1278 /*** IDirectXVideoAccelerationService methods ***/ 1279 static inline HRESULT IDirectXVideoProcessorService_CreateSurface(IDirectXVideoProcessorService* This,UINT width,UINT height,UINT backBuffers,D3DFORMAT format,D3DPOOL pool,DWORD usage,DWORD dxvaType,IDirect3DSurface9 **ppSurface,HANDLE *pSharedHandle) { 1280 return This->lpVtbl->CreateSurface(This,width,height,backBuffers,format,pool,usage,dxvaType,ppSurface,pSharedHandle); 1281 } 1282 /*** IDirectXVideoProcessorService methods ***/ 1283 static inline HRESULT IDirectXVideoProcessorService_RegisterVideoProcessorSoftwareDevice(IDirectXVideoProcessorService* This,void *pCallbacks) { 1284 return This->lpVtbl->RegisterVideoProcessorSoftwareDevice(This,pCallbacks); 1285 } 1286 static inline HRESULT IDirectXVideoProcessorService_GetVideoProcessorDeviceGuids(IDirectXVideoProcessorService* This,const DXVA2_VideoDesc *pVideoDesc,UINT *pCount,GUID **pGuids) { 1287 return This->lpVtbl->GetVideoProcessorDeviceGuids(This,pVideoDesc,pCount,pGuids); 1288 } 1289 static inline HRESULT IDirectXVideoProcessorService_GetVideoProcessorRenderTargets(IDirectXVideoProcessorService* This,REFGUID VideoProcDeviceGuid,const DXVA2_VideoDesc *pVideoDesc,UINT *pCount,D3DFORMAT **pFormats) { 1290 return This->lpVtbl->GetVideoProcessorRenderTargets(This,VideoProcDeviceGuid,pVideoDesc,pCount,pFormats); 1291 } 1292 static inline HRESULT IDirectXVideoProcessorService_GetVideoProcessorSubStreamFormats(IDirectXVideoProcessorService* This,REFGUID VideoProcDeviceGuid,const DXVA2_VideoDesc *pVideoDesc,D3DFORMAT RenderTargetFormat,UINT *pCount,D3DFORMAT **pFormats) { 1293 return This->lpVtbl->GetVideoProcessorSubStreamFormats(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,pCount,pFormats); 1294 } 1295 static inline HRESULT IDirectXVideoProcessorService_GetVideoProcessorCaps(IDirectXVideoProcessorService* This,REFGUID VideoProcDeviceGuid,const DXVA2_VideoDesc *pVideoDesc,D3DFORMAT RenderTargetFormat,DXVA2_VideoProcessorCaps *pCaps) { 1296 return This->lpVtbl->GetVideoProcessorCaps(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,pCaps); 1297 } 1298 static inline HRESULT IDirectXVideoProcessorService_GetProcAmpRange(IDirectXVideoProcessorService* This,REFGUID VideoProcDeviceGuid,const DXVA2_VideoDesc *pVideoDesc,D3DFORMAT RenderTargetFormat,UINT ProcAmpCap,DXVA2_ValueRange *pRange) { 1299 return This->lpVtbl->GetProcAmpRange(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,ProcAmpCap,pRange); 1300 } 1301 static inline HRESULT IDirectXVideoProcessorService_GetFilterPropertyRange(IDirectXVideoProcessorService* This,REFGUID VideoProcDeviceGuid,const DXVA2_VideoDesc *pVideoDesc,D3DFORMAT renderTargetFormat,UINT FilterSetting,DXVA2_ValueRange *pRange) { 1302 return This->lpVtbl->GetFilterPropertyRange(This,VideoProcDeviceGuid,pVideoDesc,renderTargetFormat,FilterSetting,pRange); 1303 } 1304 static inline HRESULT IDirectXVideoProcessorService_CreateVideoProcessor(IDirectXVideoProcessorService* This,REFGUID VideoProcDeviceGuid,const DXVA2_VideoDesc *pVideoDesc,D3DFORMAT RenderTargetFormat,UINT MaxNumSubStreams,IDirectXVideoProcessor **ppVidProcess) { 1305 return This->lpVtbl->CreateVideoProcessor(This,VideoProcDeviceGuid,pVideoDesc,RenderTargetFormat,MaxNumSubStreams,ppVidProcess); 1306 } 1307 #endif 1308 #endif 1309 1310 #endif 1311 1312 1313 #endif /* __IDirectXVideoProcessorService_INTERFACE_DEFINED__ */ 1314 1315 /***************************************************************************** 1316 * IDirectXVideoProcessor interface 1317 */ 1318 #ifndef __IDirectXVideoProcessor_INTERFACE_DEFINED__ 1319 #define __IDirectXVideoProcessor_INTERFACE_DEFINED__ 1320 1321 DEFINE_GUID(IID_IDirectXVideoProcessor, 0x8c3a39f0, 0x916e, 0x4690, 0x80,0x4f, 0x4c,0x80,0x01,0x35,0x5d,0x25); 1322 #if defined(__cplusplus) && !defined(CINTERFACE) 1323 MIDL_INTERFACE("8c3a39f0-916e-4690-804f-4c8001355d25") 1324 IDirectXVideoProcessor : public IUnknown 1325 { 1326 virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorService( 1327 IDirectXVideoProcessorService **ppService) = 0; 1328 1329 virtual HRESULT STDMETHODCALLTYPE GetCreationParameters( 1330 GUID *pDeviceGuid, 1331 DXVA2_VideoDesc *pVideoDesc, 1332 D3DFORMAT *pRenderTargetFormat, 1333 UINT *pMaxNumSubStreams) = 0; 1334 1335 virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCaps( 1336 DXVA2_VideoProcessorCaps *pCaps) = 0; 1337 1338 virtual HRESULT STDMETHODCALLTYPE GetProcAmpRange( 1339 UINT ProcAmpCap, 1340 DXVA2_ValueRange *pRange) = 0; 1341 1342 virtual HRESULT STDMETHODCALLTYPE GetFilterPropertyRange( 1343 UINT FilterSetting, 1344 DXVA2_ValueRange *pRange) = 0; 1345 1346 virtual HRESULT STDMETHODCALLTYPE VideoProcessBlt( 1347 IDirect3DSurface9 *pRenderTarget, 1348 const DXVA2_VideoProcessBltParams *pBltParams, 1349 const DXVA2_VideoSample *pSamples, 1350 UINT NumSamples, 1351 HANDLE *pHandleComplete) = 0; 1352 1353 }; 1354 #ifdef __CRT_UUID_DECL 1355 __CRT_UUID_DECL(IDirectXVideoProcessor, 0x8c3a39f0, 0x916e, 0x4690, 0x80,0x4f, 0x4c,0x80,0x01,0x35,0x5d,0x25) 1356 #endif 1357 #else 1358 typedef struct IDirectXVideoProcessorVtbl { 1359 BEGIN_INTERFACE 1360 1361 /*** IUnknown methods ***/ 1362 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1363 IDirectXVideoProcessor *This, 1364 REFIID riid, 1365 void **ppvObject); 1366 1367 ULONG (STDMETHODCALLTYPE *AddRef)( 1368 IDirectXVideoProcessor *This); 1369 1370 ULONG (STDMETHODCALLTYPE *Release)( 1371 IDirectXVideoProcessor *This); 1372 1373 /*** IDirectXVideoProcessor methods ***/ 1374 HRESULT (STDMETHODCALLTYPE *GetVideoProcessorService)( 1375 IDirectXVideoProcessor *This, 1376 IDirectXVideoProcessorService **ppService); 1377 1378 HRESULT (STDMETHODCALLTYPE *GetCreationParameters)( 1379 IDirectXVideoProcessor *This, 1380 GUID *pDeviceGuid, 1381 DXVA2_VideoDesc *pVideoDesc, 1382 D3DFORMAT *pRenderTargetFormat, 1383 UINT *pMaxNumSubStreams); 1384 1385 HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCaps)( 1386 IDirectXVideoProcessor *This, 1387 DXVA2_VideoProcessorCaps *pCaps); 1388 1389 HRESULT (STDMETHODCALLTYPE *GetProcAmpRange)( 1390 IDirectXVideoProcessor *This, 1391 UINT ProcAmpCap, 1392 DXVA2_ValueRange *pRange); 1393 1394 HRESULT (STDMETHODCALLTYPE *GetFilterPropertyRange)( 1395 IDirectXVideoProcessor *This, 1396 UINT FilterSetting, 1397 DXVA2_ValueRange *pRange); 1398 1399 HRESULT (STDMETHODCALLTYPE *VideoProcessBlt)( 1400 IDirectXVideoProcessor *This, 1401 IDirect3DSurface9 *pRenderTarget, 1402 const DXVA2_VideoProcessBltParams *pBltParams, 1403 const DXVA2_VideoSample *pSamples, 1404 UINT NumSamples, 1405 HANDLE *pHandleComplete); 1406 1407 END_INTERFACE 1408 } IDirectXVideoProcessorVtbl; 1409 1410 interface IDirectXVideoProcessor { 1411 CONST_VTBL IDirectXVideoProcessorVtbl* lpVtbl; 1412 }; 1413 1414 #ifdef COBJMACROS 1415 #ifndef WIDL_C_INLINE_WRAPPERS 1416 /*** IUnknown methods ***/ 1417 #define IDirectXVideoProcessor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1418 #define IDirectXVideoProcessor_AddRef(This) (This)->lpVtbl->AddRef(This) 1419 #define IDirectXVideoProcessor_Release(This) (This)->lpVtbl->Release(This) 1420 /*** IDirectXVideoProcessor methods ***/ 1421 #define IDirectXVideoProcessor_GetVideoProcessorService(This,ppService) (This)->lpVtbl->GetVideoProcessorService(This,ppService) 1422 #define IDirectXVideoProcessor_GetCreationParameters(This,pDeviceGuid,pVideoDesc,pRenderTargetFormat,pMaxNumSubStreams) (This)->lpVtbl->GetCreationParameters(This,pDeviceGuid,pVideoDesc,pRenderTargetFormat,pMaxNumSubStreams) 1423 #define IDirectXVideoProcessor_GetVideoProcessorCaps(This,pCaps) (This)->lpVtbl->GetVideoProcessorCaps(This,pCaps) 1424 #define IDirectXVideoProcessor_GetProcAmpRange(This,ProcAmpCap,pRange) (This)->lpVtbl->GetProcAmpRange(This,ProcAmpCap,pRange) 1425 #define IDirectXVideoProcessor_GetFilterPropertyRange(This,FilterSetting,pRange) (This)->lpVtbl->GetFilterPropertyRange(This,FilterSetting,pRange) 1426 #define IDirectXVideoProcessor_VideoProcessBlt(This,pRenderTarget,pBltParams,pSamples,NumSamples,pHandleComplete) (This)->lpVtbl->VideoProcessBlt(This,pRenderTarget,pBltParams,pSamples,NumSamples,pHandleComplete) 1427 #else 1428 /*** IUnknown methods ***/ 1429 static inline HRESULT IDirectXVideoProcessor_QueryInterface(IDirectXVideoProcessor* This,REFIID riid,void **ppvObject) { 1430 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1431 } 1432 static inline ULONG IDirectXVideoProcessor_AddRef(IDirectXVideoProcessor* This) { 1433 return This->lpVtbl->AddRef(This); 1434 } 1435 static inline ULONG IDirectXVideoProcessor_Release(IDirectXVideoProcessor* This) { 1436 return This->lpVtbl->Release(This); 1437 } 1438 /*** IDirectXVideoProcessor methods ***/ 1439 static inline HRESULT IDirectXVideoProcessor_GetVideoProcessorService(IDirectXVideoProcessor* This,IDirectXVideoProcessorService **ppService) { 1440 return This->lpVtbl->GetVideoProcessorService(This,ppService); 1441 } 1442 static inline HRESULT IDirectXVideoProcessor_GetCreationParameters(IDirectXVideoProcessor* This,GUID *pDeviceGuid,DXVA2_VideoDesc *pVideoDesc,D3DFORMAT *pRenderTargetFormat,UINT *pMaxNumSubStreams) { 1443 return This->lpVtbl->GetCreationParameters(This,pDeviceGuid,pVideoDesc,pRenderTargetFormat,pMaxNumSubStreams); 1444 } 1445 static inline HRESULT IDirectXVideoProcessor_GetVideoProcessorCaps(IDirectXVideoProcessor* This,DXVA2_VideoProcessorCaps *pCaps) { 1446 return This->lpVtbl->GetVideoProcessorCaps(This,pCaps); 1447 } 1448 static inline HRESULT IDirectXVideoProcessor_GetProcAmpRange(IDirectXVideoProcessor* This,UINT ProcAmpCap,DXVA2_ValueRange *pRange) { 1449 return This->lpVtbl->GetProcAmpRange(This,ProcAmpCap,pRange); 1450 } 1451 static inline HRESULT IDirectXVideoProcessor_GetFilterPropertyRange(IDirectXVideoProcessor* This,UINT FilterSetting,DXVA2_ValueRange *pRange) { 1452 return This->lpVtbl->GetFilterPropertyRange(This,FilterSetting,pRange); 1453 } 1454 static inline HRESULT IDirectXVideoProcessor_VideoProcessBlt(IDirectXVideoProcessor* This,IDirect3DSurface9 *pRenderTarget,const DXVA2_VideoProcessBltParams *pBltParams,const DXVA2_VideoSample *pSamples,UINT NumSamples,HANDLE *pHandleComplete) { 1455 return This->lpVtbl->VideoProcessBlt(This,pRenderTarget,pBltParams,pSamples,NumSamples,pHandleComplete); 1456 } 1457 #endif 1458 #endif 1459 1460 #endif 1461 1462 1463 #endif /* __IDirectXVideoProcessor_INTERFACE_DEFINED__ */ 1464 1465 /***************************************************************************** 1466 * IDirectXVideoMemoryConfiguration interface 1467 */ 1468 #ifndef __IDirectXVideoMemoryConfiguration_INTERFACE_DEFINED__ 1469 #define __IDirectXVideoMemoryConfiguration_INTERFACE_DEFINED__ 1470 1471 DEFINE_GUID(IID_IDirectXVideoMemoryConfiguration, 0xb7f916dd, 0xdb3b, 0x49c1, 0x84,0xd7, 0xe4,0x5e,0xf9,0x9e,0xc7,0x26); 1472 #if defined(__cplusplus) && !defined(CINTERFACE) 1473 MIDL_INTERFACE("b7f916dd-db3b-49c1-84d7-e45ef99ec726") 1474 IDirectXVideoMemoryConfiguration : public IUnknown 1475 { 1476 virtual HRESULT STDMETHODCALLTYPE GetAvailableSurfaceTypeByIndex( 1477 DWORD wTypeIndex, 1478 DXVA2_SurfaceType *pdwType) = 0; 1479 1480 virtual HRESULT STDMETHODCALLTYPE SetSurfaceType( 1481 DXVA2_SurfaceType dwType) = 0; 1482 1483 }; 1484 #ifdef __CRT_UUID_DECL 1485 __CRT_UUID_DECL(IDirectXVideoMemoryConfiguration, 0xb7f916dd, 0xdb3b, 0x49c1, 0x84,0xd7, 0xe4,0x5e,0xf9,0x9e,0xc7,0x26) 1486 #endif 1487 #else 1488 typedef struct IDirectXVideoMemoryConfigurationVtbl { 1489 BEGIN_INTERFACE 1490 1491 /*** IUnknown methods ***/ 1492 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1493 IDirectXVideoMemoryConfiguration *This, 1494 REFIID riid, 1495 void **ppvObject); 1496 1497 ULONG (STDMETHODCALLTYPE *AddRef)( 1498 IDirectXVideoMemoryConfiguration *This); 1499 1500 ULONG (STDMETHODCALLTYPE *Release)( 1501 IDirectXVideoMemoryConfiguration *This); 1502 1503 /*** IDirectXVideoMemoryConfiguration methods ***/ 1504 HRESULT (STDMETHODCALLTYPE *GetAvailableSurfaceTypeByIndex)( 1505 IDirectXVideoMemoryConfiguration *This, 1506 DWORD wTypeIndex, 1507 DXVA2_SurfaceType *pdwType); 1508 1509 HRESULT (STDMETHODCALLTYPE *SetSurfaceType)( 1510 IDirectXVideoMemoryConfiguration *This, 1511 DXVA2_SurfaceType dwType); 1512 1513 END_INTERFACE 1514 } IDirectXVideoMemoryConfigurationVtbl; 1515 1516 interface IDirectXVideoMemoryConfiguration { 1517 CONST_VTBL IDirectXVideoMemoryConfigurationVtbl* lpVtbl; 1518 }; 1519 1520 #ifdef COBJMACROS 1521 #ifndef WIDL_C_INLINE_WRAPPERS 1522 /*** IUnknown methods ***/ 1523 #define IDirectXVideoMemoryConfiguration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1524 #define IDirectXVideoMemoryConfiguration_AddRef(This) (This)->lpVtbl->AddRef(This) 1525 #define IDirectXVideoMemoryConfiguration_Release(This) (This)->lpVtbl->Release(This) 1526 /*** IDirectXVideoMemoryConfiguration methods ***/ 1527 #define IDirectXVideoMemoryConfiguration_GetAvailableSurfaceTypeByIndex(This,wTypeIndex,pdwType) (This)->lpVtbl->GetAvailableSurfaceTypeByIndex(This,wTypeIndex,pdwType) 1528 #define IDirectXVideoMemoryConfiguration_SetSurfaceType(This,dwType) (This)->lpVtbl->SetSurfaceType(This,dwType) 1529 #else 1530 /*** IUnknown methods ***/ 1531 static inline HRESULT IDirectXVideoMemoryConfiguration_QueryInterface(IDirectXVideoMemoryConfiguration* This,REFIID riid,void **ppvObject) { 1532 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1533 } 1534 static inline ULONG IDirectXVideoMemoryConfiguration_AddRef(IDirectXVideoMemoryConfiguration* This) { 1535 return This->lpVtbl->AddRef(This); 1536 } 1537 static inline ULONG IDirectXVideoMemoryConfiguration_Release(IDirectXVideoMemoryConfiguration* This) { 1538 return This->lpVtbl->Release(This); 1539 } 1540 /*** IDirectXVideoMemoryConfiguration methods ***/ 1541 static inline HRESULT IDirectXVideoMemoryConfiguration_GetAvailableSurfaceTypeByIndex(IDirectXVideoMemoryConfiguration* This,DWORD wTypeIndex,DXVA2_SurfaceType *pdwType) { 1542 return This->lpVtbl->GetAvailableSurfaceTypeByIndex(This,wTypeIndex,pdwType); 1543 } 1544 static inline HRESULT IDirectXVideoMemoryConfiguration_SetSurfaceType(IDirectXVideoMemoryConfiguration* This,DXVA2_SurfaceType dwType) { 1545 return This->lpVtbl->SetSurfaceType(This,dwType); 1546 } 1547 #endif 1548 #endif 1549 1550 #endif 1551 1552 1553 #endif /* __IDirectXVideoMemoryConfiguration_INTERFACE_DEFINED__ */ 1554 1555 HRESULT WINAPI DXVA2CreateDirect3DDeviceManager9(UINT *pResetToken,IDirect3DDeviceManager9 **ppDXVAManager); 1556 HRESULT WINAPI DXVA2CreateVideoService(IDirect3DDevice9 *pDD,REFIID riid,void **ppService); 1557 #endif 1558 static inline DXVA2_Fixed32 DXVA2_Fixed32OpaqueAlpha(void) { 1559 DXVA2_Fixed32 f32; 1560 f32.ll = 0 + (1 << 16); 1561 return f32; 1562 } 1563 1564 static inline DXVA2_Fixed32 DXVA2_Fixed32TransparentAlpha(void) { 1565 DXVA2_Fixed32 f32; 1566 f32.ll = 0; 1567 return f32; 1568 } 1569 1570 static inline float DXVA2FixedToFloat(DXVA2_Fixed32 f32) { 1571 return (float)f32.Value + (float)f32.Fraction / (1 << 16); 1572 } 1573 1574 static inline DXVA2_Fixed32 DXVA2FloatToFixed(float f) { 1575 DXVA2_Fixed32 f32; 1576 f32.Value = ((ULONG) (f * (1 << 16))) >> 16; 1577 f32.Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF; 1578 return f32; 1579 } 1580 /* Begin additional prototypes for all interfaces */ 1581 1582 1583 /* End additional prototypes */ 1584 1585 #ifdef __cplusplus 1586 } 1587 #endif 1588 1589 #endif /* __dxva2api_h__ */