VMR 无渲染播放模式(自定义 Allocator-Presenters)
[与此页面关联的功能(DirectShow)是一项旧功能。 它已被 MediaPlayer、IMFMediaEngine取代,并在媒体基金会 音频/视频捕获。 这些功能已针对 Windows 10 和 Windows 11 进行了优化。 Microsoft强烈建议新代码尽可能使用 MediaPlayer、IMFMediaEngine 和 Media Foundation 中的音频/视频捕获,而不是 DirectShow。 Microsoft建议重写使用旧 API 的现有代码,以尽可能使用新 API。]
在无渲染播放模式下,VMR 不执行呈现。 而是使用应用程序提供的自定义分配器演示器。 此模式适用于具有复杂视频效果的游戏和其他类型的应用程序。 无渲染播放模式使应用程序能够创建和控制自己的 DirectDraw 图面(VMR-7)或 Direct3D 图面(VMR-9),并在演示时访问视频位。
在无呈现模式下,VMR-9 不会自动加载其混音器组件。
在无呈现播放模式下,应用程序执行以下任务:
- 管理播放窗口。
- 分配 DirectDraw 或 Direct3D 对象和最终帧缓冲区。
- 通知正在使用的对象的其余播放系统。
- 在正确的时间显示帧缓冲区。
- 处理所有分辨率模式更改、监视更改和表面损失。 它必须告知这些事件的其余播放系统。
VMR 执行以下作:
- 处理与演示视频帧相关的所有计时。
- 向应用程序和播放系统的其余部分提供质量控制信息。
- 向播放系统的上游组件提供一致的接口,这些组件不知道应用程序正在提供帧缓冲区分配和执行呈现。
- 提供在呈现之前可能需要的任何视频流混合。
由于反交错由混音器执行,分配器演示器始终接收无交错帧。 有关详细信息,请参阅 设置 Deinterlace 首选项。
有关提供自定义分配器演示器的详细信息,请参阅以下主题:
- 为 VMR-7 提供自定义 Allocator-Presenter
- 为 VMR-9 提供自定义 Allocator-Presenter
- 将 VMR 同步到监视器的刷新率