Microsoft DirectX 8.1 (C++)

VMR vs. Previous DirectShow Renderers

This topic applies to Windows XP Home Edition and Windows XP Professional only.

With the old filters, different renderers would be required in the graph depending on the hardware configuration.

The Video Renderer filter was used to render a single video stream in non-video port scenarios. It was based on graphics hardware technology which is now over five years old, and on an older version of DirectDraw. In certain scenarios, it uses GDI for rendering. This is done either to conserve video resources, which were much more limited five years ago, or else to overcome limitations in DirectDraw that related to multi-monitor support. The VMR never uses GDI for rendering and is based completely on DirectDraw 7.

In scenarios involving either a video port or multiple video input streams, prior to the VMR the Overlay Mixer filter was used for rendering. This filter only uses the hardware overlay on the graphics card, and so is generally limited to the one overlay surface provided by most cards. The Overlay Mixer performs destination color keying, but it is not capable of true video mixing. Because it does not have a window manager, it must use a second filter, the Video Renderer, for window management. The VMR is capable of true alpha mixing, and can create multiple overlays in software in addition to the hardware overlays.

In video port scenarios where applications were overlaying closed captioning or other VBI data on the video, an additional filter, the VBI Surface Allocator, was required in order to allocate the additional video memory for the VBI text.

For ISVs, the VMR simplifies application development by combining allocation and rendering functionality into a single filter which is used in all scenarios. With the VMR, the VBI Surface Allocator is no longer needed. This filter is replaced in Windows XP Home Edition and Windows XP Professional by the new Video Port Manager filter which performs all of the video port tasks previously performed by the Overlay Mixer.

The VMR is more robust than the earlier renderers, in part because it only uses DirectDraw 7 interfaces, as opposed to the old renderers which used a mixture of interfaces from older and newer versions of DirectDraw. The VMR also employs a new image presentation mechanism which is designed for current and future generations of adapters, which have support for D3D, increased VRAM & video memory bandwidth, and hardware acceleration features. With the VMR, the focus is on front-end processing, and reduced dependence on videoports and overlays. But even with all its new functionality, the VMR is designed for maximum compatibility with existing applications.

The VMR is also extensible. Applications can provide their own sub-components to perform custom video effects and/or take control of the allocation and rendering process.