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 has these methods.

Method Description
IMFVideoProcessor::GetAvailableVideoProcessorModes Retrieves the video processor modes that the video driver supports.
IMFVideoProcessor::GetBackgroundColor Retrieves the background color for the composition rectangle. The background color is used for letterboxing the video image.
IMFVideoProcessor::GetFilteringRange Retrieves the range of values for a specified image filter setting.
IMFVideoProcessor::GetFilteringValue Retrieves the current setting for an image filter.
IMFVideoProcessor::GetProcAmpRange Retrieves the range of values for a color adjustment (ProcAmp) setting.
IMFVideoProcessor::GetProcAmpValues Retrieves the current settings for one or more color adjustment (ProcAmp) settings.
IMFVideoProcessor::GetVideoProcessorCaps Retrieves the capabilities of a video processor mode.
IMFVideoProcessor::GetVideoProcessorMode Retrieves the application's preferred video processor mode. To set the preferred mode, call IMFVideoProcessor::SetVideoProcessorMode.
IMFVideoProcessor::SetBackgroundColor Sets the background color for the composition rectangle. The background color is used for letterboxing the video image.
IMFVideoProcessor::SetFilteringValue Sets a parameter for an image filter.
IMFVideoProcessor::SetProcAmpValues Sets one or more color adjustment (ProcAmp) settings.
IMFVideoProcessor::SetVideoProcessorMode Sets the preferred video processor mode. The EVR will attempt to use this mode when playback starts.


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]
Target Platform Windows
Header evr9.h

See Also

Enhanced Video Renderer

Media Foundation Interfaces