Media Foundation学习笔记(六)Media Foundation的架构 Media Session


Media Session是管理数据流的对象。

 

接口:IMFMediaSession。

 

创建对象:MFCreateMediaSession、MFCreatePMPMediaSession(创建支持受保护内容的MedisSession,PMP全称是Protected Media Path)。

 

一般一个应用使用MediaSession是以下流程:

1)      创建一个topology;

2)      IMFMediaSession::SetTopology将topology对象排到MediaSession上;

3)      通过IMFMediaSession的Start、Pause、Stop方法控制数据流,这和DShow的GraphBuilder类似;

4)      调用IMFMediaSession的Close方法;

5)      调用IMFMediaSession的Shutdown方法。


Topology


Topology是pipeline中展现数据怎样流动的对象,它描述了每个流从Media Source到Media Sink所走过的路径,Media Session使用topology来控制数据流动。

 

在topology中,pipeline的各个对象被称为节点(Node),两个相连的节点,生产数据的一方被称为上游节点,接收数据的一方被称为下游节点,节点上的连接点(DShow中的IPin)被称为输入和输出,以下2张图展示了一个topology和 一对连接的节点:

1)topology


2)连接的节点



接口:IMFTopolofy。

 

创建对象:MFCreateTopology。

 

一般创建一个topology有以下一些步骤:

1)  使用MFCreateTopology创建topology;

2)  使用MFCreateTopologyNode创建节点,创建节点的时候必须指明要创建的节点的类型(source节点、transform节点、output节点、tee节点);

3)  初始化节点,方法依节点类型而异;

4)  调用IMFTopolofy的AddNode方法添加节点到topology;

5)  调用上游节点的output的IMFTopologyNode接口的ConnectOutput方法连接下游节点的input。



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值