欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 家装 > 分享蓝牙耳机A2DP音频卡顿原因及解决思路

分享蓝牙耳机A2DP音频卡顿原因及解决思路

2024/10/24 6:13:18 来源:https://blog.csdn.net/Jzj1234555/article/details/142853237  浏览:    关键词:分享蓝牙耳机A2DP音频卡顿原因及解决思路

背景

最近一直在更新博客,我觉得写博客有三个好处,一是很多东西时间久了就会忘,记下来方便自己以后回忆和总结,二是记下来可以加深自己对知识的理解,三是可以知识分享,方便他人。
言归正传,今天分享我曾经做过的某高端蓝牙耳机的A2DP音频卡顿原因分析和解决思路,A2DP音频卡顿从LOG方面看,一般都能从Audio DSP的错误log看出来:

问题及解决思路

audio dsp下溢

也就是underflow错误,意思是DSP那边拿不到数据帧造成的音频卡顿,这类错误有可能是耳机的BT HOST或者 controller的问题:

问题案例分析解决思路
耳机BTH问题比如我曾经碰到过的情况就是BTH在接受手机音乐的同时,又发生了其他调度,需要上行通过HFP协议上报电量等,由于耳机主CPU的mips不足,调度不及时,造成BTH没有及时读取BTC的audio数据。这种一般需要临时提高主CPU的mips。
耳机BTC问题BT Controller的问题就是由于某些原因,从手机收包不及时导致,比如耳机在接受A2DP音频流的同时,进行了BLE 扫描,过高的扫描占空比导致BTC收包不及时,也有可能是信号问题导致重传太多,收包不及时等等。这种需要BT Controller具体分析了,BLE占空比太高就要想办法消减或者打散,信号问题就要和硬件一起分析。
手机蓝牙问题比如我曾经碰到过在播放高清音频的时候,手机发过来的包就有丢包,后来发现手机在播放高清音频的同时,在做BLE SCAN造成的,过高的BLE占空比造成了音频发包有很大延迟需要把BLE SCAN的window打散,不能造成音频的丢包

audio dsp上溢

也就是overflow错误,意思是蓝牙这边送到DSP的数据帧太多,导致DSP解码播放不及时造成的卡顿,这类错误有可能是DSP本身的问题或者是蓝牙的问题:

问题案例分析解决思路
DSP本身问题DSP本身性能不足,由于某些导致播放速度太慢造成的问题需要DSP查看为啥cpu load太重
蓝牙的问题比如我曾经碰到过手机蓝牙的高清音频通过动态码率发送,一时大量数据发送过来,造成了audio DSP播放不及时可以通过加大DSP接收buffer解决问题

SN或者TS不连续

sn和ts是保证蓝牙数据包能被audio dsp解码播放的关键参数,如果发生了SN或者TS不连续错误,说明蓝牙存在丢包或者重复收包的可能:

问题案例分析解决思路
手机蓝牙问题手机发过来的数据就有SN或者TS不连续可以通过抓取手机蓝牙音频数据,然后dump出来,通过音频软件分析,比如adobe audition就是个很好的音频分析软件
耳机BTC问题耳机蓝牙芯片由于某些原因存在丢包的发生这个需要bt controller具体分析

DSP性能不足或者解码错误

这类错误一般都是DSP自身的错误,需要DSP去查看。

总结:

以上这四类蓝牙A2DP卡顿问题原因和解决思路是我在具体项目中碰到过的,实际中应还有其他的原因,我只能在此抛砖引玉。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com