共用方式為


動態格式變更

[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、imfMediaEngine 取代,並在媒體基金會 音訊/視訊擷取。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayerIMFMediaEngine 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]

當兩個篩選連線時,它們會同意媒體類型,其描述上游篩選將傳遞的數據格式。 在大部分情況下,媒體類型會在連線期間固定。 不過,DirectShow 提供有限的篩選支持來變更媒體類型。 當篩選參數媒體類型時,稱為 動態格式變更。 如果您要撰寫 DirectShow 篩選,您應該注意動態格式變更的機制。 即使您的篩選不支援這類變更,如果另一個篩選要求新的格式,它也應該正確回應。

DirectShow 會根據篩選圖形的狀態和所需的變更類型,定義數個不同的動態格式變更機制。

  • 如果圖表停止,針腳可以重新連線並重新談判媒體類型。 如需詳細資訊,請參閱 重新連線針腳
  • 即使圖形為使用中(執行中或已暫停),某些篩選條件仍可重新連接釘選。 如需此機制的詳細資訊,請參閱 動態重新連線

否則,如果圖表為使用中,但有問題的篩選不支援動態針腳重新連線,則有三種可能的機制可以變更格式:

  • 當輸出針腳建議將格式變更為其下游對等時,會使用 QueryAccept (下游),但只有在新格式不需要較大的緩衝區時才使用。
  • QueryAccept (上游),當輸入針腳建議將格式變更為其上游對等時使用。 新格式的大小可以相同,也可以是較大的格式。
  • ReceiveConnection 當輸出針腳建議將格式變更為其下游對等時使用,而新的格式需要較大的緩衝區。

處理視訊轉譯器 的格式變更