summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor V. Kovalenko <igor.v.kovalenko@gmail.com>2022-06-18 02:37:30 +0300
committerSam James <sam@gentoo.org>2022-06-18 01:18:17 +0100
commit18059c099d4073d0708d9e40c16ebc974df86aff (patch)
treedd6b27b4ce8135ba7e5a7fe7865e453c73c302d9 /media-sound
parentmedia-sound/pulseaudio-daemon: Fix crash after combine-sink underrun (diff)
downloadgentoo-18059c099d4073d0708d9e40c16ebc974df86aff.tar.gz
gentoo-18059c099d4073d0708d9e40c16ebc974df86aff.tar.bz2
gentoo-18059c099d4073d0708d9e40c16ebc974df86aff.zip
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@gmail.com> Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'media-sound')
-rw-r--r--media-sound/pulseaudio-daemon/files/pulseaudio-16.0-fix-gstreamer-bluetooth-arm-crash.patch43
-rw-r--r--media-sound/pulseaudio-daemon/pulseaudio-daemon-16.0-r5.ebuild1
2 files changed, 44 insertions, 0 deletions
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 <jpalus@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() {