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