vmr9.idl revision 4b9d6701570cb98fd36e209314239d104ec584d3
af062818b47340eef15700d2f0211576ba3506eevboxsync * Copyright 2008 Maarten Lankhorst
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is free software; you can redistribute it and/or
af062818b47340eef15700d2f0211576ba3506eevboxsync * modify it under the terms of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License as published by the Free Software Foundation; either
af062818b47340eef15700d2f0211576ba3506eevboxsync * version 2.1 of the License, or (at your option) any later version.
af062818b47340eef15700d2f0211576ba3506eevboxsync * This library is distributed in the hope that it will be useful,
af062818b47340eef15700d2f0211576ba3506eevboxsync * but WITHOUT ANY WARRANTY; without even the implied warranty of
af062818b47340eef15700d2f0211576ba3506eevboxsync * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
af062818b47340eef15700d2f0211576ba3506eevboxsync * Lesser General Public License for more details.
af062818b47340eef15700d2f0211576ba3506eevboxsync * You should have received a copy of the GNU Lesser General Public
af062818b47340eef15700d2f0211576ba3506eevboxsync * License along with this library; if not, write to the Free Software
af062818b47340eef15700d2f0211576ba3506eevboxsync * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * Oracle LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
4b9d6701570cb98fd36e209314239d104ec584d3vboxsync * other than GPL or LGPL is available it will apply instead, Oracle elects to use only
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * a choice of LGPL license versions is made available with the language indicating
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * that LGPLv2 or any later version may be used, or where a choice of which version
589fd26cedb2b4ebbed14f2964cad03cc8ebbca2vboxsync * of the LGPL is applied is otherwise unspecified.
af062818b47340eef15700d2f0211576ba3506eevboxsyncimport "unknwn.idl";
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT PresentImage([in] DWORD_PTR id, [in] VMR9PresentationInfo *info);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT InitializeDevice([in] DWORD_PTR id, [in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetSurface([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT AdviseNotify([in] IVMRSurfaceAllocatorNotify9 *allocnotify);
af062818b47340eef15700d2f0211576ba3506eevboxsyncinterface IVMRSurfaceAllocatorEx9 : IVMRSurfaceAllocator9
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetSurfaceEx([in] DWORD_PTR id, [in] DWORD surfaceindex, [in] DWORD flags, [out] IDirect3DSurface9 **surface, [out] RECT *dest);
af062818b47340eef15700d2f0211576ba3506eevboxsync helpstring("IVMRSurfaceAllocatorNotify9 interface"),
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT AdviseSurfaceAllocator([in] DWORD_PTR id, [in] IVMRSurfaceAllocator9 *alloc);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetD3DDevice([in] IDirect3DDevice9 *device, [in] HMONITOR monitor);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT ChangeD3DDevice([in] IDirect3DDevice9 *device, [in] HMONITOR monitor);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT AllocateSurfaceHelper([in] VMR9AllocationInfo *allocinfo, [in, out] DWORD *numbuffers, [out] IDirect3DSurface9 **surface);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT NotifyEvent([in] LONG code, [in] LONG_PTR param1, [in] LONG_PTR param2);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetNativeVideoSize([out] LONG *width, [out] LONG *height, [out] LONG *arwidth, [out] LONG *arheight);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetMinIdealVideoSize([out] LONG *width, [out] LONG *height);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetMaxIdealVideoSize([out] LONG *width, [out] LONG *height);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetVideoPosition([in] const RECT *source, [in] const RECT *dest);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetVideoPosition([out] RECT *source, [out] RECT *dest);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT RepaintVideo([in] HWND hwnd, [in] HDC hdc);
af062818b47340eef15700d2f0211576ba3506eevboxsync /* Decimation */
af062818b47340eef15700d2f0211576ba3506eevboxsync /* Filtering */
af062818b47340eef15700d2f0211576ba3506eevboxsync /* Render target */
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetAlpha([in] DWORD streamid, [in] FLOAT alpha);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetAlpha([in] DWORD streamid, [out] FLOAT *alpha);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetZOrder([in] DWORD streamid, [in] DWORD zorder);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetZOrder([in] DWORD streamid, [out] DWORD *zorder);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetOutputRect([in] DWORD streamid, [in] const VMR9NormalizedRect *rect);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetOutputRect([in] DWORD streamid, [out] VMR9NormalizedRect *rect);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetProcAmpControl([in] DWORD streamid, [in] VMR9ProcAmpControl *control);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetProcAmpControl([in] DWORD streamid, [in, out] VMR9ProcAmpControl *control);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetProcAmpControlRange([in] DWORD streamid, [in, out] VMR9ProcAmpControlRange *controlrange);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetAlphaBitmap([in] const VMR9AlphaBitmap *bitmap);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT UpdateAlphaBitmapParameters([in] const VMR9AlphaBitmap *bitmap);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetAlphaBitmapParameters([out] VMR9AlphaBitmap *bitmap);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetSurface([out] IDirect3DSurface9 **surface);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetRenderingPrefs([out] DWORD *renderflags);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetImageCompositor([in] IVMRImageCompositor9 *compositor);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetRenderingPrefs([out] DWORD *renderflags);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetAvailableMonitors([out, size_is(arraysize)] VMR9MonitorInfo *info, [in] DWORD arraysize, [out] DWORD *numdev);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetNumberOfDeinterlaceModes([in] VMR9VideoDesc *desc, [in, out] DWORD *nummodes, [out] GUID *modes);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetDeinterlaceModeCaps([in] GUID *mode, [in] VMR9VideoDesc *desc, [out] VMR9DeinterlaceCaps *caps);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetDeinterlaceMode([in] DWORD streamid, [out] GUID *mode);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT SetDeinterlaceMode([in] DWORD streamid, [in] GUID *mode);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT GetActualDeinterlaceMode([in] DWORD streamid, [out] GUID *mode);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT InitCompositionDevice([in] IUnknown *d3ddev);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT TermCompositionDevice([in] IUnknown *d3ddev);
af062818b47340eef15700d2f0211576ba3506eevboxsync HRESULT CompositeImage([in] IUnknown *d3ddev, [in] IDirect3DSurface9 *d3dtarget, [in] AM_MEDIA_TYPE *mttarget,
af062818b47340eef15700d2f0211576ba3506eevboxsync [in] REFERENCE_TIME start, [in] REFERENCE_TIME stop, D3DCOLOR back,