summaryrefslogtreecommitdiffstats
path: root/content/browser/speech/speech_recognizer_impl_unittest.cc
diff options
context:
space:
mode:
authorxians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-14 14:07:39 +0000
committerxians@chromium.org <xians@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-03-14 14:07:39 +0000
commitd6a5d747415a472f8755af23de94cd42fb20799a (patch)
treec069dd45c4bac1858abb5fc716cab13a808058e2 /content/browser/speech/speech_recognizer_impl_unittest.cc
parent49ee2828a9fb5c9502768c2ba932aef9ed00a604 (diff)
downloadchromium_src-d6a5d747415a472f8755af23de94cd42fb20799a.zip
chromium_src-d6a5d747415a472f8755af23de94cd42fb20799a.tar.gz
chromium_src-d6a5d747415a472f8755af23de94cd42fb20799a.tar.bz2
Stopping the audio thread before destroying the AudioManager<Platform>.
The destruction of the AudioManager family happens in order of: AudioManager<Platform>, AudioManagerBase, AudioManager. So before getting into the destruction of AudioManagerBase, we have make sure the audio thread has been stopped before AudioManager<Platform> is gone, otherwise it will end up into unexpected behavior, for example, crash because of pure virtual function. BUG=117470 TEST=media_unittests, Address Sanitizer Review URL: http://codereview.chromium.org/9692038 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@126635 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/speech/speech_recognizer_impl_unittest.cc')
-rw-r--r--content/browser/speech/speech_recognizer_impl_unittest.cc18
1 files changed, 15 insertions, 3 deletions
diff --git a/content/browser/speech/speech_recognizer_impl_unittest.cc b/content/browser/speech/speech_recognizer_impl_unittest.cc
index baf3a3e..286ba7c 100644
--- a/content/browser/speech/speech_recognizer_impl_unittest.cc
+++ b/content/browser/speech/speech_recognizer_impl_unittest.cc
@@ -24,7 +24,7 @@ using media::TestAudioInputControllerFactory;
namespace {
-class MockAudioManager : public AudioManager {
+class MockAudioManager : public AudioManagerBase {
public:
MockAudioManager() {
audio_thread_.reset(new base::Thread("MockAudioThread"));
@@ -39,7 +39,7 @@ class MockAudioManager : public AudioManager {
media::AudioDeviceNames* device_names) OVERRIDE {}
virtual AudioOutputStream* MakeAudioOutputStream(
const AudioParameters& params) OVERRIDE {
- return FakeAudioOutputStream::MakeFakeStream(params);
+ return FakeAudioOutputStream::MakeFakeStream(this, params);
}
virtual AudioOutputStream* MakeAudioOutputStreamProxy(
const AudioParameters& params) OVERRIDE {
@@ -48,7 +48,19 @@ class MockAudioManager : public AudioManager {
}
virtual AudioInputStream* MakeAudioInputStream(
const AudioParameters& params, const std::string& device_id) OVERRIDE {
- return FakeAudioInputStream::MakeFakeStream(params);
+ return FakeAudioInputStream::MakeFakeStream(this, params);
+ }
+ virtual AudioOutputStream* MakeLinearOutputStream(
+ const AudioParameters& params) OVERRIDE { return NULL; }
+ virtual AudioOutputStream* MakeLowLatencyOutputStream(
+ const AudioParameters& params) OVERRIDE { return NULL; }
+ virtual AudioInputStream* MakeLinearInputStream(
+ const AudioParameters& params, const std::string& device_id) OVERRIDE {
+ return NULL;
+ }
+ virtual AudioInputStream* MakeLowLatencyInputStream(
+ const AudioParameters& params, const std::string& device_id) OVERRIDE {
+ return NULL;
}
virtual void MuteAll() OVERRIDE {}
virtual void UnMuteAll() OVERRIDE {}