Enhanced Video Renderer Filter

[The feature associated with this page, DirectShow, is a legacy feature. It has been superseded by MediaPlayer, IMFMediaEngine, and Audio/Video Capture in Media Foundation. Those features have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer, IMFMediaEngine and Audio/Video Capture in Media Foundation instead of DirectShow, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

Note

This topic applies to Windows Vista and later.

The Enhanced Video Renderer (EVR) filter is a 16-channel video mixer and renderer. It has the same core functionality and plug-in model as the Media Foundation EVR media sink.

The DirectShow EVR filter is documented in the Media Foundation SDK documentation; for more information, see Enhanced Video Renderer.

Label Value
Filter Interfaces (through QueryInterface) DirectShow interfaces:Media Foundation interfaces:
Input Pin Media Types Variable, depending on the graphics driver.
Input Pin Interfaces (through QueryInterface) DirectShow interfaces:Media Foundation interfaces:
Output Pin Media Types Not applicable.
Output Pin Interfaces Not applicable.
Filter CLSID CLSID_EnhancedVideoRenderer
Executable evr.dll
Merit MERIT_DO_NOT_USE
Filter Category CLSID_LegacyAmFilterCategory

Remarks

In addition to the interfaces exposed through QueryInterface, the EVR exposes other interfaces through the IMFGetService::GetService method. Some of these interfaces are implemented by the EVR presenter or the EVR mixer, rather than the EVR itself. If the application sets a custom presenter or mixer on the EVR, the custom versions might expose a different set of interfaces.

Object Service Identifier Interfaces
EVR filter MR_VIDEO_RENDER_SERVICE(Queries EVR or presenter)
IMFVideoDeviceID
IMFVideoDisplayControl
IMFVideoPositionMapper
IMFVideoPresenter
EVR filter MR_VIDEO_ACCELERATION_SERVICE(Queries presenter)
IDirect3DDeviceManager9
EVR filter MR_VIDEO_MIXER_SERVICE(Queries mixer)
IMFVideoDeviceID
IMFVideoMixerBitmap
IMFVideoMixerControl
IMFVideoPositionMapper
IMFVideoProcessor
Input pins MR_VIDEO_ACCELERATION_SERVICE IDirectXVideoMemoryConfiguration

The EVR can mix up to 16 video streams. The first input stream (pin 0) is called the reference stream. The reference stream always appears first in the z-order. Any additional streams are called substreams, and are mixed on top of the reference stream. The application can change the z-order of the substreams, but no substream can be first in the z-order.

The graphics driver determines which video formats are supported, but typically they are limited to the following:

  • Reference stream: Progressive or interlaced YUV with no per-pixel alpha (such as NV12 or YUY2); or progressive RGB.
  • Substreams: Progressive YUV with per-pixel-alpha, such as AYUV or AI44.

The available substream formats might depend on the format of the reference stream.

The EVR forwards seek commands upstream through pin 0. The substream pins do not forward seek commands. It is the responsibility of the source or splitter filter to keep the substreams synchronized with the reference stream.

Requirements

Requirement Value
Minimum supported client
Windows Vista [desktop apps only]
Minimum supported server
Windows Server 2008 [desktop apps only]

See also

DirectShow Filters