CBaseOutputPin 類別

cbaseoutputpin 類別階層

CBaseOutputPin類別是一種抽象基類,可實作為輸出的釘選。

這個類別衍生自 CBasePin。 這與 CBasePin 的差異在於下列各方面:

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

當 pin 連接時,它會向輸入 pin 要求記憶體配置器。 若失敗,則會建立新的配置器物件。 輸出針腳負責設定配置器屬性。 它會透過純虛擬方法 CBaseOutputPin::D ecidebuffersize。 在您的衍生類別中覆寫這個方法。 如果輸入 pin 具有任何緩衝區需求,則會將它們傳遞給 DecideBufferSize 方法。

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

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

受保護的成員變數 Description
m _ pAllocator 記憶體配置器的指標。
m _ pInputPin 連接到此 pin 之輸入連接的指標。
公用方法 Description
CBaseOutputPin 函式方法。
CompleteConnect 完成輸入 pin 的連接。 虛擬。
DecideAllocator 選取記憶體配置器。 虛擬。
GetDeliveryBuffer 抓取包含空緩衝區的媒體範例。 虛擬。
提供 將媒體範例傳遞至連線的輸入 pin。 虛擬。
InitAllocator 建立記憶體配置器。 虛擬。
CheckConnect 判斷 pin 連接是否合適。
BreakConnect 釋放連接的 pin。
使用中 通知釘選篩選現在已啟用。
非使用中 通知 pin 此篩選已不再有效。
DeliverEndOfStream 將資料流程結束通知傳遞至連線的輸入 pin。虛擬。
DeliverBeginFlush 要求連接的輸入 pin 以開始清除作業。 虛擬。
DeliverEndFlush 要求連接的輸入 pin 以結束排清操作。 虛擬。
DeliverNewSegment 將新區段通知傳遞至連線的輸入 pin。 虛擬。
純虛擬方法 Description
DecideBufferSize 設定緩衝區需求。
IPin 方法 Description
BeginFlush 開始清除作業。
EndFlush 結束清除操作。
EndOfStream 通知 pin,不需要額外的資料。

規格需求

需求
標頭
Amfilter (包含: .h)
程式庫
(零售組建的 Strmbase .lib) ;
Strmbasd (debug 組建)