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__ */