MEStreamTick 事件
表示媒体流在指定时间没有可用数据的信号。
事件值
从 IMFMediaEvent::GetValue 检索到的可能值包括以下内容。
VARTYPE | 说明 |
---|---|
VT_I8 |
出现间隙的时间,以 100 纳秒为单位。 |
备注
此事件表示数据有差距。 事件通知下游组件不要在指定时间有任何数据。
事件应由为流中的媒体样本生成时间戳的对象发送。 根据数据的格式,这是:
- 媒体源上的媒体流 (IMFMediaStream 接口) ,或者
- 解码器转换 (IMFTransform 接口) 。
在间隔期间,对象发送事件的频率应与通常生成样本的频率一样多。 对于视频,请为每个缺失帧发送一个事件。 对于音频,在间隔期间每秒至少发送一次事件。 事件的值是缺失示例的时间戳。 根据需要发送任意数量的 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 [仅限桌面应用] |
标头 |
|
另请参阅