1 /*** Autogenerated by WIDL 4.12.1 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 __IDirectXVideoDecoder_FWD_DEFINED__
30 #define __IDirectXVideoDecoder_FWD_DEFINED__
31 typedef interface IDirectXVideoDecoder IDirectXVideoDecoder;
32 #ifdef __cplusplus
33 interface IDirectXVideoDecoder;
34 #endif /* __cplusplus */
35 #endif
36
37 #ifndef __IDirectXVideoAccelerationService_FWD_DEFINED__
38 #define __IDirectXVideoAccelerationService_FWD_DEFINED__
39 typedef interface IDirectXVideoAccelerationService IDirectXVideoAccelerationService;
40 #ifdef __cplusplus
41 interface IDirectXVideoAccelerationService;
42 #endif /* __cplusplus */
43 #endif
44
45 #ifndef __IDirectXVideoDecoderService_FWD_DEFINED__
46 #define __IDirectXVideoDecoderService_FWD_DEFINED__
47 typedef interface IDirectXVideoDecoderService IDirectXVideoDecoderService;
48 #ifdef __cplusplus
49 interface IDirectXVideoDecoderService;
50 #endif /* __cplusplus */
51 #endif
52
53 /* Headers for imported files */
54
55 #include <unknwn.h>
56
57 #ifdef __cplusplus
58 extern "C" {
59 #endif
60
61 #if 0
62 typedef DWORD IDirect3DDevice9;
63 typedef DWORD IDirect3DSurface9;
64 typedef DWORD D3DFORMAT;
65 typedef DWORD D3DPOOL;
66 #endif
67 #ifndef __IDirectXVideoDecoderService_FWD_DEFINED__
68 #define __IDirectXVideoDecoderService_FWD_DEFINED__
69 typedef interface IDirectXVideoDecoderService IDirectXVideoDecoderService;
70 #ifdef __cplusplus
71 interface IDirectXVideoDecoderService;
72 #endif /* __cplusplus */
73 #endif
74
75 #ifndef __REFERENCE_TIME_DEFINED
76 #define __REFERENCE_TIME_DEFINED
77 typedef LONGLONG REFERENCE_TIME;
78 #endif /*__REFERENCE_TIME_DEFINED*/
79 #define DXVA2_ProcAmp_None 0x0000
80 #define DXVA2_ProcAmp_Brightness 0x0001
81 #define DXVA2_ProcAmp_Contrast 0x0002
82 #define DXVA2_ProcAmp_Hue 0x0004
83 #define DXVA2_ProcAmp_Saturation 0x0008
84
85 #define DXVA2_E_NOT_INITIALIZED MAKE_HRESULT(1, 4, 4096)
86 #define DXVA2_E_NEW_VIDEO_DEVICE MAKE_HRESULT(1, 4, 4097)
87 #define DXVA2_E_VIDEO_DEVICE_LOCKED MAKE_HRESULT(1, 4, 4098)
88 #define DXVA2_E_NOT_AVAILABLE MAKE_HRESULT(1, 4, 4099)
89
90 DEFINE_GUID(DXVA2_ModeMPEG2_MoComp, 0xe6a9f44b, 0x61b0,0x4563, 0x9e,0xa4,0x63,0xd2,0xa3,0xc6,0xfe,0x66);
91 DEFINE_GUID(DXVA2_ModeMPEG2_IDCT, 0xbf22ad00, 0x03ea,0x4690, 0x80,0x77,0x47,0x33,0x46,0x20,0x9b,0x7e);
92 DEFINE_GUID(DXVA2_ModeMPEG2_VLD, 0xee27417f, 0x5e28,0x4e65, 0xbe,0xea,0x1d,0x26,0xb5,0x08,0xad,0xc9);
93 DEFINE_GUID(DXVA2_ModeH264_A, 0x1b81be64, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
94 DEFINE_GUID(DXVA2_ModeH264_B, 0x1b81be65, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
95 DEFINE_GUID(DXVA2_ModeH264_C, 0x1b81be66, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
96 DEFINE_GUID(DXVA2_ModeH264_D, 0x1b81be67, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
97 DEFINE_GUID(DXVA2_ModeH264_E, 0x1b81be68, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
98 DEFINE_GUID(DXVA2_ModeH264_F, 0x1b81be69, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
99 DEFINE_GUID(DXVA2_ModeWMV8_A, 0x1b81be80, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
100 DEFINE_GUID(DXVA2_ModeWMV8_B, 0x1b81be81, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
101 DEFINE_GUID(DXVA2_ModeWMV9_A, 0x1b81be90, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
102 DEFINE_GUID(DXVA2_ModeWMV9_B, 0x1b81be91, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
103 DEFINE_GUID(DXVA2_ModeWMV9_C, 0x1b81be94, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
104 DEFINE_GUID(DXVA2_ModeVC1_A, 0x1b81beA0, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
105 DEFINE_GUID(DXVA2_ModeVC1_B, 0x1b81beA1, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
106 DEFINE_GUID(DXVA2_ModeVC1_C, 0x1b81beA2, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
107 DEFINE_GUID(DXVA2_ModeVC1_D, 0x1b81beA3, 0xa0c7,0x11d3, 0xb9,0x84,0x00,0xc0,0x4f,0x2e,0x73,0xc5);
108
109 typedef enum _DXVA2_SampleFormat {
110 DXVA2_SampleFormatMask = 0x00FF,
111 DXVA2_SampleUnknown = 0,
112 DXVA2_SampleProgressiveFrame = 2,
113 DXVA2_SampleFieldInterleavedEvenFirst = 3,
114 DXVA2_SampleFieldInterleavedOddFirst = 4,
115 DXVA2_SampleFieldSingleEven = 5,
116 DXVA2_SampleFieldSingleOdd = 6,
117 DXVA2_SampleSubStream = 7
118 } DXVA2_SampleFormat;
119
120 typedef enum _DXVA2_VideoChromaSubSampling {
121 DXVA2_VideoChromaSubsamplingMask = 0x0F,
122 DXVA2_VideoChromaSubsampling_Unknown = 0,
123 DXVA2_VideoChromaSubsampling_ProgressiveChroma = 0x8,
124 DXVA2_VideoChromaSubsampling_Horizontally_Cosited = 0x4,
125 DXVA2_VideoChromaSubsampling_Vertically_Cosited = 0x2,
126 DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes = 0x1,
127 DXVA2_VideoChromaSubsampling_MPEG2 =
128 DXVA2_VideoChromaSubsampling_Horizontally_Cosited |
129 DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes,
130 DXVA2_VideoChromaSubsampling_MPEG1 =
131 DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes,
132 DXVA2_VideoChromaSubsampling_DV_PAL =
133 DXVA2_VideoChromaSubsampling_Horizontally_Cosited |
134 DXVA2_VideoChromaSubsampling_Vertically_Cosited,
135 DXVA2_VideoChromaSubsampling_Cosited =
136 DXVA2_VideoChromaSubsampling_Horizontally_Cosited |
137 DXVA2_VideoChromaSubsampling_Vertically_Cosited |
138 DXVA2_VideoChromaSubsampling_Vertically_AlignedChromaPlanes
139 } DXVA2_VideoChromaSubSampling;
140
141 typedef enum _DXVA2_NominalRange {
142 DXVA2_NominalRangeMask = 0x07,
143 DXVA2_NominalRange_Unknown = 0,
144 DXVA2_NominalRange_Normal = 1,
145 DXVA2_NominalRange_Wide = 2,
146 DXVA2_NominalRange_0_255 = 1,
147 DXVA2_NominalRange_16_235 = 2,
148 DXVA2_NominalRange_48_208 = 3
149 } DXVA2_NominalRange;
150
151 typedef enum _DXVA2_VideoLighting {
152 DXVA2_VideoLightingMask = 0x0F,
153 DXVA2_VideoLighting_Unknown = 0,
154 DXVA2_VideoLighting_bright = 1,
155 DXVA2_VideoLighting_office = 2,
156 DXVA2_VideoLighting_dim = 3,
157 DXVA2_VideoLighting_dark = 4
158 } DXVA2_VideoLighting;
159
160 typedef enum _DXVA2_VideoPrimaries {
161 DXVA2_VideoPrimariesMask = 0x001f,
162 DXVA2_VideoPrimaries_Unknown = 0,
163 DXVA2_VideoPrimaries_reserved = 1,
164 DXVA2_VideoPrimaries_BT709 = 2,
165 DXVA2_VideoPrimaries_BT470_2_SysM = 3,
166 DXVA2_VideoPrimaries_BT470_2_SysBG = 4,
167 DXVA2_VideoPrimaries_SMPTE170M = 5,
168 DXVA2_VideoPrimaries_SMPTE240M = 6,
169 DXVA2_VideoPrimaries_EBU3213 = 7,
170 DXVA2_VideoPrimaries_SMPTE_C = 8
171 } DXVA2_VideoPrimaries;
172
173 typedef enum _DXVA2_VideoTransferFunction {
174 DXVA2_VideoTransFuncMask = 0x001f,
175 DXVA2_VideoTransFunc_Unknown = 0,
176 DXVA2_VideoTransFunc_10 = 1,
177 DXVA2_VideoTransFunc_18 = 2,
178 DXVA2_VideoTransFunc_20 = 3,
179 DXVA2_VideoTransFunc_22 = 4,
180 DXVA2_VideoTransFunc_709 = 5,
181 DXVA2_VideoTransFunc_240M = 6,
182 DXVA2_VideoTransFunc_sRGB = 7,
183 DXVA2_VideoTransFunc_28 = 8
184 } DXVA2_VideoTransferFunction;
185
186 typedef enum {
187 DXVA2_SurfaceType_DecoderRenderTarget = 0,
188 DXVA2_SurfaceType_ProcessorRenderTarget = 1,
189 DXVA2_SurfaceType_D3DRenderTargetTexture = 2
190 } DXVA2_SurfaceType;
191
192 typedef enum _DXVA2_VideoTransferMatrix {
193 DXVA2_VideoTransferMatrixMask = 0x07,
194 DXVA2_VideoTransferMatrix_Unknown = 0,
195 DXVA2_VideoTransferMatrix_BT709 = 1,
196 DXVA2_VideoTransferMatrix_BT601 = 2,
197 DXVA2_VideoTransferMatrix_SMPTE240M = 3
198 } DXVA2_VideoTransferMatrix;
199
200 typedef struct _DXVA2_AYUVSample16 {
201 USHORT Cr;
202 USHORT Cb;
203 USHORT Y;
204 USHORT Alpha;
205 } DXVA2_AYUVSample16;
206
207 typedef struct _DXVA2_AYUVSample8 {
208 UCHAR Cr;
209 UCHAR Cb;
210 UCHAR Y;
211 UCHAR Alpha;
212 } DXVA2_AYUVSample8;
213 typedef struct _DXVA2_ConfigPictureDecode {
214 GUID guidConfigBitstreamEncryption;
215 GUID guidConfigMBcontrolEncryption;
216 GUID guidConfigResidDiffEncryption;
217 UINT ConfigBitstreamRaw;
218 UINT ConfigMBcontrolRasterOrder;
219 UINT ConfigResidDiffHost;
220 UINT ConfigSpatialResid8;
221 UINT ConfigResid8Subtraction;
222 UINT ConfigSpatialHost8or9Clipping;
223 UINT ConfigSpatialResidInterleaved;
224 UINT ConfigIntraResidUnsigned;
225 UINT ConfigResidDiffAccelerator;
226 UINT ConfigHostInverseScan;
227 UINT ConfigSpecificIDCT;
228 UINT Config4GroupedCoefs;
229 USHORT ConfigMinRenderTargetBuffCount;
230 USHORT ConfigDecoderSpecific;
231 } DXVA2_ConfigPictureDecode;
232 typedef struct _DXVA2_DecodeBufferDesc {
233 DWORD CompressedBufferType;
234 UINT BufferIndex;
235 UINT DataOffset;
236 UINT DataSize;
237 UINT FirstMBaddress;
238 UINT NumMBsInBuffer;
239 UINT Width;
240 UINT Height;
241 UINT Stride;
242 UINT ReservedBits;
243 PVOID pvPVPState;
244 } DXVA2_DecodeBufferDesc;
245 typedef struct _DXVA2_DecodeExtensionData {
246 UINT Function;
247 PVOID pPrivateInputData;
248 UINT PrivateInputDataSize;
249 PVOID pPrivateOutputData;
250 UINT PrivateOutputDataSize;
251 } DXVA2_DecodeExtensionData;
252 typedef struct _DXVA2_DecodeExecuteParams {
253 UINT NumCompBuffers;
254 DXVA2_DecodeBufferDesc *pCompressedBuffers;
255 DXVA2_DecodeExtensionData *pExtensionData;
256 } DXVA2_DecodeExecuteParams;
257 typedef struct _DXVA2_ExtendedFormat {
258 __C89_NAMELESS union {
259 __C89_NAMELESS struct {
260 UINT SampleFormat : 8;
261 UINT VideoChromaSubsampling : 4;
262 UINT NominalRange : 3;
263 UINT VideoTransferMatrix : 3;
264 UINT VideoLighting : 4;
265 UINT VideoPrimaries : 5;
266 UINT VideoTransferFunction : 5;
267 } __C89_NAMELESSSTRUCTNAME;
268 UINT value;
269 } __C89_NAMELESSUNIONNAME;
270 } DXVA2_ExtendedFormat;
271 typedef struct _DXVA2_Fixed32 {
272 __C89_NAMELESS union {
273 __C89_NAMELESS struct {
274 USHORT Fraction;
275 SHORT Value;
276 } DUMMYSTRUCTNAME;
277 LONG ll;
278 } DUMMYUNIONNAME;
279 } DXVA2_Fixed32;
280
281 typedef struct _DXVA2_FilterValues {
282 DXVA2_Fixed32 Level;
283 DXVA2_Fixed32 Threshold;
284 DXVA2_Fixed32 Radius;
285 } DXVA2_FilterValues;
286 typedef struct _DXVA2_Frequency {
287 UINT Numerator;
288 UINT Denominator;
289 } DXVA2_Frequency;
290 typedef struct _DXVA2_ProcAmpValues {
291 DXVA2_Fixed32 Brightness;
292 DXVA2_Fixed32 Contrast;
293 DXVA2_Fixed32 Hue;
294 DXVA2_Fixed32 Saturation;
295 } DXVA2_ProcAmpValues;
296
297 typedef struct _DXVA2_ValueRange {
298 DXVA2_Fixed32 MinValue;
299 DXVA2_Fixed32 MaxValue;
300 DXVA2_Fixed32 DefaultValue;
301 DXVA2_Fixed32 StepSize;
302 } DXVA2_ValueRange;
303 typedef struct _DXVA2_VideoDesc {
304 UINT SampleWidth;
305 UINT SampleHeight;
306 DXVA2_ExtendedFormat SampleFormat;
307 D3DFORMAT Format;
308 DXVA2_Frequency InputSampleFreq;
309 DXVA2_Frequency OutputFrameFreq;
310 UINT UABProtectionLevel;
311 UINT Reserved;
312 } DXVA2_VideoDesc;
313 /* DeviceCaps
314 DXVA2_VPDev_EmulatedDXVA1
315 DXVA2_VPDev_HardwareDevice
316 DXVA2_VPDev_SoftwareDevice
317 */
318 /* DeinterlaceTechnology
319 DXVA2_DeinterlaceTech_Unknown
320 DXVA2_DeinterlaceTech_BOBLineReplicate
321 DXVA2_DeinterlaceTech_BOBVerticalStretch
322 DXVA2_DeinterlaceTech_BOBVerticalStretch4Tap
323 DXVA2_DeinterlaceTech_MedianFiltering
324 DXVA2_DeinterlaceTech_EdgeFiltering
325 DXVA2_DeinterlaceTech_FieldAdaptive
326 DXVA2_DeinterlaceTech_PixelAdaptive
327 DXVA2_DeinterlaceTech_MotionVectorSteered
328 DXVA2_DeinterlaceTech_InverseTelecine
329 */
330
331 /* VideoProcessorOperations
332 DXVA2_VideoProcess_YUV2RGB
333 DXVA2_VideoProcess_StretchX
334 DXVA2_VideoProcess_StretchY
335 DXVA2_VideoProcess_AlphaBlend
336 DXVA2_VideoProcess_SubRects
337 DXVA2_VideoProcess_SubStreams
338 DXVA2_VideoProcess_SubStreamsExtended
339 DXVA2_VideoProcess_YUV2RGBExtended
340 DXVA2_VideoProcess_AlphaBlendExtended
341 DXVA2_VideoProcess_Constriction
342 DXVA2_VideoProcess_NoiseFilter
343 DXVA2_VideoProcess_DetailFilter
344 DXVA2_VideoProcess_PlanarAlpha
345 DXVA2_VideoProcess_LinearScaling
346 DXVA2_VideoProcess_GammaCompensated
347 DXVA2_VideoProcess_MaintainsOriginalFieldData
348 */
349
350 /*NoiseFilterTechnology
351 DXVA2_NoiseFilterTech_Unsupported
352 DXVA2_NoiseFilterTech_Unknown
353 DXVA2_NoiseFilterTech_Median
354 DXVA2_NoiseFilterTech_Temporal
355 DXVA2_NoiseFilterTech_BlockNoise
356 DXVA2_NoiseFilterTech_MosquitoNoise
357 */
358
359 /* DetailFilterTechnology
360 DXVA2_DetailFilterTech_Unsupported
361 DXVA2_DetailFilterTech_Unknown
362 DXVA2_DetailFilterTech_Edge
363 DXVA2_DetailFilterTech_Sharpening
364 */
365 typedef struct _DXVA2_VideoProcessBltParams {
366 REFERENCE_TIME TargetFrame;
367 RECT TargetRect;
368 SIZE ConstrictionSize;
369 UINT StreamingFlags;
370 DXVA2_AYUVSample16 BackgroundColor;
371 DXVA2_ExtendedFormat DestFormat;
372 DXVA2_ProcAmpValues ProcAmpValues;
373 DXVA2_Fixed32 Alpha;
374 DXVA2_FilterValues NoiseFilterLuma;
375 DXVA2_FilterValues NoiseFilterChroma;
376 DXVA2_FilterValues DetailFilterLuma;
377 DXVA2_FilterValues DetailFilterChroma;
378 DWORD DestData;
379 } DXVA2_VideoProcessBltParams;
380
381 #ifdef _D3D9_H_
382 typedef struct _DXVA2_VideoProcessorCaps {
383 UINT DeviceCaps;
384 D3DPOOL InputPool;
385 UINT NumForwardRefSamples;
386 UINT NumBackwardRefSamples;
387 UINT Reserved;
388 UINT DeinterlaceTechnology;
389 UINT ProcAmpControlCaps;
390 UINT VideoProcessorOperations;
391 UINT NoiseFilterTechnology;
392 UINT DetailFilterTechnology;
393 } DXVA2_VideoProcessorCaps;
394 #endif
395
396 /* SampleData
397 DXVA2_SampleData_RFF
398 DXVA2_SampleData_TFF
399 DXVA2_SampleData_RFF_TFF_Present
400 */
401
402 #ifdef _D3D9_H_
403 typedef struct _DXVA2_VideoSample {
404 REFERENCE_TIME Start;
405 REFERENCE_TIME End;
406 DXVA2_ExtendedFormat SampleFormat;
407 IDirect3DSurface9* SrcSurface;
408 RECT SrcRect;
409 RECT DstRect;
410 DXVA2_AYUVSample8 Pal[16];
411 DXVA2_Fixed32 PlanarAlpha;
412 DWORD SampleData;
413 } DXVA2_VideoSample;
414 #endif
415
416 /* Constants */
417
418 #define DXVA2_VideoDecoderRenderTarget 0
419 #define DXVA2_VideoProcessorRenderTarget 1
420 #define DXVA2_VideoSoftwareRenderTarget 2
421
422 /* CompressedBufferType */
423 #define DXVA2_PictureParametersBufferType 0
424 #define DXVA2_MacroBlockControlBufferType 1
425 #define DXVA2_ResidualDifferenceBufferType 2
426 #define DXVA2_DeblockingControlBufferType 3
427 #define DXVA2_InverseQuantizationMatrixBufferType 4
428 #define DXVA2_SliceControlBufferType 5
429 #define DXVA2_BitStreamDateBufferType 6
430 #define DXVA2_MotionVectorBuffer 7
431 #define DXVA2_FilmGrainBuffer 8
432
DXVA2_Fixed32OpaqueAlpha(void)433 __forceinline const DXVA2_Fixed32 DXVA2_Fixed32OpaqueAlpha (void) {
434 DXVA2_Fixed32 f32;
435 f32.ll = 0 + (1 << 16);
436 return f32;
437 }
438
DXVA2_Fixed32TransparentAlpha(void)439 __forceinline const DXVA2_Fixed32 DXVA2_Fixed32TransparentAlpha (void) {
440 DXVA2_Fixed32 f32;
441 f32.ll = 0;
442 return f32;
443 }
444
DXVA2FixedToFloat(const DXVA2_Fixed32 f32)445 __forceinline float DXVA2FixedToFloat (const DXVA2_Fixed32 f32) {
446 return (float)f32.Value + (float)f32.Fraction / (1 << 16);
447 }
448
DXVA2FloatToFixed(const float f)449 __forceinline DXVA2_Fixed32 DXVA2FloatToFixed (const float f) {
450 DXVA2_Fixed32 f32;
451 f32.Value = ((ULONG) (f * (1 << 16))) >> 16;
452 f32.Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF;
453 return f32;
454 }
455 #ifdef _D3D9_H_
456 HRESULT WINAPI DXVA2CreateDirect3DDeviceManager9(UINT *pResetToken,IDirect3DDeviceManager9 **ppDXVAManager);
457 HRESULT WINAPI DXVA2CreateVideoService(IDirect3DDevice9 *pDD,REFIID riid,void **ppService);
458 /*****************************************************************************
459 * IDirect3DDeviceManager9 interface
460 */
461 #ifndef __IDirect3DDeviceManager9_INTERFACE_DEFINED__
462 #define __IDirect3DDeviceManager9_INTERFACE_DEFINED__
463
464 DEFINE_GUID(IID_IDirect3DDeviceManager9, 0xa0cade0f, 0x06d5, 0x4cf4, 0xa1,0xc7, 0xf3,0xcd,0xd7,0x25,0xaa,0x75);
465 #if defined(__cplusplus) && !defined(CINTERFACE)
466 MIDL_INTERFACE("a0cade0f-06d5-4cf4-a1c7-f3cdd725aa75")
467 IDirect3DDeviceManager9 : public IUnknown
468 {
469 virtual HRESULT STDMETHODCALLTYPE ResetDevice(
470 IDirect3DDevice9 *pDevice,
471 UINT resetToken) = 0;
472
473 virtual HRESULT STDMETHODCALLTYPE OpenDeviceHandle(
474 HANDLE *phDevice) = 0;
475
476 virtual HRESULT STDMETHODCALLTYPE CloseDeviceHandle(
477 HANDLE hDevice) = 0;
478
479 virtual HRESULT STDMETHODCALLTYPE TestDevice(
480 HANDLE hDevice) = 0;
481
482 virtual HRESULT STDMETHODCALLTYPE LockDevice(
483 HANDLE hDevice,
484 IDirect3DDevice9 **ppDevice,
485 WINBOOL fBlock) = 0;
486
487 virtual HRESULT STDMETHODCALLTYPE UnlockDevice(
488 HANDLE hDevice,
489 WINBOOL fSaveState) = 0;
490
491 virtual HRESULT STDMETHODCALLTYPE GetVideoService(
492 HANDLE hDevice,
493 REFIID riid,
494 void **ppService) = 0;
495
496 };
497 #ifdef __CRT_UUID_DECL
498 __CRT_UUID_DECL(IDirect3DDeviceManager9, 0xa0cade0f, 0x06d5, 0x4cf4, 0xa1,0xc7, 0xf3,0xcd,0xd7,0x25,0xaa,0x75)
499 #endif
500 #else
501 typedef struct IDirect3DDeviceManager9Vtbl {
502 BEGIN_INTERFACE
503
504 /*** IUnknown methods ***/
505 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
506 IDirect3DDeviceManager9 *This,
507 REFIID riid,
508 void **ppvObject);
509
510 ULONG (STDMETHODCALLTYPE *AddRef)(
511 IDirect3DDeviceManager9 *This);
512
513 ULONG (STDMETHODCALLTYPE *Release)(
514 IDirect3DDeviceManager9 *This);
515
516 /*** IDirect3DDeviceManager9 methods ***/
517 HRESULT (STDMETHODCALLTYPE *ResetDevice)(
518 IDirect3DDeviceManager9 *This,
519 IDirect3DDevice9 *pDevice,
520 UINT resetToken);
521
522 HRESULT (STDMETHODCALLTYPE *OpenDeviceHandle)(
523 IDirect3DDeviceManager9 *This,
524 HANDLE *phDevice);
525
526 HRESULT (STDMETHODCALLTYPE *CloseDeviceHandle)(
527 IDirect3DDeviceManager9 *This,
528 HANDLE hDevice);
529
530 HRESULT (STDMETHODCALLTYPE *TestDevice)(
531 IDirect3DDeviceManager9 *This,
532 HANDLE hDevice);
533
534 HRESULT (STDMETHODCALLTYPE *LockDevice)(
535 IDirect3DDeviceManager9 *This,
536 HANDLE hDevice,
537 IDirect3DDevice9 **ppDevice,
538 WINBOOL fBlock);
539
540 HRESULT (STDMETHODCALLTYPE *UnlockDevice)(
541 IDirect3DDeviceManager9 *This,
542 HANDLE hDevice,
543 WINBOOL fSaveState);
544
545 HRESULT (STDMETHODCALLTYPE *GetVideoService)(
546 IDirect3DDeviceManager9 *This,
547 HANDLE hDevice,
548 REFIID riid,
549 void **ppService);
550
551 END_INTERFACE
552 } IDirect3DDeviceManager9Vtbl;
553
554 interface IDirect3DDeviceManager9 {
555 CONST_VTBL IDirect3DDeviceManager9Vtbl* lpVtbl;
556 };
557
558 #ifdef COBJMACROS
559 #ifndef WIDL_C_INLINE_WRAPPERS
560 /*** IUnknown methods ***/
561 #define IDirect3DDeviceManager9_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
562 #define IDirect3DDeviceManager9_AddRef(This) (This)->lpVtbl->AddRef(This)
563 #define IDirect3DDeviceManager9_Release(This) (This)->lpVtbl->Release(This)
564 /*** IDirect3DDeviceManager9 methods ***/
565 #define IDirect3DDeviceManager9_ResetDevice(This,pDevice,resetToken) (This)->lpVtbl->ResetDevice(This,pDevice,resetToken)
566 #define IDirect3DDeviceManager9_OpenDeviceHandle(This,phDevice) (This)->lpVtbl->OpenDeviceHandle(This,phDevice)
567 #define IDirect3DDeviceManager9_CloseDeviceHandle(This,hDevice) (This)->lpVtbl->CloseDeviceHandle(This,hDevice)
568 #define IDirect3DDeviceManager9_TestDevice(This,hDevice) (This)->lpVtbl->TestDevice(This,hDevice)
569 #define IDirect3DDeviceManager9_LockDevice(This,hDevice,ppDevice,fBlock) (This)->lpVtbl->LockDevice(This,hDevice,ppDevice,fBlock)
570 #define IDirect3DDeviceManager9_UnlockDevice(This,hDevice,fSaveState) (This)->lpVtbl->UnlockDevice(This,hDevice,fSaveState)
571 #define IDirect3DDeviceManager9_GetVideoService(This,hDevice,riid,ppService) (This)->lpVtbl->GetVideoService(This,hDevice,riid,ppService)
572 #else
573 /*** IUnknown methods ***/
574 static FORCEINLINE HRESULT IDirect3DDeviceManager9_QueryInterface(IDirect3DDeviceManager9* This,REFIID riid,void **ppvObject) {
575 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
576 }
577 static FORCEINLINE ULONG IDirect3DDeviceManager9_AddRef(IDirect3DDeviceManager9* This) {
578 return This->lpVtbl->AddRef(This);
579 }
580 static FORCEINLINE ULONG IDirect3DDeviceManager9_Release(IDirect3DDeviceManager9* This) {
581 return This->lpVtbl->Release(This);
582 }
583 /*** IDirect3DDeviceManager9 methods ***/
584 static FORCEINLINE HRESULT IDirect3DDeviceManager9_ResetDevice(IDirect3DDeviceManager9* This,IDirect3DDevice9 *pDevice,UINT resetToken) {
585 return This->lpVtbl->ResetDevice(This,pDevice,resetToken);
586 }
587 static FORCEINLINE HRESULT IDirect3DDeviceManager9_OpenDeviceHandle(IDirect3DDeviceManager9* This,HANDLE *phDevice) {
588 return This->lpVtbl->OpenDeviceHandle(This,phDevice);
589 }
590 static FORCEINLINE HRESULT IDirect3DDeviceManager9_CloseDeviceHandle(IDirect3DDeviceManager9* This,HANDLE hDevice) {
591 return This->lpVtbl->CloseDeviceHandle(This,hDevice);
592 }
593 static FORCEINLINE HRESULT IDirect3DDeviceManager9_TestDevice(IDirect3DDeviceManager9* This,HANDLE hDevice) {
594 return This->lpVtbl->TestDevice(This,hDevice);
595 }
596 static FORCEINLINE HRESULT IDirect3DDeviceManager9_LockDevice(IDirect3DDeviceManager9* This,HANDLE hDevice,IDirect3DDevice9 **ppDevice,WINBOOL fBlock) {
597 return This->lpVtbl->LockDevice(This,hDevice,ppDevice,fBlock);
598 }
599 static FORCEINLINE HRESULT IDirect3DDeviceManager9_UnlockDevice(IDirect3DDeviceManager9* This,HANDLE hDevice,WINBOOL fSaveState) {
600 return This->lpVtbl->UnlockDevice(This,hDevice,fSaveState);
601 }
602 static FORCEINLINE HRESULT IDirect3DDeviceManager9_GetVideoService(IDirect3DDeviceManager9* This,HANDLE hDevice,REFIID riid,void **ppService) {
603 return This->lpVtbl->GetVideoService(This,hDevice,riid,ppService);
604 }
605 #endif
606 #endif
607
608 #endif
609
610
611 #endif /* __IDirect3DDeviceManager9_INTERFACE_DEFINED__ */
612
613 /*****************************************************************************
614 * IDirectXVideoDecoder interface
615 */
616 #ifndef __IDirectXVideoDecoder_INTERFACE_DEFINED__
617 #define __IDirectXVideoDecoder_INTERFACE_DEFINED__
618
619 DEFINE_GUID(IID_IDirectXVideoDecoder, 0xf2b0810a, 0xfd00, 0x43c9, 0x91,0x8c, 0xdf,0x94,0xe2,0xd8,0xef,0x7d);
620 #if defined(__cplusplus) && !defined(CINTERFACE)
621 MIDL_INTERFACE("f2b0810a-fd00-43c9-918c-df94e2d8ef7d")
622 IDirectXVideoDecoder : public IUnknown
623 {
624 virtual HRESULT STDMETHODCALLTYPE GetVideoDecoderService(
625 IDirectXVideoDecoderService **ppService) = 0;
626
627 virtual HRESULT STDMETHODCALLTYPE GetCreationParameters(
628 GUID *pDeviceGuid,
629 DXVA2_VideoDesc *pVideoDesc,
630 DXVA2_ConfigPictureDecode *pConfig,
631 IDirect3DSurface9 ***pDecoderRenderTargets,
632 UINT *pNumSurfaces) = 0;
633
634 virtual HRESULT STDMETHODCALLTYPE GetBuffer(
635 UINT BufferType,
636 void **ppBuffer,
637 UINT *pBufferSize) = 0;
638
639 virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
640 UINT BufferType) = 0;
641
642 virtual HRESULT STDMETHODCALLTYPE BeginFrame(
643 IDirect3DSurface9 *pRenderTarget,
644 void *pvPVPData) = 0;
645
646 virtual HRESULT STDMETHODCALLTYPE EndFrame(
647 HANDLE *pHandleComplete) = 0;
648
649 virtual HRESULT STDMETHODCALLTYPE Execute(
650 const DXVA2_DecodeExecuteParams *pExecuteParams) = 0;
651
652 };
653 #ifdef __CRT_UUID_DECL
654 __CRT_UUID_DECL(IDirectXVideoDecoder, 0xf2b0810a, 0xfd00, 0x43c9, 0x91,0x8c, 0xdf,0x94,0xe2,0xd8,0xef,0x7d)
655 #endif
656 #else
657 typedef struct IDirectXVideoDecoderVtbl {
658 BEGIN_INTERFACE
659
660 /*** IUnknown methods ***/
661 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
662 IDirectXVideoDecoder *This,
663 REFIID riid,
664 void **ppvObject);
665
666 ULONG (STDMETHODCALLTYPE *AddRef)(
667 IDirectXVideoDecoder *This);
668
669 ULONG (STDMETHODCALLTYPE *Release)(
670 IDirectXVideoDecoder *This);
671
672 /*** IDirectXVideoDecoder methods ***/
673 HRESULT (STDMETHODCALLTYPE *GetVideoDecoderService)(
674 IDirectXVideoDecoder *This,
675 IDirectXVideoDecoderService **ppService);
676
677 HRESULT (STDMETHODCALLTYPE *GetCreationParameters)(
678 IDirectXVideoDecoder *This,
679 GUID *pDeviceGuid,
680 DXVA2_VideoDesc *pVideoDesc,
681 DXVA2_ConfigPictureDecode *pConfig,
682 IDirect3DSurface9 ***pDecoderRenderTargets,
683 UINT *pNumSurfaces);
684
685 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
686 IDirectXVideoDecoder *This,
687 UINT BufferType,
688 void **ppBuffer,
689 UINT *pBufferSize);
690
691 HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
692 IDirectXVideoDecoder *This,
693 UINT BufferType);
694
695 HRESULT (STDMETHODCALLTYPE *BeginFrame)(
696 IDirectXVideoDecoder *This,
697 IDirect3DSurface9 *pRenderTarget,
698 void *pvPVPData);
699
700 HRESULT (STDMETHODCALLTYPE *EndFrame)(
701 IDirectXVideoDecoder *This,
702 HANDLE *pHandleComplete);
703
704 HRESULT (STDMETHODCALLTYPE *Execute)(
705 IDirectXVideoDecoder *This,
706 const DXVA2_DecodeExecuteParams *pExecuteParams);
707
708 END_INTERFACE
709 } IDirectXVideoDecoderVtbl;
710
711 interface IDirectXVideoDecoder {
712 CONST_VTBL IDirectXVideoDecoderVtbl* lpVtbl;
713 };
714
715 #ifdef COBJMACROS
716 #ifndef WIDL_C_INLINE_WRAPPERS
717 /*** IUnknown methods ***/
718 #define IDirectXVideoDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
719 #define IDirectXVideoDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
720 #define IDirectXVideoDecoder_Release(This) (This)->lpVtbl->Release(This)
721 /*** IDirectXVideoDecoder methods ***/
722 #define IDirectXVideoDecoder_GetVideoDecoderService(This,ppService) (This)->lpVtbl->GetVideoDecoderService(This,ppService)
723 #define IDirectXVideoDecoder_GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pDecoderRenderTargets,pNumSurfaces) (This)->lpVtbl->GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pDecoderRenderTargets,pNumSurfaces)
724 #define IDirectXVideoDecoder_GetBuffer(This,BufferType,ppBuffer,pBufferSize) (This)->lpVtbl->GetBuffer(This,BufferType,ppBuffer,pBufferSize)
725 #define IDirectXVideoDecoder_ReleaseBuffer(This,BufferType) (This)->lpVtbl->ReleaseBuffer(This,BufferType)
726 #define IDirectXVideoDecoder_BeginFrame(This,pRenderTarget,pvPVPData) (This)->lpVtbl->BeginFrame(This,pRenderTarget,pvPVPData)
727 #define IDirectXVideoDecoder_EndFrame(This,pHandleComplete) (This)->lpVtbl->EndFrame(This,pHandleComplete)
728 #define IDirectXVideoDecoder_Execute(This,pExecuteParams) (This)->lpVtbl->Execute(This,pExecuteParams)
729 #else
730 /*** IUnknown methods ***/
731 static FORCEINLINE HRESULT IDirectXVideoDecoder_QueryInterface(IDirectXVideoDecoder* This,REFIID riid,void **ppvObject) {
732 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
733 }
734 static FORCEINLINE ULONG IDirectXVideoDecoder_AddRef(IDirectXVideoDecoder* This) {
735 return This->lpVtbl->AddRef(This);
736 }
737 static FORCEINLINE ULONG IDirectXVideoDecoder_Release(IDirectXVideoDecoder* This) {
738 return This->lpVtbl->Release(This);
739 }
740 /*** IDirectXVideoDecoder methods ***/
741 static FORCEINLINE HRESULT IDirectXVideoDecoder_GetVideoDecoderService(IDirectXVideoDecoder* This,IDirectXVideoDecoderService **ppService) {
742 return This->lpVtbl->GetVideoDecoderService(This,ppService);
743 }
744 static FORCEINLINE HRESULT IDirectXVideoDecoder_GetCreationParameters(IDirectXVideoDecoder* This,GUID *pDeviceGuid,DXVA2_VideoDesc *pVideoDesc,DXVA2_ConfigPictureDecode *pConfig,IDirect3DSurface9 ***pDecoderRenderTargets,UINT *pNumSurfaces) {
745 return This->lpVtbl->GetCreationParameters(This,pDeviceGuid,pVideoDesc,pConfig,pDecoderRenderTargets,pNumSurfaces);
746 }
747 static FORCEINLINE HRESULT IDirectXVideoDecoder_GetBuffer(IDirectXVideoDecoder* This,UINT BufferType,void **ppBuffer,UINT *pBufferSize) {
748 return This->lpVtbl->GetBuffer(This,BufferType,ppBuffer,pBufferSize);
749 }
750 static FORCEINLINE HRESULT IDirectXVideoDecoder_ReleaseBuffer(IDirectXVideoDecoder* This,UINT BufferType) {
751 return This->lpVtbl->ReleaseBuffer(This,BufferType);
752 }
753 static FORCEINLINE HRESULT IDirectXVideoDecoder_BeginFrame(IDirectXVideoDecoder* This,IDirect3DSurface9 *pRenderTarget,void *pvPVPData) {
754 return This->lpVtbl->BeginFrame(This,pRenderTarget,pvPVPData);
755 }
756 static FORCEINLINE HRESULT IDirectXVideoDecoder_EndFrame(IDirectXVideoDecoder* This,HANDLE *pHandleComplete) {
757 return This->lpVtbl->EndFrame(This,pHandleComplete);
758 }
759 static FORCEINLINE HRESULT IDirectXVideoDecoder_Execute(IDirectXVideoDecoder* This,const DXVA2_DecodeExecuteParams *pExecuteParams) {
760 return This->lpVtbl->Execute(This,pExecuteParams);
761 }
762 #endif
763 #endif
764
765 #endif
766
767
768 #endif /* __IDirectXVideoDecoder_INTERFACE_DEFINED__ */
769
770 /*****************************************************************************
771 * IDirectXVideoAccelerationService interface
772 */
773 #ifndef __IDirectXVideoAccelerationService_INTERFACE_DEFINED__
774 #define __IDirectXVideoAccelerationService_INTERFACE_DEFINED__
775
776 DEFINE_GUID(IID_IDirectXVideoAccelerationService, 0xfc51a550, 0xd5e7, 0x11d9, 0xaf,0x55, 0x00,0x05,0x4e,0x43,0xff,0x02);
777 #if defined(__cplusplus) && !defined(CINTERFACE)
778 MIDL_INTERFACE("fc51a550-d5e7-11d9-af55-00054e43ff02")
779 IDirectXVideoAccelerationService : public IUnknown
780 {
781 virtual HRESULT STDMETHODCALLTYPE CreateSurface(
782 UINT Width,
783 UINT Height,
784 UINT BackBuffers,
785 D3DFORMAT Format,
786 D3DPOOL Pool,
787 DWORD Usage,
788 DWORD DxvaType,
789 IDirect3DSurface9 **ppSurface,
790 HANDLE *pSharedHandle) = 0;
791
792 };
793 #ifdef __CRT_UUID_DECL
794 __CRT_UUID_DECL(IDirectXVideoAccelerationService, 0xfc51a550, 0xd5e7, 0x11d9, 0xaf,0x55, 0x00,0x05,0x4e,0x43,0xff,0x02)
795 #endif
796 #else
797 typedef struct IDirectXVideoAccelerationServiceVtbl {
798 BEGIN_INTERFACE
799
800 /*** IUnknown methods ***/
801 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
802 IDirectXVideoAccelerationService *This,
803 REFIID riid,
804 void **ppvObject);
805
806 ULONG (STDMETHODCALLTYPE *AddRef)(
807 IDirectXVideoAccelerationService *This);
808
809 ULONG (STDMETHODCALLTYPE *Release)(
810 IDirectXVideoAccelerationService *This);
811
812 /*** IDirectXVideoAccelerationService methods ***/
813 HRESULT (STDMETHODCALLTYPE *CreateSurface)(
814 IDirectXVideoAccelerationService *This,
815 UINT Width,
816 UINT Height,
817 UINT BackBuffers,
818 D3DFORMAT Format,
819 D3DPOOL Pool,
820 DWORD Usage,
821 DWORD DxvaType,
822 IDirect3DSurface9 **ppSurface,
823 HANDLE *pSharedHandle);
824
825 END_INTERFACE
826 } IDirectXVideoAccelerationServiceVtbl;
827
828 interface IDirectXVideoAccelerationService {
829 CONST_VTBL IDirectXVideoAccelerationServiceVtbl* lpVtbl;
830 };
831
832 #ifdef COBJMACROS
833 #ifndef WIDL_C_INLINE_WRAPPERS
834 /*** IUnknown methods ***/
835 #define IDirectXVideoAccelerationService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
836 #define IDirectXVideoAccelerationService_AddRef(This) (This)->lpVtbl->AddRef(This)
837 #define IDirectXVideoAccelerationService_Release(This) (This)->lpVtbl->Release(This)
838 /*** IDirectXVideoAccelerationService methods ***/
839 #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)
840 #else
841 /*** IUnknown methods ***/
842 static FORCEINLINE HRESULT IDirectXVideoAccelerationService_QueryInterface(IDirectXVideoAccelerationService* This,REFIID riid,void **ppvObject) {
843 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
844 }
845 static FORCEINLINE ULONG IDirectXVideoAccelerationService_AddRef(IDirectXVideoAccelerationService* This) {
846 return This->lpVtbl->AddRef(This);
847 }
848 static FORCEINLINE ULONG IDirectXVideoAccelerationService_Release(IDirectXVideoAccelerationService* This) {
849 return This->lpVtbl->Release(This);
850 }
851 /*** IDirectXVideoAccelerationService methods ***/
852 static FORCEINLINE HRESULT IDirectXVideoAccelerationService_CreateSurface(IDirectXVideoAccelerationService* This,UINT Width,UINT Height,UINT BackBuffers,D3DFORMAT Format,D3DPOOL Pool,DWORD Usage,DWORD DxvaType,IDirect3DSurface9 **ppSurface,HANDLE *pSharedHandle) {
853 return This->lpVtbl->CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle);
854 }
855 #endif
856 #endif
857
858 #endif
859
860
861 #endif /* __IDirectXVideoAccelerationService_INTERFACE_DEFINED__ */
862
863 /*****************************************************************************
864 * IDirectXVideoDecoderService interface
865 */
866 #ifndef __IDirectXVideoDecoderService_INTERFACE_DEFINED__
867 #define __IDirectXVideoDecoderService_INTERFACE_DEFINED__
868
869 DEFINE_GUID(IID_IDirectXVideoDecoderService, 0xfc51a551, 0xd5e7, 0x11d9, 0xaf,0x55, 0x00,0x05,0x4e,0x43,0xff,0x02);
870 #if defined(__cplusplus) && !defined(CINTERFACE)
871 MIDL_INTERFACE("fc51a551-d5e7-11d9-af55-00054e43ff02")
872 IDirectXVideoDecoderService : public IDirectXVideoAccelerationService
873 {
874 virtual HRESULT STDMETHODCALLTYPE GetDecoderDeviceGuids(
875 UINT *pCount,
876 GUID **pGuids) = 0;
877
878 virtual HRESULT STDMETHODCALLTYPE GetDecoderRenderTargets(
879 REFGUID Guid,
880 UINT *pCount,
881 D3DFORMAT **pFormats) = 0;
882
883 virtual HRESULT STDMETHODCALLTYPE GetDecoderConfigurations(
884 REFGUID Guid,
885 const DXVA2_VideoDesc *pVideoDesc,
886 void *pReserved,
887 UINT *pCount,
888 DXVA2_ConfigPictureDecode **ppConfigs) = 0;
889
890 virtual HRESULT STDMETHODCALLTYPE CreateVideoDecoder(
891 REFGUID Guid,
892 const DXVA2_VideoDesc *pVideoDesc,
893 const DXVA2_ConfigPictureDecode *pConfig,
894 IDirect3DSurface9 **ppDecoderRenderTargets,
895 UINT NumRenderTargets,
896 IDirectXVideoDecoder **ppDecode) = 0;
897
898 };
899 #ifdef __CRT_UUID_DECL
900 __CRT_UUID_DECL(IDirectXVideoDecoderService, 0xfc51a551, 0xd5e7, 0x11d9, 0xaf,0x55, 0x00,0x05,0x4e,0x43,0xff,0x02)
901 #endif
902 #else
903 typedef struct IDirectXVideoDecoderServiceVtbl {
904 BEGIN_INTERFACE
905
906 /*** IUnknown methods ***/
907 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
908 IDirectXVideoDecoderService *This,
909 REFIID riid,
910 void **ppvObject);
911
912 ULONG (STDMETHODCALLTYPE *AddRef)(
913 IDirectXVideoDecoderService *This);
914
915 ULONG (STDMETHODCALLTYPE *Release)(
916 IDirectXVideoDecoderService *This);
917
918 /*** IDirectXVideoAccelerationService methods ***/
919 HRESULT (STDMETHODCALLTYPE *CreateSurface)(
920 IDirectXVideoDecoderService *This,
921 UINT Width,
922 UINT Height,
923 UINT BackBuffers,
924 D3DFORMAT Format,
925 D3DPOOL Pool,
926 DWORD Usage,
927 DWORD DxvaType,
928 IDirect3DSurface9 **ppSurface,
929 HANDLE *pSharedHandle);
930
931 /*** IDirectXVideoDecoderService methods ***/
932 HRESULT (STDMETHODCALLTYPE *GetDecoderDeviceGuids)(
933 IDirectXVideoDecoderService *This,
934 UINT *pCount,
935 GUID **pGuids);
936
937 HRESULT (STDMETHODCALLTYPE *GetDecoderRenderTargets)(
938 IDirectXVideoDecoderService *This,
939 REFGUID Guid,
940 UINT *pCount,
941 D3DFORMAT **pFormats);
942
943 HRESULT (STDMETHODCALLTYPE *GetDecoderConfigurations)(
944 IDirectXVideoDecoderService *This,
945 REFGUID Guid,
946 const DXVA2_VideoDesc *pVideoDesc,
947 void *pReserved,
948 UINT *pCount,
949 DXVA2_ConfigPictureDecode **ppConfigs);
950
951 HRESULT (STDMETHODCALLTYPE *CreateVideoDecoder)(
952 IDirectXVideoDecoderService *This,
953 REFGUID Guid,
954 const DXVA2_VideoDesc *pVideoDesc,
955 const DXVA2_ConfigPictureDecode *pConfig,
956 IDirect3DSurface9 **ppDecoderRenderTargets,
957 UINT NumRenderTargets,
958 IDirectXVideoDecoder **ppDecode);
959
960 END_INTERFACE
961 } IDirectXVideoDecoderServiceVtbl;
962
963 interface IDirectXVideoDecoderService {
964 CONST_VTBL IDirectXVideoDecoderServiceVtbl* lpVtbl;
965 };
966
967 #ifdef COBJMACROS
968 #ifndef WIDL_C_INLINE_WRAPPERS
969 /*** IUnknown methods ***/
970 #define IDirectXVideoDecoderService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
971 #define IDirectXVideoDecoderService_AddRef(This) (This)->lpVtbl->AddRef(This)
972 #define IDirectXVideoDecoderService_Release(This) (This)->lpVtbl->Release(This)
973 /*** IDirectXVideoAccelerationService methods ***/
974 #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)
975 /*** IDirectXVideoDecoderService methods ***/
976 #define IDirectXVideoDecoderService_GetDecoderDeviceGuids(This,pCount,pGuids) (This)->lpVtbl->GetDecoderDeviceGuids(This,pCount,pGuids)
977 #define IDirectXVideoDecoderService_GetDecoderRenderTargets(This,Guid,pCount,pFormats) (This)->lpVtbl->GetDecoderRenderTargets(This,Guid,pCount,pFormats)
978 #define IDirectXVideoDecoderService_GetDecoderConfigurations(This,Guid,pVideoDesc,pReserved,pCount,ppConfigs) (This)->lpVtbl->GetDecoderConfigurations(This,Guid,pVideoDesc,pReserved,pCount,ppConfigs)
979 #define IDirectXVideoDecoderService_CreateVideoDecoder(This,Guid,pVideoDesc,pConfig,ppDecoderRenderTargets,NumRenderTargets,ppDecode) (This)->lpVtbl->CreateVideoDecoder(This,Guid,pVideoDesc,pConfig,ppDecoderRenderTargets,NumRenderTargets,ppDecode)
980 #else
981 /*** IUnknown methods ***/
982 static FORCEINLINE HRESULT IDirectXVideoDecoderService_QueryInterface(IDirectXVideoDecoderService* This,REFIID riid,void **ppvObject) {
983 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
984 }
985 static FORCEINLINE ULONG IDirectXVideoDecoderService_AddRef(IDirectXVideoDecoderService* This) {
986 return This->lpVtbl->AddRef(This);
987 }
988 static FORCEINLINE ULONG IDirectXVideoDecoderService_Release(IDirectXVideoDecoderService* This) {
989 return This->lpVtbl->Release(This);
990 }
991 /*** IDirectXVideoAccelerationService methods ***/
992 static FORCEINLINE HRESULT IDirectXVideoDecoderService_CreateSurface(IDirectXVideoDecoderService* This,UINT Width,UINT Height,UINT BackBuffers,D3DFORMAT Format,D3DPOOL Pool,DWORD Usage,DWORD DxvaType,IDirect3DSurface9 **ppSurface,HANDLE *pSharedHandle) {
993 return This->lpVtbl->CreateSurface(This,Width,Height,BackBuffers,Format,Pool,Usage,DxvaType,ppSurface,pSharedHandle);
994 }
995 /*** IDirectXVideoDecoderService methods ***/
996 static FORCEINLINE HRESULT IDirectXVideoDecoderService_GetDecoderDeviceGuids(IDirectXVideoDecoderService* This,UINT *pCount,GUID **pGuids) {
997 return This->lpVtbl->GetDecoderDeviceGuids(This,pCount,pGuids);
998 }
999 static FORCEINLINE HRESULT IDirectXVideoDecoderService_GetDecoderRenderTargets(IDirectXVideoDecoderService* This,REFGUID Guid,UINT *pCount,D3DFORMAT **pFormats) {
1000 return This->lpVtbl->GetDecoderRenderTargets(This,Guid,pCount,pFormats);
1001 }
1002 static FORCEINLINE HRESULT IDirectXVideoDecoderService_GetDecoderConfigurations(IDirectXVideoDecoderService* This,REFGUID Guid,const DXVA2_VideoDesc *pVideoDesc,void *pReserved,UINT *pCount,DXVA2_ConfigPictureDecode **ppConfigs) {
1003 return This->lpVtbl->GetDecoderConfigurations(This,Guid,pVideoDesc,pReserved,pCount,ppConfigs);
1004 }
1005 static FORCEINLINE HRESULT IDirectXVideoDecoderService_CreateVideoDecoder(IDirectXVideoDecoderService* This,REFGUID Guid,const DXVA2_VideoDesc *pVideoDesc,const DXVA2_ConfigPictureDecode *pConfig,IDirect3DSurface9 **ppDecoderRenderTargets,UINT NumRenderTargets,IDirectXVideoDecoder **ppDecode) {
1006 return This->lpVtbl->CreateVideoDecoder(This,Guid,pVideoDesc,pConfig,ppDecoderRenderTargets,NumRenderTargets,ppDecode);
1007 }
1008 #endif
1009 #endif
1010
1011 #endif
1012
1013
1014 #endif /* __IDirectXVideoDecoderService_INTERFACE_DEFINED__ */
1015
1016 #endif /* _D3D9_H_ */
1017 /* Begin additional prototypes for all interfaces */
1018
1019
1020 /* End additional prototypes */
1021
1022 #ifdef __cplusplus
1023 }
1024 #endif
1025
1026 #endif /* __dxva2api_h__ */
1027