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


Перечисление VMRSurfaceAllocationFlags (strmif.h)

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

Перечисление VMRSurfaceAllocationFlags используется с методом IVMRSurfaceAllocator::AllocateSurface для указания параметров создания поверхности.

Синтаксис

typedef enum VMRSurfaceAllocationFlags {
  AMAP_PIXELFORMAT_VALID = 0x1,
  AMAP_3D_TARGET = 0x2,
  AMAP_ALLOW_SYSMEM = 0x4,
  AMAP_FORCE_SYSMEM = 0x8,
  AMAP_DIRECTED_FLIP = 0x10,
  AMAP_DXVA_TARGET = 0x20
} ;

Константы

 
AMAP_PIXELFORMAT_VALID
Значение: 0x1
Указывает, что поле lpPxFmt содержит допустимые данные, которые следует использовать для создания поверхности DirectDraw.
AMAP_3D_TARGET
Значение: 0x2
Указывает, что созданная поверхность DirectDraw также должна быть целевым объектом отрисовки Direct3D, созданным с помощью флага DDSCAPS_3DDEVICE .
AMAP_ALLOW_SYSMEM
Значение: 0x4
Указывает, что если вы не можете выделить поверхность DirectDraw в видеопамяти, вы попытаетесь выделить поверхность DirectDraw в системной памяти. (Обратите внимание, что никогда не следует выделять поверхность памяти AGP.)
AMAP_FORCE_SYSMEM
Значение: 0x8
Принудительное создание поверхности в системной памяти. Укажите этот параметр, если вы будете использовать GDI для обработки изображения перед его отрисовки. Поверхность должна соответствовать текущему формату отображения монитора (глубина в пикселях).
AMAP_DIRECTED_FLIP
Значение: 0x10
Означает, что при вызове Flip необходимо выполнить flip к указанному surface DirectDraw, переданного в качестве параметра методу PresentImage в интерфейсе IVMRImagePresenter . Правильная поддержка этого флага крайне важна, чтобы буферы DXVA были синхронизированы с буферами DXVA, видимыми графическим драйвером.
AMAP_DXVA_TARGET
Значение: 0x20
Указывает, что эта поверхность будет использоваться в качестве целевого объекта DXVA.

Комментарии

AMAP_3D_TARGET нельзя сочетать с AMAP_FORCE_SYSMEM или AMAP_ALLOW_SYSMEM так как трехмерные поверхности невозможно создать в системной памяти.

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Верхняя часть strmif.h (включая Dshow.h)

См. также раздел

Перечислимые типы DirectShow

IVMRSurfaceAllocator::AllocateSurface