14、媒体基础源:原理、实现与应用

媒体基础源:原理、实现与应用

1. 媒体基础源概述

媒体基础(MF)媒体源是COM对象,至少需暴露两个接口: IMFMediaSource IMFMediaEventGenerator IMFMediaSource 接口让应用程序控制源,媒体生成器接口则用于源发送各种状态和操作信号。

媒体源可暴露一个或多个输出媒体流对象,无输入媒体流对象。从概念上讲,MF媒体源等同于DirectShow源过滤器,每个媒体流对象的作用与DirectShow输出引脚相同,负责传输特定数据类型的基本流,如视频、音频、交互式电视数据或字幕。若文件包含同一类型的多个基本流,源通常会暴露多个流对象,每个基本流对应一个。例如,文件含两个音轨,源会暴露两个媒体流对象,将音频数据传输到拓扑结构中。

媒体基础管道采用“拉取”架构,媒体会话(作为控制器)按需从每个节点拉取样本。播放期间,媒体会话会从所选的每个媒体流对象请求数据,而不会从非活动(未选)流请求数据。选择或取消选择特定数据流的原因是媒体文件常含同一类型的多个数据流。如电影可能有三个独立音轨(每种语言一个)和三个字幕轨,为仅播放和显示一种语言的信息,可取消选择不需要的流。

每个媒体流对象关联一个或多个媒体类型,描述该对象可传输的媒体类型。MF拓扑生成器需此信息来确定哪个媒体基础转换(MFT)或接收器与特定输出流对象兼容。

以下是AVF源示例的主要类构成:

graph LR
    classDef process fill:#E5F6FF,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值