Using the IVideoWindow PID to Implement Full-Screen Support (Windows Embedded CE 6.0)
1/6/2010
DirectShow implements full-screen support in a number of ways that depend on what hardware resources are available.
An application can support full-screen video playback through the IVideoWindow interface provided by the filter graph manager.
An application can have its own implementation of full-screen playback, but it can probably make better use of resources by using the IVideoWindow implementation.
The IVideoWindow plug-in distributor (PID) tries three different options for implementing full-screen support when an application requests full-screen mode. The option is typically chosen the first time the filter graph enters full-screen mode.
While in full-screen mode, no IVideoWindow methods can be called (apart from accessing the full-screen property). Any attempts to do so will return the VFW_E_IN_FULLSCREEN_MODE message.
The PID searches in the following order for a filter that supports IVideoWindow and that has one of these characteristics:
- The filter supplies full-screen mode directly.
- The filter allows its window to be stretched to full screen without penalty.
- The filter can be replaced by a full-screen renderer.
If none of these three options are found, the default is to simply stretch the video of a filter that supports IVideoWindow to full-screen, ignoring the performance penalties.