IMFVideoProcessor interface (evr9.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.]

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 session (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.

Inheritance

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

Methods

The IMFVideoProcessor interface has these methods.

 
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.

Remarks

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.

Requirements

   
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