25typedef enum _DXVAHD_BLT_STATE
27 DXVAHD_BLT_STATE_TARGET_RECT = 0,
28 DXVAHD_BLT_STATE_BACKGROUND_COLOR = 1,
29 DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE = 2,
30 DXVAHD_BLT_STATE_ALPHA_FILL = 3,
31 DXVAHD_BLT_STATE_CONSTRICTION = 4,
32 DXVAHD_BLT_STATE_PRIVATE = 1000,
35typedef enum _DXVAHD_DEVICE_TYPE
37 DXVAHD_DEVICE_TYPE_HARDWARE = 0,
38 DXVAHD_DEVICE_TYPE_SOFTWARE = 1,
39 DXVAHD_DEVICE_TYPE_REFERENCE = 2,
40 DXVAHD_DEVICE_TYPE_OTHER = 3,
43typedef enum _DXVAHD_DEVICE_USAGE
45 DXVAHD_DEVICE_USAGE_PLAYBACK_NORMAL = 0,
46 DXVAHD_DEVICE_USAGE_OPTIMAL_SPEED = 1,
47 DXVAHD_DEVICE_USAGE_OPTIMAL_QUALITY = 2,
50typedef enum _DXVAHD_FILTER
52 DXVAHD_FILTER_BRIGHTNESS = 0,
53 DXVAHD_FILTER_CONTRAST = 1,
54 DXVAHD_FILTER_HUE = 2,
55 DXVAHD_FILTER_SATURATION = 3,
56 DXVAHD_FILTER_NOISE_REDUCTION = 4,
57 DXVAHD_FILTER_EDGE_ENHANCEMENT = 5,
58 DXVAHD_FILTER_ANAMORPHIC_SCALING = 6,
61typedef enum _DXVAHD_FRAME_FORMAT
63 DXVAHD_FRAME_FORMAT_PROGRESSIVE = 0,
64 DXVAHD_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1,
65 DXVAHD_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2,
68typedef enum _DXVAHD_STREAM_STATE
70 DXVAHD_STREAM_STATE_D3DFORMAT = 0,
71 DXVAHD_STREAM_STATE_FRAME_FORMAT = 1,
72 DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE = 2,
73 DXVAHD_STREAM_STATE_OUTPUT_RATE = 3,
74 DXVAHD_STREAM_STATE_SOURCE_RECT = 4,
75 DXVAHD_STREAM_STATE_DESTINATION_RECT = 5,
76 DXVAHD_STREAM_STATE_ALPHA = 6,
77 DXVAHD_STREAM_STATE_PALETTE = 7,
78 DXVAHD_STREAM_STATE_LUMA_KEY = 8,
79 DXVAHD_STREAM_STATE_ASPECT_RATIO = 9,
80 DXVAHD_STREAM_STATE_FILTER_BRIGHTNESS = 100,
81 DXVAHD_STREAM_STATE_FILTER_CONTRAST = 101,
82 DXVAHD_STREAM_STATE_FILTER_HUE = 102,
83 DXVAHD_STREAM_STATE_FILTER_SATURATION = 103,
84 DXVAHD_STREAM_STATE_FILTER_NOISE_REDUCTION = 104,
85 DXVAHD_STREAM_STATE_FILTER_EDGE_ENHANCEMENT = 105,
86 DXVAHD_STREAM_STATE_FILTER_ANAMORPHIC_SCALING = 106,
87 DXVAHD_STREAM_STATE_PRIVATE = 1000,
90typedef enum _DXVAHD_SURFACE_TYPE
92 DXVAHD_SURFACE_TYPE_VIDEO_INPUT = 0,
93 DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE = 1,
94 DXVAHD_SURFACE_TYPE_VIDEO_OUTPUT = 2,
97typedef struct _DXVAHD_RATIONAL
103typedef struct _DXVAHD_CONTENT_DESC
105 DXVAHD_FRAME_FORMAT InputFrameFormat;
106 DXVAHD_RATIONAL InputFrameRate;
109 DXVAHD_RATIONAL OutputFrameRate;
112} DXVAHD_CONTENT_DESC;
114typedef struct _DXVAHD_CUSTOM_RATE_DATA
116 DXVAHD_RATIONAL CustomRate;
118 BOOL InputInterlaced;
119 UINT InputFramesOrFields;
120} DXVAHD_CUSTOM_RATE_DATA;
122typedef struct _DXVAHD_FILTER_RANGE_DATA
128} DXVAHD_FILTER_RANGE_DATA;
130typedef struct _DXVAHD_STREAM_DATA
134 UINT InputFrameOrField;
137 IDirect3DSurface9 **ppPastSurfaces;
138 IDirect3DSurface9 *pInputSurface;
139 IDirect3DSurface9 **ppFutureSurfaces;
142typedef struct _DXVAHD_VPDEVCAPS
144 DXVAHD_DEVICE_TYPE DeviceType;
148 UINT InputFormatCaps;
150 UINT OutputFormatCount;
151 UINT InputFormatCount;
152 UINT VideoProcessorCount;
153 UINT MaxInputStreams;
154 UINT MaxStreamStates;
157typedef struct _DXVAHD_VPCAPS
164 UINT CustomRateCount;
167typedef HRESULT (__stdcall *PDXVAHDSW_Plugin)(UINT size, void *callbacks);
172 uuid(95f4edf4-6e03-4cd7-be1b-3075d665aa52),
174interface IDXVAHD_VideoProcessor : IUnknown
176 HRESULT SetVideoProcessBltState(DXVAHD_BLT_STATE state, UINT size, const void *data);
177 HRESULT GetVideoProcessBltState(DXVAHD_BLT_STATE state, UINT size, void *data);
178 HRESULT SetVideoProcessStreamState(UINT stream_idx, DXVAHD_STREAM_STATE state, UINT size, const void *data);
179 HRESULT GetVideoProcessStreamState(UINT stream_idx, DXVAHD_STREAM_STATE state, UINT size, void *data);
180 HRESULT VideoProcessBltHD(IDirect3DSurface9 *surface, UINT frame_idx,
181 UINT stream_count, const DXVAHD_STREAM_DATA *streams);
187 uuid(95f12dfd-d77e-49be-815f-57d579634d6d),
189interface IDXVAHD_Device : IUnknown
191 HRESULT CreateVideoSurface(UINT width, UINT height, D3DFORMAT format, D3DPOOL pool, DWORD usage,
192 DXVAHD_SURFACE_TYPE type, UINT count, IDirect3DSurface9 **surfaces, HANDLE *shared_handle);
193 HRESULT GetVideoProcessorDeviceCaps(DXVAHD_VPDEVCAPS *caps);
194 HRESULT GetVideoProcessorOutputFormats(UINT count, D3DFORMAT *formats);
195 HRESULT GetVideoProcessorInputFormats(UINT count, D3DFORMAT *formats);
196 HRESULT GetVideoProcessorCaps(UINT count, DXVAHD_VPCAPS *caps);
197 HRESULT GetVideoProcessorCustomRates(const GUID *guid, UINT count, DXVAHD_CUSTOM_RATE_DATA *rates);
198 HRESULT GetVideoProcessorFilterRange(DXVAHD_FILTER filter, DXVAHD_FILTER_RANGE_DATA *range);
199 HRESULT CreateVideoProcessor(const GUID *guid, IDXVAHD_VideoProcessor **processor);
202HRESULT __stdcall DXVAHD_CreateDevice(IDirect3DDevice9Ex *d3d9_device, const DXVAHD_CONTENT_DESC *desc,
203 DXVAHD_DEVICE_USAGE usage, PDXVAHDSW_Plugin plugin, IDXVAHD_Device **device);
CD3D10_BUFFER_DESC D3D10_BUFFER_DESC cpp_quote(" ~CD3D10_BUFFER_DESC() {}") operator const D3D10_BUFFER_DESC &() const
enum _D3DFORMAT D3DFORMAT