Using the Video Mixing Renderer

In terms of both performance and breadth of features, the Video Mixing Renderer (VMR) filter represents the next generation in video rendering on the Windows platform. The VMR replaces the Overlay Mixer and Video Renderer, and adds many new mixing features.

There are two versions of the VMR:

  • The VMR-7, which uses DirectDraw 7 for rendering.
  • The VMR-9, which uses Direct3D 9.

The VMR-7 is available on Windows XP and later, but is not available for redistribution. The VMR-9 is available for redistribution on all platforms supported by DirectX 9. The two VMR filters are very similar in their implementation and the interfaces that they expose.

The VMR-9 has its own CLSID and its own set of interfaces, structures and enumeration types which are not always identical to the corresponding data types for the VMR-7, due to the underlying differences between DirectDraw 7 and Direct3D 9. The VMR-9 interfaces all end with "9", for example IVMRStreamConfig9, and the structures and enumeration types all have "VMR9" in their name to distinguish them from the data types used with the VMR-7.

To ensure backward-compatibility, the VMR-9 is not the default renderer on any system. To use the VMR-9, you must explicitly add it to the filter graph using the IFilterGraph::AddFilter method, and configure it before connecting it to any upstream filters.

This article contains the following sections. Except where noted, the information in these sections applies to both the VMR-7 and the VMR-9 filters.

Video Mixing Renderer Filter 7

Video Mixing Renderer Filter 9