IMFVideoRenderer::InitializeRenderer method (evr.h)

[The component described on this page, Enhanced Video Renderer, is a legacy feature. It has been superseded by the Simple Video Renderer (SVR) exposed through the MediaPlayer and IMFMediaEngine components. To play video content you should send data into one of these components and allow them to instantiate the new video renderer. These components have been optimized for Windows 10 and Windows 11. Microsoft strongly recommends that new code use MediaPlayer or the lower level IMFMediaEngine APIs to play video media in Windows instead of the EVR, when possible. Microsoft suggests that existing code that uses the legacy APIs be rewritten to use the new APIs if possible.]

Sets a new mixer or presenter for the enhanced video renderer (EVR).

Syntax

HRESULT InitializeRenderer(
  [in] IMFTransform      *pVideoMixer,
  [in] IMFVideoPresenter *pVideoPresenter
);

Parameters

[in] pVideoMixer

Pointer to the IMFTransform interface of the mixer to use. This parameter can be NULL. If this parameter is NULL, the EVR uses its default mixer.

[in] pVideoPresenter

Pointer to the IMFVideoPresenter interface of the presenter to use. This parameter can be NULL. If this parameter is NULL, the EVR uses its default presenter.

Return value

The method returns an HRESULT. Possible values include, but are not limited to, those in the following table.

Return code Description
S_OK
The method succeeded.
E_INVALIDARG
Either the mixer or the presenter is invalid.
MF_E_INVALIDREQUEST
The mixer and presenter cannot be replaced in the current state. (EVR media sink.)
MF_E_SHUTDOWN
The video renderer has been shut down.
VFW_E_WRONG_STATE
One or more input pins are connected. (DirectShow EVR filter.)

Remarks

Call this method directly after creating the EVR, before you do any of the following:

The EVR filter returns VFW_E_WRONG_STATE if any of the filter's pins are connected. The EVR media sink returns MF_E_INVALIDREQUEST if a media type is set on any of the streams, or the presentation clock is running or paused.

The device identifiers for the mixer and the presenter must match. The IMFVideoDeviceID::GetDeviceID method returns the device identifier. If they do not match, the method returns E_INVALIDARG.

If the video renderer is in the protected media path (PMP), the mixer and presenter objects must be certified safe components and pass any trust authority verification that is being enforced. Otherwise, this method will fail.

Requirements

Requirement Value
Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Target Platform Windows
Header evr.h
Library Strmiids.lib

See also

Enhanced Video Renderer

How to Write an EVR Presenter

IMFVideoRenderer