原因分析:
目前来说,常见的杂音问题可以分归两类:
1.硬件DAC设置上导致的杂音问题:
1.1 DAC DC没有校准 /DRE设置异常导致启播暂停的codec杂音
1.2 EQ参数 DRC 参数更新过于频繁导致的滤波器bank切换异常杂音
2.软件时序上丢帧错误导致的数字音频不连续.
2.1 通常的log体现字眼"af_thead:waring:" 表示DMA时间片运行时间超出预期,"underflow,pcm fifo empty wait"缓存数据不足.
解决对策:
1.硬件DAC设置:验证SDK 问题(播放静音信号或者空包提示音),联合原厂调配
2.软件时序上丢帧错误 :
2.1:提高audioflinger优先级,修改DMA时间片(主要是通过修改cache长度 延迟允许)
2.2 保证PCM数据连续性 和完整性,修复丢帧问题(线程转发 ,内存共享修改, M55解码完成度对齐)
2.3 dump元数据分析,适当的mute前几帧或者加入fadein/out效果