2010-03-09 26 views
1

我有一個DirectShow源過濾器用於接收包含RFC2435數據(MJPEG over RTP)的網絡流。如何即時修改DirectShow Filter Output Pin的屬性?

在接收流圖像的維度數據的唯一來源之前,需要設置源過濾器輸出引腳的屬性。輸出引腳的尺寸目前被設置爲某些默認值(640x480)。

是否可以修改輸出引腳的屬性以反映新圖像的尺寸,在輸出引腳已經創建並連接到解碼MJPEG數據的另一個濾波器之後?

回答

1

我相信答案是使用可用於切換媒體類型的「動態格式更改」機制。取決於圖形是處於活動狀態還是停止狀態,可以通過幾種不同的方式完成。 MSDN上的下一頁解釋了詳細信息。

http://msdn.microsoft.com/en-us/library/dd388731(VS.85).aspx

+0

說到這就是答案,它證明了很難找到這種機制在使用中的例子! –

+1

查看www.gdcl.co.uk/gmfbridge - 此示例通過將媒體類型附加到示例並調用輸出引腳上的ReceiveConnection來更改媒體類型 - 連接到視頻渲染器時,後一種形式是必需的,因爲您需要它來更改緩衝區大小。 –

+0

謝謝,剛剛在http://social.msdn.microsoft.com/Forums/en-US/windowsdirectshowdevelopment/thread/41589cca-772d-4b43-a56a-8fb7daf953cc上找到線程 現在從CTransformInputPin派生一個新的InputPin類,以便我可以實現ReceiveConnection方法,但可能會因討論線程的運行方式而遇到分配器問題! –