I am using /e/OS R 1.5 on a Fairphone 3+ and I noticed that the support for Bluetooth A2DP audio codecs is fairly limited. In essence. everything except standard SBC and AAC is disabled. Bitrate is locked at 44.1k.
I tested with the following devices, both with the FP3 and an Intel Linux machine running pipewire with open source implementations of several HD codecs, including aptX, AAC, SBC XQ, and Opus.
Teufel Motiv B (AAC, aptX, SBC XQ)
Raspberry Pi connected to home stereo (AAC, SBC XQ, aptX, Opus)
While I can use pretty much any HD codec with 44.1k or 48k sample rate from my Linux box using free codec implementations only, nothing but AAC with 44.1k works on the FP3.
Would it be possible to add free (software) HD codecs to /e/OS ? I gather that Lineage has support for SBC XQ, which is supposed to work with most current sinks. Is there any reason why this support has not been taken over by /e/?
What about including genuinely free codecs such as Opus, or free implementations of nonfree codecs (aptX, LDAC) in software, as done e.g by pipewire on Linux. On the FP3, hardware offloading is disabled anyway…
I guess SBC XQ will provide the biggest leaver and be easiest, given there is already support upstream (lineage).
It’s down to the license agreements the manufacturer did when selling the device. Lineage (and /e/ too) obliges this to not risk litigation. Of course you’re free to modify build sources yourself and can integrate any codecs you want if the software is out there. Until you distribute it yourself you don’t have to ponder implications. btw it probably could be done for Opus, but there too is some risk for companys/projects.
I understand the concern about proprietary codecs (aptX, LDAP), even when using FOSS reimplementations. I should have left that out.
But what about SBC XQ already available in Lineage OS? Not proprietary, and working nicely on most of available HW, such as headphones, earplugs, speakers etc.?
best to contact? comparing with users that use bluetooth audio. Users in the fp forum (example).
I’m of no help currently, have an FP3 but not bt audio gear. I’d look at adb logcat while pairing device to see why each codec is chosen, it looks to be verbose in this example (everything after a2dp_codec init that hands out priorities to each codec).
Did you notice the Bluetooth settings in the developer options (there is an HD switch), did those bring any change when the devices negotiated the codec?
I see SBC commits in lineage bluetooth repositories on their review instance - /e/ should inherit them with updating from upstream. Audio config in android devices is controlled by xml audio policy files you find in the device and vendor repos.