我已經寫了一個DirectShow視頻轉換過濾器,它插在視頻解碼器和視頻渲染過濾器之間。它會在輸入圖片周圍添加一個相框。所以輸出picutre的尺寸和長寬比與輸入的不一樣。如何使渲染過濾器不保持縱橫比?
不幸的是,我發現視頻渲染會保持原始的寬高比,所以帶有相框的顯示圖片被拉伸。在GraphEdit中,我找到了一個名爲「保持縱橫比」的複選框的視頻渲染過濾器。取消選中它,出圖不會被拉伸。這就是我想要的。但我不知道如何在我的代碼中執行此操作。我查詢了界面IVideoWindow,但發現它無法設置縱橫比。所以我在這裏尋求幫助。
謝謝。
謝謝你,耶利米莫里爾。是的,IVMRAspectRatioControl7/9是我想要的。但看起來,爲了獲得界面,我必須首先獲得過濾器Video Mixing Renderer Filter 7/9。我想在「視頻渲染器」過濾器而不是「視頻混合渲染器過濾器9」上設置高寬比。
我不需要動態變換格式。我的過濾器圖形是
Source -> Demux -> Decoder -> MyFilter -> VideoRenderer
無論解碼器輸出的分辨率如何,MyFilter的輸出分辨率總是與桌面屏幕相同。我發現,如果我使用智能連接,我會遇到我描述的問題。但是,如果我手動將MyFilter連接到VideoRenderer,則視頻分辨率是正確的,即與屏幕相同。
謝謝。是的,IVMRAspectRatioControl7/9可以做我想做的。但我的問題是如何在「Video Renderer」過濾器上設置寬高比,因爲我可以在GraphEdit上進行設置。 –