Page 1 of 1

Prototyping an Opus-based Bluetooth A2DP codec.

Posted: Wed Aug 14, 2019 2:28 am
by aaronmhamilton
I've been prototyping a codec mode for A2DP (Bluetooth audio), and I am most of the way toward a working Android-based source implementation; I would like to prototype the sink on my ESP32s. The version of Bluedroid in esp-idf (and by extension, esp-adf) is based on a very old one, and has not even one vendor codec implementation, and predates a lot of cleanup since Google took more control of it (their current version resides at <https://android.googlesource.com/platform/system/bt/>).

Given that I am also implementing the sink side of the codec in the Android version, I'm thinking I could maybe rebase the esp-idf version of bluedroid on the current Google sources, however much work that may be. I'm wondering if such a change is likely to be welcome in the upstream esp-idf.

I'm currently implementing it as a vendor codec, as I am a member of the Bluetooth SIG (company ID 0x0750); but I think they may not be too resistant to making it a core A2DP codec if I make a good case for it (and show a few compatible implementations at a testing event). I think Opus is well-suited to a wide range of A2DP applications(aside from decoder complexity, which may still not be a big deal), so I'm excited to see how it all works out.

I look forward to hearing what y'all have to say about this.

Cheers. :- )