媒体基础源与Windows属性处理程序详解
1. 媒体流相关操作
在媒体处理中, SendSampleToStream() 函数起着重要作用,它会根据流的类型加载音频或视频样本。样本会被传递给 IMFMediaStream 对象,之后该方法会与解析器进行检查,判断是否到达流的末尾。若检测到流结束,函数会将此信息发送给媒体流对象,以便下次调用 IMFMediaStream::RequestSample() 函数时返回 MF_E_END_OF_STREAM 错误。
1.1 媒体流对象概述
IMFMediaStream 对象通常较为简单,其主要职责是接收样本请求,将请求传递给底层源,从源获取样本并将其发送出去。由于MF采用异步架构,样本会作为媒体事件传递给监听媒体流 IMFMediaEventGenerator 接口的客户端。
IMFMediaStream 接口仅暴露了四个方法,其中三个如下:
- GetMediaSource() :返回与流关联的源的指针。
- GetStreamDescriptor() :返回一个流描述符,该描述符展示了流支持的媒体类型和流ID。
- RequestSample() :从流中请求下一个样本。此函数调用不会直接返回样本,而是将样本作为异步媒体事件发送出去。媒体会话在尝试从源中提取下一个样本时会调用此方法。
超级会员免费看
订阅专栏 解锁全文
9万+

被折叠的 条评论
为什么被折叠?



