diff --git a/src/modules/echo-cancel/module-echo-cancel.c b/src/modules/echo-cancel/module-echo-cancel.c index 639cd41..1f4263d 100644 --- a/src/modules/echo-cancel/module-echo-cancel.c +++ b/src/modules/echo-cancel/module-echo-cancel.c @@ -1443,9 +1443,9 @@ static void source_output_moving_cb(pa_source_output *o, pa_source *dest) { pa_source_set_asyncmsgq(u->source, dest->asyncmsgq); pa_source_update_flags(u->source, PA_SOURCE_LATENCY|PA_SOURCE_DYNAMIC_LATENCY, dest->flags); } else - pa_source_set_asyncmsgq(u->source, NULL); + pa_sink_set_asyncmsgq(u->source, u->asyncmsgq); /* Just park it somewhere */ - if (u->source_auto_desc && dest) { + if (u->source_auto_desc && dest && u->sink_input->sink) { const char *y, *z; pa_proplist *pl; @@ -1471,9 +1471,9 @@ static void sink_input_moving_cb(pa_sink_input *i, pa_sink *dest) { pa_sink_set_asyncmsgq(u->sink, dest->asyncmsgq); pa_sink_update_flags(u->sink, PA_SINK_LATENCY|PA_SINK_DYNAMIC_LATENCY, dest->flags); } else - pa_sink_set_asyncmsgq(u->sink, NULL); + pa_sink_set_asyncmsgq(u->sink, u->asyncmsgq); /* Just park it somewhere */ - if (u->sink_auto_desc && dest) { + if (u->sink_auto_desc && dest && u->source_output->source) { const char *y, *z; pa_proplist *pl;