[ros-diffs] [greatlrd] 26922: adding Vmrender.idl compatible with ms dxsdk 2004 dec

greatlrd at svn.reactos.org greatlrd at svn.reactos.org
Sun May 27 15:27:51 CEST 2007


Author: greatlrd
Date: Sun May 27 17:27:51 2007
New Revision: 26922

URL: http://svn.reactos.org/svn/reactos?rev=26922&view=rev
Log:
adding Vmrender.idl compatible with ms dxsdk 2004 dec

Added:
    trunk/reactos/include/dxsdk/Vmrender.idl   (with props)
Modified:
    trunk/reactos/include/dxsdk/   (props changed)
    trunk/reactos/include/dxsdk/dxsdk.rbuild

Propchange: trunk/reactos/include/dxsdk/
------------------------------------------------------------------------------
--- svn:ignore (original)
+++ svn:ignore Sun May 27 17:27:51 2007
@@ -11,3 +11,4 @@
 tvratings.h
 dyngraph.h
 dmodshow.h
+Vmrender.h

Added: trunk/reactos/include/dxsdk/Vmrender.idl
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/Vmrender.idl?rev=26922&view=auto
==============================================================================
--- trunk/reactos/include/dxsdk/Vmrender.idl (added)
+++ trunk/reactos/include/dxsdk/Vmrender.idl Sun May 27 17:27:51 2007
@@ -1,0 +1,498 @@
+
+cpp_quote("#if 0")
+
+    import "unknwn.idl";
+    typedef int DWORD;
+    typedef int REFERENCE_TIME;
+    typedef int HMONITOR;
+    typedef int AM_MEDIA_TYPE;
+
+    typedef DWORD* LPDIRECTDRAW7;
+    typedef DWORD* LPDIRECTDRAWSURFACE7;
+    typedef DWORD* LPDDPIXELFORMAT;
+    typedef DWORD* LPBITMAPINFOHEADER;
+    typedef struct {DWORD dw1; DWORD dw2;} DDCOLORKEY;
+    typedef DDCOLORKEY*    LPDDCOLORKEY;
+cpp_quote ("#endif")
+
+cpp_quote("#include <ddraw.h>")
+
+cpp_quote("#define VMRBITMAP_DISABLE            0x00000001")
+cpp_quote("#define VMRBITMAP_HDC                0x00000002")
+cpp_quote("#define VMRBITMAP_ENTIREDDS          0x00000004")
+cpp_quote("#define VMRBITMAP_SRCCOLORKEY        0x00000008")
+cpp_quote("#define VMRBITMAP_SRCRECT            0x00000010")
+
+interface IVMRSurface;
+interface IVMRSurfaceAllocator;
+interface IVMRSurfaceAllocatorNotify;
+interface IVMRImagePresenter;
+interface IVMRImagePresenterConfig;
+interface IVMRWindowlessControl;
+interface IVMRMixerControl;
+interface IVMRMixerBitmap;
+interface IVMRFilterConfig;
+interface IVMRAspectRatioControl;
+interface IVMRDeinterlaceControl;
+interface IVMRMonitorConfig;
+interface IVMRImageCompositor;
+interface IVMRVideoStreamControl;
+
+#define VMRDEVICENAMELEN 32
+#define VMRDEVICEDESCRIPTIONLEN  256
+
+typedef enum
+{
+    VMRSample_SyncPoint = 0x00000001,
+    VMRSample_Preroll = 0x00000002,
+    VMRSample_Discontinuity = 0x00000004,
+    VMRSample_TimeValid = 0x00000008,
+    VMRSample_SrcDstRectsValid= 0x00000010
+} VMRPresentationFlags;
+
+typedef enum
+{
+    AMAP_PIXELFORMAT_VALID = 0x01,
+    AMAP_3D_TARGET = 0x02,
+    AMAP_ALLOW_SYSMEM = 0x04,
+    AMAP_FORCE_SYSMEM = 0x08,
+    AMAP_DIRECTED_FLIP = 0x10,
+    AMAP_DXVA_TARGET = 0x20
+} VMRSurfaceAllocationFlags;
+
+typedef enum
+{
+    VMR_ARMODE_NONE,
+    VMR_ARMODE_LETTER_BOX
+} VMR_ASPECT_RATIO_MODE;
+
+
+typedef enum
+{
+    MixerPref_NoDecimation = 0x00000001,
+    MixerPref_DecimateOutput = 0x00000002,
+    MixerPref_ARAdjustXorY = 0x00000004,
+    MixerPref_DecimationReserved = 0x00000008,
+    MixerPref_DecimateMask = 0x0000000F,
+    MixerPref_BiLinearFiltering = 0x00000010,
+    MixerPref_PointFiltering = 0x00000020,
+    MixerPref_FilteringMask = 0x000000F0,
+    MixerPref_RenderTargetRGB = 0x00000100,
+    MixerPref_RenderTargetYUV = 0x00001000,
+    MixerPref_RenderTargetYUV420 = 0x00000200,
+    MixerPref_RenderTargetYUV422 = 0x00000400,
+    MixerPref_RenderTargetYUV444 = 0x00000800,
+    MixerPref_RenderTargetReserved = 0x0000E000,
+    MixerPref_RenderTargetMask = 0x0000FF00,
+    MixerPref_DynamicSwitchToBOB = 0x00010000,
+    MixerPref_DynamicDecimateBy2 = 0x00020000,
+    MixerPref_DynamicReserved = 0x000C0000,
+    MixerPref_DynamicMask = 0x000F0000
+} VMRMixerPrefs;
+
+typedef enum
+{
+    RenderPrefs_RestrictToInitialMonitor = 0x00000000,
+    RenderPrefs_ForceOffscreen = 0x00000001,
+    RenderPrefs_ForceOverlays = 0x00000002,
+    RenderPrefs_AllowOverlays = 0x00000000,
+    RenderPrefs_AllowOffscreen = 0x00000000,
+    RenderPrefs_DoNotRenderColorKeyAndBorder = 0x00000008,
+    RenderPrefs_Reserved = 0x00000010,
+    RenderPrefs_PreferAGPMemWhenMixing = 0x00000020,
+
+    RenderPrefs_Mask = 0x0000003f,
+} VMRRenderPrefs;
+
+typedef enum
+{
+    VMRMode_Windowed = 0x00000001,
+    VMRMode_Windowless = 0x00000002,
+    VMRMode_Renderless = 0x00000004,
+    VMRMode_Mask = 0x00000007,
+} VMRMode;
+
+enum
+{
+    MAX_NUMBER_OF_STREAMS = 16
+};
+
+typedef enum
+{
+    DeinterlacePref_NextBest = 0x01,
+    DeinterlacePref_BOB = 0x02,
+    DeinterlacePref_Weave = 0x04,
+    DeinterlacePref_Mask = 0x07
+} VMRDeinterlacePrefs;
+
+typedef enum
+{
+    DeinterlaceTech_Unknown = 0x0000,
+    DeinterlaceTech_BOBLineReplicate = 0x0001,
+    DeinterlaceTech_BOBVerticalStretch = 0x0002,
+    DeinterlaceTech_MedianFiltering = 0x0004,
+    DeinterlaceTech_EdgeFiltering = 0x0010,
+    DeinterlaceTech_FieldAdaptive = 0x0020,
+    DeinterlaceTech_PixelAdaptive = 0x0040,
+    DeinterlaceTech_MotionVectorSteered = 0x0080
+} VMRDeinterlaceTech;
+
+typedef struct tagVMRPRESENTATIONINFO
+{
+    DWORD dwFlags;
+    LPDIRECTDRAWSURFACE7 lpSurf;
+    REFERENCE_TIME rtStart;
+    REFERENCE_TIME rtEnd;
+    SIZE szAspectRatio;
+    RECT rcSrc;
+    RECT rcDst;
+    DWORD dwTypeSpecificFlags;
+    DWORD dwInterlaceFlags;
+} VMRPRESENTATIONINFO;
+
+typedef struct tagVMRALLOCATIONINFO
+{
+    DWORD dwFlags;
+    LPBITMAPINFOHEADER lpHdr;
+    LPDDPIXELFORMAT lpPixFmt;
+    SIZE szAspectRatio;
+    DWORD dwMinBuffers;
+    DWORD dwMaxBuffers;
+    DWORD dwInterlaceFlags;
+    SIZE szNativeSize;
+} VMRALLOCATIONINFO;
+
+typedef struct _NORMALIZEDRECT
+{
+    float left;
+    float top;
+    float right;
+    float bottom;
+} NORMALIZEDRECT, *PNORMALIZEDRECT;
+
+typedef struct tagVMRGUID
+{
+    GUID* pGUID;
+    GUID GUID;
+} VMRGUID;
+
+typedef struct tagVMRMONITORINFO
+{
+    VMRGUID guid;
+    RECT rcMonitor;
+    HMONITOR hMon;
+    DWORD dwFlags;
+    wchar_t szDevice[VMRDEVICENAMELEN];
+    wchar_t szDescription[VMRDEVICEDESCRIPTIONLEN];
+    LARGE_INTEGER liDriverVersion;
+    DWORD dwVendorId;
+    DWORD dwDeviceId;
+    DWORD dwSubSysId;
+    DWORD dwRevision;
+} VMRMONITORINFO;
+
+typedef struct _VMRFrequency
+{
+    DWORD dwNumerator;
+    DWORD dwDenominator;
+} VMRFrequency;
+
+typedef struct _VMRVideoDesc
+{
+    DWORD dwSize;
+    DWORD dwSampleWidth;
+    DWORD dwSampleHeight;
+    BOOL SingleFieldPerSample;
+    DWORD dwFourCC;
+    VMRFrequency InputSampleFreq;
+    VMRFrequency OutputFrameFreq;
+} VMRVideoDesc;
+
+typedef struct _VMRDeinterlaceCaps
+{
+    DWORD dwSize;
+    DWORD dwNumPreviousOutputFrames;
+    DWORD dwNumForwardRefSamples;
+    DWORD dwNumBackwardRefSamples;
+    VMRDeinterlaceTech  DeinterlaceTechnology;
+} VMRDeinterlaceCaps;
+
+typedef struct _VMRALPHABITMAP
+{
+    DWORD dwFlags;
+    HDC hdc;
+    LPDIRECTDRAWSURFACE7 pDDS;
+    RECT rSrc;
+    NORMALIZEDRECT rDest;
+    FLOAT fAlpha;
+    COLORREF clrSrcKey;
+} VMRALPHABITMAP, *PVMRALPHABITMAP;
+
+typedef struct _VMRVIDEOSTREAMINFO
+{
+    LPDIRECTDRAWSURFACE7 pddsVideoSurface;
+    DWORD dwWidth;
+    DWORD dwHeight;
+    FLOAT dwStrmID;
+    FLOAT fAlpha;
+    DDCOLORKEY ddClrKey;
+    NORMALIZEDRECT rNormal;
+} VMRVIDEOSTREAMINFO;
+
+
+
+[
+    local,
+    object,
+    local,
+    uuid(CE704FE7-E71E-41fb-BAA2-C4403E1182F5),
+    pointer_default(unique)
+]
+interface IVMRImagePresenter : IUnknown
+{
+    HRESULT StartPresenting([in] DWORD_PTR dwUserID);
+    HRESULT StopPresenting([in] DWORD_PTR dwUserID);
+    HRESULT PresentImage([in] DWORD_PTR dwUserID, [in] VMRPRESENTATIONINFO* lpPresInfo);
+};
+
+[
+    local,
+    object,
+    local,
+    uuid(31ce832e-4484-458b-8cca-f4d7e3db0b52),
+    pointer_default(unique)
+]
+interface IVMRSurfaceAllocator : IUnknown
+{
+    HRESULT AllocateSurface([in] DWORD_PTR dwUserID, [in] VMRALLOCATIONINFO* lpAllocInfo, [in] [out] DWORD* lpdwActualBuffers, [out] LPDIRECTDRAWSURFACE7 *lplpSurface);
+    HRESULT FreeSurface([in] DWORD_PTR dwID);
+    HRESULT PrepareSurface([in] DWORD_PTR dwUserID, [in] LPDIRECTDRAWSURFACE7 lpSurface, [in] DWORD dwSurfaceFlags);
+    HRESULT AdviseNotify([in] IVMRSurfaceAllocatorNotify* lpIVMRSurfAllocNotify);
+};
+
+[
+    local,
+    object,
+    local,
+    uuid(aada05a8-5a4e-4729-af0b-cea27aed51e2),
+    pointer_default(unique)
+]
+interface IVMRSurfaceAllocatorNotify : IUnknown
+{
+    HRESULT AdviseSurfaceAllocator([in] DWORD_PTR dwUserID, [in] IVMRSurfaceAllocator* lpIVRMSurfaceAllocator);
+    HRESULT SetDDrawDevice([in] LPDIRECTDRAW7 lpDDrawDevice, [in] HMONITOR hMonitor);
+    HRESULT ChangeDDrawDevice([in] LPDIRECTDRAW7 lpDDrawDevice, [in] HMONITOR hMonitor);
+    HRESULT RestoreDDrawSurfaces();
+    HRESULT NotifyEvent([in] LONG EventCode, [in] LONG_PTR Param1, [in] LONG_PTR Param2);
+    HRESULT SetBorderColor([in] COLORREF clrBorder);
+};
+
+[
+    local,
+    object,
+    local,
+    uuid(0eb1088c-4dcd-46f0-878f-39dae86a51b7),
+    pointer_default(unique)
+]
+interface IVMRWindowlessControl : IUnknown
+{
+    HRESULT GetNativeVideoSize([out] LONG* lpWidth, [out] LONG* lpHeight, [out] LONG* lpARWidth, [out] LONG* lpARHeight);
+    HRESULT GetMinIdealVideoSize([out] LONG* lpWidth, [out] LONG* lpHeight);
+    HRESULT GetMaxIdealVideoSize([out] LONG* lpWidth, [out] LONG* lpHeight);
+    HRESULT SetVideoPosition([in] const LPRECT lpSRCRect, [in] const LPRECT lpDSTRect);
+    HRESULT GetVideoPosition([out] LPRECT lpSRCRect, [out] LPRECT lpDSTRect);
+    HRESULT GetAspectRatioMode([out] DWORD* lpAspectRatioMode);
+    HRESULT SetAspectRatioMode([in] DWORD AspectRatioMode);
+    HRESULT SetVideoClippingWindow([in] HWND hwnd);
+    HRESULT RepaintVideo([in] HWND hwnd, [in] HDC hdc);
+    HRESULT DisplayModeChanged();
+    HRESULT GetCurrentImage([out] BYTE** lpDib);
+    HRESULT SetBorderColor([in] COLORREF Clr);
+    HRESULT GetBorderColor([out] COLORREF* lpClr);
+    HRESULT SetColorKey([in] COLORREF Clr);
+    HRESULT GetColorKey([out] COLORREF* lpClr);
+};
+
+[
+    local,
+    object,
+    local,
+    uuid(1c1a17b0-bed0-415d-974b-dc6696131599),
+    pointer_default(unique)
+]
+interface IVMRMixerControl : IUnknown
+{
+    HRESULT SetAlpha([in] DWORD dwStreamID, [in] float Alpha);
+    HRESULT GetAlpha([in] DWORD dwStreamID, [out] float* pAlpha);
+    HRESULT SetZOrder([in] DWORD dwStreamID, [in] DWORD dwZ);
+    HRESULT GetZOrder([in] DWORD dwStreamID, [out] DWORD* pZ);
+    HRESULT SetOutputRect([in] DWORD dwStreamID, [in] const NORMALIZEDRECT *pRect);
+    HRESULT GetOutputRect([in] DWORD dwStreamID, [out] NORMALIZEDRECT *pRect);
+    HRESULT SetBackgroundClr([in] COLORREF ClrBkg);
+    HRESULT GetBackgroundClr([in] COLORREF* lpClrBkg);
+    HRESULT SetMixingPrefs([in] DWORD dwMixerPrefs);
+    HRESULT GetMixingPrefs([out] DWORD* pdwMixerPrefs);
+};
+
+[
+    object,
+    local,
+    uuid(9cf0b1b6-fbaa-4b7f-88cf-cf1f130a0dce),
+    pointer_default(unique)
+]
+interface IVMRMonitorConfig : IUnknown
+{
+    HRESULT SetMonitor([in] const VMRGUID *pGUID);
+    HRESULT GetMonitor([out] VMRGUID *pGUID);
+    HRESULT SetDefaultMonitor([in] const VMRGUID *pGUID);
+    HRESULT GetDefaultMonitor([out] VMRGUID *pGUID);
+    HRESULT GetAvailableMonitors([out, size_is(dwMaxInfoArraySize)] VMRMONITORINFO* pInfo, [in] DWORD dwMaxInfoArraySize, [out] DWORD* pdwNumDevices);
+};
+
+
+[
+    object,
+    local,
+    uuid(9e5530c5-7034-48b4-bb46-0b8a6efc8e36),
+    pointer_default(unique)
+]
+interface IVMRFilterConfig : IUnknown
+{
+    HRESULT SetImageCompositor([in] IVMRImageCompositor* lpVMRImgCompositor);
+    HRESULT SetNumberOfStreams([in] DWORD dwMaxStreams);
+    HRESULT GetNumberOfStreams([out] DWORD* pdwMaxStreams);
+    HRESULT SetRenderingPrefs([in] DWORD dwRenderFlags);
+    HRESULT GetRenderingPrefs([out] DWORD* pdwRenderFlags);
+    HRESULT SetRenderingMode([in] DWORD Mode);
+    HRESULT GetRenderingMode([out] DWORD* pMode);
+}
+
+
+[
+    object,
+    local,
+    uuid(ede80b5c-bad6-4623-b537-65586c9f8dfd),
+    pointer_default(unique)
+]
+interface IVMRAspectRatioControl : IUnknown
+{
+    HRESULT GetAspectRatioMode([out] LPDWORD lpdwARMode);
+    HRESULT SetAspectRatioMode([in] DWORD dwARMode);
+}
+
+[
+    object,
+    local,
+    uuid(bb057577-0db8-4e6a-87a7-1a8c9a505a0f),
+    pointer_default(unique)
+]
+interface IVMRDeinterlaceControl : IUnknown
+{
+
+    HRESULT GetNumberOfDeinterlaceModes([in] VMRVideoDesc* lpVideoDescription, [in] [out] LPDWORD lpdwNumDeinterlaceModes, [out] LPGUID lpDeinterlaceModes);
+    HRESULT GetDeinterlaceModeCaps([in] LPGUID lpDeinterlaceMode, [in] VMRVideoDesc* lpVideoDescription, [in] [out] VMRDeinterlaceCaps* lpDeinterlaceCaps);
+    HRESULT GetDeinterlaceMode([in] DWORD dwStreamID, [out] LPGUID lpDeinterlaceMode );
+    HRESULT SetDeinterlaceMode([in] DWORD dwStreamID, [in] LPGUID lpDeinterlaceMode);
+    HRESULT GetDeinterlacePrefs([out] LPDWORD lpdwDeinterlacePrefs);
+    HRESULT SetDeinterlacePrefs([in] DWORD dwDeinterlacePrefs);
+    HRESULT GetActualDeinterlaceMode([in] DWORD dwStreamID, [out] LPGUID lpDeinterlaceMode);
+}
+
+[
+    object,
+    local,
+    uuid(1E673275-0257-40aa-AF20-7C608D4A0428),
+    pointer_default(unique)
+]
+interface IVMRMixerBitmap : IUnknown
+{
+    HRESULT SetAlphaBitmap([in] const VMRALPHABITMAP *pBmpParms);
+    HRESULT UpdateAlphaBitmapParameters([in] PVMRALPHABITMAP pBmpParms);
+    HRESULT GetAlphaBitmapParameters([out] PVMRALPHABITMAP pBmpParms);
+};
+
+[
+    local,
+    object,
+    local,
+    uuid(7a4fb5af-479f-4074-bb40-ce6722e43c82),
+    pointer_default(unique)
+]
+interface IVMRImageCompositor : IUnknown
+{
+    HRESULT InitCompositionTarget([in] IUnknown* pD3DDevice, [in] LPDIRECTDRAWSURFACE7 pddsRenderTarget);
+    HRESULT TermCompositionTarget([in] IUnknown* pD3DDevice, [in] LPDIRECTDRAWSURFACE7 pddsRenderTarget);
+    HRESULT SetStreamMediaType([in] DWORD dwStrmID, [in] AM_MEDIA_TYPE* pmt, [in] BOOL fTexture);
+    HRESULT CompositeImage([in] IUnknown* pD3DDevice, [in] LPDIRECTDRAWSURFACE7 pddsRenderTarget, [in] AM_MEDIA_TYPE* pmtRenderTarget, [in] REFERENCE_TIME rtStart, [in] REFERENCE_TIME rtEnd, [in] DWORD dwClrBkGnd, [in] VMRVIDEOSTREAMINFO* pVideoStreamInfo, [in] UINT cStreams);
+};
+
+[
+    object,
+    local,
+    uuid(058d1f11-2a54-4bef-bd54-df706626b727),
+    pointer_default(unique)
+]
+interface IVMRVideoStreamControl: IUnknown
+{
+    HRESULT SetColorKey([in] LPDDCOLORKEY lpClrKey);
+    HRESULT GetColorKey([out] LPDDCOLORKEY lpClrKey);
+    HRESULT SetStreamActiveState([in] BOOL fActive);
+    HRESULT GetStreamActiveState([out] BOOL* lpfActive);
+};
+
+[
+    local,
+    object,
+    local,
+    uuid(a9849bbe-9ec8-4263-b764-62730f0d15d0),
+    pointer_default(unique)
+]
+interface IVMRSurface : IUnknown
+{
+    HRESULT IsSurfaceLocked();
+    HRESULT LockSurface([out] BYTE** lpSurface);
+    HRESULT UnlockSurface();
+    HRESULT GetSurface([out] LPDIRECTDRAWSURFACE7 *lplpSurface);
+};
+
+[
+    local,
+    object,
+    local,
+    uuid(9f3a1c85-8555-49ba-935f-be5b5b29d178),
+    pointer_default(unique)
+]
+
+interface IVMRImagePresenterConfig : IUnknown
+{
+    HRESULT SetRenderingPrefs([in] DWORD dwRenderFlags);
+    HRESULT GetRenderingPrefs([out] DWORD* dwRenderFlags);
+}
+
+[
+    local,
+    object,
+    local,
+    uuid(e6f7ce40-4673-44f1-8f77-5499d68cb4ea),
+    pointer_default(unique)
+]
+
+interface IVMRImagePresenterExclModeConfig : IVMRImagePresenterConfig
+{
+    HRESULT SetXlcModeDDObjAndPrimarySurface([in] LPDIRECTDRAW7 lpDDObj, [in] LPDIRECTDRAWSURFACE7 lpPrimarySurf);
+    HRESULT GetXlcModeDDObjAndPrimarySurface([out] LPDIRECTDRAW7* lpDDObj, [out] LPDIRECTDRAWSURFACE7* lpPrimarySurf);
+}
+
+[
+    local,
+    object,
+    local,
+    uuid(aac18c18-e186-46d2-825d-a1f8dc8e395a),
+    pointer_default(unique)
+]
+interface IVPManager : IUnknown
+{
+    HRESULT SetVideoPortIndex([in] DWORD dwVideoPortIndex);
+    HRESULT GetVideoPortIndex([out] DWORD* pdwVideoPortIndex);
+};
+

Propchange: trunk/reactos/include/dxsdk/Vmrender.idl
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: trunk/reactos/include/dxsdk/dxsdk.rbuild
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/dxsdk.rbuild?rev=26922&r1=26921&r2=26922&view=diff
==============================================================================
--- trunk/reactos/include/dxsdk/dxsdk.rbuild (original)
+++ trunk/reactos/include/dxsdk/dxsdk.rbuild Sun May 27 17:27:51 2007
@@ -12,4 +12,5 @@
 	<file>tvratings.idl</file>	
 	<file>vidcap.idl</file>
 	<file>Videoacc.idl</file>	
+	<file>Vmrender.idl</file>	
 </module>




More information about the Ros-diffs mailing list