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() {

Reply via email to