提取模型
[與此頁面相關聯的功能,DirectShow是舊版功能。 它已被 MediaPlayer、imfMediaEngine 取代,並在媒體基金會 音訊/視訊擷取。 這些功能已針對 Windows 10 和 Windows 11 進行優化。 Microsoft強烈建議新程式代碼盡可能在媒體 基礎中使用 MediaPlayer、IMFMediaEngine 和 音訊/視訊擷取,而不是 DirectShow。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]
在 IMemInputPin 介面中,上游篩選會決定要傳送的數據,並將數據推送至下游篩選。 對於某些篩選條件,提取 模型更合適。 在此,下游篩選會從上游篩選要求數據。 範例仍會從輸出針腳移至輸入針腳,但下游篩選會起始數據流。 這種類型的聯機會使用 IAsyncReader 介面。
提取模型的一般用法是在檔案播放中。 例如,在 AVI 播放圖表中,異步檔案來源 篩選器會執行一般檔案讀取作業,並以位元組數據流形式傳遞數據,而沒有格式資訊。 AVI 分隔器 篩選器會讀取 AVI 標頭,並將串流剖析成視訊和音訊範例。 AVI 分割器可以判斷它比 Async File Source 篩選更好的數據,因此它會使用 IAsyncReader,而不是 IMemInputPin。
若要從輸出接點要求數據,輸入針腳會呼叫下列其中一種方法:
第一個方法是異步的,以支援多個重疊的讀取。 其他則是同步的。
理論上,任何篩選都可以支援 IAsyncReader,但實際上它是針對連接到剖析器篩選的來源篩選所設計。 剖析器的作用非常類似推送模型中的來源篩選。 暫停時,它會建立串流線程,從 IAsyncReader 連線提取數據,並將其推送至下游。 輸出釘選使用 IMemInputPin,而圖形的其餘部分則使用標準推送模型。
相關主題
-
篩選圖表中的 數據流