master
1/*** Autogenerated by WIDL 10.4 from include/dxvahd.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 __dxvahd_h__
17#define __dxvahd_h__
18
19/* Forward declarations */
20
21#ifndef __IDXVAHD_Device_FWD_DEFINED__
22#define __IDXVAHD_Device_FWD_DEFINED__
23typedef interface IDXVAHD_Device IDXVAHD_Device;
24#ifdef __cplusplus
25interface IDXVAHD_Device;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IDXVAHD_VideoProcessor_FWD_DEFINED__
30#define __IDXVAHD_VideoProcessor_FWD_DEFINED__
31typedef interface IDXVAHD_VideoProcessor IDXVAHD_VideoProcessor;
32#ifdef __cplusplus
33interface IDXVAHD_VideoProcessor;
34#endif /* __cplusplus */
35#endif
36
37/* Headers for imported files */
38
39#include <unknwn.h>
40
41#ifdef __cplusplus
42extern "C" {
43#endif
44
45#include <winapifamily.h>
46
47#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
48
49#if (_WIN32_WINNT >= 0x0601)
50#if 0
51#ifndef __IDirect3DSurface9_FWD_DEFINED__
52#define __IDirect3DSurface9_FWD_DEFINED__
53typedef interface IDirect3DSurface9 IDirect3DSurface9;
54#ifdef __cplusplus
55interface IDirect3DSurface9;
56#endif /* __cplusplus */
57#endif
58
59#ifndef __IDirect3DDevice9Ex_FWD_DEFINED__
60#define __IDirect3DDevice9Ex_FWD_DEFINED__
61typedef interface IDirect3DDevice9Ex IDirect3DDevice9Ex;
62#ifdef __cplusplus
63interface IDirect3DDevice9Ex;
64#endif /* __cplusplus */
65#endif
66
67typedef DWORD D3DFORMAT;
68typedef DWORD D3DPOOL;
69typedef struct __WIDL_dxvahd_generated_name_0000000C {
70 char dummy;
71} D3DCOLOR;
72#endif
73#ifndef CALLBACK
74#if defined(_ARM_)
75#define CALLBACK
76#else
77#define CALLBACK __stdcall
78#endif
79#endif
80#ifndef __IDXVAHD_Device_FWD_DEFINED__
81#define __IDXVAHD_Device_FWD_DEFINED__
82typedef interface IDXVAHD_Device IDXVAHD_Device;
83#ifdef __cplusplus
84interface IDXVAHD_Device;
85#endif /* __cplusplus */
86#endif
87
88#ifndef __IDXVAHD_VideoProcessor_FWD_DEFINED__
89#define __IDXVAHD_VideoProcessor_FWD_DEFINED__
90typedef interface IDXVAHD_VideoProcessor IDXVAHD_VideoProcessor;
91#ifdef __cplusplus
92interface IDXVAHD_VideoProcessor;
93#endif /* __cplusplus */
94#endif
95
96typedef enum _DXVAHD_ALPHA_FILL_MODE {
97 DXVAHD_ALPHA_FILL_MODE_OPAQUE = 0,
98 DXVAHD_ALPHA_FILL_MODE_BACKGROUND = 1,
99 DXVAHD_ALPHA_FILL_MODE_DESTINATION = 2,
100 DXVAHD_ALPHA_FILL_MODE_SOURCE_STREAM = 3
101} DXVAHD_ALPHA_FILL_MODE;
102typedef struct _DXVAHD_COLOR_YCbCrA {
103 FLOAT Y;
104 FLOAT Cb;
105 FLOAT Cr;
106 FLOAT A;
107} DXVAHD_COLOR_YCbCrA;
108typedef struct _DXVAHD_COLOR_RGBA {
109 FLOAT R;
110 FLOAT G;
111 FLOAT B;
112 FLOAT A;
113} DXVAHD_COLOR_RGBA;
114typedef union _DXVAHD_COLOR {
115 DXVAHD_COLOR_RGBA RGB;
116 DXVAHD_COLOR_YCbCrA YCbCr;
117} DXVAHD_COLOR;
118typedef struct _DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA {
119 WINBOOL YCbCr;
120 DXVAHD_COLOR BackgroundColor;
121} DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA;
122typedef enum _DXVAHD_BLT_STATE {
123 DXVAHD_BLT_STATE_TARGET_RECT = 0,
124 DXVAHD_BLT_STATE_BACKGROUND_COLOR = 1,
125 DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE = 2,
126 DXVAHD_BLT_STATE_ALPHA_FILL = 3,
127 DXVAHD_BLT_STATE_CONSTRICTION = 4,
128 DXVAHD_BLT_STATE_PRIVATE = 1000
129} DXVAHD_BLT_STATE;
130typedef enum _DXVAHD_DEVICE_CAPS {
131 DXVAHD_DEVICE_CAPS_LINEAR_SPACE = 0x1,
132 DXVAHD_DEVICE_CAPS_xvYCC = 0x2,
133 DXVAHD_DEVICE_CAPS_RGB_RANGE_CONVERSION = 0x4,
134 DXVAHD_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION = 0x8
135} DXVAHD_DEVICE_CAPS;
136typedef enum _DXVAHD_DEVICE_TYPE {
137 DXVAHD_DEVICE_TYPE_HARDWARE = 0,
138 DXVAHD_DEVICE_TYPE_SOFTWARE = 1,
139 DXVAHD_DEVICE_TYPE_REFERENCE = 2,
140 DXVAHD_DEVICE_TYPE_OTHER = 3
141} DXVAHD_DEVICE_TYPE;
142typedef enum _DXVAHD_DEVICE_USAGE {
143 DXVAHD_DEVICE_USAGE_PLAYBACK_NORMAL = 0,
144 DXVAHD_DEVICE_USAGE_OPTIMAL_SPEED = 1,
145 DXVAHD_DEVICE_USAGE_OPTIMAL_QUALITY = 2
146} DXVAHD_DEVICE_USAGE;
147typedef enum _DXVAHD_FEATURE_CAPS {
148 DXVAHD_FEATURE_CAPS_ALPHA_FILL = 0x1,
149 DXVAHD_FEATURE_CAPS_CONSTRICTION = 0x2,
150 DXVAHD_FEATURE_CAPS_LUMA_KEY = 0x4,
151 DXVAHD_FEATURE_CAPS_ALPHA_PALETTE = 0x8
152} DXVAHD_FEATURE_CAPS;
153typedef enum _DXVAHD_FILTER {
154 DXVAHD_FILTER_BRIGHTNESS = 0,
155 DXVAHD_FILTER_CONTRAST = 1,
156 DXVAHD_FILTER_HUE = 2,
157 DXVAHD_FILTER_SATURATION = 3,
158 DXVAHD_FILTER_NOISE_REDUCTION = 4,
159 DXVAHD_FILTER_EDGE_ENHANCEMENT = 5,
160 DXVAHD_FILTER_ANAMORPHIC_SCALING = 6
161} DXVAHD_FILTER;
162typedef enum _DXVAHD_FILTER_CAPS {
163 DXVAHD_FILTER_CAPS_BRIGHTNESS = 0x1,
164 DXVAHD_FILTER_CAPS_CONTRAST = 0x2,
165 DXVAHD_FILTER_CAPS_HUE = 0x4,
166 DXVAHD_FILTER_CAPS_SATURATION = 0x8,
167 DXVAHD_FILTER_CAPS_NOISE_REDUCTION = 0x10,
168 DXVAHD_FILTER_CAPS_EDGE_ENHANCEMENT = 0x20,
169 DXVAHD_FILTER_CAPS_ANAMORPHIC_SCALING = 0x40
170} DXVAHD_FILTER_CAPS;
171typedef enum _DXVAHD_FRAME_FORMAT {
172 DXVAHD_FRAME_FORMAT_PROGRESSIVE = 0,
173 DXVAHD_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1,
174 DXVAHD_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2
175} DXVAHD_FRAME_FORMAT;
176typedef enum _DXVAHD_INPUT_FORMAT_CAPS {
177 DXVAHD_INPUT_FORMAT_CAPS_RGB_INTERLACED = 0x1,
178 DXVAHD_INPUT_FORMAT_CAPS_RGB_PROCAMP = 0x2,
179 DXVAHD_INPUT_FORMAT_CAPS_RGB_LUMA_KEY = 0x4,
180 DXVAHD_INPUT_FORMAT_CAPS_PALETTE_INTERLACED = 0x8
181} DXVAHD_INPUT_FORMAT_CAPS;
182typedef enum _DXVAHD_ITELECINE_CAPS {
183 DXVAHD_ITELECINE_CAPS_32 = 0x1,
184 DXVAHD_ITELECINE_CAPS_22 = 0x2,
185 DXVAHD_ITELECINE_CAPS_2224 = 0x4,
186 DXVAHD_ITELECINE_CAPS_2332 = 0x8,
187 DXVAHD_ITELECINE_CAPS_32322 = 0x10,
188 DXVAHD_ITELECINE_CAPS_55 = 0x20,
189 DXVAHD_ITELECINE_CAPS_64 = 0x40,
190 DXVAHD_ITELECINE_CAPS_87 = 0x80,
191 DXVAHD_ITELECINE_CAPS_222222222223 = 0x100,
192 DXVAHD_ITELECINE_CAPS_OTHER = 0x80000000
193} DXVAHD_ITELECINE_CAPS;
194typedef enum _DXVAHD_OUTPUT_RATE {
195 DXVAHD_OUTPUT_RATE_NORMAL = 0,
196 DXVAHD_OUTPUT_RATE_HALF = 1,
197 DXVAHD_OUTPUT_RATE_CUSTOM = 2
198} DXVAHD_OUTPUT_RATE;
199typedef enum _DXVAHD_PROCESSOR_CAPS {
200 DXVAHD_PROCESSOR_CAPS_DEINTERLACE_BLEND = 0x1,
201 DXVAHD_PROCESSOR_CAPS_DEINTERLACE_BOB = 0x2,
202 DXVAHD_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE = 0x4,
203 DXVAHD_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION = 0x8,
204 DXVAHD_PROCESSOR_CAPS_INVERSE_TELECINE = 0x10,
205 DXVAHD_PROCESSOR_CAPS_FRAME_RATE_CONVERSION = 0x20
206} DXVAHD_PROCESSOR_CAPS;
207typedef enum _DXVAHD_STREAM_STATE {
208 DXVAHD_STREAM_STATE_D3DFORMAT = 0,
209 DXVAHD_STREAM_STATE_FRAME_FORMAT = 1,
210 DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE = 2,
211 DXVAHD_STREAM_STATE_OUTPUT_RATE = 3,
212 DXVAHD_STREAM_STATE_SOURCE_RECT = 4,
213 DXVAHD_STREAM_STATE_DESTINATION_RECT = 5,
214 DXVAHD_STREAM_STATE_ALPHA = 6,
215 DXVAHD_STREAM_STATE_PALETTE = 7,
216 DXVAHD_STREAM_STATE_LUMA_KEY = 8,
217 DXVAHD_STREAM_STATE_ASPECT_RATIO = 9,
218 DXVAHD_STREAM_STATE_FILTER_BRIGHTNESS = 100,
219 DXVAHD_STREAM_STATE_FILTER_CONTRAST = 101,
220 DXVAHD_STREAM_STATE_FILTER_HUE = 102,
221 DXVAHD_STREAM_STATE_FILTER_SATURATION = 103,
222 DXVAHD_STREAM_STATE_FILTER_NOISE_REDUCTION = 104,
223 DXVAHD_STREAM_STATE_FILTER_EDGE_ENHANCEMENT = 105,
224 DXVAHD_STREAM_STATE_FILTER_ANAMORPHIC_SCALING = 106,
225 DXVAHD_STREAM_STATE_PRIVATE = 1000
226} DXVAHD_STREAM_STATE;
227typedef enum _DXVAHD_SURFACE_TYPE {
228 DXVAHD_SURFACE_TYPE_VIDEO_INPUT = 0,
229 DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE = 1,
230 DXVAHD_SURFACE_TYPE_VIDEO_OUTPUT = 2
231} DXVAHD_SURFACE_TYPE;
232typedef struct _DXVAHD_VPDEVCAPS {
233 DXVAHD_DEVICE_TYPE DeviceType;
234 UINT DeviceCaps;
235 UINT FeatureCaps;
236 UINT FilterCaps;
237 UINT InputFormatCaps;
238 D3DPOOL InputPool;
239 UINT OutputFormatCount;
240 UINT InputFormatCount;
241 UINT VideoProcessorCount;
242 UINT MaxInputStreams;
243 UINT MaxStreamStates;
244} DXVAHD_VPDEVCAPS;
245typedef struct _DXVAHD_BLT_STATE_ALPHA_FILL_DATA {
246 DXVAHD_ALPHA_FILL_MODE Mode;
247 UINT StreamNumber;
248} DXVAHD_BLT_STATE_ALPHA_FILL_DATA;
249typedef struct _DXVAHD_BLT_STATE_CONSTRICTION_DATA {
250 WINBOOL Enable;
251 SIZE Size;
252} DXVAHD_BLT_STATE_CONSTRICTION_DATA;
253typedef struct _DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA {
254 __C89_NAMELESS union {
255 __C89_NAMELESS struct {
256 UINT Usage : 1;
257 UINT RGB_Range : 1;
258 UINT YCbCr_Matrix : 1;
259 UINT YCbCr_xvYCC : 1;
260 UINT Reserved : 28;
261 } __C89_NAMELESSSTRUCTNAME;
262 UINT Value;
263 } __C89_NAMELESSUNIONNAME;
264} DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA;
265typedef struct _DXVAHD_BLT_STATE_PRIVATE_DATA {
266 GUID Guid;
267 UINT DataSize;
268 void *pData;
269} DXVAHD_BLT_STATE_PRIVATE_DATA;
270typedef struct _DXVAHD_BLT_STATE_TARGET_RECT_DATA {
271 WINBOOL Enable;
272 RECT TargetRect;
273} DXVAHD_BLT_STATE_TARGET_RECT_DATA;
274typedef struct _DXVAHD_RATIONAL {
275 UINT Numerator;
276 UINT Denominator;
277} DXVAHD_RATIONAL;
278typedef struct _DXVAHD_CONTENT_DESC {
279 DXVAHD_FRAME_FORMAT InputFrameFormat;
280 DXVAHD_RATIONAL InputFrameRate;
281 UINT InputWidth;
282 UINT InputHeight;
283 DXVAHD_RATIONAL OutputFrameRate;
284 UINT OutputWidth;
285 UINT OutputHeight;
286} DXVAHD_CONTENT_DESC;
287typedef struct _DXVAHD_CUSTOM_RATE_DATA {
288 DXVAHD_RATIONAL CustomRate;
289 UINT OutputFrames;
290 WINBOOL InputInterlaced;
291 UINT InputFramesOrFields;
292} DXVAHD_CUSTOM_RATE_DATA;
293typedef struct _DXVAHD_FILTER_RANGE_DATA {
294 INT Minimum;
295 INT Maximum;
296 INT Default;
297 FLOAT Multiplier;
298} DXVAHD_FILTER_RANGE_DATA;
299typedef struct _DXVAHD_STREAM_DATA {
300 WINBOOL Enable;
301 UINT OutputIndex;
302 UINT InputFrameOrField;
303 UINT PastFrames;
304 UINT FutureFrames;
305 IDirect3DSurface9 **ppPastSurfaces;
306 IDirect3DSurface9 *pInputSurface;
307 IDirect3DSurface9 **ppFutureSurfaces;
308} DXVAHD_STREAM_DATA;
309typedef struct _DXVAHD_VPCAPS {
310 GUID VPGuid;
311 UINT PastFrames;
312 UINT FutureFrames;
313 UINT ProcessorCaps;
314 UINT ITelecineCaps;
315 UINT CustomRateCount;
316} DXVAHD_VPCAPS;
317typedef struct _DXVAHD_STREAM_STATE_ALPHA_DATA {
318 WINBOOL Enable;
319 FLOAT Alpha;
320} DXVAHD_STREAM_STATE_ALPHA_DATA;
321typedef struct _DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA {
322 WINBOOL Enable;
323 DXVAHD_RATIONAL SourceAspectRatio;
324 DXVAHD_RATIONAL DestinationAspectRatio;
325} DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA;
326typedef struct _DXVAHD_STREAM_STATE_D3DFORMAT_DATA {
327 D3DFORMAT Format;
328} DXVAHD_STREAM_STATE_D3DFORMAT_DATA;
329typedef struct _DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA {
330 WINBOOL Enable;
331 RECT DestinationRect;
332} DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA;
333typedef struct _DXVAHD_STREAM_STATE_FILTER_DATA {
334 WINBOOL Enable;
335 INT Level;
336} DXVAHD_STREAM_STATE_FILTER_DATA;
337typedef struct _DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA {
338 DXVAHD_FRAME_FORMAT FrameFormat;
339} DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA;
340typedef struct _DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA {
341 __C89_NAMELESS union {
342 __C89_NAMELESS struct {
343 UINT Type : 1;
344 UINT RGB_Range : 1;
345 UINT YCbCr_Matrix : 1;
346 UINT YCbCr_xvYCC : 1;
347 UINT Reserved : 28;
348 } __C89_NAMELESSSTRUCTNAME;
349 UINT Value;
350 } __C89_NAMELESSUNIONNAME;
351} DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA;
352typedef struct _DXVAHD_STREAM_STATE_LUMA_KEY_DATA {
353 WINBOOL Enable;
354 FLOAT Lower;
355 FLOAT Upper;
356} DXVAHD_STREAM_STATE_LUMA_KEY_DATA;
357typedef struct _DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA {
358 WINBOOL RepeatFrame;
359 DXVAHD_OUTPUT_RATE OutputRate;
360 DXVAHD_RATIONAL CustomRate;
361} DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA;
362typedef struct _DXVAHD_STREAM_STATE_SOURCE_RECT_DATA {
363 WINBOOL Enable;
364 RECT SourceRect;
365} DXVAHD_STREAM_STATE_SOURCE_RECT_DATA;
366typedef struct _DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA {
367 WINBOOL Enable;
368 UINT ITelecineFlags;
369 UINT Frames;
370 UINT InputField;
371} DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA;
372typedef struct _DXVAHD_STREAM_STATE_PRIVATE_DATA {
373 GUID Guid;
374 UINT DataSize;
375 void *pData;
376} DXVAHD_STREAM_STATE_PRIVATE_DATA;
377typedef struct _DXVAHD_STREAM_STATE_PALETTE_DATA {
378 UINT Count;
379 D3DCOLOR *pEntries;
380} DXVAHD_STREAM_STATE_PALETTE_DATA;
381typedef HRESULT ( CALLBACK *PDXVAHDSW_CreateDevice )(IDirect3DDevice9Ex *pD3DDevice,HANDLE *phDevice);
382typedef HRESULT ( CALLBACK *PDXVAHDSW_ProposeVideoPrivateFormat )(HANDLE hDevice,D3DFORMAT *pFormat);
383typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorDeviceCaps )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,DXVAHD_VPDEVCAPS *pCaps);
384typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorOutputFormats )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,D3DFORMAT *pFormats);
385typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorInputFormats )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,D3DFORMAT *pFormats);
386typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorCaps )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,DXVAHD_VPCAPS *pCaps);
387typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorCustomRates )(HANDLE hDevice,const GUID *pVPGuid,UINT Count,DXVAHD_CUSTOM_RATE_DATA *pRates);
388typedef HRESULT ( CALLBACK *PDXVAHDSW_SetVideoProcessBltState )(HANDLE hVideoProcessor,DXVAHD_BLT_STATE State,UINT DataSize,const void *pData);
389typedef HRESULT ( CALLBACK *PDXVAHDSW_CreateVideoProcessor )(HANDLE hDevice,const GUID *pVPGuid,HANDLE *phVideoProcessor);
390typedef HRESULT ( CALLBACK *PDXVAHDSW_DestroyDevice )(HANDLE hDevice);
391typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorFilterRange )(HANDLE hDevice,DXVAHD_FILTER Filter,DXVAHD_FILTER_RANGE_DATA *pRange);
392typedef HRESULT ( CALLBACK *PDXVAHDSW_DestroyVideoProcessor )(HANDLE hVideoProcessor);
393typedef HRESULT ( CALLBACK *PDXVAHDSW_VideoProcessBltHD )(HANDLE hVideoProcessor,IDirect3DSurface9 *pOutputSurface,UINT OutputFrame,UINT StreamCount,const DXVAHD_STREAM_DATA *pStreams);
394typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessStreamStatePrivate )(HANDLE hVideoProcessor,UINT StreamNumber,DXVAHD_STREAM_STATE_PRIVATE_DATA *pData);
395typedef HRESULT ( CALLBACK *PDXVAHDSW_SetVideoProcessStreamState )(HANDLE hVideoProcessor,UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,const void *pData);
396typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessBltStatePrivate )(HANDLE hVideoProcessor,DXVAHD_BLT_STATE_PRIVATE_DATA *pData);
397typedef HRESULT ( CALLBACK *PDXVAHDSW_Plugin )(UINT Size,void *pCallbacks);
398
399typedef struct _DXVAHDSW_CALLBACKS {
400 PDXVAHDSW_CreateDevice CreateDevice;
401 PDXVAHDSW_ProposeVideoPrivateFormat ProposeVideoPrivateFormat;
402 PDXVAHDSW_GetVideoProcessorDeviceCaps GetVideoProcessorDeviceCaps;
403 PDXVAHDSW_GetVideoProcessorOutputFormats GetVideoProcessorOutputFormats;
404 PDXVAHDSW_GetVideoProcessorInputFormats GetVideoProcessorInputFormats;
405 PDXVAHDSW_GetVideoProcessorCaps GetVideoProcessorCaps;
406 PDXVAHDSW_GetVideoProcessorCustomRates GetVideoProcessorCustomRates;
407 PDXVAHDSW_GetVideoProcessorFilterRange GetVideoProcessorFilterRange;
408 PDXVAHDSW_DestroyDevice DestroyDevice;
409 PDXVAHDSW_CreateVideoProcessor CreateVideoProcessor;
410 PDXVAHDSW_SetVideoProcessBltState SetVideoProcessBltState;
411 PDXVAHDSW_GetVideoProcessBltStatePrivate GetVideoProcessBltStatePrivate;
412 PDXVAHDSW_SetVideoProcessStreamState SetVideoProcessStreamState;
413 PDXVAHDSW_GetVideoProcessStreamStatePrivate GetVideoProcessStreamStatePrivate;
414 PDXVAHDSW_VideoProcessBltHD VideoProcessBltHD;
415 PDXVAHDSW_DestroyVideoProcessor DestroyVideoProcessor;
416} DXVAHDSW_CALLBACKS;
417
418HRESULT WINAPI DXVAHD_CreateDevice(IDirect3DDevice9Ex *pD3DDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,PDXVAHDSW_Plugin pPlugin,IDXVAHD_Device **ppDevice);
419
420/*****************************************************************************
421 * IDXVAHD_Device interface
422 */
423#ifndef __IDXVAHD_Device_INTERFACE_DEFINED__
424#define __IDXVAHD_Device_INTERFACE_DEFINED__
425
426DEFINE_GUID(IID_IDXVAHD_Device, 0x95f12dfd, 0xd77e, 0x49be, 0x81,0x5f, 0x57,0xd5,0x79,0x63,0x4d,0x6d);
427#if defined(__cplusplus) && !defined(CINTERFACE)
428MIDL_INTERFACE("95f12dfd-d77e-49be-815f-57d579634d6d")
429IDXVAHD_Device : public IUnknown
430{
431 virtual HRESULT STDMETHODCALLTYPE CreateVideoSurface(
432 UINT Width,
433 UINT Height,
434 D3DFORMAT Format,
435 D3DPOOL Pool,
436 DWORD Usage,
437 DXVAHD_SURFACE_TYPE Type,
438 UINT NumSurfaces,
439 IDirect3DSurface9 **ppSurfaces,
440 HANDLE *pSharedHandle) = 0;
441
442 virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorDeviceCaps(
443 DXVAHD_VPDEVCAPS *pCaps) = 0;
444
445 virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorOutputFormats(
446 UINT Count,
447 D3DFORMAT *pFormats) = 0;
448
449 virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorInputFormats(
450 UINT Count,
451 D3DFORMAT *pFormats) = 0;
452
453 virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCaps(
454 UINT Count,
455 DXVAHD_VPCAPS *pCaps) = 0;
456
457 virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorCustomRates(
458 const GUID *pVPGuid,
459 UINT Count,
460 DXVAHD_CUSTOM_RATE_DATA *pRates) = 0;
461
462 virtual HRESULT STDMETHODCALLTYPE GetVideoProcessorFilterRange(
463 DXVAHD_FILTER Filter,
464 DXVAHD_FILTER_RANGE_DATA *pRange) = 0;
465
466 virtual HRESULT STDMETHODCALLTYPE CreateVideoProcessor(
467 const GUID *pVPGuid,
468 IDXVAHD_VideoProcessor **ppVideoProcessor) = 0;
469
470};
471#ifdef __CRT_UUID_DECL
472__CRT_UUID_DECL(IDXVAHD_Device, 0x95f12dfd, 0xd77e, 0x49be, 0x81,0x5f, 0x57,0xd5,0x79,0x63,0x4d,0x6d)
473#endif
474#else
475typedef struct IDXVAHD_DeviceVtbl {
476 BEGIN_INTERFACE
477
478 /*** IUnknown methods ***/
479 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
480 IDXVAHD_Device *This,
481 REFIID riid,
482 void **ppvObject);
483
484 ULONG (STDMETHODCALLTYPE *AddRef)(
485 IDXVAHD_Device *This);
486
487 ULONG (STDMETHODCALLTYPE *Release)(
488 IDXVAHD_Device *This);
489
490 /*** IDXVAHD_Device methods ***/
491 HRESULT (STDMETHODCALLTYPE *CreateVideoSurface)(
492 IDXVAHD_Device *This,
493 UINT Width,
494 UINT Height,
495 D3DFORMAT Format,
496 D3DPOOL Pool,
497 DWORD Usage,
498 DXVAHD_SURFACE_TYPE Type,
499 UINT NumSurfaces,
500 IDirect3DSurface9 **ppSurfaces,
501 HANDLE *pSharedHandle);
502
503 HRESULT (STDMETHODCALLTYPE *GetVideoProcessorDeviceCaps)(
504 IDXVAHD_Device *This,
505 DXVAHD_VPDEVCAPS *pCaps);
506
507 HRESULT (STDMETHODCALLTYPE *GetVideoProcessorOutputFormats)(
508 IDXVAHD_Device *This,
509 UINT Count,
510 D3DFORMAT *pFormats);
511
512 HRESULT (STDMETHODCALLTYPE *GetVideoProcessorInputFormats)(
513 IDXVAHD_Device *This,
514 UINT Count,
515 D3DFORMAT *pFormats);
516
517 HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCaps)(
518 IDXVAHD_Device *This,
519 UINT Count,
520 DXVAHD_VPCAPS *pCaps);
521
522 HRESULT (STDMETHODCALLTYPE *GetVideoProcessorCustomRates)(
523 IDXVAHD_Device *This,
524 const GUID *pVPGuid,
525 UINT Count,
526 DXVAHD_CUSTOM_RATE_DATA *pRates);
527
528 HRESULT (STDMETHODCALLTYPE *GetVideoProcessorFilterRange)(
529 IDXVAHD_Device *This,
530 DXVAHD_FILTER Filter,
531 DXVAHD_FILTER_RANGE_DATA *pRange);
532
533 HRESULT (STDMETHODCALLTYPE *CreateVideoProcessor)(
534 IDXVAHD_Device *This,
535 const GUID *pVPGuid,
536 IDXVAHD_VideoProcessor **ppVideoProcessor);
537
538 END_INTERFACE
539} IDXVAHD_DeviceVtbl;
540
541interface IDXVAHD_Device {
542 CONST_VTBL IDXVAHD_DeviceVtbl* lpVtbl;
543};
544
545#ifdef COBJMACROS
546#ifndef WIDL_C_INLINE_WRAPPERS
547/*** IUnknown methods ***/
548#define IDXVAHD_Device_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
549#define IDXVAHD_Device_AddRef(This) (This)->lpVtbl->AddRef(This)
550#define IDXVAHD_Device_Release(This) (This)->lpVtbl->Release(This)
551/*** IDXVAHD_Device methods ***/
552#define IDXVAHD_Device_CreateVideoSurface(This,Width,Height,Format,Pool,Usage,Type,NumSurfaces,ppSurfaces,pSharedHandle) (This)->lpVtbl->CreateVideoSurface(This,Width,Height,Format,Pool,Usage,Type,NumSurfaces,ppSurfaces,pSharedHandle)
553#define IDXVAHD_Device_GetVideoProcessorDeviceCaps(This,pCaps) (This)->lpVtbl->GetVideoProcessorDeviceCaps(This,pCaps)
554#define IDXVAHD_Device_GetVideoProcessorOutputFormats(This,Count,pFormats) (This)->lpVtbl->GetVideoProcessorOutputFormats(This,Count,pFormats)
555#define IDXVAHD_Device_GetVideoProcessorInputFormats(This,Count,pFormats) (This)->lpVtbl->GetVideoProcessorInputFormats(This,Count,pFormats)
556#define IDXVAHD_Device_GetVideoProcessorCaps(This,Count,pCaps) (This)->lpVtbl->GetVideoProcessorCaps(This,Count,pCaps)
557#define IDXVAHD_Device_GetVideoProcessorCustomRates(This,pVPGuid,Count,pRates) (This)->lpVtbl->GetVideoProcessorCustomRates(This,pVPGuid,Count,pRates)
558#define IDXVAHD_Device_GetVideoProcessorFilterRange(This,Filter,pRange) (This)->lpVtbl->GetVideoProcessorFilterRange(This,Filter,pRange)
559#define IDXVAHD_Device_CreateVideoProcessor(This,pVPGuid,ppVideoProcessor) (This)->lpVtbl->CreateVideoProcessor(This,pVPGuid,ppVideoProcessor)
560#else
561/*** IUnknown methods ***/
562static inline HRESULT IDXVAHD_Device_QueryInterface(IDXVAHD_Device* This,REFIID riid,void **ppvObject) {
563 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
564}
565static inline ULONG IDXVAHD_Device_AddRef(IDXVAHD_Device* This) {
566 return This->lpVtbl->AddRef(This);
567}
568static inline ULONG IDXVAHD_Device_Release(IDXVAHD_Device* This) {
569 return This->lpVtbl->Release(This);
570}
571/*** IDXVAHD_Device methods ***/
572static inline HRESULT IDXVAHD_Device_CreateVideoSurface(IDXVAHD_Device* This,UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,DWORD Usage,DXVAHD_SURFACE_TYPE Type,UINT NumSurfaces,IDirect3DSurface9 **ppSurfaces,HANDLE *pSharedHandle) {
573 return This->lpVtbl->CreateVideoSurface(This,Width,Height,Format,Pool,Usage,Type,NumSurfaces,ppSurfaces,pSharedHandle);
574}
575static inline HRESULT IDXVAHD_Device_GetVideoProcessorDeviceCaps(IDXVAHD_Device* This,DXVAHD_VPDEVCAPS *pCaps) {
576 return This->lpVtbl->GetVideoProcessorDeviceCaps(This,pCaps);
577}
578static inline HRESULT IDXVAHD_Device_GetVideoProcessorOutputFormats(IDXVAHD_Device* This,UINT Count,D3DFORMAT *pFormats) {
579 return This->lpVtbl->GetVideoProcessorOutputFormats(This,Count,pFormats);
580}
581static inline HRESULT IDXVAHD_Device_GetVideoProcessorInputFormats(IDXVAHD_Device* This,UINT Count,D3DFORMAT *pFormats) {
582 return This->lpVtbl->GetVideoProcessorInputFormats(This,Count,pFormats);
583}
584static inline HRESULT IDXVAHD_Device_GetVideoProcessorCaps(IDXVAHD_Device* This,UINT Count,DXVAHD_VPCAPS *pCaps) {
585 return This->lpVtbl->GetVideoProcessorCaps(This,Count,pCaps);
586}
587static inline HRESULT IDXVAHD_Device_GetVideoProcessorCustomRates(IDXVAHD_Device* This,const GUID *pVPGuid,UINT Count,DXVAHD_CUSTOM_RATE_DATA *pRates) {
588 return This->lpVtbl->GetVideoProcessorCustomRates(This,pVPGuid,Count,pRates);
589}
590static inline HRESULT IDXVAHD_Device_GetVideoProcessorFilterRange(IDXVAHD_Device* This,DXVAHD_FILTER Filter,DXVAHD_FILTER_RANGE_DATA *pRange) {
591 return This->lpVtbl->GetVideoProcessorFilterRange(This,Filter,pRange);
592}
593static inline HRESULT IDXVAHD_Device_CreateVideoProcessor(IDXVAHD_Device* This,const GUID *pVPGuid,IDXVAHD_VideoProcessor **ppVideoProcessor) {
594 return This->lpVtbl->CreateVideoProcessor(This,pVPGuid,ppVideoProcessor);
595}
596#endif
597#endif
598
599#endif
600
601
602#endif /* __IDXVAHD_Device_INTERFACE_DEFINED__ */
603
604/*****************************************************************************
605 * IDXVAHD_VideoProcessor interface
606 */
607#ifndef __IDXVAHD_VideoProcessor_INTERFACE_DEFINED__
608#define __IDXVAHD_VideoProcessor_INTERFACE_DEFINED__
609
610DEFINE_GUID(IID_IDXVAHD_VideoProcessor, 0x95f4edf4, 0x6e03, 0x4cd7, 0xbe,0x1b, 0x30,0x75,0xd6,0x65,0xaa,0x52);
611#if defined(__cplusplus) && !defined(CINTERFACE)
612MIDL_INTERFACE("95f4edf4-6e03-4cd7-be1b-3075d665aa52")
613IDXVAHD_VideoProcessor : public IUnknown
614{
615 virtual HRESULT STDMETHODCALLTYPE SetVideoProcessBltState(
616 DXVAHD_BLT_STATE State,
617 UINT DataSize,
618 const void *pData) = 0;
619
620 virtual HRESULT STDMETHODCALLTYPE GetVideoProcessBltState(
621 DXVAHD_BLT_STATE State,
622 UINT DataSize,
623 void *pData) = 0;
624
625 virtual HRESULT STDMETHODCALLTYPE SetVideoProcessStreamState(
626 UINT StreamNumber,
627 DXVAHD_STREAM_STATE State,
628 UINT DataSize,
629 const void *pData) = 0;
630
631 virtual HRESULT STDMETHODCALLTYPE GetVideoProcessStreamState(
632 UINT StreamNumber,
633 DXVAHD_STREAM_STATE State,
634 UINT DataSize,
635 void *pData) = 0;
636
637 virtual HRESULT STDMETHODCALLTYPE VideoProcessBltHD(
638 IDirect3DSurface9 *pOutputSurface,
639 UINT OutputFrame,
640 UINT StreamCount,
641 const DXVAHD_STREAM_DATA *pStreams) = 0;
642
643};
644#ifdef __CRT_UUID_DECL
645__CRT_UUID_DECL(IDXVAHD_VideoProcessor, 0x95f4edf4, 0x6e03, 0x4cd7, 0xbe,0x1b, 0x30,0x75,0xd6,0x65,0xaa,0x52)
646#endif
647#else
648typedef struct IDXVAHD_VideoProcessorVtbl {
649 BEGIN_INTERFACE
650
651 /*** IUnknown methods ***/
652 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
653 IDXVAHD_VideoProcessor *This,
654 REFIID riid,
655 void **ppvObject);
656
657 ULONG (STDMETHODCALLTYPE *AddRef)(
658 IDXVAHD_VideoProcessor *This);
659
660 ULONG (STDMETHODCALLTYPE *Release)(
661 IDXVAHD_VideoProcessor *This);
662
663 /*** IDXVAHD_VideoProcessor methods ***/
664 HRESULT (STDMETHODCALLTYPE *SetVideoProcessBltState)(
665 IDXVAHD_VideoProcessor *This,
666 DXVAHD_BLT_STATE State,
667 UINT DataSize,
668 const void *pData);
669
670 HRESULT (STDMETHODCALLTYPE *GetVideoProcessBltState)(
671 IDXVAHD_VideoProcessor *This,
672 DXVAHD_BLT_STATE State,
673 UINT DataSize,
674 void *pData);
675
676 HRESULT (STDMETHODCALLTYPE *SetVideoProcessStreamState)(
677 IDXVAHD_VideoProcessor *This,
678 UINT StreamNumber,
679 DXVAHD_STREAM_STATE State,
680 UINT DataSize,
681 const void *pData);
682
683 HRESULT (STDMETHODCALLTYPE *GetVideoProcessStreamState)(
684 IDXVAHD_VideoProcessor *This,
685 UINT StreamNumber,
686 DXVAHD_STREAM_STATE State,
687 UINT DataSize,
688 void *pData);
689
690 HRESULT (STDMETHODCALLTYPE *VideoProcessBltHD)(
691 IDXVAHD_VideoProcessor *This,
692 IDirect3DSurface9 *pOutputSurface,
693 UINT OutputFrame,
694 UINT StreamCount,
695 const DXVAHD_STREAM_DATA *pStreams);
696
697 END_INTERFACE
698} IDXVAHD_VideoProcessorVtbl;
699
700interface IDXVAHD_VideoProcessor {
701 CONST_VTBL IDXVAHD_VideoProcessorVtbl* lpVtbl;
702};
703
704#ifdef COBJMACROS
705#ifndef WIDL_C_INLINE_WRAPPERS
706/*** IUnknown methods ***/
707#define IDXVAHD_VideoProcessor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
708#define IDXVAHD_VideoProcessor_AddRef(This) (This)->lpVtbl->AddRef(This)
709#define IDXVAHD_VideoProcessor_Release(This) (This)->lpVtbl->Release(This)
710/*** IDXVAHD_VideoProcessor methods ***/
711#define IDXVAHD_VideoProcessor_SetVideoProcessBltState(This,State,DataSize,pData) (This)->lpVtbl->SetVideoProcessBltState(This,State,DataSize,pData)
712#define IDXVAHD_VideoProcessor_GetVideoProcessBltState(This,State,DataSize,pData) (This)->lpVtbl->GetVideoProcessBltState(This,State,DataSize,pData)
713#define IDXVAHD_VideoProcessor_SetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData) (This)->lpVtbl->SetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData)
714#define IDXVAHD_VideoProcessor_GetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData) (This)->lpVtbl->GetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData)
715#define IDXVAHD_VideoProcessor_VideoProcessBltHD(This,pOutputSurface,OutputFrame,StreamCount,pStreams) (This)->lpVtbl->VideoProcessBltHD(This,pOutputSurface,OutputFrame,StreamCount,pStreams)
716#else
717/*** IUnknown methods ***/
718static inline HRESULT IDXVAHD_VideoProcessor_QueryInterface(IDXVAHD_VideoProcessor* This,REFIID riid,void **ppvObject) {
719 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
720}
721static inline ULONG IDXVAHD_VideoProcessor_AddRef(IDXVAHD_VideoProcessor* This) {
722 return This->lpVtbl->AddRef(This);
723}
724static inline ULONG IDXVAHD_VideoProcessor_Release(IDXVAHD_VideoProcessor* This) {
725 return This->lpVtbl->Release(This);
726}
727/*** IDXVAHD_VideoProcessor methods ***/
728static inline HRESULT IDXVAHD_VideoProcessor_SetVideoProcessBltState(IDXVAHD_VideoProcessor* This,DXVAHD_BLT_STATE State,UINT DataSize,const void *pData) {
729 return This->lpVtbl->SetVideoProcessBltState(This,State,DataSize,pData);
730}
731static inline HRESULT IDXVAHD_VideoProcessor_GetVideoProcessBltState(IDXVAHD_VideoProcessor* This,DXVAHD_BLT_STATE State,UINT DataSize,void *pData) {
732 return This->lpVtbl->GetVideoProcessBltState(This,State,DataSize,pData);
733}
734static inline HRESULT IDXVAHD_VideoProcessor_SetVideoProcessStreamState(IDXVAHD_VideoProcessor* This,UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,const void *pData) {
735 return This->lpVtbl->SetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData);
736}
737static inline HRESULT IDXVAHD_VideoProcessor_GetVideoProcessStreamState(IDXVAHD_VideoProcessor* This,UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,void *pData) {
738 return This->lpVtbl->GetVideoProcessStreamState(This,StreamNumber,State,DataSize,pData);
739}
740static inline HRESULT IDXVAHD_VideoProcessor_VideoProcessBltHD(IDXVAHD_VideoProcessor* This,IDirect3DSurface9 *pOutputSurface,UINT OutputFrame,UINT StreamCount,const DXVAHD_STREAM_DATA *pStreams) {
741 return This->lpVtbl->VideoProcessBltHD(This,pOutputSurface,OutputFrame,StreamCount,pStreams);
742}
743#endif
744#endif
745
746#endif
747
748
749#endif /* __IDXVAHD_VideoProcessor_INTERFACE_DEFINED__ */
750
751#endif /*(_WIN32_WINNT >= 0x0601)*/
752#endif /*WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)*/
753/* Begin additional prototypes for all interfaces */
754
755
756/* End additional prototypes */
757
758#ifdef __cplusplus
759}
760#endif
761
762#endif /* __dxvahd_h__ */