diff --git a/src/pulsecore/sink-input.c b/src/pulsecore/sink-input.c index a7a3542c1..c1628a912 100644 --- a/src/pulsecore/sink-input.c +++ b/src/pulsecore/sink-input.c @@ -1979,6 +1979,12 @@ void pa_sink_input_fail_move(pa_sink_input *i) { if (pa_hook_fire(&i->core->hooks[PA_CORE_HOOK_SINK_INPUT_MOVE_FAIL], i) == PA_HOOK_STOP) return; + /* Can we move the sink input to the default sink? */ + if (pa_sink_input_may_move_to(i, i->core->default_sink)) { + if (pa_sink_input_finish_move(i, i->core->default_sink, false) >= 0) + return; + } + if (i->moving) i->moving(i, NULL); diff --git a/src/pulsecore/source-output.c b/src/pulsecore/source-output.c index 336b0d090..1f5fee053 100644 --- a/src/pulsecore/source-output.c +++ b/src/pulsecore/source-output.c @@ -1606,6 +1606,12 @@ void pa_source_output_fail_move(pa_source_output *o) { if (pa_hook_fire(&o->core->hooks[PA_CORE_HOOK_SOURCE_OUTPUT_MOVE_FAIL], o) == PA_HOOK_STOP) return; + /* Can we move the source output to the default source? */ + if (pa_source_output_may_move_to(o, o->core->default_source)) { + if (pa_source_output_finish_move(o, o->core->default_source, false) >= 0) + return; + } + if (o->moving) o->moving(o, NULL);