Skip to content

Add support for LDAC encoder

LDAC is an audio coding technology developed by Sony that enables the transmission of High-Resolution (Hi-Res) audio contents over Bluetooth.

Currently Adaptive Bit Rate (ABR) as supported by libldac encoder is not implemented.

For testing, changes to the simple-endpoint script in bluez/test is required which is currently not upstream. The diff here can be used for testing. test-device script will also be required.

Testing steps are below:

  • Stop pulseaudio if running
  • Run simple-endpoint for LDAC source (./simple-endpoint <your-bdaddr> ldacsource)
  • Run ./test-device connect <remote-bdaddr> "0000110b-0000-1000-8000-00805f9b34fb" to actually connect to the A2DP sink profile on a DAC or headset supporting LDAC
  • gst-launch-1.0 audiotestsrc ! ldacenc ! rtpldacpay mtu=679 ! avdtpsink transport=<transport-addr> (transport address is in simple-endpoint output after you connect)
  • Or if using a2dpsink, gst-launch-1.0 audiotestsrc ! ldacenc ! a2dpsink transport=<transport-addr>

Note that libldac is under Apache License.

The corresponding RTP payloader is here.

Edited by Sanchayan Maity

Merge request reports