2011-02-14 32 views
1

我想调整视频以显示在指定的窗口上,例如320 * 240。如何在VMR9无渲染模式下将视频调整为指定大小?

我必须使用VMR-9 Renderless模式渲染到曲面。 我正在使用IVMRMixerControl9-> SetOutputRect()方法来调整视频大小。 所以我必须得到原生视频大小。但我不知道如何。

GetOutputRect方法总是返回0和1. get_VideoHeight和get_VideoWidth方法返回E_NOINTERFACE。但我确实用视频文件构建了一个filterGraph。

我有错误的想法或有其他方法吗?

在此先感谢!

回答

2

不知道这是否对你有帮助,但你有没有看过VMR的无窗模式?您可以指定窗口的句柄(例如UserControl)来显示视频。在IVMRWindowlessControl9界面上,您可以调用GetNativeVideoSize获取本机窗口大小并从那里设置大小,然后调用SetVideoPosition指定视频应该到达的位置。在我的情况下,我将UserControl的ClientRectangle用作目标矩形,将原生视频大小用作源矩形。

+0

是的!它在你的方法中运行良好。我建立另一个过滤器图并获得本地窗口大小。 GetNativeVideoSize和Get_VideoHeight似乎无法在无渲染模式下运行。非常感谢,大卫! – Nickolas 2011-02-16 05:52:06