LE Audio support in PipeWire

14th November 2022

Since version 0.3.59, PipeWire supports LE Audio’s Basic Audio Profile (BAP) for Connected Isochronous Streams (CIS) with the Low Complexity Communication Codec (LC3), see https://www.linkedin.com/posts/collabora_add-bluetooth-le-audio-support-1360-activity-6978014601649037312-7W6d/.

Thanks to the modular architecture of PipeWire, it is ready for future codecs.

It supports bi-directional audio and can act as a Central or Peripheral device. In the former case, it allows the end-user to select a new audio profile, while in the latter, it automatically connects Bluetooth audio streams to the local audio input and output. This paves the way for Auracast support in BlueZ and PipeWire.

If you are interested in trying this, the LC3 codec from https://github.com/google/liblc3.git must be installed. The PipeWire meson build must be configured with the option `-Dbluez5-codec-lc3=enabled`.


[Client/Central] [bluetooth]# power on [bluetooth]# endpoint.register 00002bc9-0000-1000-8000-00805f9b34fb 0x06 [/local/endpoint/ep0] Auto Accept (yes/no): y [/local/endpoint/ep0] CIG (auto/value): a [/local/endpoint/ep0] CIS (auto/value): a Capabilities: 03 01 ff 00 02 02 03 02 03 03 05 04 1e 00 f0 00 ................ Endpoint /local/endpoint/ep0 registered [bluetooth]# endpoint.register 00002bcb-0000-1000-8000-00805f9b34fb 0x06 [/local/endpoint/ep1] Auto Accept (yes/no): y [/local/endpoint/ep1] CIG (auto/value): a [/local/endpoint/ep1] CIS (auto/value): a Capabilities: 03 01 ff 00 02 02 03 02 03 03 05 04 1e 00 f0 00 ................ Endpoint /local/endpoint/ep1 registered [bluetooth]# scan on [bluetooth]# scan off [bluetooth]# connect [NEW] Transport /org/bluez/hci0/dev_00_AA_01_01_00_02/pac_source0/fd0 Endpoint: SetConfiguration Transport /org/bluez/hci0/dev_00_AA_01_01_00_02/pac_source0/fd0 Device: /org/bluez/hci0/dev_00_AA_01_01_00_02 Auto Accepting... [NEW] Transport /org/bluez/hci0/dev_00_AA_01_01_00_02/pac_sink0/fd1 Endpoint: SetConfiguration Transport /org/bluez/hci0/dev_00_AA_01_01_00_02/pac_sink0/fd1 Device: /org/bluez/hci0/dev_00_AA_01_01_00_02 Auto Accepting... [bluetooth]# transport.acquire /org/bluez/hci0/dev_00_AA_01_01_00_02/pac_sink0/fd1

This is a Heading 1

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque porttitor lorem eget velit imperdiet, eget porta velit scelerisque. Nullam eget eros sit amet mi dictum malesuada. Aliquam quis tellus gravida, pellentesque nunc ac, consequat nisi. Praesent vehicula ligula lectus, quis semper risus vulputate sit amet. Fusce malesuada gravida nisi id pharetra. Quisque tempor quis felis eu vulputate. Nam nec ornare dui. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus nec interdum tortor, quis ornare augue. Sed varius molestie nulla, luctus congue metus auctor eget. Nulla tincidunt arcu ac tempor euismod. Etiam eu blandit lacus. Vivamus semper tincidunt gravida. Fusce semper, risus eget imperdiet viverra, ipsum nisi vehicula dolor, sit amet posuere diam elit at lorem. Sed diam ipsum, mattis et pharetra eget, facilisis sit amet lacus.

  • Donec malesuada urna eu dictum viverra
  • Ut ac nibh eu mauris malesuada tempus
  • Praesent semper turpis et leo mollis commodo
  • ed finibus libero erat, et elementum massa tristique vestibulum. Aenean quam ligula, pretium sit amet lacus eu, viverra aliquet nulla
  • Donec viverra interdum orci ut viverra. Pellentesque iaculis a magna feugiat fringilla

This is a Heading 2

Aliquam sed molestie ligula. Nulla ultricies vel augue et vulputate. Aenean rutrum elit est, vitae lobortis diam tincidunt at. Nam malesuada, purus id posuere suscipit, purus dolor tempus purus, non ultricies elit nulla ut lectus. Pellentesque a condimentum sapien. Nunc eget nunc nulla. Vivamus vitae est non dolor condimentum vehicula. Nulla malesuada mauris et dui pulvinar ullamcorper.

Curabitur ultrices eu nunc sed fermentum. Nullam aliquam est sit amet sapien pharetra, eu lacinia odio rutrum. Cras sit amet turpis commodo, dignissim leo ut, pretium libero. Curabitur mollis nisl in fermentum imperdiet. Aenean lobortis egestas pharetra. Etiam nec lacinia ex. Nam bibendum malesuada elementum. Nulla venenatis euismod luctus. Nam ac ex sit amet magna suscipit vulputate. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Proin ultrices in mauris id molestie. Suspendisse dictum, nisl quis dictum interdum, tellus mi tincidunt dolor, sit amet luctus est orci vel felis. Cras commodo aliquet sem, ullamcorper viverra ipsum convallis ac. Phasellus a sodales leo. Vestibulum vestibulum a felis et congue.

This is a Heading 3

  1. Donec porta maximus nisl, non feugiat leo malesuada et
  2. Quisque eu orci scelerisque, cursus augue ac, ornare sem. Nam nec magna placerat, scelerisque ante id, dapibus risus
  3. Suspendisse suscipit metus non lacus tristique accumsan
  4. Sed non justo sed urna rutrum maximus id sit amet massa. Phasellus dictum enim quis mi aliquet fringilla

This is a Heading 4

Nunc sed augue tortor. Praesent elit ipsum, feugiat a leo vel, lacinia fringilla sem. Morbi varius, leo id vehicula euismod, enim nunc vestibulum nisi, vitae congue orci justo quis metus.

Curabitur id venenatis leo. Nam venenatis nibh et nisl finibus mattis. Maecenas lobortis ipsum a euismod dictum. Duis et turpis non nisl sagittis cursus. Sed at tempor odio, ut mattis sapien. Nulla at risus ac dolor aliquam ultrices eu eu nulla. Aliquam quis accumsan nunc. Morbi massa tellus, accumsan at finibus ac, maximus in ante. Ut congue pharetra purus, ut auctor arcu sagittis sagittis. Aliquam efficitur eros ut tortor vestibulum lobortis. Curabitur finibus ut tortor quis efficitur. Nullam euismod diam tellus, quis sagittis magna convallis ac. Vivamus dictum est tortor, ut laoreet diam viverra quis.

Nulla tincidunt arcu ac tempor euismod. Etiam eu blandit lacus. Vivamus semper tincidunt gravida. Fusce semper, risus eget imperdiet viverra, ipsum nisi vehicula dolor, sit amet posuere diam elit at lorem. Sed diam ipsum, mattis et pharetra eget, facilisis sit amet lacus.
Quote Author Details Here
This is a Heading 5

Pellentesque iaculis a magna feugiat fringilla. Aliquam sed molestie ligula. Nulla ultricies vel augue et vulputate. Aenean rutrum elit est, vitae lobortis diam tincidunt at. Nam malesuada, purus id posuere suscipit, purus dolor tempus purus, non ultricies elit nulla ut lectus. Pellentesque a condimentum sapien. Nunc eget nunc nulla. Vivamus vitae est non dolor condimentum vehicula. Nulla malesuada mauris et dui pulvinar ullamcorper.