Диспетчер видеопортов

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

Фильтр диспетчера видеопортов (VPM) позволяет фильтру 7 отрисовщика микширования видео (VMR-7) работать с устройствами захвата видео или аппаратными декодерами, которые используют видеопорт. Видеопорт — это прямое аппаратное подключение к графической микросхеме. Это позволяет передавать видео непосредственно на графический чип, не переходя через системную шину.

Примечание

Диспетчер видеопортов несовместим с VMR-9, так как VMR-9 не поддерживает видеопорты.

 

Метка Значение
Интерфейсы фильтрации IAMVideoDecimationProperties, IBaseFilter, IKsPropertySet, IQualProp, IVPManager
Типы носителей входных контактов MEDIATYPE_Video, MEDIASUBTYPE_VPVideo или MEDIASUBTYPE_VPVBI, FORMAT_None
Интерфейсы ввода-закрепления IKsPin, IKsPropertySet, IMemInputPin, IPin, IPinConnection, IQualityControl
Типы носителей выводных контактов MEDIATYPE_Video, FORMAT_VideoInfo2
Интерфейсы вывода контактов IPin, IQualityControl
Фильтр CLSID CLSID_VideoPortManager
Заслуга MERIT_NORMAL
Категория фильтра CLSID_LegacyAmFilterCategory

 

Комментарии

Диспетчер видеопортов сочетает в себе функции видеопорта фильтра микшера наложения и функции VBI Surface Allocator. VPM выделяет видеопорты и поверхности, а также синхронизирует захват данных из видеопорта. Он обеспечивает запись видеопорта, которая не зависит от отрисовки. Если требуется предварительная версия, VPM координируется с VMR-7 для отображения данных видеопорта. При наличии видеопорта в системе фильтру захвата требуются дополнительные буферы для извлечения данных VBI из видеопотока. Эти буферы предоставляются VPM. После того как фильтр отслеживания извлекает данные VBI, он доставляет их на отдельный контакт в фильтры, такие как декодер CC. На следующем рисунке показан VPM и его подключения в графе фильтра.

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

Конструктор DVD Graph добавляет VPM в граф фильтров автоматически при обнаружении видеопорта в системе. После добавления в граф VPM использует объект DirectDraw, предоставляемый отрисовщиком для микширования видео, для выделения двух или трех поверхностей. Эти поверхности получают оцифрованные кадры из фильтра захвата вышестоящий. В ответ на уведомления о событиях в пользовательском режиме, отправляемые при наличии данных на поверхности, VPM выполняет автоматическое выделение на поверхности вне экрана, предоставляемой VMR.

Тот факт, что VPM использует несколько поверхностей для входных буферов, означает, что ему требуется больше виртуальной памяти, чем в предыдущей реализации видеопорта DirectShow. Для дополнительной прорези из VPM в VMR-7 требуется дополнительная пропускная способность видеопамять. Так как аппаратное автоматическое переворачивание больше не используется, существует теоретический потенциал для удаления кадров, но эмпирические данные свидетельствуют о том, что этого не происходит.

Фильтры DirectShow

Интерфейс IVPManager