Index: content/renderer/media/webrtc_audio_device_impl.cc |
diff --git a/content/renderer/media/webrtc_audio_device_impl.cc b/content/renderer/media/webrtc_audio_device_impl.cc |
index ae37d2074b2f1159605f9cf97197f40f976b5e6b..86b330657d2de4902bc5a3a3d9a0cca6255b492b 100644 |
--- a/content/renderer/media/webrtc_audio_device_impl.cc |
+++ b/content/renderer/media/webrtc_audio_device_impl.cc |
@@ -248,7 +248,16 @@ int32_t WebRtcAudioDeviceImpl::Terminate() { |
DisableAecDump(); |
- capturers_.clear(); |
+ // Stop all the capturers to ensure no further OnData() and |
+ // RemoveAudioCapturer() callback. |
+ // Cache the captures in a local list since WebRtcAudioCapturer::Stop() |
henrika (OOO until Aug 14)
2014/06/03 11:00:15
capturers
no longer working on chromium
2014/06/03 11:31:14
Done.
|
+ // will trigger RemoveAudioCapturer() callback. |
+ CapturerList capturers; |
+ capturers.swap(capturers_); |
+ for (CapturerList::const_iterator iter = capturers.begin(); |
+ iter != capturers.end(); ++iter) { |
+ (*iter)->Stop(); |
+ } |
initialized_ = false; |
return 0; |