Right now on most Linux distributions when using higher-end Bluetooth headphones, the low-end SBC audio codec ends up being utilized by default which is subpar for the potential audio quality of the more expensive headphones. Fortunately, there are PulseAudio modules that allow for the higher-end codecs to be used.

The low-complexity sub-band codec “SBC” is what ends up being used by default as it’s native to Bluetooth and not proprietary or encumbered by patents. But newer headphones on the premium end of the spectrum also support LDAC, AptX-HD, and others with higher bit-rates yielding better audio quality.

In the case of LDAC, Sony released it as open-source for Android and there is an Apache-licensed LDAC library (libldac) available that is working its way into the likes of Fedora and other package repositories. So LDAC ends up becoming a more ideal codec due to better quality and not blocked by legal issues for open-source Linux adoption.

Fortunately, EHfive/pulseaudio-modules-bt adds in the support on the PulseAudio side for LDAC. The PulseAudio bits also include support for AAC/AptX/AptX-HD, albeit it relies upon FFmpeg and still encumbered by patent/lega issues. So long story short, if using this PulseAudio code paired with FFmpeg or libldac, it’s possible to have much better audio quality for Bluetooth headsets from the Linux desktop.

Jiri Eischmann of Red Hat wrote a blog post about this find where he commented, “I don’t have bat ears, but I could recognize a difference in sound quality immediately.