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

Side by Side Diff: media/audio/audio_input_unittest.cc

Issue 8491044: Link things together and enable the device selection for linux and mac. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: rebase2 Created 9 years 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « media/audio/audio_input_device_unittest.cc ('k') | media/audio/audio_manager.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/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"
11 #include "media/audio/audio_manager.h" 11 #include "media/audio/audio_manager_base.h"
12 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
13 13
14 static const int kSamplingRate = 8000; 14 static const int kSamplingRate = 8000;
15 static const int kSamplesPerPacket = kSamplingRate / 20; 15 static const int kSamplesPerPacket = kSamplingRate / 20;
16 16
17 // This class allows to find out if the callbacks are occurring as 17 // This class allows to find out if the callbacks are occurring as
18 // expected and if any error has been reported. 18 // expected and if any error has been reported.
19 class TestInputCallback : public AudioInputStream::AudioInputCallback { 19 class TestInputCallback : public AudioInputStream::AudioInputCallback {
20 public: 20 public:
21 explicit TestInputCallback(int max_data_bytes) 21 explicit TestInputCallback(int max_data_bytes)
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
96 if (NULL == audio_man) 96 if (NULL == audio_man)
97 return false; 97 return false;
98 98
99 return audio_man->HasAudioInputDevices(); 99 return audio_man->HasAudioInputDevices();
100 } 100 }
101 101
102 static AudioInputStream* CreateTestAudioInputStream() { 102 static AudioInputStream* CreateTestAudioInputStream() {
103 AudioManager* audio_man = AudioManager::GetAudioManager(); 103 AudioManager* audio_man = AudioManager::GetAudioManager();
104 AudioInputStream* ais = audio_man->MakeAudioInputStream( 104 AudioInputStream* ais = audio_man->MakeAudioInputStream(
105 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_STEREO, 105 AudioParameters(AudioParameters::AUDIO_PCM_LINEAR, CHANNEL_LAYOUT_STEREO,
106 kSamplingRate, 16, kSamplesPerPacket)); 106 kSamplingRate, 16, kSamplesPerPacket),
107 AudioManagerBase::kDefaultDeviceId);
107 EXPECT_TRUE(NULL != ais); 108 EXPECT_TRUE(NULL != ais);
108 return ais; 109 return ais;
109 } 110 }
110 111
111 // Test that AudioInputStream rejects out of range parameters. 112 // Test that AudioInputStream rejects out of range parameters.
112 TEST(AudioInputTest, SanityOnMakeParams) { 113 TEST(AudioInputTest, SanityOnMakeParams) {
113 if (!CanRunAudioTests()) 114 if (!CanRunAudioTests())
114 return; 115 return;
115 AudioManager* audio_man = AudioManager::GetAudioManager(); 116 AudioManager* audio_man = AudioManager::GetAudioManager();
116 AudioParameters::Format fmt = AudioParameters::AUDIO_PCM_LINEAR; 117 AudioParameters::Format fmt = AudioParameters::AUDIO_PCM_LINEAR;
117 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream( 118 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream(
118 AudioParameters(fmt, CHANNEL_LAYOUT_7POINT1, 8000, 16, 119 AudioParameters(fmt, CHANNEL_LAYOUT_7POINT1, 8000, 16,
119 kSamplesPerPacket))); 120 kSamplesPerPacket), AudioManagerBase::kDefaultDeviceId));
120 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream( 121 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream(
121 AudioParameters(fmt, CHANNEL_LAYOUT_MONO, 1024 * 1024, 16, 122 AudioParameters(fmt, CHANNEL_LAYOUT_MONO, 1024 * 1024, 16,
122 kSamplesPerPacket))); 123 kSamplesPerPacket), AudioManagerBase::kDefaultDeviceId));
123 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream( 124 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream(
124 AudioParameters(fmt, CHANNEL_LAYOUT_STEREO, 8000, 80, 125 AudioParameters(fmt, CHANNEL_LAYOUT_STEREO, 8000, 80,
125 kSamplesPerPacket))); 126 kSamplesPerPacket), AudioManagerBase::kDefaultDeviceId));
126 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream( 127 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream(
127 AudioParameters(fmt, CHANNEL_LAYOUT_STEREO, 8000, 80, 128 AudioParameters(fmt, CHANNEL_LAYOUT_STEREO, 8000, 80,
128 1000 * kSamplesPerPacket))); 129 1000 * kSamplesPerPacket),
130 AudioManagerBase::kDefaultDeviceId));
129 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream( 131 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream(
130 AudioParameters(fmt, CHANNEL_LAYOUT_UNSUPPORTED, 8000, 16, 132 AudioParameters(fmt, CHANNEL_LAYOUT_UNSUPPORTED, 8000, 16,
131 kSamplesPerPacket))); 133 kSamplesPerPacket), AudioManagerBase::kDefaultDeviceId));
132 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream( 134 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream(
133 AudioParameters(fmt, CHANNEL_LAYOUT_STEREO, -8000, 16, 135 AudioParameters(fmt, CHANNEL_LAYOUT_STEREO, -8000, 16,
134 kSamplesPerPacket))); 136 kSamplesPerPacket), AudioManagerBase::kDefaultDeviceId));
135 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream( 137 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream(
136 AudioParameters(fmt, CHANNEL_LAYOUT_STEREO, 8000, -16, 138 AudioParameters(fmt, CHANNEL_LAYOUT_STEREO, 8000, -16,
137 kSamplesPerPacket))); 139 kSamplesPerPacket), AudioManagerBase::kDefaultDeviceId));
138 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream( 140 EXPECT_TRUE(NULL == audio_man->MakeAudioInputStream(
139 AudioParameters(fmt, CHANNEL_LAYOUT_STEREO, 8000, 16, -1024))); 141 AudioParameters(fmt, CHANNEL_LAYOUT_STEREO, 8000, 16, -1024),
142 AudioManagerBase::kDefaultDeviceId));
140 } 143 }
141 144
142 // Test create and close of an AudioInputStream without recording audio. 145 // Test create and close of an AudioInputStream without recording audio.
143 TEST(AudioInputTest, CreateAndClose) { 146 TEST(AudioInputTest, CreateAndClose) {
144 if (!CanRunAudioTests()) 147 if (!CanRunAudioTests())
145 return; 148 return;
146 AudioInputStream* ais = CreateTestAudioInputStream(); 149 AudioInputStream* ais = CreateTestAudioInputStream();
147 ais->Close(); 150 ais->Close();
148 } 151 }
149 152
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 // Verify at least 500ms worth of audio was recorded, after giving sufficient 205 // Verify at least 500ms worth of audio was recorded, after giving sufficient
203 // extra time. 206 // extra time.
204 message_loop.PostDelayedTask(FROM_HERE, new MessageLoop::QuitTask(), 590); 207 message_loop.PostDelayedTask(FROM_HERE, new MessageLoop::QuitTask(), 590);
205 message_loop.Run(); 208 message_loop.Run();
206 EXPECT_GE(test_callback.callback_count(), 10); 209 EXPECT_GE(test_callback.callback_count(), 10);
207 EXPECT_FALSE(test_callback.had_error()); 210 EXPECT_FALSE(test_callback.had_error());
208 211
209 ais->Stop(); 212 ais->Stop();
210 ais->Close(); 213 ais->Close();
211 } 214 }
OLDNEW
« no previous file with comments | « media/audio/audio_input_device_unittest.cc ('k') | media/audio/audio_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698