Bluetooth: mSBC playback does not work on Intel USB Bluetooth Adapters 8087:07dc and 8087:0a2a on Kernel 5.4 (confirmed) up to 5.8 (speculative)
Bluetooth: mSBC playback does not work on Kernel 5.4.0-60
TLDR: 5.9 is confirmed working with a patch (see below)
System Setup
- Ubuntu 20.04 / Linux version 5.4.0-60-generic
- Built-in USB bluetooth adapter (USB ID 8087:07dc Intel Corp.)
- Headset Soundcore Life P2-L
- Pipewire master 4cba8fc7
- backend-native
Observation:
- After enabling mSBC in media-config, audio playback on HFP does not work, only play's silence
Expected behaviour:
- Have good audio
Analysis:
Similar to #549 (closed), all-zero packets (i.e. 48 zeros in the packet) get inserted into the packet stream which do not have anything to do with the payload data stream. This can be observed via sudo btmon -S
Some background can be found here
Because the mtu is 48 and the mSBC encode size is 60, the transmission stops after 48 bytes, we now wait for a new mSBC packet to be received, so we miss the next eSCO transmission window and the headset fills in with zeros causing the packet to be chopped and the next one to be discarded as invalid.
Conclusion The Intel USB bluetooth adapter 8087:07dc is confirmed working with a Kernel 5.9 + patch (see below).