From a9c6d43b7ca3ffceab31bc3819903ee8c5de70c5 Mon Sep 17 00:00:00 2001 From: Arun Raghavan Date: Mon, 26 Oct 2020 11:45:27 -0400 Subject: [PATCH] sink, source: Skip filter streams while changing default sink/source Streams connecting filter devices to their target devices shouldn't move because of default settings (they are intended to be filtering the specific device that are attached to). Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/1015 --- src/pulsecore/sink.c | 4 ++++ src/pulsecore/source.c | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c index 56a3ce4..e89b596 100644 --- a/src/pulsecore/sink.c +++ b/src/pulsecore/sink.c @@ -3973,6 +3973,10 @@ void pa_sink_move_streams_to_default_sink(pa_core *core, pa_sink *old_sink, bool if (!i->sink) continue; + /* Don't move sink-inputs which connect filter sinks to their target sinks */ + if (i->origin_sink) + continue; + /* If default_sink_changed is false, the old sink became unavailable, so all streams must be moved. */ if (pa_safe_streq(old_sink->name, i->preferred_sink) && default_sink_changed) continue; diff --git a/src/pulsecore/source.c b/src/pulsecore/source.c index 705c939..efc3640 100644 --- a/src/pulsecore/source.c +++ b/src/pulsecore/source.c @@ -3029,6 +3029,10 @@ void pa_source_move_streams_to_default_source(pa_core *core, pa_source *old_sour if (!o->source) continue; + /* Don't move source-outputs which connect sources to filter sources */ + if (o->destination_source) + continue; + /* If default_source_changed is false, the old source became unavailable, so all streams must be moved. */ if (pa_safe_streq(old_source->name, o->preferred_source) && default_source_changed) continue; -- 2.7.4