共用方式為


CVideoTransformFilter.Receive 方法

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

方法 Receive 會接收媒體範例、處理它,並將輸出範例傳遞至下游篩選。 這個方法會覆寫 CTransformFilter::Receive 方法。

語法

HRESULT Receive(
   IMediaSample *pSample
);

參數

pSample

輸入範例上 IMediaSample 介面的指標。

傳回值

傳回 HRESULT 值。 可能的值如下:

傳回碼 Description
S_FALSE
上游篩選應該停止傳送樣本。
S_OK
成功。

備註

這個方法會呼叫 CVideoTransformFilter::ShouldSkipFrame 來判斷它是否應該傳遞此範例,或只是捨棄它。 如果 ShouldSkipFrame 傳回 FALSE (指出範例應該傳遞) ,此方法會執行下列動作:

  1. 呼叫 CTransformFilter::InitializeOutputSample 以準備輸出範例
  2. 呼叫 CTransformFilter::Transform 來處理輸入範例。 這個方法是純虛擬的,而且必須在衍生類別中實作。
  3. 呼叫 CBaseOutputPin::D eliver 來傳遞輸出範例。

此外,此方法會呼叫 IMediaSample::GetMediaType,以檢查輸入或輸出範例上的格式變更。 如果有格式變更,方法會在對應的針腳上設定連線類型。 在設定新類型之前,它會呼叫 StopStreaming。 設定新類型之後,它會呼叫 StartStreaming。 衍生類別可以使用這些方法來更新其內部狀態。 衍生類別可能也需要檢查其 Transform 方法中的新格式。

規格需求

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

另請參閱

CVideoTransformFilter 類別