DirectShow FilterPack (DSFP)
DirectShow Graph examples

This DirectShow Graph illustrates the way a VOB-file (DVD) is being played/rendered with DirectShow:

 1. Source Filter
In this case the VOB-file is the container. It contains MPEG2 Video, AC3 Audio (Dolby Digital) and subtitles.
The Source Filter (quartz.dll) reads the data from the VOB-file and transfers this data to the MPEG Splitter.
 2. Splitter
The MPEG Splitter separates the video stream (MPEG2), the audio stream (AC3) and the subtitles from the VOB-file/container.
Then it transfers the encoded/encrypted video and subtitles to the MPEG2 Video Decoder and the encoded/encrypted audio
to the AC3 Audio Decoder.
 3. Decoder
The MPEG2 Video Decoder decodes/decrypts the MPEG2 Video, puts the subtitle stream on top of the video stream
and transfers both decoded/decrypted video streams to the Video Renderer.
The AC3 Audio Decoder decodes/decrypts the AC3 Audio and transfers the decoded/decrypted audio to the Audio Renderer.
 4. Renderer
Just like the Audio Renderer, the Video Renderer is the link between DirectShow and your hardware video driver.
It's capable of transferring any type of decoded/decrypted video to your hardware video driver for you to watch.
The Video Renderer plays/renders both decoded/decrypted video streams (MPEG2 Video with subtitles on top).
The Audio Renderer plays/renders the decoded/decrypted AC3 Audio.

With your favorite DirectShow media player you can also take a look at the DirectShow Graph of this VOB-file:



This DirectShow Graph illustrates the way a MKV-file is being played/rendered with DirectShow:

 1. Source Filter
In this case the MKV-file is the container. It contains H.264 Video, DTS Audio (Digital Theater System) and subtitles in English
and Dutch for instance. The Source Filter (quartz.dll) reads the data from the MKV-file and transfers this data to the MKV Splitter.
 2. Splitter
The MKV Splitter separates the video stream (H.264), the audio stream (DTS) and both subtitles from the MKV-file/container.
Then it transfers the encoded/encrypted video and subtitles to the H.264 Video Decoder and the encoded/encrypted audio
to the DTS Audio Decoder.
 3. Decoder
The H.264 Video Decoder decodes/decrypts the H.264 Video, puts one subtitle stream on top of the video stream
and transfers both decoded/decrypted video streams to the Video Renderer.
The DTS Audio Decoder decodes/decrypts the DTS Audio and transfers the decoded/decrypted audio to the Audio Renderer.
 4. Renderer
The Video Renderer plays/renders both decoded/decrypted video streams (H.264 Video with one of the subtitles on top).
The Audio Renderer plays/renders the decoded/decrypted DTS Audio.

With your favorite DirectShow media player you can also take a look at the DirectShow Graph of this MKV-file:



This DirectShow Graph illustrates the way a MPC-file is being played/rendered with DirectShow:

 1. Source Filter
In this case you can't really speak of a container, because there's no Splitter or Decoder involved anymore.
The Source Filter quartz.dll can't read this MPC-file and so another Source Filter is needed.
The BASS Source Filter itself is capable of handling the entire MPC file.
It reads, decodes/decrypts and transfers the decoded/decrypted audio directly to the Audio Renderer.
(DirectShow Graphs of all BASS Source Filter supported audio files will look the same).
 2. Renderer
The Audio Renderer plays/renders the decoded/decrypted MPC Audio.

With your favorite DirectShow media player you can also take a look at the DirectShow Graph of this MPC-file:

© 2006, Reino "CoRoNe" Wijnsma