https://www.collabora.com/news-and-blog/news-and-events/pipewire-bluetooth-support-status-update.html Collabora Logo - Click/tap to navigate to the Collabora website homepage * About + Who we are + Our expertise + Our work + Open Source + Our ecosystem * Services + Guide + Train + Build + Integrate + Optimize + Maintain * Industries + Automotive + Digital TV + Silicon + OEM + VR/AR * News & Blog * Careers * Contact Menu button * About * Services * Industries * News & Blog * Careers * Contact * +44 (0)1223 362967 * +1 514 667 2499 * contact@collabora.com We're hiring! [heroSizer_] * * Home * News & Blog * News PipeWire: Bluetooth(r) support status update Frederic Danis avatar Frederic Danis April 29, 2022 Share this post: [socialShar] [socialShar] [socialShar] [socialShar] [socialShar] Over the last two years, Bluetooth(r) audio support has steadily grown in PipeWire and has become a featureful, stable, conformant, open source Bluetooth(r) audio stack implementation. Testimony to that is the fact that, as of last week (April 21), Bluetooth(r) A2DP audio has been qualified on the Steam Deck using PipeWire and WirePlumber. This means that it is now able to pass the conformance test suite from the Bluetooth SIG and will work against other qualified implementations. The audio portion of Bluetooth(r) is split in 2 main categories: one for the stereo and (mostly) uni-directional sound (A2DP profile), and the other for the mono and bi-directional sound (HFP profile). With all the development work that has taken place, here's a look at where things stand. Stereo audio: A2DP A2DP stands for Advanced Audio Distribution Profile and it uses the ACL (Asynchronous Connection-Less) channel. It is typically used for the streaming of music content from a stereo music player to headphones or speakers. The mandatory codec, SBC (SubBand Codec), is a low-complexity, fast, lossy codec that was designed with Bluetooth(r) bandwidth and processing power limitations in mind. One of its capabilities is that it can dynamically adjust the bitrate. In its default configuration, however, it provides low sound quality. This can be improved by configuring this codec with better settings, which is proposed by PipeWire as the SBC-XQ configuration, shown in the audio settings of your preferred desktop environment. In the past few years, though, other codecs with better sound quality have also appeared: * AptX (LL, HD): a proprietary codec from Qualcomm (formerly CSR). * LDAC: a proprietary codec from Sony. * AAC: Advanced Audio Coding (also known as MPEG-2 Part 7). * FastStream: a low latency bi-directionnal version of SBC. As these codecs are not part of the A2DP standard, usage of them greatly depends on the codecs supported by the remote device. In PipeWire, thanks to its plugin-based architecture, these codecs are supported and are automatically built as plugins when the respective development library is available, i.e.: * libsbc for FastStream * fdk-aac for AAC * libfreeaptx for AptX * libldacbt-enc and libldacbt-abr for LDAC While A2DP officially only supports uni-directional stereo sound, both FastStream and AptX-LL codecs add bi-directional sound capabilities to it, allowing headset microphones to be used in parallel to the stereo stream running to the headphones. Mono audio and telephony: HFP HFP stands for Hands-Free Profile and it uses the SCO (Synchronous Connection-Oriented) channel. This profile is mainly used for communication purposes, enabling headsets and hands-free kits. When used in combination with oFono, PipeWire can also use this profile to communicate with a phone's modem. Two codecs are available for HFP: * The mandatory CVSD for narrow band speech connection, where encoding/decoding is performed in the Bluetooth(r) chipset. * mSBC (Modified SBC) for wide band speech connection, which uses the SBC codec with a specific, fixed configuration. It requires support both from the Linux kernel and the Bluetooth(r) chipset, which is all automatically detected by PipeWire before making this codec available. Apart from sound streaming and unlike A2DP, HFP also requires PipeWire to interact with the remote device using AT commands. The part that enables this interaction can be provided by different backends. There is a native backend for simple interaction with a headset or a phone (where not all AT commands are implemented) and there is also support for using an external daemon like oFono to provide telephony support (i.e. to interact with a modem and make phone calls directly). The native backend is typically used to provide bi-directional headset audio during meetings/calls on a computer. What comes next? Of course, development doesn't stop here. There are still several things to fix and new features to support as the industry moves forward. One particular feature that we are looking at next, is the addition of the LC3 codec (Low Complexity Communication Codec). LC3 is the successor of SBC for use in the LE (Low Energy) Audio profile, a new profile that was added in Bluetooth(r) 5.2. This profile is meant to improve battery life, enable audio broadcasting to multiple devices and also support hearing aids. Bear in mind, though, that supporting this whole new profile requires work underneath PipeWire, in BlueZ, but until that is ready we can also use LC3 on the A2DP profile and be prepared for LE Audio when the rest of the stack is ready to support it. Related Posts PipeWire: A year in review & a look ahead PipeWire: A year in review & a look ahead WirePlumber in Fedora 35 WirePlumber in Fedora 35 Portable Linux gaming with the Steam Deck Portable Linux gaming with the Steam Deck Related Posts PipeWire: A year in review & a look ahead PipeWire: A year in review & a look ahead WirePlumber in Fedora 35 WirePlumber in Fedora 35 Portable Linux gaming with the Steam Deck Portable Linux gaming with the Steam Deck Comments (1) 1. Zoli: Apr 29, 2022 at 07:05 PM Isn't LC3 gimped by licencing? IIRC its main improvement over Opus was making profit for Fraunhofer on everyone implementing LE audio Reply to this comment Reply to this comment Add a Comment Name: [ ] Email: [ ] Website: [ ] [ ] Notify of New Replies: [ ] Please tick this box to confirm you have read and accept the terms of our privacy notice regarding collection/storage and usage of your personal data: * Allowed tags:
Add a new comment: [ ] [ ] [ ] [ ] [ ] Post Search the newsroom Search [Search news & blog..] [Search] Latest News & Events PipeWire: Bluetooth(r) support status update 29/04/2022 Over the last two years, Bluetooth(r) audio support has steadily grown in PipeWire and has become a featureful, stable, conformant, open source... SocketCAN x Kubernetes 27/04/2022 Looking to use hardware-backed and virtual SocketCAN interfaces inside your Kubernetes Pods? A new device plugin now allows processes inside... Monado accepted in GSoC 2022! 06/04/2022 Monado has been accepted for the first time as a mentoring organization for the 2022 Google Summer of Code (GSoC)! Collabora will be providing... About Collabora Whether writing a line of code or shaping a longer-term strategic software development plan, we'll help you navigate the ever-evolving world of Open Source. hangugyi guggihangugeo beojeonyi Collabora.com bogi Bandeira de PortuguesAcesse Collabora.com em Portugues Learn more * Who we are * Services * Our expertise * Industries * Our work * Careers * Open Source Collabora on Twitter Collabora on YouTube Collabora on Mastodon Collabora on LinkedIn Collabora on Facebook Collabora RSS Feed +44 1223 362967 +1 514 667 2499 contact@collabora.com Open Since 2005 logo We use cookies on this website to ensure that you get the best experience. By continuing to use this website you are consenting to the use of these cookies. To find out more please follow this link. Collabora Ltd (c) 2005-2022. All rights reserved. Privacy Notice. Sitemap. To ensure the Collabora website works as designed, please enable JavaScript. Thanks