Граф фильтров
DirectShow построен на базе программных фильтров. Фильтры в DirectShow выполняют операции над потоками данных. Фильтры выполняют множество функций, и в число основных входят:
Например, граф фильтров может читать файл MP3 и вормировать звук для его вывода аудиооборудованием. Эти действия показаны на рис. 7.5.
![](f07_05.jpg)
Рис. 7.5. Граф фильтров MP3
Как видно на рис. 7.5, граф фильтров читает данные из файла MP3, декодирует их, а затем отправляет аудиоаппаратуре для воспроизведения. Рабочей лошадкой индустрии фильтров в DirectShow является интерфейс IGraphBuilder. В таблице 7.6 перечислены входящие в этот интерфейс функции.
Таблица 7.6. Методы интерфейса IGraphBuilder | |
Метод | Описание |
Abort | Сообщает графу о необходимости прекратить текущую операцию. |
AddSourceFilter | Добавляет фильтр источника. |
Connect | Соединяет два контакта. |
Render | Добавляет фильтр к выходному контакту. |
RenderFile | Загружает файл для воспроизведения. Я использую этот метод в своем примере для загрузки MP3-файла. |
SetLogFile | Устанавливает обработчик для файла журналирования выходной информации. |
ShouldOperationContinue | Сообщает должна ли продолжаться операция. Это очень странная функция, которую вам никогда не придется вызывать. |