DirectShow 12 - 过滤器连接和模式

Filter的连接:
通过视图管理器连接相应的Pin。
Pin连接中的内存分配:
Pin之间的内存交互机制:局部内存交换机制。
 
在局部存储器传输中,负责分配内存的对象称为allocator。
每个allocator 都支持一个IMemAllocator 接口,所有的pin 都共享一个allocator。
每个pin 都提供一个allocator,但是输出pin 选择使用哪个allocator
 
推模式:IMenInputPin
   1 首先,输出pin 调用IMemInputPin::GetAllocatorRequirements,这个方法检查输入pin 对内存的要求,比如内存的队列,
     一般来说,输出pin 要满足输入pin 对内存的要求。
   2 输出pin 然后调用IMemInputPin::GetAllocator.,这个方法从输入pin 请求一个allocator,
   3 输出pin 选择一个allocator,可以是输入pin 提供,也可以是自己生产的。
   4 输出pin 调用IMemAllocator::SetProperties 来设置allocator 的属性。
   5 然后输出pin 通过IMemInputPin::NotifyAllocator 来通知输入pin,选择的allocator。
   6 输入pin 通过IMemAllocator::GetProperties 来检查是否能够接受allocator 的属性。
   7 当数据流开始和停止的时候,输出pin 负责提交allocator。
 
拉模式:IAsyncReader
   1 输入pin 调用输出pin 上的IAsyncReader::RequestAllocator,输入pin 确定内存的属性,并提供一个allocator。
   2 输出pin 选择一个allocator,
   3 输入pin 检查
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值