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

Unified Diff: media/audio/fake_audio_input_stream.cc

Issue 9692038: stopping the audio thread before destroying the AudioManager<Platform> (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebased and fixed the speech recognition unittest Created 8 years, 9 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: media/audio/fake_audio_input_stream.cc
diff --git a/media/audio/fake_audio_input_stream.cc b/media/audio/fake_audio_input_stream.cc
index b9b271ba670187f723a27fdfe614a24d9bd81ce3..f1284f1acb3f412c1c805092c723d348557020a3 100644
--- a/media/audio/fake_audio_input_stream.cc
+++ b/media/audio/fake_audio_input_stream.cc
@@ -5,26 +5,26 @@
#include "media/audio/fake_audio_input_stream.h"
#include "base/bind.h"
+#include "media/audio/audio_manager_base.h"
using base::Time;
using base::TimeDelta;
AudioInputStream* FakeAudioInputStream::MakeFakeStream(
+ AudioManagerBase* manager,
const AudioParameters& params) {
- return new FakeAudioInputStream(params);
+ return new FakeAudioInputStream(manager, params);
}
-FakeAudioInputStream::FakeAudioInputStream(const AudioParameters& params)
- : callback_(NULL),
+FakeAudioInputStream::FakeAudioInputStream(AudioManagerBase* manager,
+ const AudioParameters& params)
+ : audio_manager_(manager),
+ callback_(NULL),
buffer_size_((params.channels * params.bits_per_sample *
params.samples_per_packet) / 8),
thread_("FakeAudioRecordingThread"),
callback_interval_(base::TimeDelta::FromMilliseconds(
(params.samples_per_packet * 1000) / params.sample_rate)) {
- // This object is ref counted (so that it can be used with Thread, PostTask)
- // but the caller expects a plain pointer. So we take a reference here and
- // will Release() ourselves in Close().
- AddRef();
}
FakeAudioInputStream::~FakeAudioInputStream() {}
@@ -42,7 +42,7 @@ void FakeAudioInputStream::Start(AudioInputCallback* callback) {
thread_.Start();
thread_.message_loop()->PostDelayedTask(
FROM_HERE,
- base::Bind(&FakeAudioInputStream::DoCallback, this),
+ base::Bind(&FakeAudioInputStream::DoCallback, base::Unretained(this)),
callback_interval_);
}
@@ -62,7 +62,7 @@ void FakeAudioInputStream::DoCallback() {
last_callback_time_ = now;
thread_.message_loop()->PostDelayedTask(
FROM_HERE,
- base::Bind(&FakeAudioInputStream::DoCallback, this),
+ base::Bind(&FakeAudioInputStream::DoCallback, base::Unretained(this)),
next_callback_time);
}
@@ -75,7 +75,7 @@ void FakeAudioInputStream::Close() {
callback_->OnClose(this);
callback_ = NULL;
}
- Release(); // Destoys this object.
+ audio_manager_->ReleaseInputStream(this);
}
double FakeAudioInputStream::GetMaxVolume() {

Powered by Google App Engine
This is Rietveld 408576698