2010-01-26 33 views
4

我正在研究一種解決方案,該解決方案將用於接收來自遠程主機的視頻流,並將各種文本放在其頂部。目前它由自定義的DirectShow推送過濾器(C++)組成,該過濾器使用RTP協議從遠程主機接收數據,以及設置DirectShow圖形並用作視頻容器的小型C#應用程序。我正在使用DirectShowLib互操作庫。但是,我不確定如何將參數從這個C#應用程序傳遞給我的自定義過濾器。什麼是可能的方法來做到這一點?DirectShow - 將參數傳遞給自定義源推送篩選器

回答

3

最簡單的方法是註冊你自己的協議(在HKCR下創建一個key myproto,然後創建一個包含你的clsid的「Source Filter」值)。然後你可以渲染「myproto://ip=192.168.0.1 & port = 12 & param1 = x」,這些傳遞給你的IFileSourceFilter :: Load方法。

ģ

+0

我簡單看了文檔,但沒有Open方法。我假設你的意思是IFileSourceFilter :: Load方法?我會在幾個小時後開始玩這個遊戲,如果它有效,我會告訴你。謝謝! – mkurek

2

創建密鑰:

HKEY_CLASS_ROOT

  • myproto
    • 「源過濾器」= 「187463A0-5BB7-11D3-ACBE-0080C75E246E」

是不夠的在Windows 7有兩個問題與:

  • 需要用大括號來包裝你的CLSID
  • 你需要添加「URL協議」

的正確的版本看起來像這樣:

HKEY_CLASS_ROOT

  • myproto
    • 「源過濾器」= 「{187463A0-5BB7-11D3-ACBE-0080C75E246E}」
    • 「URL協議」= 「」

此外,可以檢查HKEY_CLASS_ROOT - > MMS供參考。

相關問題