DirectShow Filters and Filter Graphs
Microsoft DirectShow 9.0 |
DirectShow Filters and Filter Graphs
- Note This topic is deprecated. It applies to Visual Basic 6.0. DirectShow is not supported for Visual Basic .NET or C#.
When multimedia is displayed in an application by using Quartz.dll, the application is using a collection of objects called filters; this collection is sometimes called a filter graph. The following diagram depicts a filter graph that can render an Audio-Video Interleaved (AVI) file.
In this diagram, the AVI source filter reads the file from disk. The AVI decompressor filter ( codec ) decompresses the video data as it is passed from the source filter. The codec filter then passes this data to the video renderer. The video renderer, in turn, passes the data to the device in a format that the device understands. The AVI source filter passes the audio data directly to the audio renderer, which, in turn, passes the data to the audio device.
In addition to filters, DirectShow supports an Automation object called the filter graph manager. This object knows about the available filters and understands which filter types are required to render which file formats. The filter graph manager exposes the methods, events, and properties supported by the filters in a given graph. The filter graph manager also exposes its own set of methods, events, and properties. These are exposed by using interfaces, which are simply collections of related methods, events, and properties.
The following table identifies the DirectShow interfaces available in Quartz.dll for use with Visual Basic-based applications, and describes the purpose of each interface.
Interface | Description |
IAMCollection | Accesses pin and filter collections. |
IBasicAudio | Controls and retrieves current volume setting. |
IBasicVideo2 | Controls a generic video renderer. |
IFilterInfo | Retrieves information about a filter and about pin objects in the filter. |
FilgraphManager | Instantiates the filter graph and controls media flow (running, paused, stopped). |
IMediaEvent | Allows customized event handling for events such as repainting, user termination, completion, and so on. |
IMediaPosition | Controls and retrieves start time, stop time, rate, and current position. |
IMediaTypeInfo | Retrieves the media type and subtype. |
IPinInfo | Accesses pin information, such as pin direction and media type, and controls pin connection, disconnection, and rendering. |
IRegFilterInfo | Contains information about registered (transform and render) filters. |
IVideoWindow | Controls window aspects of a video renderer. |