Video Control Overview


This topic applies to Windows XP or later.


The Video Control manages filter graphs for receiving television broadcasts. It supports digital TV devices that are compatible with Broadcast Driver Architecture (BDA); it also supports analog TV devices that do not use BDA, as long as those devices use Windows Driver Model (WDM) drivers.

In traditional DirectShow programming, an application creates an instance of the Filter Graph Manager, and uses the Filter Graph Manager to create the filter graph. The application has access to individual filters in the graph, but the Filter Graph Manager is responsible for making the filters work together.

Filter graphs for television applications are relatively complex. Although it is possible to create a TV graph directly through the Filter Graph Manager, doing so is complicated and likely to be error-prone, especially for digital TV. The Video Control makes it convenient to build both analog and digital TV graphs. Moreover, unlike the Filter Graph Manager, the Video Control is fully Automation-compatible, so you can use it in Microsoft Visual Basic® applications.

Devices and Features

Rather than expose individual filters to applications, the Video Control exposes high-level objects called devices. A device might represent a single filter, several filters, or a software component outside the graph. Unlike DirectShow filters, devices are Automation-compatible. Also, devices enable to underlying filter graph to change without affecting the application.

Currently, the following types of device are supported:

  • Input devices
  • Output devices
  • Features

Applications can communicate directly with these objects to perform various tasks, but the Video Control handles the low-level details of making these components work together as a unit.

Input Device Objects

Input devices include TV tuners, DVD playback, and file playback. The following types of TV tuner devices are supported:

  • Analog TV tuners compatible with the Windows Driver Model (WDM)
  • Digital TV tuners compatible with Broadcast Driver Architecture (BDA)

Output Device Objects

By default, the Video Control builds the filter graph with one video renderer and one audio renderer.

The video renderer is always the Video Mixing Renderer (VMR), for both analog and digital TV filter graphs. The VMR's mode of operation differs depending on the type of graph. For analog TV graphs, the Video Control puts the VMR into mixing mode, and applications cannot modify this setting. Mixing mode is required to display closed captioning on analog TV pictures. For digital graphs, the Video Control puts the VMR into non-mixing mode. To enable video mixing, the application must activate the closed caption feature. (You can activate the feature without displaying the captions themselves, if desired.)

For audio, the Video Control uses whichever device is appropriate for the audio stream generated by the input device. The Video Control uses DirectSound if the sound card supports it.

Feature Objects

Features represent a service on a television signal, or a client-side capability, or both. Applications determine which features to enable. The following features are supported:

  • Data Services: When this feature is active, the Video Control routes IP data present in an analog or digital television stream to the NDIS stack, where applications can access it via Winsock. This feature is also required to display closed captioning in analog broadcasts.
  • Closed Captioning: When this feature is active, applications can enable and disable closed captioning at any time on any channel or service where it is available. On analog TV graphs, closed captioning requires both the closed captioning feature and the Data Services feature.
  • Encoder: Required for using the Stream Buffer Engine with the Video Control.

Using the Video Control