dxvahd.idl 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. cpp_quote("#include <winapifamily.h>")
  7. cpp_quote("")
  8. cpp_quote("#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)")
  9. cpp_quote("")
  10. cpp_quote("#if (_WIN32_WINNT >= 0x0601)")
  11. import "unknwn.idl";
  12. cpp_quote("#if 0")
  13. interface IDirect3DSurface9;
  14. interface IDirect3DDevice9Ex;
  15. typedef DWORD D3DFORMAT;
  16. typedef DWORD D3DPOOL;
  17. typedef struct { char dummy; } D3DCOLOR;
  18. cpp_quote("#endif")
  19. cpp_quote("#ifndef CALLBACK")
  20. cpp_quote("#if defined(_ARM_)")
  21. cpp_quote("#define CALLBACK")
  22. cpp_quote("#else")
  23. cpp_quote("#define CALLBACK __stdcall")
  24. cpp_quote("#endif")
  25. cpp_quote("#endif")
  26. interface IDXVAHD_Device;
  27. interface IDXVAHD_VideoProcessor;
  28. typedef enum _DXVAHD_ALPHA_FILL_MODE {
  29. DXVAHD_ALPHA_FILL_MODE_OPAQUE = 0,
  30. DXVAHD_ALPHA_FILL_MODE_BACKGROUND = 1,
  31. DXVAHD_ALPHA_FILL_MODE_DESTINATION = 2,
  32. DXVAHD_ALPHA_FILL_MODE_SOURCE_STREAM = 3
  33. } DXVAHD_ALPHA_FILL_MODE;
  34. typedef struct _DXVAHD_COLOR_YCbCrA {
  35. FLOAT Y;
  36. FLOAT Cb;
  37. FLOAT Cr;
  38. FLOAT A;
  39. } DXVAHD_COLOR_YCbCrA;
  40. typedef struct _DXVAHD_COLOR_RGBA {
  41. FLOAT R;
  42. FLOAT G;
  43. FLOAT B;
  44. FLOAT A;
  45. } DXVAHD_COLOR_RGBA;
  46. typedef union _DXVAHD_COLOR {
  47. DXVAHD_COLOR_RGBA RGB;
  48. DXVAHD_COLOR_YCbCrA YCbCr;
  49. } DXVAHD_COLOR;
  50. typedef struct _DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA {
  51. WINBOOL YCbCr;
  52. DXVAHD_COLOR BackgroundColor;
  53. } DXVAHD_BLT_STATE_BACKGROUND_COLOR_DATA;
  54. typedef enum _DXVAHD_BLT_STATE {
  55. DXVAHD_BLT_STATE_TARGET_RECT = 0,
  56. DXVAHD_BLT_STATE_BACKGROUND_COLOR = 1,
  57. DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE = 2,
  58. DXVAHD_BLT_STATE_ALPHA_FILL = 3,
  59. DXVAHD_BLT_STATE_CONSTRICTION = 4,
  60. DXVAHD_BLT_STATE_PRIVATE = 1000
  61. } DXVAHD_BLT_STATE;
  62. typedef enum _DXVAHD_DEVICE_CAPS {
  63. DXVAHD_DEVICE_CAPS_LINEAR_SPACE = 0x1,
  64. DXVAHD_DEVICE_CAPS_xvYCC = 0x2,
  65. DXVAHD_DEVICE_CAPS_RGB_RANGE_CONVERSION = 0x4,
  66. DXVAHD_DEVICE_CAPS_YCbCr_MATRIX_CONVERSION = 0x8
  67. } DXVAHD_DEVICE_CAPS;
  68. typedef enum _DXVAHD_DEVICE_TYPE {
  69. DXVAHD_DEVICE_TYPE_HARDWARE = 0,
  70. DXVAHD_DEVICE_TYPE_SOFTWARE = 1,
  71. DXVAHD_DEVICE_TYPE_REFERENCE = 2,
  72. DXVAHD_DEVICE_TYPE_OTHER = 3
  73. } DXVAHD_DEVICE_TYPE;
  74. typedef enum _DXVAHD_DEVICE_USAGE {
  75. DXVAHD_DEVICE_USAGE_PLAYBACK_NORMAL = 0,
  76. DXVAHD_DEVICE_USAGE_OPTIMAL_SPEED = 1,
  77. DXVAHD_DEVICE_USAGE_OPTIMAL_QUALITY = 2
  78. } DXVAHD_DEVICE_USAGE;
  79. typedef enum _DXVAHD_FEATURE_CAPS {
  80. DXVAHD_FEATURE_CAPS_ALPHA_FILL = 0x1,
  81. DXVAHD_FEATURE_CAPS_CONSTRICTION = 0x2,
  82. DXVAHD_FEATURE_CAPS_LUMA_KEY = 0x4,
  83. DXVAHD_FEATURE_CAPS_ALPHA_PALETTE = 0x8
  84. } DXVAHD_FEATURE_CAPS;
  85. typedef enum _DXVAHD_FILTER {
  86. DXVAHD_FILTER_BRIGHTNESS = 0,
  87. DXVAHD_FILTER_CONTRAST = 1,
  88. DXVAHD_FILTER_HUE = 2,
  89. DXVAHD_FILTER_SATURATION = 3,
  90. DXVAHD_FILTER_NOISE_REDUCTION = 4,
  91. DXVAHD_FILTER_EDGE_ENHANCEMENT = 5,
  92. DXVAHD_FILTER_ANAMORPHIC_SCALING = 6
  93. } DXVAHD_FILTER;
  94. typedef enum _DXVAHD_FILTER_CAPS {
  95. DXVAHD_FILTER_CAPS_BRIGHTNESS = 0x1,
  96. DXVAHD_FILTER_CAPS_CONTRAST = 0x2,
  97. DXVAHD_FILTER_CAPS_HUE = 0x4,
  98. DXVAHD_FILTER_CAPS_SATURATION = 0x8,
  99. DXVAHD_FILTER_CAPS_NOISE_REDUCTION = 0x10,
  100. DXVAHD_FILTER_CAPS_EDGE_ENHANCEMENT = 0x20,
  101. DXVAHD_FILTER_CAPS_ANAMORPHIC_SCALING = 0x40
  102. } DXVAHD_FILTER_CAPS;
  103. typedef enum _DXVAHD_FRAME_FORMAT {
  104. DXVAHD_FRAME_FORMAT_PROGRESSIVE = 0,
  105. DXVAHD_FRAME_FORMAT_INTERLACED_TOP_FIELD_FIRST = 1,
  106. DXVAHD_FRAME_FORMAT_INTERLACED_BOTTOM_FIELD_FIRST = 2
  107. } DXVAHD_FRAME_FORMAT;
  108. typedef enum _DXVAHD_INPUT_FORMAT_CAPS {
  109. DXVAHD_INPUT_FORMAT_CAPS_RGB_INTERLACED = 0x1,
  110. DXVAHD_INPUT_FORMAT_CAPS_RGB_PROCAMP = 0x2,
  111. DXVAHD_INPUT_FORMAT_CAPS_RGB_LUMA_KEY = 0x4,
  112. DXVAHD_INPUT_FORMAT_CAPS_PALETTE_INTERLACED = 0x8
  113. } DXVAHD_INPUT_FORMAT_CAPS;
  114. typedef enum _DXVAHD_ITELECINE_CAPS {
  115. DXVAHD_ITELECINE_CAPS_32 = 0x1,
  116. DXVAHD_ITELECINE_CAPS_22 = 0x2,
  117. DXVAHD_ITELECINE_CAPS_2224 = 0x4,
  118. DXVAHD_ITELECINE_CAPS_2332 = 0x8,
  119. DXVAHD_ITELECINE_CAPS_32322 = 0x10,
  120. DXVAHD_ITELECINE_CAPS_55 = 0x20,
  121. DXVAHD_ITELECINE_CAPS_64 = 0x40,
  122. DXVAHD_ITELECINE_CAPS_87 = 0x80,
  123. DXVAHD_ITELECINE_CAPS_222222222223 = 0x100,
  124. DXVAHD_ITELECINE_CAPS_OTHER = 0x80000000
  125. } DXVAHD_ITELECINE_CAPS;
  126. typedef enum _DXVAHD_OUTPUT_RATE {
  127. DXVAHD_OUTPUT_RATE_NORMAL = 0,
  128. DXVAHD_OUTPUT_RATE_HALF = 1,
  129. DXVAHD_OUTPUT_RATE_CUSTOM = 2
  130. } DXVAHD_OUTPUT_RATE;
  131. typedef enum _DXVAHD_PROCESSOR_CAPS {
  132. DXVAHD_PROCESSOR_CAPS_DEINTERLACE_BLEND = 0x1,
  133. DXVAHD_PROCESSOR_CAPS_DEINTERLACE_BOB = 0x2,
  134. DXVAHD_PROCESSOR_CAPS_DEINTERLACE_ADAPTIVE = 0x4,
  135. DXVAHD_PROCESSOR_CAPS_DEINTERLACE_MOTION_COMPENSATION = 0x8,
  136. DXVAHD_PROCESSOR_CAPS_INVERSE_TELECINE = 0x10,
  137. DXVAHD_PROCESSOR_CAPS_FRAME_RATE_CONVERSION = 0x20
  138. } DXVAHD_PROCESSOR_CAPS;
  139. typedef enum _DXVAHD_STREAM_STATE {
  140. DXVAHD_STREAM_STATE_D3DFORMAT = 0,
  141. DXVAHD_STREAM_STATE_FRAME_FORMAT = 1,
  142. DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE = 2,
  143. DXVAHD_STREAM_STATE_OUTPUT_RATE = 3,
  144. DXVAHD_STREAM_STATE_SOURCE_RECT = 4,
  145. DXVAHD_STREAM_STATE_DESTINATION_RECT = 5,
  146. DXVAHD_STREAM_STATE_ALPHA = 6,
  147. DXVAHD_STREAM_STATE_PALETTE = 7,
  148. DXVAHD_STREAM_STATE_LUMA_KEY = 8,
  149. DXVAHD_STREAM_STATE_ASPECT_RATIO = 9,
  150. DXVAHD_STREAM_STATE_FILTER_BRIGHTNESS = 100,
  151. DXVAHD_STREAM_STATE_FILTER_CONTRAST = 101,
  152. DXVAHD_STREAM_STATE_FILTER_HUE = 102,
  153. DXVAHD_STREAM_STATE_FILTER_SATURATION = 103,
  154. DXVAHD_STREAM_STATE_FILTER_NOISE_REDUCTION = 104,
  155. DXVAHD_STREAM_STATE_FILTER_EDGE_ENHANCEMENT = 105,
  156. DXVAHD_STREAM_STATE_FILTER_ANAMORPHIC_SCALING = 106,
  157. DXVAHD_STREAM_STATE_PRIVATE = 1000
  158. } DXVAHD_STREAM_STATE;
  159. typedef enum _DXVAHD_SURFACE_TYPE {
  160. DXVAHD_SURFACE_TYPE_VIDEO_INPUT = 0,
  161. DXVAHD_SURFACE_TYPE_VIDEO_INPUT_PRIVATE = 1,
  162. DXVAHD_SURFACE_TYPE_VIDEO_OUTPUT = 2
  163. } DXVAHD_SURFACE_TYPE;
  164. typedef struct _DXVAHD_VPDEVCAPS {
  165. DXVAHD_DEVICE_TYPE DeviceType;
  166. UINT DeviceCaps;
  167. UINT FeatureCaps;
  168. UINT FilterCaps;
  169. UINT InputFormatCaps;
  170. D3DPOOL InputPool;
  171. UINT OutputFormatCount;
  172. UINT InputFormatCount;
  173. UINT VideoProcessorCount;
  174. UINT MaxInputStreams;
  175. UINT MaxStreamStates;
  176. } DXVAHD_VPDEVCAPS;
  177. typedef struct _DXVAHD_BLT_STATE_ALPHA_FILL_DATA {
  178. DXVAHD_ALPHA_FILL_MODE Mode;
  179. UINT StreamNumber;
  180. } DXVAHD_BLT_STATE_ALPHA_FILL_DATA;
  181. typedef struct _DXVAHD_BLT_STATE_CONSTRICTION_DATA {
  182. WINBOOL Enable;
  183. SIZE Size;
  184. } DXVAHD_BLT_STATE_CONSTRICTION_DATA;
  185. typedef struct _DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA {
  186. UINT Usage :1;
  187. UINT RGB_Range :1;
  188. UINT YCbCr_Matrix :1;
  189. UINT YCbCr_xvYCC :1;
  190. } DXVAHD_BLT_STATE_OUTPUT_COLOR_SPACE_DATA;
  191. typedef struct _DXVAHD_BLT_STATE_PRIVATE_DATA {
  192. GUID Guid;
  193. UINT DataSize;
  194. void *pData;
  195. } DXVAHD_BLT_STATE_PRIVATE_DATA;
  196. typedef struct _DXVAHD_BLT_STATE_TARGET_RECT_DATA {
  197. WINBOOL Enable;
  198. RECT TargetRect;
  199. } DXVAHD_BLT_STATE_TARGET_RECT_DATA;
  200. typedef struct _DXVAHD_RATIONAL {
  201. UINT Numerator;
  202. UINT Denominator;
  203. } DXVAHD_RATIONAL;
  204. typedef struct _DXVAHD_CONTENT_DESC {
  205. DXVAHD_FRAME_FORMAT InputFrameFormat;
  206. DXVAHD_RATIONAL InputFrameRate;
  207. UINT InputWidth;
  208. UINT InputHeight;
  209. DXVAHD_RATIONAL OutputFrameRate;
  210. UINT OutputWidth;
  211. UINT OutputHeight;
  212. } DXVAHD_CONTENT_DESC;
  213. typedef struct _DXVAHD_CUSTOM_RATE_DATA {
  214. DXVAHD_RATIONAL CustomRate;
  215. UINT OutputFrames;
  216. WINBOOL InputInterlaced;
  217. UINT InputFramesOrFields;
  218. } DXVAHD_CUSTOM_RATE_DATA;
  219. typedef struct _DXVAHD_FILTER_RANGE_DATA {
  220. INT Minimum;
  221. INT Maximum;
  222. INT Default;
  223. FLOAT Multiplier;
  224. } DXVAHD_FILTER_RANGE_DATA;
  225. typedef struct _DXVAHD_STREAM_DATA {
  226. WINBOOL Enable;
  227. UINT OutputIndex;
  228. UINT InputFrameOrField;
  229. UINT PastFrames;
  230. UINT FutureFrames;
  231. IDirect3DSurface9 **ppPastSurfaces;
  232. IDirect3DSurface9 *pInputSurface;
  233. IDirect3DSurface9 **ppFutureSurfaces;
  234. } DXVAHD_STREAM_DATA;
  235. typedef struct _DXVAHD_VPCAPS {
  236. GUID VPGuid;
  237. UINT PastFrames;
  238. UINT FutureFrames;
  239. UINT ProcessorCaps;
  240. UINT ITelecineCaps;
  241. UINT CustomRateCount;
  242. } DXVAHD_VPCAPS;
  243. typedef struct _DXVAHD_STREAM_STATE_ALPHA_DATA {
  244. WINBOOL Enable;
  245. FLOAT Alpha;
  246. } DXVAHD_STREAM_STATE_ALPHA_DATA;
  247. typedef struct _DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA {
  248. WINBOOL Enable;
  249. DXVAHD_RATIONAL SourceAspectRatio;
  250. DXVAHD_RATIONAL DestinationAspectRatio;
  251. } DXVAHD_STREAM_STATE_ASPECT_RATIO_DATA;
  252. typedef struct _DXVAHD_STREAM_STATE_D3DFORMAT_DATA {
  253. D3DFORMAT Format;
  254. } DXVAHD_STREAM_STATE_D3DFORMAT_DATA;
  255. typedef struct _DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA {
  256. WINBOOL Enable;
  257. RECT DestinationRect;
  258. } DXVAHD_STREAM_STATE_DESTINATION_RECT_DATA;
  259. typedef struct _DXVAHD_STREAM_STATE_FILTER_DATA {
  260. WINBOOL Enable;
  261. INT Level;
  262. } DXVAHD_STREAM_STATE_FILTER_DATA;
  263. typedef struct _DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA {
  264. DXVAHD_FRAME_FORMAT FrameFormat;
  265. } DXVAHD_STREAM_STATE_FRAME_FORMAT_DATA;
  266. typedef struct _DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA {
  267. UINT Type :1;
  268. UINT RGB_Range :1;
  269. UINT YCbCr_Matrix :1;
  270. UINT YCbCr_xvYCC :1;
  271. } DXVAHD_STREAM_STATE_INPUT_COLOR_SPACE_DATA;
  272. typedef struct _DXVAHD_STREAM_STATE_LUMA_KEY_DATA {
  273. WINBOOL Enable;
  274. FLOAT Lower;
  275. FLOAT Upper;
  276. } DXVAHD_STREAM_STATE_LUMA_KEY_DATA;
  277. typedef struct _DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA {
  278. WINBOOL RepeatFrame;
  279. DXVAHD_OUTPUT_RATE OutputRate;
  280. DXVAHD_RATIONAL CustomRate;
  281. } DXVAHD_STREAM_STATE_OUTPUT_RATE_DATA;
  282. typedef struct _DXVAHD_STREAM_STATE_SOURCE_RECT_DATA {
  283. WINBOOL Enable;
  284. RECT SourceRect;
  285. } DXVAHD_STREAM_STATE_SOURCE_RECT_DATA;
  286. typedef struct _DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA {
  287. WINBOOL Enable;
  288. UINT ITelecineFlags;
  289. UINT Frames;
  290. UINT InputField;
  291. } DXVAHD_STREAM_STATE_PRIVATE_IVTC_DATA;
  292. typedef struct _DXVAHD_STREAM_STATE_PRIVATE_DATA {
  293. GUID Guid;
  294. UINT DataSize;
  295. void *pData;
  296. } DXVAHD_STREAM_STATE_PRIVATE_DATA;
  297. typedef struct _DXVAHD_STREAM_STATE_PALETTE_DATA {
  298. UINT Count;
  299. D3DCOLOR *pEntries;
  300. } DXVAHD_STREAM_STATE_PALETTE_DATA;
  301. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_CreateDevice )(IDirect3DDevice9Ex *pD3DDevice,HANDLE *phDevice);")
  302. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_ProposeVideoPrivateFormat )(HANDLE hDevice,D3DFORMAT *pFormat);")
  303. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorDeviceCaps )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,DXVAHD_VPDEVCAPS *pCaps);")
  304. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorOutputFormats )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,D3DFORMAT *pFormats);")
  305. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorInputFormats )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,D3DFORMAT *pFormats);")
  306. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorCaps )(HANDLE hDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,UINT Count,DXVAHD_VPCAPS *pCaps);")
  307. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorCustomRates )(HANDLE hDevice,const GUID *pVPGuid,UINT Count,DXVAHD_CUSTOM_RATE_DATA *pRates);")
  308. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_SetVideoProcessBltState )(HANDLE hVideoProcessor,DXVAHD_BLT_STATE State,UINT DataSize,const void *pData);")
  309. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_CreateVideoProcessor )(HANDLE hDevice,const GUID *pVPGuid,HANDLE *phVideoProcessor);")
  310. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_DestroyDevice )(HANDLE hDevice);")
  311. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessorFilterRange )(HANDLE hDevice,DXVAHD_FILTER Filter,DXVAHD_FILTER_RANGE_DATA *pRange);")
  312. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_DestroyVideoProcessor )(HANDLE hVideoProcessor);")
  313. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_VideoProcessBltHD )(HANDLE hVideoProcessor,IDirect3DSurface9 *pOutputSurface,UINT OutputFrame,UINT StreamCount,const DXVAHD_STREAM_DATA *pStreams);")
  314. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessStreamStatePrivate )(HANDLE hVideoProcessor,UINT StreamNumber,DXVAHD_STREAM_STATE_PRIVATE_DATA *pData);")
  315. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_SetVideoProcessStreamState )(HANDLE hVideoProcessor,UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,const void *pData);")
  316. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_GetVideoProcessBltStatePrivate )(HANDLE hVideoProcessor,DXVAHD_BLT_STATE_PRIVATE_DATA *pData);")
  317. cpp_quote("typedef HRESULT ( CALLBACK *PDXVAHDSW_Plugin )(UINT Size,void *pCallbacks);")
  318. cpp_quote("")
  319. cpp_quote("typedef struct _DXVAHDSW_CALLBACKS {")
  320. cpp_quote(" PDXVAHDSW_CreateDevice CreateDevice;")
  321. cpp_quote(" PDXVAHDSW_ProposeVideoPrivateFormat ProposeVideoPrivateFormat;")
  322. cpp_quote(" PDXVAHDSW_GetVideoProcessorDeviceCaps GetVideoProcessorDeviceCaps;")
  323. cpp_quote(" PDXVAHDSW_GetVideoProcessorOutputFormats GetVideoProcessorOutputFormats;")
  324. cpp_quote(" PDXVAHDSW_GetVideoProcessorInputFormats GetVideoProcessorInputFormats;")
  325. cpp_quote(" PDXVAHDSW_GetVideoProcessorCaps GetVideoProcessorCaps;")
  326. cpp_quote(" PDXVAHDSW_GetVideoProcessorCustomRates GetVideoProcessorCustomRates;")
  327. cpp_quote(" PDXVAHDSW_GetVideoProcessorFilterRange GetVideoProcessorFilterRange;")
  328. cpp_quote(" PDXVAHDSW_DestroyDevice DestroyDevice;")
  329. cpp_quote(" PDXVAHDSW_CreateVideoProcessor CreateVideoProcessor;")
  330. cpp_quote(" PDXVAHDSW_SetVideoProcessBltState SetVideoProcessBltState;")
  331. cpp_quote(" PDXVAHDSW_GetVideoProcessBltStatePrivate GetVideoProcessBltStatePrivate;")
  332. cpp_quote(" PDXVAHDSW_SetVideoProcessStreamState SetVideoProcessStreamState;")
  333. cpp_quote(" PDXVAHDSW_GetVideoProcessStreamStatePrivate GetVideoProcessStreamStatePrivate;")
  334. cpp_quote(" PDXVAHDSW_VideoProcessBltHD VideoProcessBltHD;")
  335. cpp_quote(" PDXVAHDSW_DestroyVideoProcessor DestroyVideoProcessor;")
  336. cpp_quote("} DXVAHDSW_CALLBACKS;")
  337. cpp_quote("")
  338. cpp_quote("HRESULT DXVAHD_CreateDevice(IDirect3DDevice9Ex *pD3DDevice,const DXVAHD_CONTENT_DESC *pContentDesc,DXVAHD_DEVICE_USAGE Usage,PDXVAHDSW_Plugin pPlugin,IDXVAHD_Device **ppDevice);")
  339. cpp_quote("")
  340. [
  341. object,
  342. uuid(95f12dfd-d77e-49be-815f-57d579634d6d),
  343. local
  344. ]
  345. interface IDXVAHD_Device : IUnknown
  346. {
  347. HRESULT CreateVideoSurface(UINT Width,UINT Height,D3DFORMAT Format,D3DPOOL Pool,DWORD Usage,DXVAHD_SURFACE_TYPE Type,UINT NumSurfaces,IDirect3DSurface9 **ppSurfaces,HANDLE *pSharedHandle);
  348. HRESULT GetVideoProcessorDeviceCaps(DXVAHD_VPDEVCAPS *pCaps);
  349. HRESULT GetVideoProcessorOutputFormats(UINT Count,D3DFORMAT *pFormats);
  350. HRESULT GetVideoProcessorInputFormats(UINT Count,D3DFORMAT *pFormats);
  351. HRESULT GetVideoProcessorCaps(UINT Count,DXVAHD_VPCAPS *pCaps);
  352. HRESULT GetVideoProcessorCustomRates(const GUID *pVPGuid,UINT Count,DXVAHD_CUSTOM_RATE_DATA *pRates);
  353. HRESULT GetVideoProcessorFilterRange(DXVAHD_FILTER Filter,DXVAHD_FILTER_RANGE_DATA *pRange);
  354. HRESULT CreateVideoProcessor(const GUID *pVPGuid,IDXVAHD_VideoProcessor **ppVideoProcessor);
  355. };
  356. [
  357. object,
  358. uuid(95f4edf4-6e03-4cd7-be1b-3075d665aa52),
  359. local
  360. ]
  361. interface IDXVAHD_VideoProcessor : IUnknown
  362. {
  363. HRESULT SetVideoProcessBltState(DXVAHD_BLT_STATE State,UINT DataSize,const void *pData);
  364. HRESULT GetVideoProcessBltState(DXVAHD_BLT_STATE State,UINT DataSize,void *pData);
  365. HRESULT SetVideoProcessStreamState(UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,const void *pData);
  366. HRESULT GetVideoProcessStreamState(UINT StreamNumber,DXVAHD_STREAM_STATE State,UINT DataSize,void *pData);
  367. HRESULT VideoProcessBltHD(IDirect3DSurface9 *pOutputSurface,UINT OutputFrame,UINT StreamCount,const DXVAHD_STREAM_DATA *pStreams);
  368. };
  369. cpp_quote("#endif /*(_WIN32_WINNT >= 0x0601)*/")
  370. cpp_quote("#endif /*WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)*/")