| 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
|
|
|