summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/pulsecore/sink.c4
-rw-r--r--src/pulsecore/source.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/src/pulsecore/sink.c b/src/pulsecore/sink.c
index 56a3ce433..e89b59655 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 705c93906..efc364083 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;