Microsoft DirectX 8.1 (C++) |
DirectX 8.1 includes all the filters and associated components necessary to create a basic digital TV filter graph, connect to ATSC (antenna or cable) sources, tune the graph and select substreams, capture raw PSI data (such as Electronic Program Guide information) and render the video on the screen. Support for DVB-S is also provided, but Microsoft does not provide a default Tuning Space or Locator for DVB-S networks.
The following illustration shows a basic BDA digital TV filter graph configured for reception of terrestrial ATSC broadcasts. The actual filter and pin names for the tuner, capture and MPEG-2 decoder filters will vary depending on the vendor. Note that this is a filter graph for applications intended for Windows platforms previous to Windows XP Home Edition and Windows XP Professional.
Network Provider: A BDA Network Provider filter is always the first filter in the graph. This particular graph has the ATSC Network Provider. Microsoft also provides a DVB Network Provider for tuning to DVB networks. Third parties may also provide their own Network Provider that is customized for their own broadcasts. The Network Provider configures the downstream filters for a particular tuning space, which includes information on content multiplexing, modulation, and transmission standards. This filter implements the ITuner interface, which applications use to tune the device to the specified channel or frequency.
Digital TV Tuner: This kernel-mode KsProxy-based filter represents the tuner on the hardware device. It may or may not have any application-callable interfaces, depending on the implementation of the third-party driver. In the BDA Sample Application, the tuner filter is assumed not to support ITuner, and so tuning is performed through the Network Provider, which communicates internally with the Tuner filter.
Digital TV Capture Filter: This kernel-mode KsProxy-based filter represents the demodulator/digitizer on the hardware device. Its single output pin delivers the MPEG-2 transport stream to the MPEG-2 Demultiplexer.
MPEG-2 Demultiplexer: In a digital TV graph, the MPEG-2 demultiplexer accepts the MPEG-2 transport stream from the capture filter and demultiplexes the stream. It typically has four output pins. Its first output pin delivers raw program service information (PSI) packets to the Transport Information Filter. The second pin delivers the video stream to the MPEG-2 decoder. The third pin delivers the audio to the audio decoder, and the fourth pin delivers IP data.
BDA MPEG-2 Transport Information Filter: So that a receiver can properly acquire all the elementary streams related to a specific program and so that a receiver can tell what programs are contained in the stream, the transport stream will also contain many sets of tables that act as a catalog of information contained in the transport stream. Under direction of the BDA Network Provider, the MPEG-2 Demultiplexer delivers these tables to the Transport Information Filter, which then parses these tables and provides the information to the Network Provider so that it can control the other receiver filters and nodes in the graph.
HDTV-capable MPEG-2 Decoder: A Digital TV filter graph requires a third-party decoder that is capable of decoding High Definition Television (HDTV) video streams. Some decoder implementations may operate on both audio and video streams in the same filter, while others may have separate filters for audio and video.
Overlay Mixer: This Microsoft® DirectShow® filter performs the actual rendering of the video onto the system's video memory.
Video Renderer: In all graphs that use the Overlay Mixer to render the video, the Video Renderer acts merely as a window manager that informs the Overlay Mixer where on the screen to place the video rectangle.
BDA MPE Filter: This filter extracts IP packets from the Multi-Protocol Encapsulation (MPE) stream and delivers them to IP Sink.
BDA IP Sink: This filter accepts IP packets and delivers them to the host system via Winsock, where interested applications can listen for and receive IP data streams.