Is it possible to use aptX on unsupported computers or phones?

8

I've been reading up recently on different ways of wirelessly streaming media. At first I ignored bluetooth connections because of the quality, but then I started reading about aptX, which sounded pretty good (no pun intended). The only problem is that I have no idea if my devices support aptX - one of them being a Galaxy Player 4.0 (it is totally OK if you don't know what that is) with a custom ROM, where I'm figuring that it's probably not supported. Here's my question, though - the way I understand it, aptX is only a sort of codec that is used during the transmission via Bluetooth - so I'm figuring that it should, in theory at least, be possible to install this aptX codec on any computer or phone. Obviously the company/companies behind aptX are not advertising it this way - but is it still possible to do this somehow?

trainman261

Posted 2015-07-27T00:18:17.007

Reputation: 311

1Would depend entirely on the device and how much of the Bluetooth stack is modifiable. If you're asking about Windows, Linux or other computer OSes, please specify. If you're asking specifically about phones, please go to the appropriate site (e.g. [android.se], [apple.se], [windowsphone.se]). – Bob – 2015-07-27T00:22:25.920

So it's generally possible, it would just require a modifiable bluetooth stack (and obviously some programming skills, if it hasn't been done by anyone else)? If that's the case, that would answer my question for this purpose, and I could go onto one of the other sites to get more exact information. – trainman261 – 2015-07-27T15:07:13.097

2Depends if the Bluetooth & codec processig were implemented in user-accessible software, OS privileged software, firmware or hardware. And of course technically possible does not necessarily mean it's practical. IIRC CSR provides aptX support in Windows via a driver installation, but such a modification would be difficult if not impossible on your typical phone unless the OEM already supported it (mostly because it's proprietary and the owners don't seem to be interested in doing so). – Bob – 2015-07-27T15:09:52.930

Sorry about my edit, I didn't realize you had already replied. – trainman261 – 2015-07-27T15:11:02.047

OK, that answers my question. Could you please post it so I can mark it as the answer? – trainman261 – 2015-07-27T15:14:23.370

Answers

10

At its core, Apt-X is "just" a particular encoding for audio, taking advantage of clauses in the Bluetooth spec that allow vendor extensions.

In effect, from a hardware standpoint, all you technically need is a Bluetooth radio supporting the data rates and physical layer transmission modes that come with Bluetooth 3.0 (or later, since all the later specs are backwards compatible). It is difficult to impossible to retrofit Bluetooth 3.0 support onto a 2.1 or earlier radio due to hardware limitations, but once you have a Bluetooth 3.0 stack, adding apt-X is simply a software challenge.

So the Bluetooth stack for apt-X looks something like this:

  • Bluetooth 3.0 "base platform" (this includes physical radio specifications, link-layer protocols, minimum data transfer rates, connectivity and authentication, and eventually the A2DP stereo audio profile).
  • The apt-X codec, or an implementation thereof, which sits on top of A2DP and is advertised as being available. The client device and the host negotiate on what codec to use, then decide to use apt-X as the preferred codec if it's available on both sides.

Bob is 100% correct that doing this on an Android device, even with root, would be nigh-on impossible, because of how deeply the Bluetooth stack is buried in the system.

Furthermore, obtaining a copy of the apt-X codec is extremely difficult if you don't already have one. Possible issues include:

  • How do you get a copy of binaries of the apt-X codec for your platform?
  • Assuming you get the binaries, what's the chance they're compatible with your Bluetooth stack and toolchain? If any library versions, etc. are incompatible, it won't work.
  • Licensing. CSR licenses apt-X on a per-device basis. If they were aware of you doing this, they might have cause to go after you on legal grounds for copyright violation.
  • If you were to try and implement your own version of the apt-X codec, how are you going to find out how to do this, without an open standard? apt-X is proprietary, so you'd have to reverse engineer their code (which may be illegal).
  • Assuming you were able to find a working implementation of apt-X, how would you then integrate that into the Bluetooth stack of your device, which can vary widely in implementation? You'd have to compile it, fix any interface or header errors, linkage errors, etc.
  • Finally, even if you get all the software 100% working and everything is great, you could still be strung up on patent license violations in the extremely likely instance of CSR having exclusive software patents on some algorithms or ideas used in the apt-X codec. Think you can't patent an idea? Think again. Software OEMs do it all the time.

These days, the only reliable way to get apt-X is to buy devices (host devices and client devices) that actively advertise built-in apt-X support. They will probably have a CSR logo on the device or in the marketing literature advertising this support. Absent that, it's very unlikely that apt-X support has been added, and you're probably using something like SBC (or possibly AAC if you're lucky).

allquixotic

Posted 2015-07-27T00:18:17.007

Reputation: 32 256