vmr9.idl 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525
  1. /*
  2. * Copyright 2008 Maarten Lankhorst
  3. *
  4. * This library is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU Lesser General Public
  6. * License as published by the Free Software Foundation; either
  7. * version 2.1 of the License, or (at your option) any later version.
  8. *
  9. * This library is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  12. * Lesser General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU Lesser General Public
  15. * License along with this library; if not, write to the Free Software
  16. * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  17. */
  18. import "unknwn.idl";
  19. cpp_quote("#if 0")
  20. interface IDirect3DSurface9;
  21. interface IDirect3DDevice9;
  22. typedef LONGLONG REFERENCE_TIME;
  23. typedef DWORD D3DFORMAT;
  24. typedef DWORD D3DPOOL;
  25. typedef HANDLE HMONITOR;
  26. typedef struct { char dummy; } AM_MEDIA_TYPE;
  27. typedef struct { char dummy; } D3DCOLOR;
  28. cpp_quote("#endif")
  29. interface IVMRSurface9;
  30. interface IVMRSurfaceAllocator9;
  31. interface IVMRSurfaceAllocatorEx9;
  32. interface IVMRSurfaceAllocatorNotify9;
  33. interface IVMRImagePresenter9;
  34. interface IVMRImagePresenterConfig9;
  35. interface IVMRMonitorConfig9;
  36. interface IVMRWindowlessControl9;
  37. interface IVMRMixerControl9;
  38. interface IVMRImageCompositor9;
  39. interface IVMRMixerBitmap9;
  40. interface IVMRFilterConfig9;
  41. interface IVMRAspectRatioControl9;
  42. interface IVMRVideoStreamControl9;
  43. typedef enum _VMR9PresentationFlags
  44. {
  45. VMR9Sample_SyncPoint = 0x1,
  46. VMR9Sample_Preroll = 0x2,
  47. VMR9Sample_Discontinuity = 0x4,
  48. VMR9Sample_TimeValid = 0x8,
  49. VMR9Sample_SrcDstRectsValid = 0x10
  50. } VMR9PresentationFlags;
  51. typedef struct _VMR9PresentationInfo
  52. {
  53. DWORD dwFlags; /* Flags defined above */
  54. IDirect3DSurface9 *lpSurf;
  55. REFERENCE_TIME rtStart;
  56. REFERENCE_TIME rtEnd;
  57. SIZE szAspectRatio;
  58. RECT rcSrc;
  59. RECT rcDst;
  60. DWORD dwReserved1;
  61. DWORD dwReserved2;
  62. } VMR9PresentationInfo;
  63. [
  64. local,
  65. object,
  66. uuid(69188c61-12a3-40f0-8ffc-342e7b433fd7),
  67. helpstring("IVMRImagePresenter9 interface"),
  68. pointer_default(unique)
  69. ]
  70. interface IVMRImagePresenter9 : IUnknown
  71. {
  72. HRESULT StartPresenting([in] DWORD_PTR id);
  73. HRESULT StopPresenting([in] DWORD_PTR id);
  74. HRESULT PresentImage([in] DWORD_PTR id, [in] VMR9PresentationInfo *info);
  75. }
  76. typedef enum _VMR9SurfaceAllocationFlags
  77. {
  78. VMR9AllocFlag_3DRenderTarget = 0x1,
  79. VMR9AllocFlag_DXVATarget = 0x2,
  80. VMR9AllocFlag_TextureSurface = 0x4,
  81. VMR9AllocFlag_OffscreenSurface = 0x8,
  82. VMR9AllocFlag_RGBDynamicSwitch = 0x10,
  83. VMR9AllocFlag_UsageReserved = 0xe0,
  84. VMR9AllocFlag_UsageMask = 0xff,
  85. } VMR9SurfaceAllocationFlags;
  86. typedef struct _VMR9AllocationInfo
  87. {
  88. DWORD dwFlags; /* Flags defined above */
  89. DWORD dwWidth;
  90. DWORD dwHeight;
  91. D3DFORMAT Format;
  92. D3DPOOL Pool;
  93. DWORD MinBuffers;
  94. SIZE szAspectRatio;
  95. SIZE szNativeSize;
  96. } VMR9AllocationInfo;
  97. [
  98. local,
  99. object,
  100. uuid(8d5148ea-3f5d-46cf-9df1-d1b896eedb1f),
  101. helpstring("IVMRSurfaceAllocator9 interface"),
  102. pointer_default(unique)
  103. ]
  104. interface IVMRSurfaceAllocator9 : IUnknown
  105. {
  106. HRESULT InitializeDevice([in] DWORD_PTR id, [in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers);
  107. HRESULT TerminateDevice([in] DWORD_PTR id);
  108. HRESULT GetSurface([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface);
  109. HRESULT AdviseNotify([in] IVMRSurfaceAllocatorNotify9 *allocnotify);
  110. }
  111. [
  112. local,
  113. object,
  114. uuid(6de9a68a-a928-4522-bf57-655ae3866456),
  115. helpstring("IVMRSurfaceAllocatorEx9 interface"),
  116. pointer_default(unique)
  117. ]
  118. interface IVMRSurfaceAllocatorEx9 : IVMRSurfaceAllocator9
  119. {
  120. HRESULT GetSurfaceEx([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface, [out] RECT *dest);
  121. }
  122. [
  123. local,
  124. object,
  125. uuid(dca3f5df-bb3a-4d03-bd81-84614bfbfa0c),
  126. helpstring("IVMRSurfaceAllocatorNotify9 interface"),
  127. pointer_default(unique)
  128. ]
  129. interface IVMRSurfaceAllocatorNotify9 : IUnknown
  130. {
  131. HRESULT AdviseSurfaceAllocator([in] DWORD_PTR id, [in] IVMRSurfaceAllocator9 *alloc);
  132. HRESULT SetD3DDevice([in] IDirect3DDevice9 *device, [in] HMONITOR monitor);
  133. HRESULT ChangeD3DDevice([in] IDirect3DDevice9 *device, [in] HMONITOR monitor);
  134. HRESULT AllocateSurfaceHelper([in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers, [out] IDirect3DSurface9 **surface);
  135. HRESULT NotifyEvent([in] LONG code, [in] LONG_PTR param1, [in] LONG_PTR param2);
  136. }
  137. typedef enum _VMR9AspectRatioMode
  138. {
  139. VMR9ARMode_None,
  140. VMR9ARMode_LetterBox
  141. } VMR9AspectRatioMode;
  142. [
  143. local,
  144. object,
  145. uuid(8f537d09-f85e-4414-b23b-502e54c79927),
  146. helpstring("IVMRWindowlessControl interface"),
  147. pointer_default(unique)
  148. ]
  149. interface IVMRWindowlessControl9 : IUnknown
  150. {
  151. HRESULT GetNativeVideoSize([out] LONG *width, [out] LONG *height, [out] LONG *arwidth, [out] LONG *arheight);
  152. HRESULT GetMinIdealVideoSize([out] LONG *width, [out] LONG *height);
  153. HRESULT GetMaxIdealVideoSize([out] LONG *width, [out] LONG *height);
  154. HRESULT SetVideoPosition([in] const RECT *source, [in] const RECT *dest);
  155. HRESULT GetVideoPosition([out] RECT *source, [out] RECT *dest);
  156. HRESULT GetAspectRatioMode([out] DWORD *mode);
  157. HRESULT SetAspectRatioMode([in] DWORD mode);
  158. HRESULT SetVideoClippingWindow([in] HWND hwnd);
  159. HRESULT RepaintVideo([in] HWND hwnd, [in] HDC hdc);
  160. HRESULT DisplayModeChanged();
  161. HRESULT GetCurrentImage([out] BYTE **dib);
  162. HRESULT SetBorderColor([in] COLORREF color);
  163. HRESULT GetBorderColor([out] COLORREF *color);
  164. }
  165. typedef enum _VMR9MixerPrefs
  166. {
  167. /* Decimation */
  168. MixerPref9_NoDecimation = 0x1,
  169. MixerPref9_DecimateOutput = 0x2,
  170. MixerPref9_ARAdjustXorY = 0x4,
  171. MixerPref9_NonSquareMixing = 0x8,
  172. MixerPref9_DecimateMask = 0xf,
  173. /* Filtering */
  174. MixerPref9_BiLinearFiltering = 0x10,
  175. MixerPref9_PointFiltering = 0x20,
  176. MixerPref9_AnisotropicFiltering = 0x40,
  177. MixerPref9_PyramidalQuadFiltering = 0x80,
  178. MixerPref9_GaussianQuadFiltering = 0x100,
  179. MixerPref9_FilteringReserved = 0xe00,
  180. MixerPref9_FilteringMask = 0xff0,
  181. /* Render target */
  182. MixerPref9_RenderTargetRGB = 0x1000,
  183. MixerPref9_RenderTargetYUV = 0x2000,
  184. MixerPref9_RenderTargetReserved = 0xfc000,
  185. MixerPref9_DynamicSwitchToBOB = 0x100000,
  186. MixerPref9_DynamicDecimateBy2 = 0x200000,
  187. MixerPref9_DynamicReserved = 0xc00000,
  188. MixerPref9_DynamicMask = 0xf00000,
  189. } VMR9MixerPrefs;
  190. typedef struct _VMR9NormalizedRect
  191. {
  192. FLOAT left;
  193. FLOAT top;
  194. FLOAT right;
  195. FLOAT bottom;
  196. } VMR9NormalizedRect;
  197. typedef enum _VMR9ProcAmpControlFlags
  198. {
  199. ProcAmpControl9_Brightness = 0x1,
  200. ProcAmpControl9_Contrast = 0x2,
  201. ProcAmpControl9_Hue = 0x4,
  202. ProcAmpControl9_Saturation = 0x8,
  203. ProcAmpControl9_Mask = 0xf
  204. } VMR9ProcAmpControlFlags;
  205. typedef struct _VMR9ProcAmpControl
  206. {
  207. DWORD dwSize;
  208. DWORD dwFlags;
  209. FLOAT Brightness;
  210. FLOAT Contrast;
  211. FLOAT Hue;
  212. FLOAT Saturation;
  213. } VMR9ProcAmpControl;
  214. typedef struct _VMR9ProcAmpControlRange
  215. {
  216. DWORD dwSize;
  217. VMR9ProcAmpControlFlags dwProperty;
  218. FLOAT MinValue;
  219. FLOAT MaxValue;
  220. FLOAT DefaultValue;
  221. FLOAT StepSize;
  222. } VMR9ProcAmpControlRange;
  223. [
  224. local,
  225. object,
  226. uuid(1a777eaa-47c8-4930-b2c9-8fee1c1b0f3b),
  227. helpstring("IVMRMixerControl9 interface"),
  228. pointer_default(unique)
  229. ]
  230. interface IVMRMixerControl9 : IUnknown
  231. {
  232. HRESULT SetAlpha([in] DWORD streamid, [in] FLOAT alpha);
  233. HRESULT GetAlpha([in] DWORD streamid, [out] FLOAT *alpha);
  234. HRESULT SetZOrder([in] DWORD streamid, [in] DWORD zorder);
  235. HRESULT GetZOrder([in] DWORD streamid, [out] DWORD *zorder);
  236. HRESULT SetOutputRect([in] DWORD streamid, [in] const VMR9NormalizedRect *rect);
  237. HRESULT GetOutputRect([in] DWORD streamid, [out] VMR9NormalizedRect *rect);
  238. HRESULT SetBackgroundClr([in] COLORREF back);
  239. HRESULT GetBackgroundClr([out] COLORREF *back);
  240. HRESULT SetMixingPrefs([in] DWORD mixingprefs);
  241. HRESULT GetMixingPrefs([out] DWORD *mixingprefs);
  242. HRESULT SetProcAmpControl([in] DWORD streamid, [in] VMR9ProcAmpControl *control);
  243. HRESULT GetProcAmpControl([in] DWORD streamid, [in, out] VMR9ProcAmpControl *control);
  244. HRESULT GetProcAmpControlRange([in] DWORD streamid, [in, out] VMR9ProcAmpControlRange *controlrange);
  245. }
  246. typedef struct _VMR9AlphaBitmap
  247. {
  248. DWORD dwFlags;
  249. HDC hdc;
  250. IDirect3DSurface9 *pDDS;
  251. RECT rSrc;
  252. VMR9NormalizedRect rDest;
  253. FLOAT fAlpha;
  254. COLORREF clrSrcKey;
  255. DWORD dwFilterMode;
  256. } VMR9AlphaBitmap;
  257. typedef enum _VMR9AlphaBitmapFlags
  258. {
  259. VMR9AlphaBitmap_Disable = 0x1,
  260. VMR9AlphaBitmap_hDC = 0x2,
  261. VMR9AlphaBitmap_EntireDDS = 0x4,
  262. VMR9AlphaBitmap_SrcColorKey = 0x8,
  263. VMR9AlphaBitmap_SrcRect = 0x10,
  264. VMR9AlphaBitmap_FilterMode = 0x20
  265. } VMR9AlphaBitmapFlags;
  266. [
  267. local,
  268. object,
  269. uuid(ced175e5-1935-4820-81bd-ff6ad00c9108),
  270. helpstring("IVMRMixerBitmap interface"),
  271. pointer_default(unique)
  272. ]
  273. interface IVMRMixerBitmap9 : IUnknown
  274. {
  275. HRESULT SetAlphaBitmap([in] const VMR9AlphaBitmap *bitmap);
  276. HRESULT UpdateAlphaBitmapParameters([in] const VMR9AlphaBitmap *bitmap);
  277. HRESULT GetAlphaBitmapParameters([out] VMR9AlphaBitmap *bitmap);
  278. }
  279. [
  280. local,
  281. object,
  282. uuid(dfc581a1-6e1f-4c3a-8d0a-5e9792ea2afc),
  283. helpstring("IVMRSurface interface"),
  284. pointer_default(unique)
  285. ]
  286. interface IVMRSurface9 : IUnknown
  287. {
  288. HRESULT IsSurfaceLocked();
  289. HRESULT LockSurface([out] BYTE **surface);
  290. HRESULT UnlockSurface();
  291. HRESULT GetSurface([out] IDirect3DSurface9 **surface);
  292. }
  293. typedef enum _VMR9RenderPrefs
  294. {
  295. RenderPrefs9_DoNotRenderBorder = 0x1,
  296. RenderPrefs9_Mask = 0x1
  297. } VMR9RenderPrefs;
  298. [
  299. local,
  300. object,
  301. uuid(45c15cab-6e22-420a-8043-ae1f0ac02c7d),
  302. helpstring("IVMRImagePresenterConfig9 interface"),
  303. pointer_default(unique)
  304. ]
  305. interface IVMRImagePresenterConfig9 : IUnknown
  306. {
  307. HRESULT SetRenderingPrefs([in] DWORD renderflags);
  308. HRESULT GetRenderingPrefs([out] DWORD *renderflags);
  309. }
  310. [
  311. local,
  312. object,
  313. uuid(d0cfe38b-93e7-4772-8957-0400c49a4485),
  314. helpstring("IVMRMixerStreamConfig interface"),
  315. pointer_default(unique)
  316. ]
  317. interface IVMRVideoStreamControl9: IUnknown
  318. {
  319. HRESULT SetStreamActiveState([in] BOOL active);
  320. HRESULT GetStreamActiveState([out] BOOL *active);
  321. }
  322. typedef enum _VMR9Mode
  323. {
  324. VMR9Mode_Windowed = 0x1,
  325. VMR9Mode_Windowless = 0x2,
  326. VMR9Mode_Renderless = 0x4,
  327. VMR9Mode_Mask = 0x7
  328. } VMR9Mode;
  329. [
  330. local,
  331. object,
  332. uuid(5a804648-4f66-4867-9c43-4f5c822cf1b8),
  333. helpstring("IVMRFilterConfig9 interface"),
  334. pointer_default(unique)
  335. ]
  336. interface IVMRFilterConfig9 : IUnknown
  337. {
  338. HRESULT SetImageCompositor([in] IVMRImageCompositor9 *compositor);
  339. HRESULT SetNumberOfStreams([in] DWORD max);
  340. HRESULT GetNumberOfStreams([out] DWORD *max);
  341. HRESULT SetRenderingPrefs([in] DWORD renderflags);
  342. HRESULT GetRenderingPrefs([out] DWORD *renderflags);
  343. HRESULT SetRenderingMode([in] DWORD mode);
  344. HRESULT GetRenderingMode([out] DWORD *mode);
  345. }
  346. [
  347. local,
  348. object,
  349. uuid(00d96c29-bbde-4efc-9901-bb5036392146),
  350. helpstring("IVMRAspectRatioControl9 interface"),
  351. pointer_default(unique)
  352. ]
  353. interface IVMRAspectRatioControl9 : IUnknown
  354. {
  355. HRESULT GetAspectRatioMode([out] DWORD *mode);
  356. HRESULT SetAspectRatioMode([in] DWORD mode);
  357. }
  358. #define VMR9DEVICENAMELEN 32
  359. #define VMR9DEVICEDESCRIPTIONLEN 512
  360. typedef struct _VMR9MonitorInfo
  361. {
  362. UINT uDevID;
  363. RECT rcMonitor;
  364. HMONITOR hMon;
  365. DWORD dwFlags;
  366. WCHAR szDevice[VMR9DEVICENAMELEN];
  367. WCHAR szDescription[VMR9DEVICEDESCRIPTIONLEN];
  368. LARGE_INTEGER liDriverVersion;
  369. DWORD dwVendorId;
  370. DWORD dwDeviceId;
  371. DWORD dwSubSysId;
  372. DWORD dwRevision;
  373. } VMR9MonitorInfo;
  374. [
  375. local,
  376. object,
  377. uuid(46c2e457-8ba0-4eef-b80b-0680f0978749),
  378. helpstring("IVMRMonitorConfig9 interface"),
  379. pointer_default(unique)
  380. ]
  381. interface IVMRMonitorConfig9 : IUnknown
  382. {
  383. HRESULT SetMonitor([in] UINT uDev);
  384. HRESULT GetMonitor([out] UINT *uDev);
  385. HRESULT SetDefaultMonitor([in] UINT uDev);
  386. HRESULT GetDefaultMonitor([out] UINT *uDev);
  387. HRESULT GetAvailableMonitors([out, size_is(arraysize)] VMR9MonitorInfo *info, [in] DWORD arraysize, [out] DWORD *numdev);
  388. }
  389. typedef enum _VMR9DeinterlacePrefs
  390. {
  391. DeinterlacePref9_NextBest = 0x1,
  392. DeinterlacePref9_BOB = 0x2,
  393. DeinterlacePref9_Weave = 0x4,
  394. DeinterlacePref9_Mask = 0x7
  395. } VMR9DeinterlacePrefs;
  396. typedef enum _VMR9DeinterlaceTech
  397. {
  398. DeinterlaceTech9_Unknown = 0,
  399. DeinterlaceTech9_BOBLineReplicate = 0x1,
  400. DeinterlaceTech9_BOBVerticalStretch = 0x2,
  401. DeinterlaceTech9_MedianFiltering = 0x4,
  402. DeinterlaceTech9_EdgeFiltering = 0x10,
  403. DeinterlaceTech9_FieldAdaptive = 0x20,
  404. DeinterlaceTech9_PixelAdaptive = 0x40,
  405. DeinterlaceTech9_MotionVectorSteered = 0x80
  406. } VMR9DeinterlaceTech;
  407. typedef struct _VMR9Frequency
  408. {
  409. DWORD dwNumerator;
  410. DWORD dwDenominator;
  411. } VMR9Frequency;
  412. typedef enum _VMR9_SampleFormat
  413. {
  414. VMR9_SampleReserved = 1,
  415. VMR9_SampleProgressiveFrame = 2,
  416. VMR9_SampleFieldInterleavedEvenFirst = 3,
  417. VMR9_SampleFieldInterleavedOddFirst = 4,
  418. VMR9_SampleFieldSingleEven = 5,
  419. VMR9_SampleFieldSingleOdd = 6,
  420. } VMR9_SampleFormat;
  421. typedef struct _VMR9VideoDesc
  422. {
  423. DWORD dwSize;
  424. DWORD dwSampleWidth;
  425. DWORD dwSampleHeight;
  426. VMR9_SampleFormat SampleFormat;
  427. DWORD dwFourCC;
  428. VMR9Frequency InputSampleFreq;
  429. VMR9Frequency OutputFrameFreq;
  430. } VMR9VideoDesc;
  431. typedef struct _VMR9DeinterlaceCaps {
  432. DWORD dwSize;
  433. DWORD dwNumPreviousOutputFrames;
  434. DWORD dwNumForwardRefSamples;
  435. DWORD dwNumBackwardRefSamples;
  436. VMR9DeinterlaceTech DeinterlaceTechnology;
  437. } VMR9DeinterlaceCaps;
  438. [
  439. local,
  440. object,
  441. uuid(a215fb8d-13c2-4f7f-993c-003d6271a459),
  442. helpstring("IVMRDeinterlaceControl9 interface"),
  443. pointer_default(unique)
  444. ]
  445. interface IVMRDeinterlaceControl9 : IUnknown
  446. {
  447. HRESULT GetNumberOfDeinterlaceModes([in] VMR9VideoDesc *desc, [in, out] DWORD *nummodes, [out] GUID *modes);
  448. HRESULT GetDeinterlaceModeCaps([in] GUID *mode, [in] VMR9VideoDesc *desc, [out] VMR9DeinterlaceCaps *caps);
  449. HRESULT GetDeinterlaceMode([in] DWORD streamid, [out] GUID *mode);
  450. HRESULT SetDeinterlaceMode([in] DWORD streamid, [in] GUID *mode);
  451. HRESULT GetDeinterlacePrefs([out] DWORD *prefs);
  452. HRESULT SetDeinterlacePrefs([in] DWORD prefs);
  453. HRESULT GetActualDeinterlaceMode([in] DWORD streamid, [out] GUID *mode);
  454. }
  455. typedef struct _VMR9VideoStreamInfo {
  456. IDirect3DSurface9 *pddsVideoSurface;
  457. DWORD dwWidth;
  458. DWORD dwHeight;
  459. DWORD dwStrmID;
  460. FLOAT fAlpha;
  461. VMR9NormalizedRect rNormal;
  462. REFERENCE_TIME rtStart;
  463. REFERENCE_TIME rtEnd;
  464. VMR9_SampleFormat SampleFormat;
  465. } VMR9VideoStreamInfo;
  466. [
  467. local,
  468. object,
  469. uuid(4a5c89eb-df51-4654-ac2a-e48e02bbabf6),
  470. helpstring("IVMRImageCompositor9 interface"),
  471. pointer_default(unique)
  472. ]
  473. interface IVMRImageCompositor9 : IUnknown
  474. {
  475. HRESULT InitCompositionDevice([in] IUnknown *d3ddev);
  476. HRESULT TermCompositionDevice([in] IUnknown *d3ddev);
  477. HRESULT SetStreamMediaType([in] DWORD stream, [in] AM_MEDIA_TYPE *mt, [in] BOOL texture);
  478. HRESULT CompositeImage([in] IUnknown *d3ddev, [in] IDirect3DSurface9 *d3dtarget, [in] AM_MEDIA_TYPE *mttarget,
  479. [in] REFERENCE_TIME start, [in] REFERENCE_TIME stop, D3DCOLOR back,
  480. [in] VMR9VideoStreamInfo *info, [in] UINT streams);
  481. }