diff options
author | Arun Raghavan <arun@asymptotic.io> | 2020-10-26 11:45:27 -0400 |
---|---|---|
committer | Arun Raghavan <arun@asymptotic.io> | 2020-10-26 12:00:35 -0400 |
commit | a9c6d43b7ca3ffceab31bc3819903ee8c5de70c5 (patch) | |
tree | 755b668dd586ce6b1df51652c93386ab38eedbf5 /src | |
parent | 1d6bd6689f1c8292385a86acd927716fb4e87414 (diff) | |
download | pulseaudio-a9c6d43b7ca3ffceab31bc3819903ee8c5de70c5.tar.gz |
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
Diffstat (limited to 'src')
-rw-r--r-- | src/pulsecore/sink.c | 4 | ||||
-rw-r--r-- | src/pulsecore/source.c | 4 |
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; |