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

Unified Diff: media/audio/audio_input_controller.cc

Issue 11298006: Browser-wide audio mirroring for TabCapture API (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix TabCapture API test Created 8 years, 1 month 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: media/audio/audio_input_controller.cc
diff --git a/media/audio/audio_input_controller.cc b/media/audio/audio_input_controller.cc
index 99bb420e89553a84e6292a2fa74d404b5eed91eb..2032972f520cfc7c1972b45c58250f95e479b58b 100644
--- a/media/audio/audio_input_controller.cc
+++ b/media/audio/audio_input_controller.cc
@@ -148,10 +148,11 @@ void AudioInputController::DoCreate(AudioManager* audio_manager,
DCHECK(!no_data_timer_.get());
// Create the data timer which will call DoCheckForNoData(). The timer
// is started in DoRecord() and restarted in each DoCheckForNoData() callback.
- no_data_timer_.reset(new base::Timer(
- FROM_HERE, base::TimeDelta::FromSeconds(kTimerInitialIntervalSeconds),
- base::Bind(&AudioInputController::DoCheckForNoData,
- base::Unretained(this)), false));
+ if (params.format() != AudioParameters::AUDIO_WEB_CONTENTS)
+ no_data_timer_.reset(new base::Timer(
+ FROM_HERE, base::TimeDelta::FromSeconds(kTimerInitialIntervalSeconds),
+ base::Bind(&AudioInputController::DoCheckForNoData,
+ base::Unretained(this)), false));
state_ = kCreated;
handler_->OnCreated(this);
}
@@ -169,7 +170,8 @@ void AudioInputController::DoRecord() {
// Start the data timer. Once |kTimerResetIntervalSeconds| have passed,
// a callback to DoCheckForNoData() is made.
- no_data_timer_->Reset();
+ if (no_data_timer_.get())
+ no_data_timer_->Reset();
stream_->Start(this);
handler_->OnRecording(this);
@@ -250,10 +252,11 @@ void AudioInputController::DoCheckForNoData() {
// Restart the timer to ensure that we check the flag again in
// |kTimerResetIntervalSeconds|.
- no_data_timer_->Start(
- FROM_HERE, base::TimeDelta::FromSeconds(kTimerResetIntervalSeconds),
- base::Bind(&AudioInputController::DoCheckForNoData,
- base::Unretained(this)));
+ if (no_data_timer_.get())
+ no_data_timer_->Start(
+ FROM_HERE, base::TimeDelta::FromSeconds(kTimerResetIntervalSeconds),
+ base::Bind(&AudioInputController::DoCheckForNoData,
+ base::Unretained(this)));
}
void AudioInputController::OnData(AudioInputStream* stream, const uint8* data,

Powered by Google App Engine
This is Rietveld 408576698