DirectShow System Overview
A version of this page is also available for
4/8/2010
The Challenge of Multimedia
Working with multimedia presents several major challenges:
- Multimedia streams contain large amounts of data that must be processed very quickly.
- The audio, video and any additional streams must all be synchronized to start and stop at the same time and play at the same rate.
- Streams can come from many various sources, including local media files, computer networks, terrestrial broadcasts, video cameras, and other media devices.
- Streams come in a variety of formats, such as Audio-Video Interleaved (AVI), Advanced Streaming Format (ASF), and Motion Picture Experts Group (MPEG).
- An application has no way of knowing which hardware devices will be present on the end-user's system.
The DirectShow Solution
DirectShow is designed to address each of these challenges. Its main design goal is to simplify the task of creating multimedia applications by isolating applications from the complexities of data transports, hardware differences, and synchronization issues.
To achieve the throughput necessary for streaming video and audio, DirectShow uses Microsoft DirectDraw® and the Waveform Audio API to render data efficiently to the system's sound and graphics cards. Synchronization is achieved by encapsulating the multimedia data in time-stamped media samples. To handle the variety of sources, formats, and hardware devices, DirectShow uses a modular architecture in which filters can be mixed and matched to provide support for many different scenarios.
DirectShow includes filters that support codecs written for the Audio Compression Manager (ACM) and Video Compression Manager (VCM) interfaces.
DirectShow enables applications to play files and streams from various sources, including local files and remote files on a network. DirectShow has native compressors and decompressors for some file formats, and many third-party hardware and software decoders are compatible with DirectShow. In addition, DirectShow supports legacy VfW codecs based on the Video Compression Manager (VCM) and Audio Compression Manager (ACM) interfaces. Playback makes full use of DirectDraw hardware acceleration when the hardware supports it.