Choosing the Right Video Renderer
DirectShow provides several video renderer filters, summarized in the following table.
|Enhanced Video Renderer (EVR)||Uses Direct3D 9. Requires Windows Vista or later.|
|Video Mixing Renderer 9 (VMR-9)||Uses Direct3D 9. Requires Windows XP or later.|
|Video Mixing Filter 7 (VMR-7)||Uses DirectDraw. Requires Windows XP or later.|
|Overlay Mixer||Supports hardware overlays through DirectDraw.|
|Legacy Video Renderer filter.||Uses DirectDraw or (rarely) GDI|
Which renderer to use depends largely on which versions of Windows you need to support.
- In Windows Vista and later, applications should use the EVR if the hardware supports it. Otherwise, fall back to the VMR-9 or VMR-7. The EVR offers better performance and better video quality than previous renderers. Also, it is designed to work with the Desktop Window Manager (DWM).
- Prior to Windows Vista, use the VMR-9 if the hardware supports it and video port functionality is not required. Otherwise, use the VMR-7.
- On older systems, you might need to use the Overlay Mixer (for video port or hardware overlay support) or the legacy Video Renderer filter.
The IGraphBuilder::Render and RenderFile methods use the VMR-7 by default. If the hardware does not support the VMR-7, these methods fall back to the legacy Video Renderer filter. The EVR and VMR-9 are never the default renderers.