CBaseInputPin.ReceiveMultiple 方法

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

方法 ReceiveMultiple 會接收樣本陣列。 這個方法會實作 IMemInputPin::ReceiveMultiple 方法。

語法

HRESULT ReceiveMultiple(
   IMediaSample **pSamples,
   long         nSamples,
   long         *nSamplesProcessed
);

參數

pSamples

IMediaSample指標陣列的位址,大小為 nSamples

nSamples

要處理的範例數目。

nSamplesProcessed

接收已處理的樣本數目的變數指標。

傳回值

傳回 HRESULT 值。 可能的值包括下表所列的值。

傳回碼 描述
S_OK
成功。
S_FALSE
針腳目前正在排清;範例遭到拒絕。
E_POINTER
Null 指標引數。
VFW_E_INVALIDMEDIATYPE
不正確媒體類型。
VFW_E_RUNTIME_ERROR
發生執行階段錯誤。
VFW_E_WRONG_STATE
針腳已停止。

備註

這個方法的行為與 CBaseInputPin::Receive 方法類似,但會收到範例陣列。 在基類中,方法會迴圈查看陣列,並呼叫 Receive 與每個範例。 如果您的篩選可以更有效率地處理批次的樣本,請覆寫此函式,而不是一次處理一個。

規格需求

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

另請參閱

CBaseInputPin 類別