DirectShow Video Renderer Filter
A version of this page is also available for
4/8/2010
The DirectShow Video Renderer filter is a robust, all-purpose video renderer that you can connect to any Video Transform filter that produces decompressed video data.
The DirectShow Video Renderer filter uses DirectDraw methods and makes use of overlay surfaces, if the video card supports them.
Full-screen rendering is enabled from the Filter Graph Manager, which automatically switches between the DirectShow Video Renderer filter and the full-screen renderer when appropriate for certain older graphics cards; you do not need to include the full-screen renderer in the filter graph beforehand.
On newer cards, the DirectShow Video Renderer filter itself performs the full-screen rendering.
The DirectShow Video Renderer filter will accept YUV as well as RGB formats if the video graphics card supports YUV overlay surfaces. However, the DirectShow Video Renderer filter, when it is initially connected to the upstream filter, will always insist on an RGB format that matches the color depth of the current monitor settings.
For example, if the user has set their monitor to 24-bit color, then the upstream filter must be capable of providing data in 24-bit RGB. When the graph goes into a run state, the DirectShow Video Renderer filter will negotiate a dynamic format change to the appropriate YUV color space.
The DirectShow Video Renderer filter requires the initial RGB data format because in some cases it may need to dynamically switch to using GDI instead of DirectDraw to render the video; GDI does not support YUV color spaces. The DirectShow Video Renderer filter will switch to GDI if the video memory is being used by another application.
This filter has its own plug-in distributor in the Filter Graph Manager, which enables applications to set and retrieve properties on the filter by calling the corresponding interface methods on the Filter Graph Manager. Most other DirectShow filters are not visible to applications in this manner.
The thread that co-creates the Video Renderer is the one on which the DirectShow Video Renderer's window is created. That thread must have a message loop to dispatch messages to the DirectShow Video Renderer's window.
The following table shows the filter properties.
Filter property | Description |
---|---|
Filter Interfaces |
IBaseFilter, IBasicVideo, IDirectDrawVideo, IMediaPosition, IMediaSeeking, IQualityControl, IQualProp, IVideoWindow |
Input Pin Media Types |
MEDIATYPE_Video |
Input Pin Interfaces |
IMemInputPin, IOverlay, IPin, IQualityControl |
Output Pin Media Types |
Not applicable |
Output Pin Interfaces |
Not applicable |
Filter CLSID |
CLSID_VideoRenderer |
Executable |
Quartz.dll |
MERIT_PREFERRED |
|
CLSID_LegacyAmFilterCategory |