| Index: media/audio/audio_input_controller.cc
|
| diff --git a/media/audio/audio_input_controller.cc b/media/audio/audio_input_controller.cc
|
| index 311a54ef840581ea69ef0cd65a52e13f33f16512..a8209f5ad18a20439892175610b3652ef5b8d369 100644
|
| --- a/media/audio/audio_input_controller.cc
|
| +++ b/media/audio/audio_input_controller.cc
|
| @@ -7,9 +7,12 @@
|
| #include "base/threading/thread_restrictions.h"
|
| #include "media/base/limits.h"
|
|
|
| -namespace media {
|
| +namespace {
|
| +const int kMaxInputChannels = 2;
|
| +const int kTimerResetInterval = 1; // One second.
|
| +}
|
|
|
| -static const int kMaxInputChannels = 2;
|
| +namespace media {
|
|
|
| // static
|
| AudioInputController::Factory* AudioInputController::factory_ = NULL;
|
| @@ -18,6 +21,10 @@ AudioInputController::AudioInputController(EventHandler* handler,
|
| SyncWriter* sync_writer)
|
| : handler_(handler),
|
| stream_(NULL),
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(no_data_timer_(
|
| + base::TimeDelta::FromSeconds(kTimerResetInterval),
|
| + this,
|
| + &AudioInputController::DoReportNoDataError)),
|
| state_(kEmpty),
|
| thread_("AudioInputControllerThread"),
|
| sync_writer_(sync_writer) {
|
| @@ -123,6 +130,9 @@ void AudioInputController::DoCreate(AudioParameters params) {
|
| return;
|
| }
|
|
|
| + thread_.message_loop()->PostTask(
|
| + FROM_HERE,
|
| + NewRunnableMethod(this, &AudioInputController::DoResetNoDataTimer));
|
| state_ = kCreated;
|
| handler_->OnCreated(this);
|
| }
|
| @@ -168,6 +178,16 @@ void AudioInputController::DoReportError(int code) {
|
| handler_->OnError(this, code);
|
| }
|
|
|
| +void AudioInputController::DoReportNoDataError() {
|
| + DCHECK_EQ(thread_.message_loop(), MessageLoop::current());
|
| + handler_->OnError(this, 0);
|
| +}
|
| +
|
| +void AudioInputController::DoResetNoDataTimer() {
|
| + DCHECK_EQ(thread_.message_loop(), MessageLoop::current());
|
| + no_data_timer_.Reset();
|
| +}
|
| +
|
| void AudioInputController::OnData(AudioInputStream* stream, const uint8* data,
|
| uint32 size) {
|
| {
|
| @@ -176,6 +196,10 @@ void AudioInputController::OnData(AudioInputStream* stream, const uint8* data,
|
| return;
|
| }
|
|
|
| + thread_.message_loop()->PostTask(
|
| + FROM_HERE,
|
| + NewRunnableMethod(this, &AudioInputController::DoResetNoDataTimer));
|
| +
|
| // Use SyncSocket if we are in a low-latency mode.
|
| if (LowLatencyMode()) {
|
| sync_writer_->Write(data, size);
|
|
|