diff options
Diffstat (limited to 'chromium/fuchsia/engine/renderer/web_engine_audio_renderer.cc')
-rw-r--r-- | chromium/fuchsia/engine/renderer/web_engine_audio_renderer.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/chromium/fuchsia/engine/renderer/web_engine_audio_renderer.cc b/chromium/fuchsia/engine/renderer/web_engine_audio_renderer.cc index 16ee1138c2c..3a004bb8438 100644 --- a/chromium/fuchsia/engine/renderer/web_engine_audio_renderer.cc +++ b/chromium/fuchsia/engine/renderer/web_engine_audio_renderer.cc @@ -219,7 +219,8 @@ void WebEngineAudioRenderer::OnBuffersAcquired( SendInputPacket(std::move(packet)); } - if (is_at_end_of_stream_) { + if (has_delayed_end_of_stream_) { + has_delayed_end_of_stream_ = false; OnSysmemBufferStreamEndOfStream(); } } @@ -781,9 +782,11 @@ void WebEngineAudioRenderer::OnSysmemBufferStreamEndOfStream() { DCHECK_CALLED_ON_VALID_THREAD(thread_checker_); DCHECK(is_at_end_of_stream_); - // Stream sink is not bound yet, don't send EOS. - if (!stream_sink_) + // Stream sink is not bound yet, queue EOS request until then. + if (!stream_sink_) { + has_delayed_end_of_stream_ = true; return; + } stream_sink_->EndOfStream(); |