与普通转换Filter相比,Renderer中还做了些什么工作?
混音时问题,在音频采集时添加背景音乐,我的Graph将媒体文件中的音频与采集到的音频进行混合,连接大概如下:
媒体源文件Filter --> 音频解码后 --> --> DirectSound音频播放
--> 音频混合Filter(自己写)
音频采集Filter------------------> --> Lame编码 --> 发送
现在Graph已能正常连接,但是在打开RMVB格式时,音频播放的非常快,比正常速度快多了,导致音频混合不能如意,而打开其它格式如WMV,ASF,MPG都是正常的。所以想问,与普通转换Filter相比,Renderer中还做了些什么工作?导致了此种现象发生?
刚开始我怀疑我与质量控制有关,于是重载了output pin的Notify(),但这个函数一次也没调用过。又或者是与Real格式的特殊性有关?
[解决办法]
一般情况,RenderFilter会设定一个同步时钟,它通过读取传入的数据流帧上的时间戳来控制播放速度。
你的情况我估计是RMVB文件解压的音频数据没打时间戳造成的。
[解决办法]
1。高效率的图形显示
2。av的同步控制(丢弃,质量反馈信息...)