mcnaugha
100+ Head-Fier
I may have a bigger problem which I am trying to investigate. The ROG Phone 8 just shows 24-bit for the PCM Bit Depth. There is no option to switch the codec to 16-bit. I am contacting support but I don't hold out much hope of a good answer. I don't know where to check in their AOSP source code for where they could have hardcoded 24-bit only. So, it's hard to tell if we still get actual aptX Lossless with this current OS. We need an Android extension which shows the live BT bit rate at the top of the screen or something like that. It's the only way you can know, when you see a 1Mbps or higher bit rate. I think it is so sensitive and variable that they decided not to provide a default visual way to tell if you're enjoying lossless. The developer of Bluetooth Codec Changer might be our best hope for improved lossless monitoring in the future.
In a follow-up to the above... I just spent a week trying to find a way to confirm I was getting aptX Lossless. Turns out you literally need Qualcomm’s diagnostic software (QXDM) or to capture the packets arriving at the receiver and confirm they contain lossless data.
I mentioned the Android log entries previously which may be giving away that the codec is primed for lossless, with the key one being:
aptxalsCodecConfig: SetAudioProfileHighQuality AUDIO_PROFILE_16_BIT_SOURCE
This is a log entry from aptX ALS, which is an Android service/agent supplied by Qualcomm that watches what's going on with audio in your Android device and adapts the codec configuration as necessary. It monitors what audio apps you're using and what the specification is of the audio playing back.
For the moment, I am assuming the codec only operates configured in 24-bit mode and that it uses this to transmit the 16-bit lossless data encapsulated within. The data packets have a unique configuration or flag which allows the decoder to know they’re lossless.
Also I found that it was not reliable in reconfiguring the codec to 44.1kHz. On some occasion, it would simply stay in 96kHz mode. This aligns with the note @ImMaleven got from Flairmesh, talking about it favouring 96kHz. A workaround to this is to use Bluetooth Codec Changer’s adaptive sample rate changer (which is a beta feature btw). This does interrupt playback during a sample rate change but always ensures the codec is in 44.1kHz mode when playing 16/44.1. I saw proof of this in my testing and comparing the log entries.
The dev of Bluetooth Codec Changer advised that he doesn’t have devices with aptX Lossless and therefore can’t do anything special to help in his app yet. He confirmed you'd need root access to be able to display the realtime/live Bluetooth bit rate. So, probably only something an OEM could build in to their Android build or you'd need a rooted build. Seeing the live bit rate is possibly the only way we could ever know that our devices were doing the lossless thing.
Roll-on XPAN is what I say. All of this complexity will hopefully go away... although knowing Qualcomm, that might just be wishful thinking.