CVideoTransformFilter.Receive 方法
[與此頁面 相關的功能 DirectShow是舊版功能。 它已被 MediaPlayer、 IMFMediaEngine和 Media Foundation 中的音訊/視訊擷取取代。 這些功能已針對Windows 10和Windows 11進行優化。 Microsoft 強烈建議新程式碼盡可能使用 MediaPlayer、 IMFMediaEngine 和 音訊/視訊擷取 ,而不是 DirectShow。 Microsoft 建議盡可能重寫使用舊版 API 的現有程式碼,以使用新的 API。]
方法 Receive
會接收媒體範例、處理它,並將輸出範例傳遞至下游篩選。 這個方法會覆寫 CTransformFilter::Receive 方法。
語法
HRESULT Receive(
IMediaSample *pSample
);
參數
-
pSample
-
輸入範例上 IMediaSample 介面的指標。
傳回值
傳回 HRESULT 值。 可能的值如下:
傳回碼 | Description |
---|---|
|
上游篩選應該停止傳送樣本。 |
|
成功。 |
備註
這個方法會呼叫 CVideoTransformFilter::ShouldSkipFrame 來判斷它是否應該傳遞此範例,或只是捨棄它。 如果 ShouldSkipFrame 傳回 FALSE (指出範例應該傳遞) ,此方法會執行下列動作:
- 呼叫 CTransformFilter::InitializeOutputSample 以準備輸出範例
- 呼叫 CTransformFilter::Transform 來處理輸入範例。 這個方法是純虛擬的,而且必須在衍生類別中實作。
- 呼叫 CBaseOutputPin::D eliver 來傳遞輸出範例。
此外,此方法會呼叫 IMediaSample::GetMediaType,以檢查輸入或輸出範例上的格式變更。 如果有格式變更,方法會在對應的針腳上設定連線類型。 在設定新類型之前,它會呼叫 StopStreaming。 設定新類型之後,它會呼叫 StartStreaming。 衍生類別可以使用這些方法來更新其內部狀態。 衍生類別可能也需要檢查其 Transform 方法中的新格式。
規格需求
需求 | 值 |
---|---|
標頭 |
|
程式庫 |
|