当前位置: 代码迷 >> 多媒体/流媒体开发 >> 与普通转换Filter相比,Renderer中还做了些什么工作?解决办法
  详细解决方案

与普通转换Filter相比,Renderer中还做了些什么工作?解决办法

热度:9153   发布时间:2013-02-26 00:00:00.0
与普通转换Filter相比,Renderer中还做了些什么工作?
混音时问题,在音频采集时添加背景音乐,我的Graph将媒体文件中的音频与采集到的音频进行混合,连接大概如下:
媒体源文件Filter --> 音频解码后 --> --> DirectSound音频播放
--> 音频混合Filter(自己写) 
音频采集Filter ------------------> --> Lame编码 --> 发送

现在Graph已能正常连接,但是在打开RMVB格式时,音频播放的非常快,比正常速度快多了,导致音频混合不能如意,而打开其它格式如WMV,ASF,MPG都是正常的。所以想问,与普通转换Filter相比,Renderer中还做了些什么工作?导致了此种现象发生?
刚开始我怀疑我与质量控制有关,于是重载了output pin的Notify(),但这个函数一次也没调用过。又或者是与Real格式的特殊性有关?

------解决方案--------------------------------------------------------
一般情况,RenderFilter会设定一个同步时钟,它通过读取传入的数据流帧上的时间戳来控制播放速度。
你的情况我估计是RMVB文件解压的音频数据没打时间戳造成的。
------解决方案--------------------------------------------------------
1。高效率的图形显示
2。av的同步控制(丢弃,质量反馈信息...)
  相关解决方案