共用方式為


關於 Filter Graph 管理員

[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayerIMFMediaEngine音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。

Filter Graph Manager是一個 COM 物件,可控制篩選圖形中的篩選。 它會執行許多函式,包括下列各項:

  • 協調篩選準則之間的狀態變更。
  • 建立參考時鐘。
  • 將事件傳回應用程式。
  • 為應用程式提供建置篩選圖形的方法。

此處會簡短說明這些函式。 您可以在檔中的其他位置找到詳細資料。

狀態變更。 篩選準則內的狀態變更必須以特定順序發生。 因此,應用程式不會直接對篩選發出狀態變更命令。 相反地,它會為 Filter Graph 管理員提供單一命令,以將命令散發至每個篩選。 搜尋的運作方式類似:應用程式會向 Filter Graph 管理員提供搜尋命令,以將它散發至篩選。

參考時鐘。 圖形中的所有篩選都會使用相同的時鐘,稱為 參考時鐘。 參考時鐘可確保所有資料流程都會同步處理。 視訊畫面或音訊範例應該轉譯的時間稱為 簡報時間。 表示時間是相對於參考時鐘來測量。 Filter Graph 管理員會選擇參考時鐘,通常是音效卡上的時鐘或系統時鐘。

圖形事件。 Filter Graph 管理員會使用事件佇列來通知篩選圖形中發生的事件應用程式。 此機制類似于 Windows 訊息迴圈。

圖形建置方法。 Filter Graph 管理員提供方法讓應用程式將篩選新增至圖表、將篩選連線至其他篩選,以及中斷連線篩選。

篩選圖形管理員無法處理的一個函式是將資料從一個篩選移至下一個篩選。 這是由篩選本身,透過其釘選連線來完成。 處理一律會在個別執行緒上發生。

注意

篩選一律為自由執行緒、位於與篩選圖形管理員相同的進程,並從同進程伺服器載入。 因此,方法呼叫不會在篩選之間封送處理,或在篩選準則與篩選圖形管理員之間封送處理。

 

篩選圖形中的資料流程

DirectShow 中的事件通知

設定圖形時鐘

DirectShow 中的時間和時鐘