Merge pull request #168012 from schmittlauch/pulseaudio-advanced-bluetooth-codecs

This commit is contained in:
Sandro 2022-04-21 13:12:46 +02:00 committed by GitHub
commit 7a89f668fa
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 32 additions and 16 deletions

View file

@ -55,6 +55,11 @@ trim_trailing_whitespace = unset
[*.lock]
indent_size = unset
# trailing whitespace is an actual syntax element of classic Markdown/
# CommonMark to enforce a line break
[*.md]
trim_trailing_whitespace = unset
[eggs.nix]
trim_trailing_whitespace = unset

View file

@ -74,6 +74,10 @@
</para>
</listitem>
<listitem>
<literallayout>Pulseaudio has been upgraded to version 15.0 and now optionally <link xlink:href="https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/15.0/#supportforldacandaptxbluetoothcodecsplussbcxqsbcwithhigher-qualityparameters">supports additional Bluetooth audio codecs</link> like aptX or LDAC, with codec switching support being available in <literal>pavucontrol</literal>. This feature is disabled by default but can be enabled by using <literal>hardware.pulseaudio.package = pkgs.pulseaudioFull;</literal>.
Existing 3rd party modules that provided similar functionality, like <literal>pulseaudio-modules-bt</literal> or <literal>pulseaudio-hsphfpd</literal> are deprecated and have been removed.</literallayout>
</listitem>
<listitem>
<para>
The new
<link xlink:href="https://nixos.org/manual/nixpkgs/stable/#sec-postgresqlTestHook"><literal>postgresqlTestHook</literal></link>

View file

