Presented by

  • Sanchayan Maity

    Sanchayan Maity

    Sanchayan doesn't believe in staying in a lane. He's worked on micro-controllers, Linux kernel drivers and also on libraries in the Haskell ecosystem. In recent times, he's been hacking on Bluetooth audio using PulseAudio and GStreamer. Sanchayan is a familiar face at the Bangalore Haskell and Rust meetups, which he also organizes.


Bluetooth is becoming more common as phone manufacturers decide to drop the once common-place headphone jack. The Bluetooth specification has one mandatory audio codec (SBC) and allows multiple other codecs to be used (such as AAC, aptX, aptX-HD, LDAC and others). While PulseAudio has been a standard component of the Linux desktop for a decade now, it still only supports the SBC codec. Community efforts have made other codecs available, but, these are not integrated upstream and not available by default on most Linux distributions. In this talk, we will first survey the Bluetooth audio landscape, talking about various competing codecs. We will then examine existing and on going community efforts in supporting these codecs and some of the challenges that needed to be addressed to exposed them to users in PulseAudio. We then move on to new work on top of this to make multiple codec support more flexible by using the GStreamer multimedia framework and the path to getting this all upstream and in everyone's favorite distribution.