我正在使用简单的方法(IGraphBuilder RenderFile)使用DirectShow,并尝试通过查询补充接口来控制其他所有内容。
有问题的选项是宽高比。我认为它是默认维护的,但实际上相同的程序在不同的机器(可能是DirectX的版本)上表现不同。这对于窗口中的视频来说不是一个大问题,因为我可以自己保持窗口的宽高比(基于视频大小),但对于全屏模式,我无法理解如何控制。
我发现至少有两个复杂的选项:对于VMR视频和添加叠加混音器,但有没有一种已知的方法为IGraphBuilder的RenderFile视频执行此操作?
答案 0 :(得分:1)
当您执行IGraphBuilder :: RenderFile时,它会在内部向图表添加视频渲染器过滤器。通常是VMR-7 Video Renderer Filter:
在Windows XP及更高版本中,视频混合渲染器7(VMR-7)就是 默认视频渲染器。它被称为VMR-7,因为它在内部 使用DirectDraw 7。
此时,您可以枚举图形的过滤器,找到VMR-7并使用其IVMRAspectRatioControl等接口来指定感兴趣的模式。