commit: 18059c099d4073d0708d9e40c16ebc974df86aff Author: Igor V. Kovalenko <igor.v.kovalenko <AT> gmail <DOT> com> AuthorDate: Fri Jun 17 23:37:30 2022 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Sat Jun 18 00:18:17 2022 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=18059c09
media-sound/pulseaudio-daemon: Fix gstreamer bluetooth crash on 32-bit ARM Upstream commit dd4dc5e8bce2c03631c3613dbddee1a691bdd17d Fixes pulseaudio crash on ARM 32-bit when pulseaudio is compiled with gstreamer and either LDAC or aptX support is available. Signed-off-by: Igor V. Kovalenko <igor.v.kovalenko <AT> gmail.com> Signed-off-by: Sam James <sam <AT> gentoo.org> ...io-16.0-fix-gstreamer-bluetooth-arm-crash.patch | 43 ++++++++++++++++++++++ .../pulseaudio-daemon-16.0-r5.ebuild | 1 + 2 files changed, 44 insertions(+) diff --git a/media-sound/pulseaudio-daemon/files/pulseaudio-16.0-fix-gstreamer-bluetooth-arm-crash.patch b/media-sound/pulseaudio-daemon/files/pulseaudio-16.0-fix-gstreamer-bluetooth-arm-crash.patch new file mode 100644 index 000000000000..a2efaf37b381 --- /dev/null +++ b/media-sound/pulseaudio-daemon/files/pulseaudio-16.0-fix-gstreamer-bluetooth-arm-crash.patch @@ -0,0 +1,43 @@ +https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/commit/dd4dc5e8bce2c03631c3613dbddee1a691bdd17d + +From dd4dc5e8bce2c03631c3613dbddee1a691bdd17d Mon Sep 17 00:00:00 2001 +From: Jan Palus <jpa...@fastmail.com> +Date: Fri, 17 Jun 2022 14:36:36 +0200 +Subject: [PATCH] bluetooth/gst: Correct var type for GST_TYPE_BITMASK + +GST_TYPE_BITMASK is 64-bit bit mask while corresponding channel_mask in +pulseaudio is int therefore usually 32-bit. Switch to uint64_t instead +to match internal representation in gstreamer. + +Fixes pulseaudio crash on ARM 32-bit when pulseaudio is compiled with +gstreamer and either LDAC or aptX support is available. + +Part-of: <https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/merge_requests/723> +--- + src/modules/bluetooth/a2dp-codec-gst.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/modules/bluetooth/a2dp-codec-gst.c b/src/modules/bluetooth/a2dp-codec-gst.c +index 8ef74be9c..11839c580 100644 +--- a/src/modules/bluetooth/a2dp-codec-gst.c ++++ b/src/modules/bluetooth/a2dp-codec-gst.c +@@ -22,6 +22,7 @@ + #endif + + #include <arpa/inet.h> ++#include <stdint.h> + + #include <pulsecore/log.h> + #include <pulsecore/macro.h> +@@ -82,7 +83,7 @@ fail: + static GstCaps *gst_create_caps_from_sample_spec(const pa_sample_spec *ss) { + gchar *sample_format; + GstCaps *caps; +- int channel_mask; ++ uint64_t channel_mask; + + switch (ss->format) { + case PA_SAMPLE_S16LE: +-- +GitLab + diff --git a/media-sound/pulseaudio-daemon/pulseaudio-daemon-16.0-r5.ebuild b/media-sound/pulseaudio-daemon/pulseaudio-daemon-16.0-r5.ebuild index c6b1b5a0b623..25e717a28ffa 100644 --- a/media-sound/pulseaudio-daemon/pulseaudio-daemon-16.0-r5.ebuild +++ b/media-sound/pulseaudio-daemon/pulseaudio-daemon-16.0-r5.ebuild @@ -166,6 +166,7 @@ PATCHES=( "${FILESDIR}"/pulseaudio-16.0-fix-rtp-receiver-sdp-record.patch "${FILESDIR}"/pulseaudio-16.0-optional-module-console-kit.patch "${FILESDIR}"/pulseaudio-16.0-fix-combine-sink-underrun-crash.patch + "${FILESDIR}"/pulseaudio-16.0-fix-gstreamer-bluetooth-arm-crash.patch ) src_prepare() {