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


Компоненты Graph-Building

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

DirectShow предоставляет несколько компонентов, которые можно использовать для построения графов фильтров. следующие основные параметры.

  • Фильтрация диспетчера Графа. Этот объект управляет графом фильтра. Он поддерживает, среди прочего, интерфейсы IGraphBuilder, IMediaControl и IMediaEventEx . Все приложения DirectShow используют этот объект в определенный момент, хотя в некоторых случаях другой объект создает диспетчер Фильтров Graph для приложения.
  • Построитель графов захвата. Этот объект предоставляет дополнительные методы для построения графов фильтров. Изначально он был разработан для создания графов, которые выполняют захват видео (отсюда и название), но он полезен для многих других типов настраиваемых графов фильтров. Он поддерживает интерфейс ICaptureGraphBuilder2 .
  • Средство сопоставления фильтров и перечислитель системных устройств. Эти объекты находят фильтры, зарегистрированные в системе пользователя или представляющие аппаратные устройства.
  • DVD Graph Builder. Этот объект создает графы фильтров для воспроизведения DVD-дисков и навигации. Он поддерживает интерфейс IDvdGraphBuilder .

Intelligent Connect

Термин "Intelligent Connect" охватывает набор алгоритмов, которые диспетчер фильтров графа использует для построения всего графа фильтра или его части. Каждый раз, когда диспетчеру фильтров требуются дополнительные фильтры для завершения графа, он выполняет примерно следующее:

  1. Если в настоящее время в графе есть фильтр с хотя бы одним несвязанным входным контактом, диспетчер графа фильтров пытается использовать этот фильтр.
  2. В противном случае диспетчер графов фильтров ищет в реестре фильтры, которые могут принимать правильный тип носителя для подключения. Каждый фильтр имеет значение реестра с именем "Merit", которое указывает, насколько вероятно, что фильтр будет полезен при заполнении графа. Диспетчер графов фильтров пытается выполнить фильтрацию в порядке значения заслуг. Для каждого типа потока (например, аудио, видео или MIDI) отрисовщик по умолчанию имеет большое значение. Декодеры также имеют высокую ценность. Специальные фильтры имеют низкую ценность.

Если диспетчер графов фильтров зависает, он будет использовать другое сочетание фильтров. Подробные сведения см. в разделе Intelligent Connect.

Создание графа фильтров