pulseaudio: enable advanced bluetooth codecs#168012
pulseaudio: enable advanced bluetooth codecs#168012SuperSandro2000 merged 7 commits intoNixOS:stagingfrom
Conversation
b9797e4 to
63e391b
Compare
|
Regarding discussion point 1, the closure sizes of after this PR: before this PR (77e60d890f0bf13f76ef8938a09156f190018c76): This makes it pretty clear that pulling in gstreamer in systems not depending on it otherwise is a bad idea. I'll hide this new codec support behind a feature flag that is false by default, but true for |
|
closure size update:
|
|
Unfortunately I'm way behind my expected schedule and thus am not sure whether this is allowed to make it into 22.05 – it's not really breaking, but also a significant rework. In case this gets okayed for 22.05, I'm happy to add some release notes. |
- previously, aptx support had been disabled dueto libopenaptx license issues - since 1.20.1, gstreamer supports libfreeaptx as a drop-in replacement
- this relies on gstreamer for encoding - advanced bluetooth codecs include LDAC and aptX
…re flag pulseaudioFull enables this feature flag, but the plain pulseaudio attribute does not
|
Rebased against the current master staging merge base otherwise I can't rebuild my system on the branch. |
e18ca71 to
d62bf28
Compare
|
LDAC (High Quality/ Standard Quality/ Mobile Quality) also works. Tested with Sony WH-1000-X M3. |
|
I have set |
|
I did a reboot after the switch, journalctl shows support for those codecs and I can choose them in pavucontrol (UI is a bit buggy though) but not in the plasma applet. Not sure why. |
|
I guess codec switching has just not been implemented for the plasma applet (yet?). That's unfortunate for us fellow plasma users, but not really within the scope of this PR. If you can choose the new codecs in pavucontrol and your device plays them sufficiently well, then I'd count this as a success. |
|
Looks like this might make it into 22.05, shall I write some release notes? |
It works with pipewire. Maybe plasma-pa needs to catchup for pulseaudio. I don't really know but out of scope. PS: And I got like 15 new modes how to play sound over HDMI... If you like you can write some release notes but I am going to merge that as soon as I convinced ofborg to @ofborg eval. |
|
I think I figured it out: pipewire has codes in the profile included and plasma-pa can only switch profiles. With pulseaudio I have an extra codes field next to the profile which shows aptx and ldac. So everything fine. LGTM |
|
Uhmm, regarding the failed EditorConfig check: It's complaining about "30: Trailing whitespace" in the markdown file of the release notes. The thing is that plain markdown (and Pandoc markdown as well) uses trailing whitespace to enforce a line break, I did that deliberately to have a line break within a bullet point for better readability. So isn't that actually the point of doing so?!? |
|
You could add a new entry to https://github.com/NixOS/nixpkgs/blob/master/.editorconfig#L81-L82 |
7194abd to
c7dff67
Compare
|
@ofborg eval |
c7dff67 to
9823f36
Compare

Description of changes
Pulseaudio-15.0 features support for additional advanced bluetooth audio codecs such as aptX or ldac. These are provided by gstreamer, which had been disabled so far.
This PR builds pulseaudio with gstreamer and enables aptX support.
It depends on (or already includes the changes of) PR #167983
Discussion, Call for Feedback
As adding gstreamer as a dependency increases the closure size of pulseaudio, I am open to hide this feature behind a flag and only enable it in
pulseaudioFull. On the other hand, supporting all possible codecs might be expected when enabling bluetooth support already.I need testers with bluetooth devices supporting aptX and ldac for this. Both codecs are exposed successfully to bluetoothd and I successfully tested aptX on a device, but do not have any bluetooth audio hardware supporting ldac.
Testing instructions:
It'd be best if you can rebuild your whole system against this branch or at least use nixos-unstable as a base. I only dared to throw in this
pulseaudioFullpackage into an otherwise stable release on my production machine.Recent
pavucontrolreleases include support for switching bluetooth audio codecs (see screenshot below). If you have a device that is known to support aptX or ldac, please check whether that codec appears in the list.Things done
sandbox = trueset innix.conf? (See Nix manual)nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/)nixos/doc/manual/md-to-db.shto update generated release notes