0
我有一個直接運行的directshow過濾器圖形,沒有任何停止。但是,當我將圖形源更改爲其他視頻文件時,音頻&視頻流之間的同步失敗。如何閃出Directshow音頻渲染緩衝區?
這是因爲一些音頻幀還沒有播放。怎麼可以告訴圖形閃爍音頻緩衝區?
我有一個直接運行的directshow過濾器圖形,沒有任何停止。但是,當我將圖形源更改爲其他視頻文件時,音頻&視頻流之間的同步失敗。如何閃出Directshow音頻渲染緩衝區?
這是因爲一些音頻幀還沒有播放。怎麼可以告訴圖形閃爍音頻緩衝區?
當您停止過濾器圖形時,無條件刷新數據。
不停止,您可以通過調用各自輸入引腳的IPin::BeginFlush
和IPin::EndFlush
方法(第一個,然後緊接着第二個)去除緩衝數據。這不一定是渲染器的輸入引腳,您有興趣調用上游音頻引腳,以便將此刷新調用傳播並將所有內容都消耗到渲染器。
不幸的是,BeginFlash和EndFlash沒有幫助。音頻緩衝區長度爲500毫秒,當我調用這些功能時,音頻仍然繼續播放。 –
你可以試試[GMFBridge](http://www.gdcl.co.uk/gmfbridge/)切換源代碼。 – wimh