Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1081)

Unified Diff: content/renderer/media/media_stream_audio_source.cc

Issue 2416123002: Stop media stream source when audio capture error occurs. (Closed)
Patch Set: Fix unit tests. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/media_stream_audio_source.cc
diff --git a/content/renderer/media/media_stream_audio_source.cc b/content/renderer/media/media_stream_audio_source.cc
index 8db50426ebc4d8b9427ea4bf3cd37dad80ceac5c..8f453c5f7e12d1745a5365ddb2b4ae89db896be6 100644
--- a/content/renderer/media/media_stream_audio_source.cc
+++ b/content/renderer/media/media_stream_audio_source.cc
@@ -5,6 +5,8 @@
#include "content/renderer/media/media_stream_audio_source.h"
#include "base/bind.h"
+#include "base/single_thread_task_runner.h"
+#include "base/threading/thread_task_runner_handle.h"
#include "content/renderer/media/media_stream_audio_track.h"
#include "third_party/WebKit/public/platform/WebMediaStreamSource.h"
#include "third_party/WebKit/public/platform/WebString.h"
@@ -14,6 +16,7 @@ namespace content {
MediaStreamAudioSource::MediaStreamAudioSource(bool is_local_source)
: is_local_source_(is_local_source),
is_stopped_(false),
+ task_runner_(base::ThreadTaskRunnerHandle::Get()),
weak_factory_(this) {
DVLOG(1) << "MediaStreamAudioSource@" << this << "::MediaStreamAudioSource("
<< (is_local_source_ ? "local" : "remote") << " source)";
@@ -136,4 +139,12 @@ void MediaStreamAudioSource::StopAudioDeliveryTo(MediaStreamAudioTrack* track) {
MediaStreamSource::StopSource();
}
+void MediaStreamAudioSource::OnAudioCaptureError(const std::string& why) {
+ VLOG(1) << why;
+
+ // Stop source when error occurs.
+ task_runner_->PostTask(
+ FROM_HERE, base::Bind(&MediaStreamSource::StopSource, GetWeakPtr()));
+}
+
} // namespace content

Powered by Google App Engine
This is Rietveld 408576698