共用方式為


運輸

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

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

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

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

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

篩選圖表中的 數據流