MEStreamTick 事件

表示媒体流在指定时间没有可用数据的信号。

事件值

IMFMediaEvent::GetValue 检索到的可能值包括以下内容。

VARTYPE 说明
VT_I8
出现间隙的时间,以 100 纳秒为单位。

备注

此事件表示数据有差距。 事件通知下游组件不要在指定时间有任何数据。

事件应由为流中的媒体样本生成时间戳的对象发送。 根据数据的格式,这是:

在间隔期间,对象发送事件的频率应与通常生成样本的频率一样多。 对于视频,请为每个缺失帧发送一个事件。 对于音频,在间隔期间每秒至少发送一次事件。 事件的值是缺失示例的时间戳。 根据需要发送任意数量的 MEStreamTick 事件,以填补数据中的空白。

如果媒体源具有多个流,并且多个流中存在间隙,则每个流都应发送 MEStreamTick 事件。 例如,如果音频和视频数据存在间隙,则这两个流都发送事件。

MEStreamTick 事件未完成 IMFMediaStream::RequestSample 请求。 媒体源必须为每次调用 RequestSample 发送 MEMediaSample 事件。

媒体接收器不能直接使用此事件。 若要向媒体接收器发出流中的间隙信号,请使用MFSTREAMSINK_MARKER_TICK标记调用 IMFStreamSink::P laceMarker Media Foundation 管道在需要时将 MEStreamTick 事件转换为 MFSTREAMSINK_MARKER_TICK 标记。

请勿在 MEStreamTick 事件之后的下一个媒体示例上设置 MFSampleExtension_Discontinuity 属性。 MFSampleExtension_Discontinuity 属性表示时间戳与以前的时间戳不连续,而 MEStreamTick 表示时间戳是连续的,但缺少一些数据。

注意

文档的早期版本错误地指出,MEStreamTick 事件后的示例应具有 MFSampleExtension_Discontinuity 属性。

 

要求

要求
最低受支持的客户端
Windows Vista [仅限桌面应用]
最低受支持的服务器
Windows Server 2008 [仅限桌面应用]
标头
Mfobjects.h (包括 Mfidl.h)

另请参阅

媒体基础事件