IMFStreamSink::P rocessSample 方法 (mfidl.h)

将示例传送到流。 媒体接收器处理示例。

语法

HRESULT ProcessSample(
  [in] IMFSample *pSample
);

parameters

[in] pSample

指向包含流有效数据的样本的 IMFSample 接口的指针。

返回值

该方法返回 HRESULT。 可能的值包括(但并不限于)下表中的项。

返回代码 说明
S_OK
方法成功。
MF_E_INVALID_STATE_TRANSITION
媒体接收器处于错误状态以接收示例。 例如,预滚动已完成,但演示时钟尚未启动。
MF_E_INVALID_TIMESTAMP
该示例的时间戳无效。 请参阅“备注”。
MF_E_INVALIDREQUEST
媒体接收器已暂停或停止,无法处理示例。
MF_E_NO_CLOCK
未设置演示时钟。 调用 IMFMediaSink::SetPresentationClock
MF_E_NO_SAMPLE_TIMESTAMP
该示例没有时间戳。
MF_E_NOT_INITIALIZED
流接收器尚未初始化。
MF_E_SHUTDOWN
已调用媒体接收器的 Shutdown 方法。
MF_E_STREAMSINK_REMOVED
此流已从媒体接收器中删除,不再有效。

注解

当流接收器发送 MEStreamSinkRequestSample 事件时调用此方法。

此方法可能出于各种原因返回MF_E_INVALID_TIMESTAMP,具体取决于媒体接收器的实现:

  • 负时间戳。
  • 在同一流) 内向后跳转 (时间戳。
  • 一个流的时间戳与同一媒体接收器中另一个流的时间戳偏移过远, (例如,) 多路复用流的存档接收器。
在这些情况下,并非每个媒体接收器都会返回错误代码。

要求

   
最低受支持的客户端 Windows Vista [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2008 [桌面应用 | UWP 应用]
目标平台 Windows
标头 mfidl.h
Library Mfuuid.lib

另请参阅

IMFStreamSink

媒体接收器