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:
|
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] |