From 0bb71f1f20096811d3a49d1c7e58ba2c353ac62d Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Sat, 16 Mar 2019 14:03:10 +0100 Subject: [PATCH] output/pulse: use pa_channel_map_init_extend() instead of _auto() Unlike pa_channel_map_init_auto(), pa_channel_map_init_extend() does not fail if there is no valid mapping for the given channel count, but instead maps additional "AUX" channels. Closes https://github.com/MusicPlayerDaemon/MPD/issues/493 --- NEWS | 2 ++ src/output/plugins/PulseOutputPlugin.cxx | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/NEWS b/NEWS index de0802376..76523c37c 100644 --- a/NEWS +++ b/NEWS @@ -7,6 +7,8 @@ ver 0.21.6 (not yet released) - cdio_paranoia: fix build failure due to missing #include * decoder - opus: fix replay gain when there are no other tags +* output + - pulse: work around error with unusual channel count * playlist - flac: fix use-after-free bug * support abstract sockets on Linux diff --git a/src/output/plugins/PulseOutputPlugin.cxx b/src/output/plugins/PulseOutputPlugin.cxx index 59fe9fb54..fa1b06da9 100644 --- a/src/output/plugins/PulseOutputPlugin.cxx +++ b/src/output/plugins/PulseOutputPlugin.cxx @@ -581,8 +581,8 @@ PulseOutput::SetupStream(const pa_sample_spec &ss) /* WAVE-EX is been adopted as the speaker map for most media files */ pa_channel_map chan_map; - pa_channel_map_init_auto(&chan_map, ss.channels, - PA_CHANNEL_MAP_WAVEEX); + pa_channel_map_init_extend(&chan_map, ss.channels, + PA_CHANNEL_MAP_WAVEEX); stream = pa_stream_new(context, name, &ss, &chan_map); if (stream == nullptr) throw MakePulseError(context,