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


VMR и предыдущие отрисовщики DirectShow

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

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

Фильтр видеотрансляции использовался для отрисовки одного видеопотока в сценариях, отличных от видеопорта. Он был основан на графической технологии оборудования, которая в настоящее время более пяти лет, и на более старой версии DirectDraw. В некоторых сценариях для отрисовки используется GDI. Это делается либо для экономии видеоресурсов, которые были гораздо более ограниченными пять лет назад, либо для преодоления ограничений в DirectDraw, связанных с поддержкой нескольких мониторов. Ни VMR-7, ни VMR-9 никогда не используют GDI для отрисовки; VMR-7 полностью основан на DirectDraw 7, а VMR-9 основан на Direct3D 9.

В сценариях, связанных с видеопортом или несколькими потоками ввода видео, до vmR фильтр Overlay Mixer использовался для отрисовки. Этот фильтр использует только аппаратное наложение на графической карте, поэтому обычно ограничивается одной поверхностью наложения, предоставляемой большинством карт. Наложение Mixer выполняет выделение цвета назначения, но не может смешения альфа-символов. Так как у него нет диспетчера окон, он должен использовать второй фильтр, средство отрисовки видео для управления окнами. VMR поддерживает истинное альфа-смешение и может создавать несколько наложений в программном обеспечении в дополнение к аппаратным наложениям.

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

Заметка

VmR-9 не поддерживает видеопорты.

 

VmR является более надежным, чем предыдущие отрисовщики, отчасти потому, что он использует только DirectDraw 7 (или Direct3D 9, если вы используете интерфейсы VMR-9), а не старые отрисовщики, которые использовали смесь интерфейсов из более старых и новых версий DirectDraw. В VMR также используется новый механизм представления изображений, предназначенный для текущих и будущих поколений адаптеров, которые поддерживают Direct3D, увеличили пропускную способность VRAM и пропускную способность памяти видео и функции аппаратного ускорения. С помощью VMR основное внимание уделяется обработке внешнего интерфейса и снижению зависимости от видеопортов и наложений. Но даже со всеми новыми функциями виртуальная машина предназначена для обеспечения максимальной совместимости с существующими приложениями.

VmR также расширяем. Приложения могут предоставлять собственные вложенные компоненты для выполнения пользовательских эффектов видео и (или) управлять процессом выделения и отрисовки.

о визуализации смешения видео