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