共用方式為


CBaseOutputPin 類別

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

cbaseoutputpin 類別階層

類別 CBaseOutputPin 是實作輸出針腳的抽象基類。

這個類別衍生自 CBasePin。 在下列方面,它與 CBasePin 不同:

  • 它只會連接到支援 IMemInputPin 介面的輸入針腳。
  • 它透過 IMemAllocator 介面支援本機記憶體傳輸。
  • 它會拒絕資料流程結束、排清和新區段通知。 (這些不應該傳送至輸出 pin.)
  • 它提供方法以傳遞下游的範例。

針腳連接時,它會從輸入針腳要求記憶體配置器。 失敗,它會建立新的配置器物件。 輸出針腳負責設定配置器屬性。 它會透過純虛擬方法 CBaseOutputPin::D ecideBufferSize 執行此動作。 覆寫衍生類別中的這個方法。 如果輸入針腳有任何緩衝區需求,則會傳遞至 DecideBufferSize 方法。

呼叫 CBaseOutputPin::GetDeliveryBuffer 方法來取得空的媒體範例。 呼叫 CBaseOutputPin::D eliver 方法來傳遞下游的範例。

您的衍生類別必須覆寫純虛擬 CBasePin::CheckMediaType 方法,以在釘選連線期間驗證媒體類型。

受保護的成員變數 Description
m_pAllocator 記憶體配置器的指標。
m_pInputPin 連接到這個針腳之輸入針腳的指標。
公用方法 Description
CBaseOutputPin 建構函式方法。
CompleteConnect 完成輸入針腳的連接。 虛擬。
DecideAllocator 選取記憶體配置器。 虛擬。
GetDeliveryBuffer 擷取包含空白緩衝區的媒體範例。 虛擬。
傳遞 將媒體範例傳遞至連接的輸入針腳。 虛擬。
InitAllocator 建立記憶體配置器。 虛擬。
CheckConnect 判斷針腳連線是否適合。
BreakConnect 從連線釋放針腳。
使用中 通知針腳,篩選準則現在為作用中。
非使用中 通知針腳,篩選準則不再作用中。
DeliverEndOfStream 將串流結束通知傳遞至連接的輸入針腳。虛擬。
DeliverBeginFlush 要求連接的輸入針腳開始排清作業。 虛擬。
DeliverEndFlush 要求連接的輸入針腳結束排清作業。 虛擬。
DeliverNewSegment 將新區段通知傳遞給連接的輸入針腳。 虛擬。
純虛擬方法 Description
DecideBufferSize 設定緩衝區需求。
IPin 方法 Description
BeginFlush 開始排清作業。
EndFlush 結束排清作業。
EndOfStream 通知針腳未預期其他資料。

規格需求

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