When a source-output isn't connected to our virtual source, we skip echo
cancellation altogether. This makes sense in general, and makes sure
that we don't end up adjusting for delay/drift when nothing is
connected. This should make convergence faster when the canceller
actually starts being used.
return;
}
+ if (PA_UNLIKELY(u->source->thread_info.state != PA_SOURCE_RUNNING)) {
+ pa_source_post(u->source, chunk);
+ return;
+ }
+
/* handle queued messages, do any message sending of our own */
while (pa_asyncmsgq_process_one(u->asyncmsgq) > 0)
;
pa_source_output_assert_io_context(u->source_output);
- if (PA_SOURCE_IS_OPENED(u->source_output->source->thread_info.state))
+ if (u->source_output->source->thread_info.state == PA_SOURCE_RUNNING)
pa_memblockq_push_align(u->sink_memblockq, chunk);
else
pa_memblockq_flush_write(u->sink_memblockq, TRUE);