WDM based video capture was introduced with Windows98. It continued to mature
with subsequent OS releases, and is now the preferred driver model with which to
develop video capture drivers.
Video capture using WDM has a number of advantages over VFW. Drivers
are (at least theoretically) portable between Win9x and WinNT. Comprehensive
programmatic control of all capture aspects is available including format enumeration,
TvTuner control, video routing via crossbars, video quality (gain, brightness, and
hue), device control (zoom, pan, focus, and transport control).
Virtually all USB and 1394 capture devices use WDM drivers. Generally,
these devices have a single output stream, resulting in very simple graphs.
When it is necessary to split the stream, for example to preview while capturing,
the "SmartTee" DirectShow filter is used. This filter gives priority to the
capture stream, insuring that frames are not dropped unnecessarily which could occur
if a standard Tee were used.
The front end for a video capture graph supporting television typically
consists of a TVTuner, one or more crossbars, and a capture filter.
A complete capture graph for the ATI All-In-Wonder can be found here.
While the above graph is typical for TvTuner devices, it is but one possible
arrangement of components, and numerous other topologies are possible. For
example, multiple TvTuners are supported, and the crossbar can be expanded to handle
output streams in home theater applications.
If you're planning on developing a WDM capture driver, start with the
Win2000 DDK. Numerous improvements and corrections were made relative the
Win98 DDK. Sample drivers are available for:
- ATI All-In-Wonder
- 1394 SonyDCam conferencing camera (not DV)
- Intel USB conferencing camera
- Testcap, a sample driver which synthesizes images
If you're developing a capture application, start with the AMCap sample
in the Direct Show SDK. This application supports both VFW and WDM capture
drivers.