Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/basictypes.h" | 5 #include "base/basictypes.h" |
| 6 #include "base/environment.h" | 6 #include "base/environment.h" |
| 7 #include "base/test/test_timeouts.h" | 7 #include "base/test/test_timeouts.h" |
| 8 #include "base/threading/platform_thread.h" | 8 #include "base/threading/platform_thread.h" |
| 9 #include "media/audio/audio_io.h" | 9 #include "media/audio/audio_io.h" |
| 10 #include "media/audio/audio_manager.h" | 10 #include "media/audio/audio_manager_base.h" |
| 11 #include "media/audio/mac/audio_low_latency_input_mac.h" | 11 #include "media/audio/mac/audio_low_latency_input_mac.h" |
| 12 #include "media/base/seekable_buffer.h" | 12 #include "media/base/seekable_buffer.h" |
| 13 #include "testing/gmock/include/gmock/gmock.h" | 13 #include "testing/gmock/include/gmock/gmock.h" |
| 14 #include "testing/gtest/include/gtest/gtest.h" | 14 #include "testing/gtest/include/gtest/gtest.h" |
| 15 | 15 |
| 16 using ::testing::_; | 16 using ::testing::_; |
| 17 using ::testing::AnyNumber; | 17 using ::testing::AnyNumber; |
| 18 using ::testing::Between; | 18 using ::testing::Between; |
| 19 using ::testing::Ge; | 19 using ::testing::Ge; |
| 20 using ::testing::NotNull; | 20 using ::testing::NotNull; |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 97 } | 97 } |
| 98 | 98 |
| 99 // Convenience method which creates a default AudioInputStream object using | 99 // Convenience method which creates a default AudioInputStream object using |
| 100 // a 10ms frame size and a sample rate which is set to the hardware sample rate. | 100 // a 10ms frame size and a sample rate which is set to the hardware sample rate. |
| 101 static AudioInputStream* CreateDefaultAudioInputStream() { | 101 static AudioInputStream* CreateDefaultAudioInputStream() { |
| 102 AudioManager* audio_man = AudioManager::GetAudioManager(); | 102 AudioManager* audio_man = AudioManager::GetAudioManager(); |
| 103 int fs = static_cast<int>(AUAudioInputStream::HardwareSampleRate()); | 103 int fs = static_cast<int>(AUAudioInputStream::HardwareSampleRate()); |
| 104 int samples_per_packet = fs / 100; | 104 int samples_per_packet = fs / 100; |
| 105 AudioInputStream* ais = audio_man->MakeAudioInputStream( | 105 AudioInputStream* ais = audio_man->MakeAudioInputStream( |
| 106 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, | 106 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, |
| 107 CHANNEL_LAYOUT_STEREO, fs, 16, samples_per_packet)); | 107 CHANNEL_LAYOUT_STEREO, fs, 16, samples_per_packet), "default"); |
|
henrika (OOO until Aug 14)
2011/11/17 11:26:15
Use constant.
no longer working on chromium
2011/11/17 14:15:26
Done.
| |
| 108 EXPECT_TRUE(ais); | 108 EXPECT_TRUE(ais); |
| 109 return ais; | 109 return ais; |
| 110 } | 110 } |
| 111 | 111 |
| 112 // Convenience method which creates an AudioInputStream object with a specified | 112 // Convenience method which creates an AudioInputStream object with a specified |
| 113 // channel layout. | 113 // channel layout. |
| 114 static AudioInputStream* CreateAudioInputStream(ChannelLayout channel_layout) { | 114 static AudioInputStream* CreateAudioInputStream(ChannelLayout channel_layout) { |
| 115 AudioManager* audio_man = AudioManager::GetAudioManager(); | 115 AudioManager* audio_man = AudioManager::GetAudioManager(); |
| 116 int fs = static_cast<int>(AUAudioInputStream::HardwareSampleRate()); | 116 int fs = static_cast<int>(AUAudioInputStream::HardwareSampleRate()); |
| 117 int samples_per_packet = fs / 100; | 117 int samples_per_packet = fs / 100; |
| 118 AudioInputStream* ais = audio_man->MakeAudioInputStream( | 118 AudioInputStream* ais = audio_man->MakeAudioInputStream( |
| 119 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, | 119 AudioParameters(AudioParameters::AUDIO_PCM_LOW_LATENCY, |
| 120 channel_layout, fs, 16, samples_per_packet)); | 120 channel_layout, fs, 16, samples_per_packet), |
| 121 AudioManagerBase::kDefaultDeviceId); | |
| 121 EXPECT_TRUE(ais); | 122 EXPECT_TRUE(ais); |
| 122 return ais; | 123 return ais; |
| 123 } | 124 } |
| 124 | 125 |
| 125 | 126 |
| 126 // Test Create(), Close(). | 127 // Test Create(), Close(). |
| 127 TEST(MacAudioInputTest, AUAudioInputStreamCreateAndClose) { | 128 TEST(MacAudioInputTest, AUAudioInputStreamCreateAndClose) { |
| 128 if (!CanRunAudioTests()) | 129 if (!CanRunAudioTests()) |
| 129 return; | 130 return; |
| 130 AudioInputStream* ais = CreateDefaultAudioInputStream(); | 131 AudioInputStream* ais = CreateDefaultAudioInputStream(); |
| (...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 284 fprintf(stderr, " Sample rate: %d\n", fs); | 285 fprintf(stderr, " Sample rate: %d\n", fs); |
| 285 WriteToFileAudioSink file_sink(file_name); | 286 WriteToFileAudioSink file_sink(file_name); |
| 286 fprintf(stderr, " >> Speak into the mic while recording...\n"); | 287 fprintf(stderr, " >> Speak into the mic while recording...\n"); |
| 287 ais->Start(&file_sink); | 288 ais->Start(&file_sink); |
| 288 base::PlatformThread::Sleep(TestTimeouts::action_timeout_ms()); | 289 base::PlatformThread::Sleep(TestTimeouts::action_timeout_ms()); |
| 289 ais->Stop(); | 290 ais->Stop(); |
| 290 fprintf(stderr, " >> Recording has stopped.\n"); | 291 fprintf(stderr, " >> Recording has stopped.\n"); |
| 291 ais->Close(); | 292 ais->Close(); |
| 292 } | 293 } |
| 293 | 294 |
| OLD | NEW |