Index: media/filters/audio_renderer_impl.cc |
diff --git a/media/filters/audio_renderer_impl.cc b/media/filters/audio_renderer_impl.cc |
index bb279e9156e1ddbd6ffeb753f816582442e6ec73..dd885279af897c0b7520e11aad082bd444ab7b9a 100644 |
--- a/media/filters/audio_renderer_impl.cc |
+++ b/media/filters/audio_renderer_impl.cc |
@@ -757,6 +757,11 @@ void AudioRendererImpl::OnConfigChange() { |
DCHECK(task_runner_->BelongsToCurrentThread()); |
DCHECK(expecting_config_changes_); |
buffer_converter_->ResetTimestampState(); |
+ // Drain flushed buffers from the converter so the AudioSplicer receives all |
+ // data ahead of any OnNewSpliceBuffer() calls. Since discontinuities should |
+ // only appear after config changes, AddInput() should never fail here. |
+ while (buffer_converter_->HasNextBuffer()) |
+ CHECK(splicer_->AddInput(buffer_converter_->GetNextBuffer())); |
} |
} // namespace media |