Usable Bluetooth Codecs

H @all,

Is there a list of all BT Codecs the FP5 on the newest FairphoneOS version supports?
I’m asking because I have Headphones that supports aptX Adaptive, when I connect them, the “Qualcomm aptX Adaptive” popup comes on screen, but in the developers options, aptX Adaptive is greyed out, only Standard aptX, SBC and LC3 are available.

Also, how high is the probability of a future update bringing LHDC(v3) support? It’s already in AOSP and license free, so why not just integrate it?

1 Like

Hi
The FP5 is equipped with Bluetooth 5.2 LE.
All information’s regarding that standard should be found here:

[Bluetooth® Core Specification Version 5.2 Feature Overview | Bluetooth® Technology Website]

I hope that helps.
All the best :slightly_smiling_face:

Thanks, but not really, no.
The used Bluetooth Standard says nothing about the available A2DP Codecs.

As far as I know the codecs are choosable when a Bluetooth device is connected.

Then I found a bug. Because like I said, I have a pair of Headphones that supports aptX Adaptive, and on other phones (with A13) it connects correctly with aptX Adaptive in the developers options.
On the Fairphone, it looks like this:

What happens if you choose Qualcomm aptX?

Then the Headphones use aptX, but that’s not the point, because aptX ≠ aptX Adaptive

I would ask support to get a confirmation about the specifcations

Has anyone been able to find Codec information?

from log:

com.android.bluetooth a2dp_codec : A2DP_InitCodecConfig: codec aptX-HD
com.android.bluetooth a2dp_codec : A2DP_InitCodecConfig: codec LDAC
com.android.bluetooth a2dp_codec : A2DP_InitCodecConfig: codec SBC
com.android.bluetooth a2dp_codec : A2DP_InitCodecConfig: codec UNKNOWN CODEC INDEX
com.android.bluetooth a2dp_codec : A2DP_InitCodecConfig: codec UNKNOWN CODEC INDEX
com.android.bluetooth a2dp_codec : A2DP_InitCodecConfig: codec aptX-TWS
com.android.bluetooth a2dp_codec : A2DP_InitCodecConfig: codec aptX-adaptive
com.android.bluetooth a2dp_codec : A2DP_InitCodecConfig: codec AAC
com.android.bluetooth a2dp_codec : A2DP_InitCodecConfig: codec aptX

I have a pair of Sennheiser Momentum 4 which support aptX Adaptive and the bundled Sennheiser Smart Connect app shows that the headphones connect to FP5 with aptX Adaptive.

But when I check Developer options I see the same thing as the original poster, namely that LC3 is being used as a codec.

I tried switching codecs from the bundled app and the sound quality does change so the codes are being changed, if I sett AAC in the app, Developer options shows corresponding change to AAC. But when I set aptX Adaptive, I get LC3 (and the actual aptX Adaptive entries are grayed out).

Thinking about reporting this to support, see what they say.

1 Like

I can confirm this behavior with my B&W headphones.

aptx adaptive is not a native codec but a codec switcher. aptx adaptive analyzes the environment (especially the audio source and the quality of the radio connection) and then selects the appropriate codec. The fact that the app displays “AptX adaptive” and the developer options “LC3” is not a bug but a feature :nerd_face:

Qualcomm themselves are writing “aptX Adaptive is a groundbreaking new audio coding technology” or “…the codec is designed…”.

AFAIK, the exact specs of aptX Adaptive are not public. There are some discussions on Reddit about there being several revisions but that’s just speculation, in my opinion.

I looked at the Android 13 sources (not the Fairphone OS version but the AOSP). It is true that aptX Adaptive is not part of the Bluetooth codec list (while LC3 is) but aptX Adaptive is mentioned in another function in that class. I’m not an Android expert and I don’t have any way (or time) to debug this code and see what actually happens when you run it.

I contacted Fairphone support about this and this is what they wrote:

"The Fairphone 5 supports the following audio codecs: AAC, AMR-WB, EVRC, QCELP, SBC, LATM_AAC, APTX, APTX HD, LDAC.

To help you in the best way possible, I will have to seek advice from the relevant department. "

So they didn’t mention neither aptX Adaptive nor LC3 but I’m guessing that on the LC3 part, it’s just an omission but who knows. I hope the relevant department will clear it up eventually.

1 Like

https://android.googlesource.com/platform/packages/modules/Bluetooth/+/refs/heads/android13-release/android/app/src/com/android/bluetooth/a2dp/A2dpCodecConfig.java

https://android.googlesource.com/platform/frameworks/base/+/refs/heads/android13-release/media/java/android/media/AudioSystem.java

For those who are interested, I did a little more guessing, and hopefully someone who knows better could correct me if I’m completely wrong on this…

I think that there’s actually a Qualcomm driver installed in Fairphone OS. When you connect a Bluetooth device that supports aptX Adaptive the Qualcomm driver kicks in (you see an aptX branded notification pop up -that’s the driver saying it’s activated) and makes sure that the sound is transferred with aptX Adaptive (or another aptX variant) And I further think that what is shown in Developer settings, that bit about LC3, is actually incorrect.

I’m just guessing from the behaviour I observe, but I do think that aptX Adaptive does work correctly on FP5 with Fairphone OS because of the Qualcomm driver, despite what you see in Developer setting and the ASOP code.

There’s a system app called “als” (actually two different ones with different versions: 5.0.5 and 5.0.29) I think that’s the Qualcomm aptX driver.

I don’t think it’s a display problem in dev options.
I use a Yamaha TW-E3B. It’s TWS+ compatible.

It’s connect correctly on my Realme X2 pro using TWS+ codec.
Dev options indicate it correctly. The best indicator of TWS+ connection is that both earphones are connected on the Bluetooth device list.

On my Fairephone 5, only one earphone is connected in Bluettoth device list.
TWS+ is greyed in dev options. It’s connected in AptX HD.
So it doesn’t connect correctly.

I think the AptX driver misindentifies the device and use the best default codec for the device.

I received this from FP support sometime ago. Seems to contradict what I wrote above…

Blockquote
According to my colleagues, the Fairphone 5 only supports aptX and aptX HD. AptX Adaptive is not supported, unfortunately, and therefore should not be appearing in the device menu. We’ve reported this issue to the relevant teams to remove it in a future update. We apologize for the misunderstanding.

1 Like

Too bad, it doesn’t support all the AptX codecs.

I tried with my Yamaha YH-E700A that should be in AptX Adaptative.
AptX driver indicates AptX Adaptive codec. Bluetooth option indicates the same.
But dev option indicates LC3.
Définitively a trouble in drivers inplementation.