Index: content/renderer/media/audio_renderer_sink_cache_impl.cc |
diff --git a/content/renderer/media/audio_renderer_sink_cache_impl.cc b/content/renderer/media/audio_renderer_sink_cache_impl.cc |
index 7c495eeec54028eaa55e49adddf7fb15ffd96a8b..26b2ba5a31b4e53a3a78ef4858910b12d2623398 100644 |
--- a/content/renderer/media/audio_renderer_sink_cache_impl.cc |
+++ b/content/renderer/media/audio_renderer_sink_cache_impl.cc |
@@ -68,7 +68,12 @@ AudioRendererSinkCacheImpl::AudioRendererSinkCacheImpl( |
} |
AudioRendererSinkCacheImpl::~AudioRendererSinkCacheImpl() { |
- // We just release all the cached sinks here. |
+ DCHECK(task_runner_->BelongsToCurrentThread()); |
+ // We just release all the cached sinks here. Stop them first. |
+ // We can stop all the sinks, no matter they are used or not, since everything |
+ // is being destroyed anyways. |
+ for (auto& entry : cache_) |
+ entry.sink->Stop(); |
} |
media::OutputDeviceInfo AudioRendererSinkCacheImpl::GetSinkInfo( |