Microsoft DirectX 9.0

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.

The VMR was first made available for the Windows XP platforms only. Beginning with DirectX 9.0, a separate version of the VMR, called the VMR-9, is available for redistribution on all platforms supported by DirectX. The two VMR filters are very similar in their implementation and the interfaces that they expose. The primary difference is that the original VMR (now called the VMR-7) uses DirectDraw 7 internally to control the video hardware, while the new version of VMR (called the VMR-9) uses Direct3D 9.

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: