summaryrefslogtreecommitdiffstats
path: root/meta-pipewire/recipes-multimedia/pipewire/pipewire/0009-alsa-do-not-expose-non-interleaved-formats-since-the.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-pipewire/recipes-multimedia/pipewire/pipewire/0009-alsa-do-not-expose-non-interleaved-formats-since-the.patch')
-rw-r--r--meta-pipewire/recipes-multimedia/pipewire/pipewire/0009-alsa-do-not-expose-non-interleaved-formats-since-the.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/meta-pipewire/recipes-multimedia/pipewire/pipewire/0009-alsa-do-not-expose-non-interleaved-formats-since-the.patch b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0009-alsa-do-not-expose-non-interleaved-formats-since-the.patch
new file mode 100644
index 00000000..8d8d4d11
--- /dev/null
+++ b/meta-pipewire/recipes-multimedia/pipewire/pipewire/0009-alsa-do-not-expose-non-interleaved-formats-since-the.patch
@@ -0,0 +1,37 @@
+From b80645ad1b348a99b2cbdc170e122dc06d367ea9 Mon Sep 17 00:00:00 2001
+From: George Kiagiadakis <george.kiagiadakis@collabora.com>
+Date: Wed, 18 Sep 2019 12:31:36 +0300
+Subject: [PATCH] alsa: do not expose non-interleaved formats, since they won't
+ work
+
+This bug appeared when testing bluez-alsa nodes with pipewire.
+bluez-alsa exposes also non-interleaved formats and if such a format
+is picked, then nothing works because the converters are not working
+
+Upstream-Status: Inappropriate [workaround]
+---
+ spa/plugins/alsa/alsa-utils.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/spa/plugins/alsa/alsa-utils.c b/spa/plugins/alsa/alsa-utils.c
+index e8548345..76c81c7c 100644
+--- a/spa/plugins/alsa/alsa-utils.c
++++ b/spa/plugins/alsa/alsa-utils.c
+@@ -289,12 +289,14 @@ spa_alsa_enum_format(struct state *state, int seq, uint32_t start, uint32_t num,
+ spa_pod_builder_id(&b, fi->spa_format);
+ spa_pod_builder_id(&b, fi->spa_format);
+ }
++ /*
+ if (snd_pcm_access_mask_test(amask, SND_PCM_ACCESS_MMAP_NONINTERLEAVED) &&
+ fi->spa_pformat != SPA_AUDIO_FORMAT_UNKNOWN) {
+ if (j++ == 0)
+ spa_pod_builder_id(&b, fi->spa_pformat);
+ spa_pod_builder_id(&b, fi->spa_pformat);
+ }
++ */
+ }
+ }
+ if (j > 1)
+--
+2.23.0
+