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..0a65aff2aa00cd648c75b209f69b68e865ba4cd7 100644 |
--- a/content/renderer/media/webrtc_audio_device_impl.cc |
+++ b/content/renderer/media/webrtc_audio_device_impl.cc |
@@ -524,7 +524,14 @@ bool WebRtcAudioDeviceImpl::GetAuthorizedDeviceInfoForAudioRenderer( |
void WebRtcAudioDeviceImpl::EnableAecDump(base::File aec_dump_file) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
DCHECK(aec_dump_file.IsValid()); |
- DCHECK(!aec_dump_file_.IsValid()); |
+ |
+ // Close the previous AEC dump file description if it has not been consumed. |
+ // This can happen if no getUserMedia has been made yet. |
+ // TODO(xians): DCHECK(!aec_dump_file_.IsValid()) after the browser |
+ // guarantees it won't call EnableAecDump() more than once in a row. |
+ if (aec_dump_file_.IsValid()) |
+ aec_dump_file_.Close(); |
+ |
aec_dump_file_ = aec_dump_file.Pass(); |
MaybeStartAecDump(); |
} |