DirectShow 使用什么来在过滤器之间传输数据?
DirectShow 使用什么来在过滤器之间传输数据? (管道或什么)
What does DirectShow use for data transfer between filters? (pipes or what)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
DirectShow 处理“媒体样本”中的数据块,这些数据块只是缓冲区,通过 IMediaSample COM 接口实现。要分配样本,需要使用基于 COM 的内存管理器,即 IMemAllocator 接口,该接口应由过滤器实现。使用
IMemAllocator::GetBuffer
方法传输样本。那里有完整记录:筛选器图表中的数据流
DirectShow handles data chunks in "media samples", which are simply buffers, implemented through the
IMediaSample
COM interface. To allocate samples is used a COM-based memory manager, theIMemAllocator
interface, that should be implement by filters. To transfer samples is used the methodIMemAllocator::GetBuffer
.Fully documented there: Data Flow in the Filter Graph