CBaseRenderer.PrepareReceive 方法

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

方法 PrepareReceive 准备筛选器以呈现示例。

语法

virtual HRESULT PrepareReceive(
   IMediaSample *pMediaSample
);

参数

pMediaSample

指向示例 IMediaSample 接口的指针。

返回值

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

返回代码 说明
S_OK
成功。
E_FAIL
已失败。
E_UNEXPECTED
意外错误。
VFW_E_SAMPLE_REJECTED
筛选器正在删除此示例。

备注

筛选器在呈现示例之前,从 CBaseRenderer::Receive 方法内部调用此方法。 如果筛选器正在运行,此方法将计划用于呈现的示例。

如果筛选器已有挂起的示例,或者已到达流结束,则该方法返回E_UNEXPECTED。 可能上游筛选器未正确序列化其流式处理调用。

如果计划算法确定应删除示例 (请参阅 CBaseRenderer::ScheduleSample) ,该方法将返回VFW_E_SAMPLE_REJECTED。 但是,输入引脚的 IMemInputPin::Receive 方法不会将此错误代码传递给上游筛选器,因为删除样本不是错误。

要求

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

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

另请参阅

CBaseRenderer 类