用DirectShow写一个“合并左右声道”的Filter实现小结

因工作关系,需要完成将两个音频采集设备,同时进来的两路立体声,分别抽取每一路中的一路,合并成一个立体声声源,合并后的左、右声道分别是两路立体声的一路,原理图如下:

像麦克风进来的声音源的数据格式非常简单,左、右声道分别是一个16位的字,如“AA AA BB BB     AA AA BB BB        ....”(AA是一个字节,AA AA就是左声道的“字”数据)。假设另一个麦克风输入进来的数据如“XX XX YY YY”,那么声道合并后的新的声音数据:“AA AA YY YY”(左声道是第一个麦克风,右声道是第二个麦克风)。

选择陆其明编写的《DirectShow实务精选》第四章“视频抠像”为开发蓝本。确定Filter的父类为CTransInplaceFilter,这是一个“就地”处理的Filter,在函数TransForm中完成上述算法的合并。这个类已经有了两个pin,分别是一个输入Pin和一个输出Pin,还需要自己添加一个输入Pin来完成两路音频输入的功能。这一段见书中P321页,已经说的非常清楚了。

最终完成后的Filter在GraphStudioNext中的效果如下图:







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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值