I have noticed that when I connect a Bluetooth headphones to the system (any Linux pc, since I tried some other PCs I have with different Linux OS. In Android it always works fine, so it´s not a problem with my headphones) it sounds great, but after I move or I do something that makes the connection unstable, I have a moment of choppy audio (normal), but after it stabilizes and even if I come closer to the pc to have a better connection, the audio remains with static noise and poor quality forever because for some reason the maximum size of data that my system sends after that is 20kb/s, half of the size before the lag spike. I checked this with Blueman.
So after it detects that the connection is unstable, Linux limits the amount of data that it sends even when the connection regains the stability.
Maybe Linux do that intentionally so it can still be connected with the device even if that means to reduce the quality so it has to send less data?. If so, why not return to the good quality when the connection becomes stable again?.
I can reset PulseAudio and disconnect the headphones to solve it, but for some reason I found that to fix this I can also change the profile of the headphones to "off" and then again to "A2DP Sink" without even disconnecting them and it fixes it (until the connection gets unstable again and I have to repeat this again to regain the high quality).
Why is that? is related to the Linux Kernel or some default configuration? or is it a bug?.