@ -27,6 +27,9 @@ In addition to numerous new and upgraded packages, this release has the followin
- Systemd has been upgraded to the version 250.
- Pulseaudio has been upgraded to version 15.0 and now optionally [supports additional Bluetooth audio codecs](https://www.freedesktop.org/wiki/Software/PulseAudio/Notes/15.0/#supportforldacandaptxbluetoothcodecsplussbcxqsbcwithhigher-qualityparameters) like aptX or LDAC, with codec switching support being available in `pavucontrol`. This feature is disabled by default but can be enabled by using `hardware.pulseaudio.package = pkgs.pulseaudioFull;`.
Existing 3rd party modules that provided similar functionality, like `pulseaudio-modules-bt` or `pulseaudio-hsphfpd` are deprecated and have been removed.
- The new [`postgresqlTestHook`](https://nixos.org/manual/nixpkgs/stable/#sec-postgresqlTestHook) runs a PostgreSQL server for the duration of package checks.
- [`kops`](https://kops.sigs.k8s.io) defaults to 1.22.4, which will enable [Instance Metadata Service Version 2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html) and require tokens on new clusters with Kubernetes 1.22. This will increase security by default, but may break some types of workloads. See the [release notes](https://kops.sigs.k8s.io/releases/1.22-notes/) for details.

View file

@ -84,6 +84,7 @@
, libxml2
, srt
, vo-aacenc
, libfreeaptx
, VideoToolbox
, AudioToolbox
, AVFoundation
@ -170,6 +171,7 @@ stdenv.mkDerivation rec {
libintl
srt
vo-aacenc
libfreeaptx
] ++ lib.optionals enableZbar [
zbar
] ++ lib.optionals faacSupport [
@ -261,7 +263,7 @@ stdenv.mkDerivation rec {
"-Disac=disabled" # depends on `webrtc-audio-coding-1` not compatible with 0.3
"-Dgs=disabled" # depends on `google-cloud-cpp`
"-Donnx=disabled" # depends on `libonnxruntime` not packaged in nixpkgs as of writing
"-Dopenaptx=disabled" # depends on older version of `libopenaptx` due to licensing conflict https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2235
"-Dopenaptx=enabled" # since gstreamer-1.20.1 `libfreeaptx` is supported for circumventing the dubious license conflict with `libopenaptx`
]
++ lib.optionals (!stdenv.isLinux) [
"-Dva=disabled" # see comment on `libva` in `buildInputs`

View file

@ -4,7 +4,8 @@
, avahi, libjack2, libasyncns, lirc, dbus
, sbc, bluez5, udev, openssl, fftwFloat
, soxr, speexdsp, systemd, webrtc-audio-processing
, check, meson, ninja, m4
, gst_all_1
, check, meson, ninja, m4, wrapGAppsHook
, x11Support ? false
@ -19,6 +20,7 @@
, airtunesSupport ? false
, bluetoothSupport ? true
, advancedBluetoothCodecs ? false
, remoteControlSupport ? false
@ -48,7 +50,9 @@ stdenv.mkDerivation rec {
outputs = [ "out" "dev" ];
nativeBuildInputs = [ pkg-config meson ninja makeWrapper perlPackages.perl perlPackages.XMLParser m4 ]
++ lib.optionals stdenv.isLinux [ glib ];
++ lib.optionals stdenv.isLinux [ glib ]
# gstreamer plugin discovery requires wrapping
++ lib.optional (bluetoothSupport && advancedBluetoothCodecs) wrapGAppsHook;
propagatedBuildInputs =
lib.optionals stdenv.isLinux [ libcap ];
@ -65,6 +69,8 @@ stdenv.mkDerivation rec {
++ lib.optionals stdenv.isLinux [ alsa-lib udev ]
++ lib.optional airtunesSupport openssl
++ lib.optionals bluetoothSupport [ bluez5 sbc ]
# aptX and LDAC codecs are in gst-plugins-bad so far, rtpldacpay is in -good
++ lib.optionals (bluetoothSupport && advancedBluetoothCodecs) (builtins.attrValues { inherit (gst_all_1) gst-plugins-bad gst-plugins-good gst-plugins-base gstreamer; })
++ lib.optional remoteControlSupport lirc
++ lib.optional zeroconfSupport avahi
);
@ -74,7 +80,8 @@ stdenv.mkDerivation rec {
"-Dasyncns=${if !libOnly then "enabled" else "disabled"}"
"-Davahi=${if zeroconfSupport then "enabled" else "disabled"}"
"-Dbluez5=${if !libOnly then "enabled" else "disabled"}"
"-Dbluez5-gstreamer=disabled"
# advanced bluetooth audio codecs are provided by gstreamer
"-Dbluez5-gstreamer=${if (!libOnly && bluetoothSupport && advancedBluetoothCodecs) then "enabled" else "disabled"}"
"-Ddatabase=simple"
"-Ddoxygen=false"
"-Delogind=disabled"

View file

@ -655,6 +655,7 @@ mapAliases ({
libmsgpack = throw "'libmsgpack' has been renamed to/replaced by 'msgpack'"; # Converted to throw 2022-02-22
libosmpbf = throw "libosmpbf was removed because it is no longer required by osrm-backend";
libpng_apng = throw "libpng_apng has been removed, because it is equivalent to libpng"; # Added 2021-03-21
libpulseaudio-vanilla = libpulseaudio; # Added 2022-04-20
libqmatrixclient = throw "libqmatrixclient was renamed to libquotient"; # Added 2020-04-09
libqrencode = throw "'libqrencode' has been renamed to/replaced by 'qrencode'"; # Converted to throw 2022-02-22
librdf = lrdf; # Added 2020-03-22

View file

@ -21947,9 +21947,9 @@ with pkgs;
hsphfpd = callPackage ../servers/pulseaudio/hsphfpd.nix { };
pulseaudio = callPackage ../servers/pulseaudio ({
pulseaudio = callPackage ../servers/pulseaudio {
inherit (darwin.apple_sdk.frameworks) CoreServices AudioUnit Cocoa;
});
};
qpaeq = libsForQt5.callPackage ../servers/pulseaudio/qpaeq.nix { };
@ -21958,26 +21958,20 @@ with pkgs;
jackaudioSupport = true;
airtunesSupport = true;
bluetoothSupport = true;
advancedBluetoothCodecs = true;
remoteControlSupport = true;
zeroconfSupport = true;
};
# libpulse implementations
libpulseaudio-vanilla = pulseaudio.override {
libpulseaudio = pulseaudio.override {
libOnly = true;
};
apulse = callPackage ../misc/apulse { };
libpressureaudio = callPackage ../misc/apulse/pressureaudio.nix {
libpulseaudio = libpulseaudio-vanilla; # headers only
};
libpressureaudio = callPackage ../misc/apulse/pressureaudio.nix { };
libcardiacarrest = callPackage ../misc/libcardiacarrest {
libpulseaudio = libpulseaudio-vanilla; # meta only
};
libpulseaudio = libpulseaudio-vanilla;
libcardiacarrest = callPackage ../misc/libcardiacarrest { };
easyeffects = callPackage ../applications/audio/easyeffects { };