CTransformInputPin.Receive 方法

[与此页面关联的功能 DirectShow 是旧版功能。 它已被 MediaPlayerIMFMediaEngineMedia Foundation 中的音频/视频捕获所取代。 这些功能已针对Windows 10和Windows 11进行了优化。 Microsoft 强烈建议新代码尽可能在 Media Foundation 中使用 MediaPlayerIMFMediaEngine音频/视频捕获 ,而不是 DirectShow。 如果可能,Microsoft 建议重写使用旧 API 的现有代码以使用新 API。]

方法 Receive 接收流中的下一个媒体示例。 此方法实现 IMemInputPin::Receive 方法。

语法

HRESULT Receive(
   IMediaSample *pSample
);

参数

pSample

指向示例 IMediaSample 接口的指针。

返回值

返回 HRESULT 值。 可能的值包括下表中显示的值。

返回代码 说明
S_FALSE
Pin 当前正在刷新;示例被拒绝。
S_OK
成功。

备注

此方法调用引脚的 CBaseInputPin::Receive 方法,该方法检查引脚的流式处理状态并检查媒体类型中的格式更改。 然后,它调用筛选器的 CTransformFilter::Receive 方法,该方法处理示例并将其传递到下游。

如果筛选器需要在此方法返回后访问示例,它应通过对示例调用 IUnknown::AddRef 方法来保存引用计数。 例如,某些解码器筛选器需要当前示例才能解码下一个示例。

要求

要求
标头
Transfrm.h (包括 Streams.h)

Strmbase.lib (零售版本) ;
Strmbasd.lib (调试生成)