2011-02-14 43 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