IMFVideoProcessor interface

Controls video processing in the Enhanced Video Renderer (EVR). The operations controlled through this interface include color adjustment (ProcAmp), noise filters, and detail filters.

The EVR mixer implements this interface. To get a pointer to the interface, call IMFGetService::GetService. The service identifier is GUID MR_VIDEO_MIXER_SERVICE. Call GetService on any of the following objects:

  • The media sesson (if the topology contains an instance of the EVR).
  • The EVR media sink.
  • The DirectShow EVR filter.
  • The EVR mixer.

If you implement a custom mixer for the EVR, the mixer can optionally expose this interface as a service.


The IMFVideoProcessor interface inherits from the IUnknown interface. IMFVideoProcessor also has these types of members:


The IMFVideoProcessor interface has these methods.


Retrieves the video processor modes that the video driver supports.


Retrieves the background color that is used for the composition rectangle.


Retrieves the range of values for a specified image filter setting.


Retrieves the current setting for an image filter.


Retrieves the range of values for a ProcAmp setting.


Retrieves the current settings for one or more ProcAmp settings.


Retrieves the capabilities of a video processor mode.


Retrieves the application's preferred video processor mode.


Sets the background color for the composition rectangle.


Sets a parameter for an image filter.


Sets one or more ProcAmp settings.


Sets the preferred video processor mode.



This interface provides access to functionality that is implemented by the graphics driver. The driver provides one or more video processor modes, which are identified by GUID. Each mode has its own set of capabilities. The list of available modes might change depending on the media type of the video.

To use this interface, perform the following steps:

  1. Initialize the media types on the EVR input streams. (If you are using the Media Session, this occurs after the topology is resolved. Wait for the Media Session to send the MESessionTopologyStatus event with a status value of MF_TOPOSTATUS_READY.)

  2. Call IMFVideoProcessor::GetAvailableVideoProcessorModes to get the list of video processor modes that are available.

  3. Call IMFVideoProcessor::GetVideoProcessorCaps to find the capabilities of each video processor mode.

  4. Call IMFVideoProcessor::SetVideoProcessorMode to select a mode. If you skip this step, the EVR automatically selects a video processor mode when streaming begins. In that case, wait for playback to start before continuing to step 5.

  5. Call IMFVideoProcessor::GetProcAmpRange and IMFVideoProcessor::GetFilteringRange to find the range of values for the various ProcAmp and image filter settings.

  6. Call IMFVideoProcessor::SetProcAmpValues and IMFVideoProcessor::SetFilteringValue to change the ProcAmp and image filter settings.


Minimum supported client

Windows Vista [desktop apps only]

Minimum supported server

Windows Server 2008 [desktop apps only]





See also

Media Foundation Interfaces
Enhanced Video Renderer