DirectShow体系结构之Pin

   Filter加入Filter Graph后,由Filter Graph对其进行控制,完成需要的操作。但是Filter之间并不是直接相连的。Filter只完成对数据的处理,在Filter Graph中数据的接收和输出并不是完全由Filter自身完成的。这里需要介绍另一个COM组件—Pin。Pin分为输入Pin和输出Pin两种,分别完成数据的输入和输出工作,它是Filter处理数据的来源和去向。Filter之间连接事实上是Filter上Pin的连接,而且连接的两个Filter要在同一个Filter Graph中。连接的方向一般总是由上一级的Filter(Upstream Filter)的输出Pin连接下一级Filter(Downstream Filter)的输入Pin。连接成功后数据就沿着Filter链路,经由一系列的输入输出Pin在Filter Graph中传递。Pin的连接过程实际上是连接双方使用的媒体类型的一个"协商"过程,如下图所示:

整个连接过程的步骤大致如下:

  • 1)Filter Graph Manager在输出Pin上调用IPin::Connect(输入Pin的指针作为参数)
  • 2)如果输出Pin接受连接,则调用输入Pin上的IPin::ReceiveConnection;
  • 3)如果输入Pin也接受这次连接,则双方连接成功

 

参考:

https://www.yuque.com/docs/share/baeadc02-c9ad-4702-969a-5780fe9dba73

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值