vmRSurfaceAllocationFlags 枚举 (strmif.h)

[与此页面关联的功能 DirectShow 是一项旧功能。 它已被 MediaPlayerIMFMediaEngine媒体基金会中的音频/视频捕获取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能使用 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 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 图面还应是使用设置 DDSCAPS_3DDEVICE 标志创建的 Direct3D 呈现目标。
AMAP_ALLOW_SYSMEM
值: 0x4
指示如果无法在视频内存中分配 DirectDraw 图面,将尝试分配系统内存 DirectDraw 图面。 (注意 永远不要分配 AGP 内存 surface.)
AMAP_FORCE_SYSMEM
值: 0x8
强制在系统内存中创建图面。 如果要在呈现图像之前使用 GDI 来处理图像,请指定此项。 图面必须与当前监视器显示格式 (像素深度) 匹配。
AMAP_DIRECTED_FLIP
值: 0x10
表示调用 Flip 时,应将 Flip 切换到作为参数传递给 IVMRImagePresenter 接口中的 PresentImage 方法的指定 DirectDraw Surface。 正确支持此标志至关重要,以便使视频解码器看到的 DXVA 缓冲区与图形驱动程序看到的 DXVA 缓冲区保持同步。
AMAP_DXVA_TARGET
值: 0x20
指示此图面将用作 DXVA 目标。

备注

AMAP_3D_TARGET不能与AMAP_FORCE_SYSMEM或AMAP_ALLOW_SYSMEM结合使用,因为无法在系统内存中创建 3D 图面。

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 strmif.h (包括 Dshow.h)

另请参阅

DirectShow 枚举类型

IVMRSurfaceAllocator::AllocateSurface