CBaseOutputPin 類別
[與此頁面相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議使用舊版 API 的現有程式碼盡可能重寫為使用新的 API。
類別 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 | 通知針腳未預期其他資料。 |
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|