VMR 无呈现播放模式 (自定义分配器-演示者)

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

在无呈现播放模式下,VMR 不执行呈现。 相反,它使用应用程序提供的自定义分配器表示器。 此模式适用于具有复杂视频效果的游戏和其他类型的应用程序。 无渲染播放模式使应用程序能够创建和控制其自己的 DirectDraw surface (VMR-7) 或 Direct3D surface (VMR-9) ,并在演示时访问视频位。

在无呈现模式下,VMR-9 不会自动加载其混音器组件。

在无呈现播放模式下,应用程序执行以下任务:

  • 管理播放窗口。
  • 分配 DirectDraw 或 Direct3D 对象和最终帧缓冲区。
  • 通知播放系统的其余部分正在使用的对象。
  • 在正确的时间显示帧缓冲区。
  • 处理所有分辨率模式更改、监视更改和表面损失。 它必须告知播放系统的其余部分这些事件。

VMR 执行以下操作:

  • 处理与呈现视频帧相关的所有计时。
  • 向应用程序和播放系统的其余部分提供质量控制信息。
  • 向播放系统的上游组件提供一致的接口,这些组件不知道应用程序正在提供帧缓冲区分配和执行呈现。
  • 提供在呈现之前可能需要的任何视频流的混合。

由于去隔行处理由混音器执行,分配器表示器始终接收反隔行帧。 有关详细信息,请参阅 设置反隔行首选项

有关提供自定义分配器-演示者的详细信息,请参阅以下主题: