So, basically, the output pin of one filter is connected with the input pin of another filter, and that is how they talk.įilter Graph and Filter Graph Manager: A Filter Graph is a sequence of connected filters. The other filter, as is obvious, receives the processed data through its input pin. During the processing of the media, a Filter takes input through its input pin, processes the data, and passes the output to another filter through its output pin. Typically, a Filter might have an input pin and an output pin. Pins are a way for Filters to talk to other Filters. Pins: A Pin is an interface in itself, and every Filter must implement atleast one Pin. A Filter represents each stage in the processing of a media type. DirectShow conceptsįilters: Technically, Filters are just C++ classes complying with the COM interface, which take input in some form, process the data, and produce some output in the same/or different form. DirectShow might internally use DirectSound and DirectDraw when playing a media, provided there is support from the hardware otherwise, it might use the traditional Wave APIs and GDI APIs. It was formerly known as ActiveMovie, until it became known as DirectShow. DirectShowĭirectShow, as you might have guessed, is a COM based multimedia framework that makes the task of capturing, playing back, and manipulating media streams easier. The entire DirectX library is based on the COM (Component Object Module) interface, so a bit of COM understanding would be helpful when working with DirectX. As of this writing, DirectX10 is the latest version of DirectX that ships with Vista. DirectShow, however, has been in and out of the core DirectX package that Microsoft ships with Windows. Each component specializes in its own field related to multimedia. From the simple need of playing an audio file to playing a video streamed over the internet, DirectX has it all.ĭirectX is a huge collection of libraries, and includes components like DirectSound, Direct3D, DirectAnimation, DirectDraw, DirectShow et al. To give a brief background, DirectX is an advanced multimedia framework provided by Microsoft which makes all tasks related to multimedia easy to perform.
The project is a useful guide for those who are getting started with DirectShow and want to learn the basics and get a feel of things related to COM and DirectShow. It does not support all file formats, but does work with common formats like MP3, AVI, and others supported by DirectShow. The project demonstrates a simple audio/video player which uses DirectShow APIs to play audio and video files.