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 использовался для отрисовки. Этот фильтр использует только аппаратное наложение на графические карта, поэтому обычно ограничивается одной поверхностью наложения, предоставляемой большинством карт. Наложенный миксер выполняет назначение цветовых ключей, но не поддерживает альфа-смешивание. Так как у него нет диспетчера окон, он должен использовать для управления окнами второй фильтр, Видео отрисовщик. VMR поддерживает истинное альфа-наложение и может создавать несколько наложений в программном обеспечении в дополнение к аппаратным наложениям.
В сценариях с видеопортами, где приложения накладывали скрытые субтитры или другие данные VBI на видео, для выделения дополнительной видеопамять для текста VBI требовался дополнительный фильтр — VBI Surface Allocator. Для поставщиков программного обеспечения VMR-7 упрощает разработку приложений, объединяя функции выделения и отрисовки в единый фильтр, который используется во всех сценариях. При использовании VMR распределитель Surface Allocator VBI больше не требуется. В Windows XP этот фильтр заменяется новым фильтром диспетчера видеопортов , который выполняет все задачи порта видео, которые ранее выполнялся overlay Mixer.
Примечание
VMR-9 не поддерживает видеопорты.
VmR является более надежным, чем предыдущие отрисовщики, отчасти потому, что он использует только интерфейсы DirectDraw 7 (или Direct3D 9, если вы используете VMR-9), в отличие от старых отрисовщиков, которые использовали сочетание интерфейсов из более старых и новых версий DirectDraw. VmR также использует новый механизм представления изображений, предназначенный для текущего и будущих поколений адаптеров, которые поддерживают Direct3D, увеличенную пропускную способность VRAM и видеопамять, а также функции аппаратного ускорения. При использовании VMR основное внимание уделяется обработке внешних интерфейсов и уменьшению зависимости от видеопортов и наложений. Но даже при всех новых функциональных возможностях VMR предназначена для максимальной совместимости с существующими приложениями.
VmR также является расширяемым. Приложения могут предоставлять собственные подкомпоненты для выполнения пользовательских видеоэффектов и/или управления процессом выделения и отрисовки.
Связанные темы