Data Flow for Filter Developers

This section describes in detail how data moves through the filter graph. It focuses on local memory transport using the IMemInputPin or IAsyncReader interface. It is intended for developers who are writing their own custom filters. For a general introduction to how Microsoft DirectShow handles data flow, see Data Flow in the Filter Graph.

A lot of data moves through a filter graph. It falls roughly into two categories: media data and control data. In general, media data travels downstream and control data travels upstream. Media data includes the video frames, audio samples, MPEG packets, and so forth that make up a stream, but also includes flush commands, end-of-stream notifications, and other data that travels with the stream. Control data is not part of the media stream. Examples of control data are quality-control requests and seek commands.

This section contains the following articles.

Quality-Control Management

Threads and Critical Sections

Writing DirectShow Filters