diff --git a/src/output/plugins/wasapi/WasapiOutputPlugin.cxx b/src/output/plugins/wasapi/WasapiOutputPlugin.cxx index a1c3d69ee..db61fff3f 100644 --- a/src/output/plugins/wasapi/WasapiOutputPlugin.cxx +++ b/src/output/plugins/wasapi/WasapiOutputPlugin.cxx @@ -633,8 +633,13 @@ WasapiOutput::Play(const void *chunk, size_t size) do { const size_t consumed_size = thread->spsc_buffer.push( static_cast<const BYTE *>(input.data), input.size); + + if (!is_started) { + is_started = true; + thread->Play(); + } + if (consumed_size == 0) { - assert(is_started); thread->Wait(); thread->CheckException(); if (!not_interrupted.test_and_set()) { @@ -643,11 +648,6 @@ WasapiOutput::Play(const void *chunk, size_t size) continue; } - if (!is_started) { - is_started = true; - thread->Play(); - } - thread->CheckException(); if (pcm_export) {