CBaseFilter 類別
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
類別 CBaseFilter
是實作篩選的抽象類別。 若要使用此類別實作篩選,您必須至少執行下列步驟:
- 從
CBaseFilter
衍生新的類別。 - 包含定義篩選上釘選的成員變數。 針腳必須繼承自 CBasePin 類別。
- 覆寫純虛擬方法 CBaseFilter::GetPin,以擷取篩選上的針腳。
- 覆寫純虛擬方法 CBaseFilter::GetPinCount,以擷取針腳數目。
- 提供產生、處理或轉譯媒體範例的方法。
數個基類衍生自 CBaseFilter
,包括 CSource、 CBaseRenderer和 CTransformFilter。 使用下列其中一個特製化類別來實作篩選通常比較容易,而不是直接使用 CBaseFilter
。
受保護的成員變數 | Description |
---|---|
m_State | 篩選準則的目前狀態。 |
m_pClock | 篩選參考時鐘的指標。 |
m_tStart | 對應至資料流程時間 0 的參考時間。 |
m_clsid | 篩選準則 (CLSID) 類別識別碼。 |
m_pLock | 用來序列化狀態變更的重要區段指標。 |
m_pName | 篩選名稱。 |
m_pGraph | 篩選圖形管理員的指標。 |
m_pSink | 篩選圖形管理員上 IMediaEventSink 介面的指標。 |
m_PinVersion | 此篩選上目前版本的針腳集。 |
公用方法 | Description |
CBaseFilter | 建構函式方法。 |
~ CBaseFilter | 解構函式方法。 |
StreamTime | 擷取目前的資料流程時間。 虛擬。 |
IsActive | 判斷篩選目前為作用中, (執行中或暫停) 。 |
IsStopped | 判斷篩選目前是否停止。 |
NotifyEvent | 將事件通知傳送至篩選圖形管理員。 |
GetFilterGraph | 擷取篩選圖形管理員的指標。 |
ReconnectPin | 中斷現有的針腳連線,並使用指定的媒體類型將它重新連線到相同的針腳。 |
GetPinVersion | 擷取此篩選上一組針腳的版本號碼。 虛擬。 |
IncrementPinVersion | 遞增一組針腳上的版本號碼。 |
GetSetupData | 擷取篩選的註冊資料。 虛擬。 |
純虛擬方法 | Description |
GetPinCount | 擷取針腳數目。 |
GetPin | 擷取針腳。 |
IPersist 方法 | Description |
GetClassID | 擷取類別識別碼。 |
IMediaFilter 方法 | Description |
GetState | 擷取篩選 (執行、停止或暫停) 的狀態。 |
SetSyncSource | 設定篩選的參考時鐘。 |
GetSyncSource | 擷取篩選所使用的參考時鐘。 |
停止 | 停止篩選。 |
暫停 | 暫停篩選。 |
執行 | 執行篩選。 |
IBaseFilter 方法 | Description |
EnumPins | 列舉此篩選上的針腳。 |
FindPin | 擷取具有指定識別碼的針腳。 |
QueryFilterInfo | 擷取篩選的相關資訊。 |
JoinFilterGraph | 通知篩選已聯結或離開篩選圖形。 |
QueryVendorInfo | 擷取包含廠商資訊的字串。 |
IAMovieSetup 方法 | Description |
註冊 | 將篩選新增至登錄。 |
Unregister | 從登錄中移除篩選。 |
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|