CSource 類別

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

csource 類別階層

CSource類別是實作來源篩選的基類。 衍生自 CSource 的篩選包含一或多個衍生自 CSourceStream 類別的輸出針腳。 每個輸出針腳都會建立背景工作執行緒,以推送媒體範例下游。

注意

CSource類別的設計目的是要支援資料流程的推送模型。 不建議使用這個類別來建立檔案讀取器篩選。 檔案讀取器應該透過 IAsyncReader 介面支援提取模型。 如需詳細資訊,請參閱 篩選開發人員的資料流程

受保護的成員變數 Description
m_iPins 篩選準則上的針腳數目。
m_paStreams 針腳的陣列。
m_cStateLock 保護篩選狀態的重要區段物件。
公用方法 Description
CSource 建構函式方法。
~CSource 解構函式方法。
GetPinCount 擷取篩選準則上的針腳數目。
GetPin 擷取針腳。
pStateLock 擷取篩選之關鍵區段物件的指標。
AddPin 將新的輸出釘選新增至篩選。
RemovePin 從篩選中移除指定的針腳。
FindPinNumber 擷取篩選上指定針腳的數目。
IBaseFilter 方法 Description
FindPin 擷取具有指定識別碼的針腳。

備註

若要實作輸出針腳,請執行下列動作:

若要實作篩選,請執行下列動作:

  • CSource衍生類別。
  • 在建構函式中,建立衍生自 CSourceStream的一或多個輸出針腳。 針腳會自動將其建構函式方法中的篩選新增至篩選,並在解構函式方法中自行移除。

若要同步處理多個執行緒之間的篩選狀態,請呼叫 CSource::p StateLock 方法。 這個方法會傳回篩選狀態關鍵區段的指標。 使用 CAutoLock 類別來保存重要區段。 您可以從 pin 的CBasePin::m_pFilter成員變數存取pStateLock,如下所示:

CAutoLock lock(m_pFilter->pStateLock());

規格需求

需求
標頭
Source.h (包含 Streams.h)
程式庫
Strmbase.lib (零售組建) ;
Strmbasd.lib (偵錯組建)

另請參閱

撰寫來源篩選