2009-10-22 54 views
1

我已經寫了一個DirectShow視頻轉換過濾器,它插在視頻解碼器和視頻渲染過濾器之間。它會在輸入圖片周圍添加一個相框。所以輸出picutre的尺寸和長寬比與輸入的不一樣。如何使渲染過濾器不保持縱橫比?

不幸的是,我發現視頻渲染會保持原始的寬高比,所以帶有相框的顯示圖片被拉伸。在GraphEdit中,我找到了一個名爲「保持縱橫比」的複選框的視頻渲染過濾器。取消選中它,出圖不會被拉伸。這就是我想要的。但我不知道如何在我的代碼中執行此操作。我查詢了界面IVideoWindow,但發現它無法設置縱橫比。所以我在這裏尋求幫助。

謝謝。


謝謝你,耶利米莫里爾。是的,IVMRAspectRatioControl7/9是我想要的。但看起來,爲了獲得界面,我必須首先獲得過濾器Video Mixing Renderer Filter 7/9。我想在「視頻渲染器」過濾器而不是「視頻混合渲染器過濾器9」上設置高寬比。

我不需要動態變換格式。我的過濾器圖形是

Source -> Demux -> Decoder -> MyFilter -> VideoRenderer 

無論解碼器輸出的分辨率如何,MyFilter的輸出分辨率總是與桌面屏幕相同。我發現,如果我使用智能連接,我會遇到我描述的問題。但是,如果我手動將MyFilter連接到VideoRenderer,則視頻分辨率是正確的,即與屏幕相同。

回答

2

也許您在尋找IVMRAspectRatioControl7/9界面(查詢VMR渲染器)?

另外,你所描述的聽起來很奇怪。輸入引腳介質類型設置後,您的輸出引腳是否在介質類型中提供了正確的視頻尺寸?此外,如果您在連接引腳後更改分辨率,則可能需要閱讀dynamic format changes

+1

謝謝。是的,IVMRAspectRatioControl7/9可以做我想做的。但我的問題是如何在「Video Renderer」過濾器上設置寬高比,因爲我可以在GraphEdit上進行設置。 –

相關問題