Share via


傳輸

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

為了透過篩選圖表移動媒體資料,DirectShow 篩選必須支援數個可能通訊協定的其中一個。 這些通訊協定稱為傳輸。 當兩個篩選連線時,它們必須支援相同的傳輸;否則它們無法交換媒體資料。 一般而言,傳輸需要其中一個針腳支援特定介面。 當篩選連線時,一個釘選會查詢另一個介面。

大部分 DirectShow 篩選會保存主要記憶體中的媒體資料,並將它傳遞至跨針腳連線的其他篩選。 這種類型的傳輸稱為本機記憶體傳輸。 雖然本機記憶體傳輸是 DirectShow 中最常見的傳輸,但並非所有篩選都會使用它。 例如,某些篩選會沿著硬體路徑傳送媒體資料,並且只使用針腳來傳遞控制資訊。 例如,請參閱 IOverlay 介面。

DirectShow 會定義兩種本機記憶體傳輸機制、推送模型和提取模型。 在推送模型中,來源篩選會產生資料,並將它傳遞給下一個篩選下游。 該篩選會被動接收資料、處理資料,並將它進一步傳送到下游。 在提取模型中,來源篩選準則會連接到剖析器篩選。 剖析器篩選會從來源篩選要求資料。 來源篩選會傳遞資料來回應要求。 推送模型會使用 IMemInputPin 介面,而提取模型會使用 IAsyncReader 介面。

推送模型比提取模型更常見。 因此,後續的文章會假設推送模型。 本節的最後一篇文章 提取模型說明 IAsyncReader 介面與 IMemInputPin有何不同。

篩選圖形中的資料流程