Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenvmrender.idl
Go to the documentation of this file.
00001 00002 cpp_quote("#if 0") 00003 00004 import "unknwn.idl"; 00005 00006 typedef DWORD* LPDIRECTDRAW7; 00007 typedef DWORD* LPDIRECTDRAWSURFACE7; 00008 typedef DWORD* LPDDPIXELFORMAT; 00009 typedef DWORD* LPBITMAPINFOHEADER; 00010 typedef struct {DWORD dw1; DWORD dw2;} DDCOLORKEY; 00011 typedef DDCOLORKEY* LPDDCOLORKEY; 00012 cpp_quote ("#endif") 00013 00014 cpp_quote("#include <ddraw.h>") 00015 00016 cpp_quote("#define VMRBITMAP_DISABLE 0x00000001") 00017 cpp_quote("#define VMRBITMAP_HDC 0x00000002") 00018 cpp_quote("#define VMRBITMAP_ENTIREDDS 0x00000004") 00019 cpp_quote("#define VMRBITMAP_SRCCOLORKEY 0x00000008") 00020 cpp_quote("#define VMRBITMAP_SRCRECT 0x00000010") 00021 00022 interface IVMRSurface; 00023 interface IVMRSurfaceAllocator; 00024 interface IVMRSurfaceAllocatorNotify; 00025 interface IVMRImagePresenter; 00026 interface IVMRImagePresenterConfig; 00027 interface IVMRWindowlessControl; 00028 interface IVMRMixerControl; 00029 interface IVMRMixerBitmap; 00030 interface IVMRFilterConfig; 00031 interface IVMRAspectRatioControl; 00032 interface IVMRDeinterlaceControl; 00033 interface IVMRMonitorConfig; 00034 interface IVMRImageCompositor; 00035 interface IVMRVideoStreamControl; 00036 00037 #define VMRDEVICENAMELEN 32 00038 #define VMRDEVICEDESCRIPTIONLEN 256 00039 00040 typedef enum 00041 { 00042 VMRSample_SyncPoint = 0x00000001, 00043 VMRSample_Preroll = 0x00000002, 00044 VMRSample_Discontinuity = 0x00000004, 00045 VMRSample_TimeValid = 0x00000008, 00046 VMRSample_SrcDstRectsValid= 0x00000010 00047 } VMRPresentationFlags; 00048 00049 typedef enum 00050 { 00051 AMAP_PIXELFORMAT_VALID = 0x01, 00052 AMAP_3D_TARGET = 0x02, 00053 AMAP_ALLOW_SYSMEM = 0x04, 00054 AMAP_FORCE_SYSMEM = 0x08, 00055 AMAP_DIRECTED_FLIP = 0x10, 00056 AMAP_DXVA_TARGET = 0x20 00057 } VMRSurfaceAllocationFlags; 00058 00059 typedef enum 00060 { 00061 VMR_ARMODE_NONE, 00062 VMR_ARMODE_LETTER_BOX 00063 } VMR_ASPECT_RATIO_MODE; 00064 00065 00066 typedef enum 00067 { 00068 MixerPref_NoDecimation = 0x00000001, 00069 MixerPref_DecimateOutput = 0x00000002, 00070 MixerPref_ARAdjustXorY = 0x00000004, 00071 MixerPref_DecimationReserved = 0x00000008, 00072 MixerPref_DecimateMask = 0x0000000F, 00073 MixerPref_BiLinearFiltering = 0x00000010, 00074 MixerPref_PointFiltering = 0x00000020, 00075 MixerPref_FilteringMask = 0x000000F0, 00076 MixerPref_RenderTargetRGB = 0x00000100, 00077 MixerPref_RenderTargetYUV = 0x00001000, 00078 MixerPref_RenderTargetYUV420 = 0x00000200, 00079 MixerPref_RenderTargetYUV422 = 0x00000400, 00080 MixerPref_RenderTargetYUV444 = 0x00000800, 00081 MixerPref_RenderTargetReserved = 0x0000E000, 00082 MixerPref_RenderTargetMask = 0x0000FF00, 00083 MixerPref_DynamicSwitchToBOB = 0x00010000, 00084 MixerPref_DynamicDecimateBy2 = 0x00020000, 00085 MixerPref_DynamicReserved = 0x000C0000, 00086 MixerPref_DynamicMask = 0x000F0000 00087 } VMRMixerPrefs; 00088 00089 typedef enum 00090 { 00091 RenderPrefs_RestrictToInitialMonitor = 0x00000000, 00092 RenderPrefs_ForceOffscreen = 0x00000001, 00093 RenderPrefs_ForceOverlays = 0x00000002, 00094 RenderPrefs_AllowOverlays = 0x00000000, 00095 RenderPrefs_AllowOffscreen = 0x00000000, 00096 RenderPrefs_DoNotRenderColorKeyAndBorder = 0x00000008, 00097 RenderPrefs_Reserved = 0x00000010, 00098 RenderPrefs_PreferAGPMemWhenMixing = 0x00000020, 00099 00100 RenderPrefs_Mask = 0x0000003f, 00101 } VMRRenderPrefs; 00102 00103 typedef enum 00104 { 00105 VMRMode_Windowed = 0x00000001, 00106 VMRMode_Windowless = 0x00000002, 00107 VMRMode_Renderless = 0x00000004, 00108 VMRMode_Mask = 0x00000007, 00109 } VMRMode; 00110 00111 enum 00112 { 00113 MAX_NUMBER_OF_STREAMS = 16 00114 }; 00115 00116 typedef enum 00117 { 00118 DeinterlacePref_NextBest = 0x01, 00119 DeinterlacePref_BOB = 0x02, 00120 DeinterlacePref_Weave = 0x04, 00121 DeinterlacePref_Mask = 0x07 00122 } VMRDeinterlacePrefs; 00123 00124 typedef enum 00125 { 00126 DeinterlaceTech_Unknown = 0x0000, 00127 DeinterlaceTech_BOBLineReplicate = 0x0001, 00128 DeinterlaceTech_BOBVerticalStretch = 0x0002, 00129 DeinterlaceTech_MedianFiltering = 0x0004, 00130 DeinterlaceTech_EdgeFiltering = 0x0010, 00131 DeinterlaceTech_FieldAdaptive = 0x0020, 00132 DeinterlaceTech_PixelAdaptive = 0x0040, 00133 DeinterlaceTech_MotionVectorSteered = 0x0080 00134 } VMRDeinterlaceTech; 00135 00136 typedef struct tagVMRPRESENTATIONINFO 00137 { 00138 DWORD dwFlags; 00139 LPDIRECTDRAWSURFACE7 lpSurf; 00140 REFERENCE_TIME rtStart; 00141 REFERENCE_TIME rtEnd; 00142 SIZE szAspectRatio; 00143 RECT rcSrc; 00144 RECT rcDst; 00145 DWORD dwTypeSpecificFlags; 00146 DWORD dwInterlaceFlags; 00147 } VMRPRESENTATIONINFO; 00148 00149 typedef struct tagVMRALLOCATIONINFO 00150 { 00151 DWORD dwFlags; 00152 LPBITMAPINFOHEADER lpHdr; 00153 LPDDPIXELFORMAT lpPixFmt; 00154 SIZE szAspectRatio; 00155 DWORD dwMinBuffers; 00156 DWORD dwMaxBuffers; 00157 DWORD dwInterlaceFlags; 00158 SIZE szNativeSize; 00159 } VMRALLOCATIONINFO; 00160 00161 typedef struct _NORMALIZEDRECT 00162 { 00163 float left; 00164 float top; 00165 float right; 00166 float bottom; 00167 } NORMALIZEDRECT, *PNORMALIZEDRECT; 00168 00169 typedef struct tagVMRGUID 00170 { 00171 struct _GUID *pGUID, GUID; 00172 } VMRGUID; 00173 00174 typedef struct tagVMRMONITORINFO 00175 { 00176 VMRGUID guid; 00177 RECT rcMonitor; 00178 HMONITOR hMon; 00179 DWORD dwFlags; 00180 wchar_t szDevice[VMRDEVICENAMELEN]; 00181 wchar_t szDescription[VMRDEVICEDESCRIPTIONLEN]; 00182 LARGE_INTEGER liDriverVersion; 00183 DWORD dwVendorId; 00184 DWORD dwDeviceId; 00185 DWORD dwSubSysId; 00186 DWORD dwRevision; 00187 } VMRMONITORINFO; 00188 00189 typedef struct _VMRFrequency 00190 { 00191 DWORD dwNumerator; 00192 DWORD dwDenominator; 00193 } VMRFrequency; 00194 00195 typedef struct _VMRVideoDesc 00196 { 00197 DWORD dwSize; 00198 DWORD dwSampleWidth; 00199 DWORD dwSampleHeight; 00200 BOOL SingleFieldPerSample; 00201 DWORD dwFourCC; 00202 VMRFrequency InputSampleFreq; 00203 VMRFrequency OutputFrameFreq; 00204 } VMRVideoDesc; 00205 00206 typedef struct _VMRDeinterlaceCaps 00207 { 00208 DWORD dwSize; 00209 DWORD dwNumPreviousOutputFrames; 00210 DWORD dwNumForwardRefSamples; 00211 DWORD dwNumBackwardRefSamples; 00212 VMRDeinterlaceTech DeinterlaceTechnology; 00213 } VMRDeinterlaceCaps; 00214 00215 typedef struct _VMRALPHABITMAP 00216 { 00217 DWORD dwFlags; 00218 HDC hdc; 00219 LPDIRECTDRAWSURFACE7 pDDS; 00220 RECT rSrc; 00221 NORMALIZEDRECT rDest; 00222 FLOAT fAlpha; 00223 COLORREF clrSrcKey; 00224 } VMRALPHABITMAP, *PVMRALPHABITMAP; 00225 00226 typedef struct _VMRVIDEOSTREAMINFO 00227 { 00228 LPDIRECTDRAWSURFACE7 pddsVideoSurface; 00229 DWORD dwWidth; 00230 DWORD dwHeight; 00231 FLOAT dwStrmID; 00232 FLOAT fAlpha; 00233 DDCOLORKEY ddClrKey; 00234 NORMALIZEDRECT rNormal; 00235 } VMRVIDEOSTREAMINFO; 00236 00237 00238 00239 [ 00240 local, 00241 object, 00242 uuid(CE704FE7-E71E-41fb-BAA2-C4403E1182F5), 00243 pointer_default(unique) 00244 ] 00245 interface IVMRImagePresenter : IUnknown 00246 { 00247 HRESULT StartPresenting([in] DWORD_PTR dwUserID); 00248 HRESULT StopPresenting([in] DWORD_PTR dwUserID); 00249 HRESULT PresentImage([in] DWORD_PTR dwUserID, [in] VMRPRESENTATIONINFO* lpPresInfo); 00250 }; 00251 00252 [ 00253 local, 00254 object, 00255 uuid(31ce832e-4484-458b-8cca-f4d7e3db0b52), 00256 pointer_default(unique) 00257 ] 00258 interface IVMRSurfaceAllocator : IUnknown 00259 { 00260 HRESULT AllocateSurface([in] DWORD_PTR dwUserID, [in] VMRALLOCATIONINFO* lpAllocInfo, [in] [out] DWORD* lpdwActualBuffers, [out] LPDIRECTDRAWSURFACE7 *lplpSurface); 00261 HRESULT FreeSurface([in] DWORD_PTR dwID); 00262 HRESULT PrepareSurface([in] DWORD_PTR dwUserID, [in] LPDIRECTDRAWSURFACE7 lpSurface, [in] DWORD dwSurfaceFlags); 00263 HRESULT AdviseNotify([in] IVMRSurfaceAllocatorNotify* lpIVMRSurfAllocNotify); 00264 }; 00265 00266 [ 00267 local, 00268 object, 00269 uuid(aada05a8-5a4e-4729-af0b-cea27aed51e2), 00270 pointer_default(unique) 00271 ] 00272 interface IVMRSurfaceAllocatorNotify : IUnknown 00273 { 00274 HRESULT AdviseSurfaceAllocator([in] DWORD_PTR dwUserID, [in] IVMRSurfaceAllocator* lpIVRMSurfaceAllocator); 00275 HRESULT SetDDrawDevice([in] LPDIRECTDRAW7 lpDDrawDevice, [in] HMONITOR hMonitor); 00276 HRESULT ChangeDDrawDevice([in] LPDIRECTDRAW7 lpDDrawDevice, [in] HMONITOR hMonitor); 00277 HRESULT RestoreDDrawSurfaces(); 00278 HRESULT NotifyEvent([in] LONG EventCode, [in] LONG_PTR Param1, [in] LONG_PTR Param2); 00279 HRESULT SetBorderColor([in] COLORREF clrBorder); 00280 }; 00281 00282 [ 00283 local, 00284 object, 00285 uuid(0eb1088c-4dcd-46f0-878f-39dae86a51b7), 00286 pointer_default(unique) 00287 ] 00288 interface IVMRWindowlessControl : IUnknown 00289 { 00290 HRESULT GetNativeVideoSize([out] LONG* lpWidth, [out] LONG* lpHeight, [out] LONG* lpARWidth, [out] LONG* lpARHeight); 00291 HRESULT GetMinIdealVideoSize([out] LONG* lpWidth, [out] LONG* lpHeight); 00292 HRESULT GetMaxIdealVideoSize([out] LONG* lpWidth, [out] LONG* lpHeight); 00293 HRESULT SetVideoPosition([in] const LPRECT lpSRCRect, [in] const LPRECT lpDSTRect); 00294 HRESULT GetVideoPosition([out] LPRECT lpSRCRect, [out] LPRECT lpDSTRect); 00295 HRESULT GetAspectRatioMode([out] DWORD* lpAspectRatioMode); 00296 HRESULT SetAspectRatioMode([in] DWORD AspectRatioMode); 00297 HRESULT SetVideoClippingWindow([in] HWND hwnd); 00298 HRESULT RepaintVideo([in] HWND hwnd, [in] HDC hdc); 00299 HRESULT DisplayModeChanged(); 00300 HRESULT GetCurrentImage([out] BYTE** lpDib); 00301 HRESULT SetBorderColor([in] COLORREF Clr); 00302 HRESULT GetBorderColor([out] COLORREF* lpClr); 00303 HRESULT SetColorKey([in] COLORREF Clr); 00304 HRESULT GetColorKey([out] COLORREF* lpClr); 00305 }; 00306 00307 [ 00308 local, 00309 object, 00310 uuid(1c1a17b0-bed0-415d-974b-dc6696131599), 00311 pointer_default(unique) 00312 ] 00313 interface IVMRMixerControl : IUnknown 00314 { 00315 HRESULT SetAlpha([in] DWORD dwStreamID, [in] float Alpha); 00316 HRESULT GetAlpha([in] DWORD dwStreamID, [out] float* pAlpha); 00317 HRESULT SetZOrder([in] DWORD dwStreamID, [in] DWORD dwZ); 00318 HRESULT GetZOrder([in] DWORD dwStreamID, [out] DWORD* pZ); 00319 HRESULT SetOutputRect([in] DWORD dwStreamID, [in] const NORMALIZEDRECT *pRect); 00320 HRESULT GetOutputRect([in] DWORD dwStreamID, [out] NORMALIZEDRECT *pRect); 00321 HRESULT SetBackgroundClr([in] COLORREF ClrBkg); 00322 HRESULT GetBackgroundClr([in] COLORREF* lpClrBkg); 00323 HRESULT SetMixingPrefs([in] DWORD dwMixerPrefs); 00324 HRESULT GetMixingPrefs([out] DWORD* pdwMixerPrefs); 00325 }; 00326 00327 [ 00328 object, 00329 local, 00330 uuid(9cf0b1b6-fbaa-4b7f-88cf-cf1f130a0dce), 00331 pointer_default(unique) 00332 ] 00333 interface IVMRMonitorConfig : IUnknown 00334 { 00335 HRESULT SetMonitor([in] const VMRGUID *pGUID); 00336 HRESULT GetMonitor([out] VMRGUID *pGUID); 00337 HRESULT SetDefaultMonitor([in] const VMRGUID *pGUID); 00338 HRESULT GetDefaultMonitor([out] VMRGUID *pGUID); 00339 HRESULT GetAvailableMonitors([out, size_is(dwMaxInfoArraySize)] VMRMONITORINFO* pInfo, [in] DWORD dwMaxInfoArraySize, [out] DWORD* pdwNumDevices); 00340 }; 00341 00342 00343 [ 00344 object, 00345 local, 00346 uuid(9e5530c5-7034-48b4-bb46-0b8a6efc8e36), 00347 pointer_default(unique) 00348 ] 00349 interface IVMRFilterConfig : IUnknown 00350 { 00351 HRESULT SetImageCompositor([in] IVMRImageCompositor* lpVMRImgCompositor); 00352 HRESULT SetNumberOfStreams([in] DWORD dwMaxStreams); 00353 HRESULT GetNumberOfStreams([out] DWORD* pdwMaxStreams); 00354 HRESULT SetRenderingPrefs([in] DWORD dwRenderFlags); 00355 HRESULT GetRenderingPrefs([out] DWORD* pdwRenderFlags); 00356 HRESULT SetRenderingMode([in] DWORD Mode); 00357 HRESULT GetRenderingMode([out] DWORD* pMode); 00358 } 00359 00360 00361 [ 00362 object, 00363 local, 00364 uuid(ede80b5c-bad6-4623-b537-65586c9f8dfd), 00365 pointer_default(unique) 00366 ] 00367 interface IVMRAspectRatioControl : IUnknown 00368 { 00369 HRESULT GetAspectRatioMode([out] LPDWORD lpdwARMode); 00370 HRESULT SetAspectRatioMode([in] DWORD dwARMode); 00371 } 00372 00373 [ 00374 object, 00375 local, 00376 uuid(bb057577-0db8-4e6a-87a7-1a8c9a505a0f), 00377 pointer_default(unique) 00378 ] 00379 interface IVMRDeinterlaceControl : IUnknown 00380 { 00381 00382 HRESULT GetNumberOfDeinterlaceModes([in] VMRVideoDesc* lpVideoDescription, [in] [out] LPDWORD lpdwNumDeinterlaceModes, [out] LPGUID lpDeinterlaceModes); 00383 HRESULT GetDeinterlaceModeCaps([in] LPGUID lpDeinterlaceMode, [in] VMRVideoDesc* lpVideoDescription, [in] [out] VMRDeinterlaceCaps* lpDeinterlaceCaps); 00384 HRESULT GetDeinterlaceMode([in] DWORD dwStreamID, [out] LPGUID lpDeinterlaceMode ); 00385 HRESULT SetDeinterlaceMode([in] DWORD dwStreamID, [in] LPGUID lpDeinterlaceMode); 00386 HRESULT GetDeinterlacePrefs([out] LPDWORD lpdwDeinterlacePrefs); 00387 HRESULT SetDeinterlacePrefs([in] DWORD dwDeinterlacePrefs); 00388 HRESULT GetActualDeinterlaceMode([in] DWORD dwStreamID, [out] LPGUID lpDeinterlaceMode); 00389 } 00390 00391 [ 00392 object, 00393 local, 00394 uuid(1E673275-0257-40aa-AF20-7C608D4A0428), 00395 pointer_default(unique) 00396 ] 00397 interface IVMRMixerBitmap : IUnknown 00398 { 00399 HRESULT SetAlphaBitmap([in] const VMRALPHABITMAP *pBmpParms); 00400 HRESULT UpdateAlphaBitmapParameters([in] PVMRALPHABITMAP pBmpParms); 00401 HRESULT GetAlphaBitmapParameters([out] PVMRALPHABITMAP pBmpParms); 00402 }; 00403 00404 [ 00405 local, 00406 object, 00407 uuid(7a4fb5af-479f-4074-bb40-ce6722e43c82), 00408 pointer_default(unique) 00409 ] 00410 interface IVMRImageCompositor : IUnknown 00411 { 00412 HRESULT InitCompositionTarget([in] IUnknown* pD3DDevice, [in] LPDIRECTDRAWSURFACE7 pddsRenderTarget); 00413 HRESULT TermCompositionTarget([in] IUnknown* pD3DDevice, [in] LPDIRECTDRAWSURFACE7 pddsRenderTarget); 00414 HRESULT SetStreamMediaType([in] DWORD dwStrmID, [in] AM_MEDIA_TYPE* pmt, [in] BOOL fTexture); 00415 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); 00416 }; 00417 00418 [ 00419 object, 00420 local, 00421 uuid(058d1f11-2a54-4bef-bd54-df706626b727), 00422 pointer_default(unique) 00423 ] 00424 interface IVMRVideoStreamControl: IUnknown 00425 { 00426 HRESULT SetColorKey([in] LPDDCOLORKEY lpClrKey); 00427 HRESULT GetColorKey([out] LPDDCOLORKEY lpClrKey); 00428 HRESULT SetStreamActiveState([in] BOOL fActive); 00429 HRESULT GetStreamActiveState([out] BOOL* lpfActive); 00430 }; 00431 00432 [ 00433 local, 00434 object, 00435 uuid(a9849bbe-9ec8-4263-b764-62730f0d15d0), 00436 pointer_default(unique) 00437 ] 00438 interface IVMRSurface : IUnknown 00439 { 00440 HRESULT IsSurfaceLocked(); 00441 HRESULT LockSurface([out] BYTE** lpSurface); 00442 HRESULT UnlockSurface(); 00443 HRESULT GetSurface([out] LPDIRECTDRAWSURFACE7 *lplpSurface); 00444 }; 00445 00446 [ 00447 local, 00448 object, 00449 uuid(9f3a1c85-8555-49ba-935f-be5b5b29d178), 00450 pointer_default(unique) 00451 ] 00452 00453 interface IVMRImagePresenterConfig : IUnknown 00454 { 00455 HRESULT SetRenderingPrefs([in] DWORD dwRenderFlags); 00456 HRESULT GetRenderingPrefs([out] DWORD* dwRenderFlags); 00457 } 00458 00459 [ 00460 local, 00461 object, 00462 uuid(e6f7ce40-4673-44f1-8f77-5499d68cb4ea), 00463 pointer_default(unique) 00464 ] 00465 00466 interface IVMRImagePresenterExclModeConfig : IVMRImagePresenterConfig 00467 { 00468 HRESULT SetXlcModeDDObjAndPrimarySurface([in] LPDIRECTDRAW7 lpDDObj, [in] LPDIRECTDRAWSURFACE7 lpPrimarySurf); 00469 HRESULT GetXlcModeDDObjAndPrimarySurface([out] LPDIRECTDRAW7* lpDDObj, [out] LPDIRECTDRAWSURFACE7* lpPrimarySurf); 00470 } 00471 00472 [ 00473 local, 00474 object, 00475 uuid(aac18c18-e186-46d2-825d-a1f8dc8e395a), 00476 pointer_default(unique) 00477 ] 00478 interface IVPManager : IUnknown 00479 { 00480 HRESULT SetVideoPortIndex([in] DWORD dwVideoPortIndex); 00481 HRESULT GetVideoPortIndex([out] DWORD* pdwVideoPortIndex); 00482 }; 00483 Generated on Wed May 23 2012 04:28:42 for ReactOS by
1.7.6.1
|