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

Side by Side Diff: media/audio/linux/alsa_output_unittest.cc

Issue 9691001: Audio software mixer. (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
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/message_loop.h" 5 #include "base/message_loop.h"
6 #include "base/stringprintf.h" 6 #include "base/stringprintf.h"
7 #include "media/audio/linux/alsa_output.h" 7 #include "media/audio/linux/alsa_output.h"
8 #include "media/audio/linux/alsa_wrapper.h" 8 #include "media/audio/linux/alsa_wrapper.h"
9 #include "media/audio/linux/audio_manager_linux.h" 9 #include "media/audio/linux/audio_manager_linux.h"
10 #include "media/base/data_buffer.h" 10 #include "media/base/data_buffer.h"
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
113 113
114 virtual ~AlsaPcmOutputStreamTest() { 114 virtual ~AlsaPcmOutputStreamTest() {
115 } 115 }
116 116
117 AlsaPcmOutputStream* CreateStream(ChannelLayout layout) { 117 AlsaPcmOutputStream* CreateStream(ChannelLayout layout) {
118 return CreateStream(layout, kTestFramesPerPacket); 118 return CreateStream(layout, kTestFramesPerPacket);
119 } 119 }
120 120
121 AlsaPcmOutputStream* CreateStream(ChannelLayout layout, 121 AlsaPcmOutputStream* CreateStream(ChannelLayout layout,
122 int32 samples_per_packet) { 122 int32 samples_per_packet) {
123 AudioParameters params(kTestFormat, layout, kTestSampleRate, 123 AudioParameters params(kTestFormat, false, layout, kTestSampleRate,
124 kTestBitsPerSample, samples_per_packet); 124 kTestBitsPerSample, samples_per_packet);
125 return new AlsaPcmOutputStream(kTestDeviceName, 125 return new AlsaPcmOutputStream(kTestDeviceName,
126 params, 126 params,
127 &mock_alsa_wrapper_, 127 &mock_alsa_wrapper_,
128 mock_manager_.get()); 128 mock_manager_.get());
129 } 129 }
130 130
131 // Helper function to malloc the string returned by DeviceNameHint for NAME. 131 // Helper function to malloc the string returned by DeviceNameHint for NAME.
132 static char* EchoHint(const void* name, Unused) { 132 static char* EchoHint(const void* name, Unused) {
133 return strdup(static_cast<const char*>(name)); 133 return strdup(static_cast<const char*>(name));
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 test_stream = CreateStream(CHANNEL_LAYOUT_MONO); 221 test_stream = CreateStream(CHANNEL_LAYOUT_MONO);
222 EXPECT_EQ(AlsaPcmOutputStream::kCreated, test_stream->state()); 222 EXPECT_EQ(AlsaPcmOutputStream::kCreated, test_stream->state());
223 test_stream->Close(); 223 test_stream->Close();
224 224
225 // Should support multi-channel. 225 // Should support multi-channel.
226 test_stream = CreateStream(CHANNEL_LAYOUT_SURROUND); 226 test_stream = CreateStream(CHANNEL_LAYOUT_SURROUND);
227 EXPECT_EQ(AlsaPcmOutputStream::kCreated, test_stream->state()); 227 EXPECT_EQ(AlsaPcmOutputStream::kCreated, test_stream->state());
228 test_stream->Close(); 228 test_stream->Close();
229 229
230 // Bad bits per sample. 230 // Bad bits per sample.
231 AudioParameters bad_bps_params(kTestFormat, kTestChannelLayout, 231 AudioParameters bad_bps_params(kTestFormat, false, kTestChannelLayout,
232 kTestSampleRate, kTestBitsPerSample - 1, 232 kTestSampleRate, kTestBitsPerSample - 1,
233 kTestFramesPerPacket); 233 kTestFramesPerPacket);
234 test_stream = new AlsaPcmOutputStream(kTestDeviceName, 234 test_stream = new AlsaPcmOutputStream(kTestDeviceName,
235 bad_bps_params, 235 bad_bps_params,
236 &mock_alsa_wrapper_, 236 &mock_alsa_wrapper_,
237 mock_manager_.get()); 237 mock_manager_.get());
238 EXPECT_EQ(AlsaPcmOutputStream::kInError, test_stream->state()); 238 EXPECT_EQ(AlsaPcmOutputStream::kInError, test_stream->state());
239 test_stream->Close(); 239 test_stream->Close();
240 240
241 // Bad format. 241 // Bad format.
242 AudioParameters bad_format_params( 242 AudioParameters bad_format_params(
243 AudioParameters::AUDIO_LAST_FORMAT, kTestChannelLayout, kTestSampleRate, 243 AudioParameters::AUDIO_LAST_FORMAT,
244 false,
245 kTestChannelLayout, kTestSampleRate,
244 kTestBitsPerSample, kTestFramesPerPacket); 246 kTestBitsPerSample, kTestFramesPerPacket);
245 test_stream = new AlsaPcmOutputStream(kTestDeviceName, 247 test_stream = new AlsaPcmOutputStream(kTestDeviceName,
246 bad_format_params, 248 bad_format_params,
247 &mock_alsa_wrapper_, 249 &mock_alsa_wrapper_,
248 mock_manager_.get()); 250 mock_manager_.get());
249 EXPECT_EQ(AlsaPcmOutputStream::kInError, test_stream->state()); 251 EXPECT_EQ(AlsaPcmOutputStream::kInError, test_stream->state());
250 test_stream->Close(); 252 test_stream->Close();
251 } 253 }
252 254
253 TEST_F(AlsaPcmOutputStreamTest, LatencyFloor) { 255 TEST_F(AlsaPcmOutputStreamTest, LatencyFloor) {
(...skipping 563 matching lines...) Expand 10 before | Expand all | Expand 10 after
817 test_stream->stop_stream_ = true; 819 test_stream->stop_stream_ = true;
818 test_stream->ScheduleNextWrite(true); 820 test_stream->ScheduleNextWrite(true);
819 821
820 // TODO(ajwong): Find a way to test whether or not another task has been 822 // TODO(ajwong): Find a way to test whether or not another task has been
821 // posted so we can verify that the Alsa code will indeed break the task 823 // posted so we can verify that the Alsa code will indeed break the task
822 // posting loop. 824 // posting loop.
823 825
824 test_stream->TransitionTo(AlsaPcmOutputStream::kIsClosed); 826 test_stream->TransitionTo(AlsaPcmOutputStream::kIsClosed);
825 test_stream->Close(); 827 test_stream->Close();
826 } 828 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698