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


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

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

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

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

Интеллектуальное подключение

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

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

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

сборке графа фильтров