| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/memory/scoped_ptr.h" | 7 #include "base/memory/scoped_ptr.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "base/threading/platform_thread.h" | 9 #include "base/threading/platform_thread.h" |
| 10 #include "media/audio/audio_io.h" | 10 #include "media/audio/audio_io.h" |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 103 kSamplesPerPacket), AudioManagerBase::kDefaultDeviceId)); | 103 kSamplesPerPacket), AudioManagerBase::kDefaultDeviceId)); |
| 104 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream( | 104 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream( |
| 105 AudioParameters(fmt, CHANNEL_LAYOUT_STEREO, 8000, -16, | 105 AudioParameters(fmt, CHANNEL_LAYOUT_STEREO, 8000, -16, |
| 106 kSamplesPerPacket), AudioManagerBase::kDefaultDeviceId)); | 106 kSamplesPerPacket), AudioManagerBase::kDefaultDeviceId)); |
| 107 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream( | 107 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream( |
| 108 AudioParameters(fmt, CHANNEL_LAYOUT_STEREO, 8000, 16, -1024), | 108 AudioParameters(fmt, CHANNEL_LAYOUT_STEREO, 8000, 16, -1024), |
| 109 AudioManagerBase::kDefaultDeviceId)); | 109 AudioManagerBase::kDefaultDeviceId)); |
| 110 } | 110 } |
| 111 | 111 |
| 112 // Test create and close of an AudioInputStream without recording audio. | 112 // Test create and close of an AudioInputStream without recording audio. |
| 113 #if defined(OS_ANDROID) | 113 TEST(AudioInputTest, CreateAndClose) { |
| 114 #define MAYBE_CreateAndClose DISABLED_CreateAndClose | |
| 115 #else | |
| 116 #define MAYBE_CreateAndClose CreateAndClose | |
| 117 #endif | |
| 118 TEST(AudioInputTest, MAYBE_CreateAndClose) { | |
| 119 scoped_ptr<AudioManager> audio_man(AudioManager::Create()); | 114 scoped_ptr<AudioManager> audio_man(AudioManager::Create()); |
| 120 if (!CanRunAudioTests(audio_man.get())) | 115 if (!CanRunAudioTests(audio_man.get())) |
| 121 return; | 116 return; |
| 122 AudioInputStream* ais = CreateTestAudioInputStream(audio_man.get()); | 117 AudioInputStream* ais = CreateTestAudioInputStream(audio_man.get()); |
| 123 ais->Close(); | 118 ais->Close(); |
| 124 } | 119 } |
| 125 | 120 |
| 126 // Test create, open and close of an AudioInputStream without recording audio. | 121 // Test create, open and close of an AudioInputStream without recording audio. |
| 127 // TODO(leozwang): Because java calls were introduced in audio_manager_base, | 122 TEST(AudioInputTest, OpenAndClose) { |
| 128 // unit test has to register jni first, else it will crash. | |
| 129 #if defined(OS_ANDROID) | |
| 130 #define MAYBE_OpenAndClose DISABLED_OpenAndClose | |
| 131 #else | |
| 132 #define MAYBE_OpenAndClose OpenAndClose | |
| 133 #endif | |
| 134 TEST(AudioInputTest, MAYBE_OpenAndClose) { | |
| 135 scoped_ptr<AudioManager> audio_man(AudioManager::Create()); | 123 scoped_ptr<AudioManager> audio_man(AudioManager::Create()); |
| 136 if (!CanRunAudioTests(audio_man.get())) | 124 if (!CanRunAudioTests(audio_man.get())) |
| 137 return; | 125 return; |
| 138 AudioInputStream* ais = CreateTestAudioInputStream(audio_man.get()); | 126 AudioInputStream* ais = CreateTestAudioInputStream(audio_man.get()); |
| 139 EXPECT_TRUE(ais->Open()); | 127 EXPECT_TRUE(ais->Open()); |
| 140 ais->Close(); | 128 ais->Close(); |
| 141 } | 129 } |
| 142 | 130 |
| 143 // Test create, open, stop and close of an AudioInputStream without recording. | 131 // Test create, open, stop and close of an AudioInputStream without recording. |
| 144 #if defined(OS_ANDROID) | 132 TEST(AudioInputTest, OpenStopAndClose) { |
| 145 #define MAYBE_OpenStopAndClose DISABLED_OpenStopAndClose | |
| 146 #else | |
| 147 #define MAYBE_OpenStopAndClose OpenStopAndClose | |
| 148 #endif | |
| 149 TEST(AudioInputTest, MAYBE_OpenStopAndClose) { | |
| 150 scoped_ptr<AudioManager> audio_man(AudioManager::Create()); | 133 scoped_ptr<AudioManager> audio_man(AudioManager::Create()); |
| 151 if (!CanRunAudioTests(audio_man.get())) | 134 if (!CanRunAudioTests(audio_man.get())) |
| 152 return; | 135 return; |
| 153 AudioInputStream* ais = CreateTestAudioInputStream(audio_man.get()); | 136 AudioInputStream* ais = CreateTestAudioInputStream(audio_man.get()); |
| 154 EXPECT_TRUE(ais->Open()); | 137 EXPECT_TRUE(ais->Open()); |
| 155 ais->Stop(); | 138 ais->Stop(); |
| 156 ais->Close(); | 139 ais->Close(); |
| 157 } | 140 } |
| 158 | 141 |
| 159 // Test a normal recording sequence using an AudioInputStream. | 142 // Test a normal recording sequence using an AudioInputStream. |
| 160 #if defined(OS_ANDROID) | 143 TEST(AudioInputTest, Record) { |
| 161 #define MAYBE_Record DISABLED_Record | |
| 162 #else | |
| 163 #define MAYBE_Record Record | |
| 164 #endif | |
| 165 TEST(AudioInputTest, MAYBE_Record) { | |
| 166 scoped_ptr<AudioManager> audio_man(AudioManager::Create()); | 144 scoped_ptr<AudioManager> audio_man(AudioManager::Create()); |
| 167 if (!CanRunAudioTests(audio_man.get())) | 145 if (!CanRunAudioTests(audio_man.get())) |
| 168 return; | 146 return; |
| 169 MessageLoop message_loop(MessageLoop::TYPE_DEFAULT); | 147 MessageLoop message_loop(MessageLoop::TYPE_DEFAULT); |
| 170 AudioInputStream* ais = CreateTestAudioInputStream(audio_man.get()); | 148 AudioInputStream* ais = CreateTestAudioInputStream(audio_man.get()); |
| 171 EXPECT_TRUE(ais->Open()); | 149 EXPECT_TRUE(ais->Open()); |
| 172 | 150 |
| 173 TestInputCallback test_callback(kSamplesPerPacket * 4); | 151 TestInputCallback test_callback(kSamplesPerPacket * 4); |
| 174 ais->Start(&test_callback); | 152 ais->Start(&test_callback); |
| 175 // Verify at least 500ms worth of audio was recorded, after giving sufficient | 153 // Verify at least 500ms worth of audio was recorded, after giving sufficient |
| 176 // extra time. | 154 // extra time. |
| 177 message_loop.PostDelayedTask( | 155 message_loop.PostDelayedTask( |
| 178 FROM_HERE, | 156 FROM_HERE, |
| 179 MessageLoop::QuitClosure(), | 157 MessageLoop::QuitClosure(), |
| 180 base::TimeDelta::FromMilliseconds(690)); | 158 base::TimeDelta::FromMilliseconds(690)); |
| 181 message_loop.Run(); | 159 message_loop.Run(); |
| 182 EXPECT_GE(test_callback.callback_count(), 1); | 160 EXPECT_GE(test_callback.callback_count(), 1); |
| 183 EXPECT_FALSE(test_callback.had_error()); | 161 EXPECT_FALSE(test_callback.had_error()); |
| 184 | 162 |
| 185 ais->Stop(); | 163 ais->Stop(); |
| 186 ais->Close(); | 164 ais->Close(); |
| 187 } | 165 } |
| 188 | 166 |
| 189 } // namespace media | 167 } // namespace media |
| OLD | NEW |