Поделиться через


Сведения о диспетчере графов фильтров

[Функция, связанная с этой страницей DirectShow, является устаревшей функцией. Он был заменен MediaPlayer, IMFMediaEngine, и аудио/ видео захвата в Media Foundation. Эти функции оптимизированы для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует, чтобы новый код использовал MediaPlayer, IMFMediaEngine и аудио- и видеозахват в Media Foundation вместо DirectShow, когда это возможно. Корпорация Майкрософт предлагает переписать существующий код, использующий устаревшие API, чтобы по возможности использовать новые API.]

Диспетчер графа фильтров — это COM-объект, который управляет фильтрами в графе фильтров. Он выполняет множество функций, в том числе следующие:

  • Координирование изменений состояния между фильтрами.
  • Установка эталонных часов.
  • Передача событий обратно в приложение.
  • Предоставление методов для приложений для построения графа фильтра.

Каждая из этих функций кратко описана здесь. Подробные сведения можно найти в других местах документации.

Изменения состояния. Изменения состояния в фильтрах должны происходить в определенном порядке. Поэтому приложение не выполняет команды изменения состояния непосредственно в фильтрах. Вместо этого он предоставляет одну команду диспетчеру фильтров Graph, который распределяет команду по каждому из фильтров. Поиск работает аналогичным образом: приложение передает команду seek диспетчеру фильтров Graph, который распределяет ее по фильтрам.

Эталонные часы. Все фильтры в графе используют одни и те же часы, называемые эталонными часами. Эталонные часы гарантируют синхронизацию всех потоков. Время отображения видеокадра или звукового примера называется временем презентации. Время представления измеряется относительно эталонных часов. Диспетчер графов фильтров выбирает эталонные часы, обычно либо часы на звуковом карта, либо системные часы.

События графа. Диспетчер графа фильтров использует очередь событий для информирования приложения о событиях, происходящих в графе фильтров. Этот механизм аналогичен циклу сообщений Windows.

Методы построения графов. Диспетчер графов фильтров предоставляет приложениям методы для добавления фильтров в граф, подключения фильтров к другим фильтрам и отключения фильтров.

Одна функция, не обрабатываемая диспетчером графов фильтров, перемещает данные из одного фильтра в другой. Это делается самими фильтрами через их соединения закрепления. Обработка всегда выполняется в отдельном потоке.

Примечание

Фильтры всегда являются свободными, находятся в том же процессе, что и диспетчер фильтров Graph, и загружаются с внутрипроцессных серверов. Поэтому вызовы методов не маршалируются между фильтрами или между фильтрами и диспетчером фильтров Graph.

 

Поток данных в графе фильтров

Уведомление о событиях в DirectShow

Настройка часов графа

Время и часы в DirectShow