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

Side by Side Diff: media/audio/win/audio_low_latency_output_win_unittest.cc

Issue 10823100: Adds support for multi-channel output audio for the low-latency path in Windows. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 4 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 <windows.h> 5 #include <windows.h>
6 #include <mmsystem.h> 6 #include <mmsystem.h>
7 7
8 #include "base/basictypes.h" 8 #include "base/basictypes.h"
9 #include "base/environment.h" 9 #include "base/environment.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 }; 236 };
237 237
238 // Convenience method which creates a default AudioOutputStream object. 238 // Convenience method which creates a default AudioOutputStream object.
239 static AudioOutputStream* CreateDefaultAudioOutputStream( 239 static AudioOutputStream* CreateDefaultAudioOutputStream(
240 AudioManager* audio_manager) { 240 AudioManager* audio_manager) {
241 AudioOutputStreamWrapper aosw(audio_manager); 241 AudioOutputStreamWrapper aosw(audio_manager);
242 AudioOutputStream* aos = aosw.Create(); 242 AudioOutputStream* aos = aosw.Create();
243 return aos; 243 return aos;
244 } 244 }
245 245
246 TEST(WASAPIAudioOutputStreamTest, HardwareChannelCount) {
247 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
248 if (!CanRunAudioTests(audio_manager.get()))
249 return;
250
251 ScopedCOMInitializer com_init(ScopedCOMInitializer::kMTA);
252
253 int channel_count = WASAPIAudioOutputStream::HardwareChannelCount();
254 EXPECT_GE(channel_count, 0);
255 }
256
246 // Verify that we can retrieve the current hardware/mixing sample rate 257 // Verify that we can retrieve the current hardware/mixing sample rate
247 // for all supported device roles. The ERole enumeration defines constants 258 // for all supported device roles. The ERole enumeration defines constants
248 // that indicate the role that the system/user has assigned to an audio 259 // that indicate the role that the system/user has assigned to an audio
249 // endpoint device. 260 // endpoint device.
250 // TODO(henrika): modify this test when we support full device enumeration. 261 // TODO(henrika): modify this test when we support full device enumeration.
251 TEST(WinAudioOutputTest, WASAPIAudioOutputStreamTestHardwareSampleRate) { 262 TEST(WASAPIAudioOutputStreamTest, HardwareSampleRate) {
252 // Skip this test in exclusive mode since the resulting rate is only utilized 263 // Skip this test in exclusive mode since the resulting rate is only utilized
253 // for shared mode streams. 264 // for shared mode streams.
254 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 265 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
255 if (!CanRunAudioTests(audio_manager.get()) || ExclusiveModeIsEnabled()) 266 if (!CanRunAudioTests(audio_manager.get()) || ExclusiveModeIsEnabled())
256 return; 267 return;
257 268
258 ScopedCOMInitializer com_init(ScopedCOMInitializer::kMTA); 269 ScopedCOMInitializer com_init(ScopedCOMInitializer::kMTA);
259 270
260 // Default device intended for games, system notification sounds, 271 // Default device intended for games, system notification sounds,
261 // and voice commands. 272 // and voice commands.
262 int fs = static_cast<int>( 273 int fs = static_cast<int>(
263 WASAPIAudioOutputStream::HardwareSampleRate(eConsole)); 274 WASAPIAudioOutputStream::HardwareSampleRate(eConsole));
264 EXPECT_GE(fs, 0); 275 EXPECT_GE(fs, 0);
265 276
266 // Default communication device intended for e.g. VoIP communication. 277 // Default communication device intended for e.g. VoIP communication.
267 fs = static_cast<int>( 278 fs = static_cast<int>(
268 WASAPIAudioOutputStream::HardwareSampleRate(eCommunications)); 279 WASAPIAudioOutputStream::HardwareSampleRate(eCommunications));
269 EXPECT_GE(fs, 0); 280 EXPECT_GE(fs, 0);
270 281
271 // Multimedia device for music, movies and live music recording. 282 // Multimedia device for music, movies and live music recording.
272 fs = static_cast<int>( 283 fs = static_cast<int>(
273 WASAPIAudioOutputStream::HardwareSampleRate(eMultimedia)); 284 WASAPIAudioOutputStream::HardwareSampleRate(eMultimedia));
274 EXPECT_GE(fs, 0); 285 EXPECT_GE(fs, 0);
275 } 286 }
276 287
277 // Test Create(), Close() calling sequence. 288 // Test Create(), Close() calling sequence.
278 TEST(WinAudioOutputTest, WASAPIAudioOutputStreamTestCreateAndClose) { 289 TEST(WASAPIAudioOutputStreamTest, CreateAndClose) {
279 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 290 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
280 if (!CanRunAudioTests(audio_manager.get())) 291 if (!CanRunAudioTests(audio_manager.get()))
281 return; 292 return;
282 AudioOutputStream* aos = CreateDefaultAudioOutputStream(audio_manager.get()); 293 AudioOutputStream* aos = CreateDefaultAudioOutputStream(audio_manager.get());
283 aos->Close(); 294 aos->Close();
284 } 295 }
285 296
286 // Test Open(), Close() calling sequence. 297 // Test Open(), Close() calling sequence.
287 TEST(WinAudioOutputTest, WASAPIAudioOutputStreamTestOpenAndClose) { 298 TEST(WASAPIAudioOutputStreamTest, OpenAndClose) {
288 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 299 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
289 if (!CanRunAudioTests(audio_manager.get())) 300 if (!CanRunAudioTests(audio_manager.get()))
290 return; 301 return;
291 AudioOutputStream* aos = CreateDefaultAudioOutputStream(audio_manager.get()); 302 AudioOutputStream* aos = CreateDefaultAudioOutputStream(audio_manager.get());
292 EXPECT_TRUE(aos->Open()); 303 EXPECT_TRUE(aos->Open());
293 aos->Close(); 304 aos->Close();
294 } 305 }
295 306
296 // Test Open(), Start(), Close() calling sequence. 307 // Test Open(), Start(), Close() calling sequence.
297 TEST(WinAudioOutputTest, WASAPIAudioOutputStreamTestOpenStartAndClose) { 308 TEST(WASAPIAudioOutputStreamTest, OpenStartAndClose) {
298 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 309 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
299 if (!CanRunAudioTests(audio_manager.get())) 310 if (!CanRunAudioTests(audio_manager.get()))
300 return; 311 return;
301 AudioOutputStream* aos = CreateDefaultAudioOutputStream(audio_manager.get()); 312 AudioOutputStream* aos = CreateDefaultAudioOutputStream(audio_manager.get());
302 EXPECT_TRUE(aos->Open()); 313 EXPECT_TRUE(aos->Open());
303 MockAudioSourceCallback source; 314 MockAudioSourceCallback source;
304 EXPECT_CALL(source, OnError(aos, _)) 315 EXPECT_CALL(source, OnError(aos, _))
305 .Times(0); 316 .Times(0);
306 aos->Start(&source); 317 aos->Start(&source);
307 aos->Close(); 318 aos->Close();
308 } 319 }
309 320
310 // Test Open(), Start(), Stop(), Close() calling sequence. 321 // Test Open(), Start(), Stop(), Close() calling sequence.
311 TEST(WinAudioOutputTest, WASAPIAudioOutputStreamTestOpenStartStopAndClose) { 322 TEST(WASAPIAudioOutputStreamTest, OpenStartStopAndClose) {
312 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 323 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
313 if (!CanRunAudioTests(audio_manager.get())) 324 if (!CanRunAudioTests(audio_manager.get()))
314 return; 325 return;
315 AudioOutputStream* aos = CreateDefaultAudioOutputStream(audio_manager.get()); 326 AudioOutputStream* aos = CreateDefaultAudioOutputStream(audio_manager.get());
316 EXPECT_TRUE(aos->Open()); 327 EXPECT_TRUE(aos->Open());
317 MockAudioSourceCallback source; 328 MockAudioSourceCallback source;
318 EXPECT_CALL(source, OnError(aos, _)) 329 EXPECT_CALL(source, OnError(aos, _))
319 .Times(0); 330 .Times(0);
320 aos->Start(&source); 331 aos->Start(&source);
321 aos->Stop(); 332 aos->Stop();
322 aos->Close(); 333 aos->Close();
323 } 334 }
324 335
325 // Test SetVolume(), GetVolume() 336 // Test SetVolume(), GetVolume()
326 TEST(WinAudioOutputTest, WASAPIAudioOutputStreamTestVolume) { 337 TEST(WASAPIAudioOutputStreamTest, Volume) {
327 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 338 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
328 if (!CanRunAudioTests(audio_manager.get())) 339 if (!CanRunAudioTests(audio_manager.get()))
329 return; 340 return;
330 AudioOutputStream* aos = CreateDefaultAudioOutputStream(audio_manager.get()); 341 AudioOutputStream* aos = CreateDefaultAudioOutputStream(audio_manager.get());
331 342
332 // Initial volume should be full volume (1.0). 343 // Initial volume should be full volume (1.0).
333 double volume = 0.0; 344 double volume = 0.0;
334 aos->GetVolume(&volume); 345 aos->GetVolume(&volume);
335 EXPECT_EQ(1.0, volume); 346 EXPECT_EQ(1.0, volume);
336 347
(...skipping 16 matching lines...) Expand all
353 EXPECT_EQ(1.0, volume); 364 EXPECT_EQ(1.0, volume);
354 365
355 aos->SetVolume(-0.5); 366 aos->SetVolume(-0.5);
356 aos->GetVolume(&volume); 367 aos->GetVolume(&volume);
357 EXPECT_EQ(1.0, volume); 368 EXPECT_EQ(1.0, volume);
358 369
359 aos->Close(); 370 aos->Close();
360 } 371 }
361 372
362 // Test some additional calling sequences. 373 // Test some additional calling sequences.
363 TEST(WinAudioOutputTest, WASAPIAudioOutputStreamTestMiscCallingSequences) { 374 TEST(WASAPIAudioOutputStreamTest, MiscCallingSequences) {
364 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 375 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
365 if (!CanRunAudioTests(audio_manager.get())) 376 if (!CanRunAudioTests(audio_manager.get()))
366 return; 377 return;
367 378
368 AudioOutputStream* aos = CreateDefaultAudioOutputStream(audio_manager.get()); 379 AudioOutputStream* aos = CreateDefaultAudioOutputStream(audio_manager.get());
369 WASAPIAudioOutputStream* waos = static_cast<WASAPIAudioOutputStream*>(aos); 380 WASAPIAudioOutputStream* waos = static_cast<WASAPIAudioOutputStream*>(aos);
370 381
371 // Open(), Open() is a valid calling sequence (second call does nothing). 382 // Open(), Open() is a valid calling sequence (second call does nothing).
372 EXPECT_TRUE(aos->Open()); 383 EXPECT_TRUE(aos->Open());
373 EXPECT_TRUE(aos->Open()); 384 EXPECT_TRUE(aos->Open());
(...skipping 19 matching lines...) Expand all
393 EXPECT_FALSE(waos->started()); 404 EXPECT_FALSE(waos->started());
394 aos->Start(&source); 405 aos->Start(&source);
395 EXPECT_TRUE(waos->started()); 406 EXPECT_TRUE(waos->started());
396 aos->Stop(); 407 aos->Stop();
397 EXPECT_FALSE(waos->started()); 408 EXPECT_FALSE(waos->started());
398 409
399 aos->Close(); 410 aos->Close();
400 } 411 }
401 412
402 // Use default packet size (10ms) and verify that rendering starts. 413 // Use default packet size (10ms) and verify that rendering starts.
403 TEST(WinAudioOutputTest, WASAPIAudioOutputStreamTestPacketSizeInMilliseconds) { 414 TEST(WASAPIAudioOutputStreamTest, PacketSizeInMilliseconds) {
404 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 415 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
405 if (!CanRunAudioTests(audio_manager.get())) 416 if (!CanRunAudioTests(audio_manager.get()))
406 return; 417 return;
407 418
408 MessageLoopForUI loop; 419 MessageLoopForUI loop;
409 MockAudioSourceCallback source; 420 MockAudioSourceCallback source;
410 421
411 // Create default WASAPI output stream which plays out in stereo using 422 // Create default WASAPI output stream which plays out in stereo using
412 // the shared mixing rate. The default buffer size is 10ms. 423 // the shared mixing rate. The default buffer size is 10ms.
413 AudioOutputStreamWrapper aosw(audio_manager.get()); 424 AudioOutputStreamWrapper aosw(audio_manager.get());
(...skipping 17 matching lines...) Expand all
431 aos->Start(&source); 442 aos->Start(&source);
432 loop.PostDelayedTask(FROM_HERE, MessageLoop::QuitClosure(), 443 loop.PostDelayedTask(FROM_HERE, MessageLoop::QuitClosure(),
433 TestTimeouts::action_timeout()); 444 TestTimeouts::action_timeout());
434 loop.Run(); 445 loop.Run();
435 aos->Stop(); 446 aos->Stop();
436 aos->Close(); 447 aos->Close();
437 } 448 }
438 449
439 // Use a fixed packets size (independent of sample rate) and verify 450 // Use a fixed packets size (independent of sample rate) and verify
440 // that rendering starts. 451 // that rendering starts.
441 TEST(WinAudioOutputTest, WASAPIAudioOutputStreamTestPacketSizeInSamples) { 452 TEST(WASAPIAudioOutputStreamTest, PacketSizeInSamples) {
442 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 453 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
443 if (!CanRunAudioTests(audio_manager.get())) 454 if (!CanRunAudioTests(audio_manager.get()))
444 return; 455 return;
445 456
446 MessageLoopForUI loop; 457 MessageLoopForUI loop;
447 MockAudioSourceCallback source; 458 MockAudioSourceCallback source;
448 459
449 // Create default WASAPI output stream which plays out in stereo using 460 // Create default WASAPI output stream which plays out in stereo using
450 // the shared mixing rate. The buffer size is set to 1024 samples. 461 // the shared mixing rate. The buffer size is set to 1024 samples.
451 AudioOutputStreamWrapper aosw(audio_manager.get()); 462 AudioOutputStreamWrapper aosw(audio_manager.get());
(...skipping 16 matching lines...) Expand all
468 .WillRepeatedly(Return(bytes_per_packet)); 479 .WillRepeatedly(Return(bytes_per_packet));
469 480
470 aos->Start(&source); 481 aos->Start(&source);
471 loop.PostDelayedTask(FROM_HERE, MessageLoop::QuitClosure(), 482 loop.PostDelayedTask(FROM_HERE, MessageLoop::QuitClosure(),
472 TestTimeouts::action_timeout()); 483 TestTimeouts::action_timeout());
473 loop.Run(); 484 loop.Run();
474 aos->Stop(); 485 aos->Stop();
475 aos->Close(); 486 aos->Close();
476 } 487 }
477 488
478 TEST(WinAudioOutputTest, WASAPIAudioOutputStreamTestMono) { 489 TEST(WASAPIAudioOutputStreamTest, Mono) {
479 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 490 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
480 if (!CanRunAudioTests(audio_manager.get())) 491 if (!CanRunAudioTests(audio_manager.get()))
481 return; 492 return;
482 493
483 MessageLoopForUI loop; 494 MessageLoopForUI loop;
484 MockAudioSourceCallback source; 495 MockAudioSourceCallback source;
485 496
486 // Create default WASAPI output stream which plays out in *mono* using 497 // Create default WASAPI output stream which plays out in *mono* using
487 // the shared mixing rate. The default buffer size is 10ms. 498 // the shared mixing rate. The default buffer size is 10ms.
488 AudioOutputStreamWrapper aosw(audio_manager.get()); 499 AudioOutputStreamWrapper aosw(audio_manager.get());
(...skipping 29 matching lines...) Expand all
518 aos->Close(); 529 aos->Close();
519 } 530 }
520 531
521 // This test is intended for manual tests and should only be enabled 532 // This test is intended for manual tests and should only be enabled
522 // when it is required to store the captured data on a local file. 533 // when it is required to store the captured data on a local file.
523 // By default, GTest will print out YOU HAVE 1 DISABLED TEST. 534 // By default, GTest will print out YOU HAVE 1 DISABLED TEST.
524 // To include disabled tests in test execution, just invoke the test program 535 // To include disabled tests in test execution, just invoke the test program
525 // with --gtest_also_run_disabled_tests or set the GTEST_ALSO_RUN_DISABLED_TESTS 536 // with --gtest_also_run_disabled_tests or set the GTEST_ALSO_RUN_DISABLED_TESTS
526 // environment variable to a value greater than 0. 537 // environment variable to a value greater than 0.
527 // The test files are approximately 20 seconds long. 538 // The test files are approximately 20 seconds long.
528 TEST(WinAudioOutputTest, DISABLED_WASAPIAudioOutputStreamReadFromFile) { 539 TEST(WASAPIAudioOutputStreamTest, DISABLED_ReadFromFile) {
529 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 540 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
530 if (!CanRunAudioTests(audio_manager.get())) 541 if (!CanRunAudioTests(audio_manager.get()))
531 return; 542 return;
532 543
533 AudioOutputStreamWrapper aosw(audio_manager.get()); 544 AudioOutputStreamWrapper aosw(audio_manager.get());
534 AudioOutputStream* aos = aosw.Create(); 545 AudioOutputStream* aos = aosw.Create();
535 EXPECT_TRUE(aos->Open()); 546 EXPECT_TRUE(aos->Open());
536 547
537 std::string file_name; 548 std::string file_name;
538 if (aosw.sample_rate() == 48000) { 549 if (aosw.sample_rate() == 48000) {
(...skipping 27 matching lines...) Expand all
566 } 577 }
567 578
568 LOG(INFO) << ">> File playout has stopped."; 579 LOG(INFO) << ">> File playout has stopped.";
569 aos->Close(); 580 aos->Close();
570 } 581 }
571 582
572 // Verify that we can open the output stream in exclusive mode using a 583 // Verify that we can open the output stream in exclusive mode using a
573 // certain set of audio parameters and a sample rate of 48kHz. 584 // certain set of audio parameters and a sample rate of 48kHz.
574 // The expected outcomes of each setting in this test has been derived 585 // The expected outcomes of each setting in this test has been derived
575 // manually using log outputs (--v=1). 586 // manually using log outputs (--v=1).
576 TEST(WinAudioOutputTest, WASAPIExclusiveModeBufferSizesAt48kHz) { 587 TEST(WASAPIAudioOutputStreamTest, ExclusiveModeBufferSizesAt48kHz) {
577 if (!ExclusiveModeIsEnabled()) 588 if (!ExclusiveModeIsEnabled())
578 return; 589 return;
579 590
580 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 591 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
581 if (!CanRunAudioTests(audio_manager.get())) 592 if (!CanRunAudioTests(audio_manager.get()))
582 return; 593 return;
583 594
584 AudioOutputStreamWrapper aosw(audio_manager.get()); 595 AudioOutputStreamWrapper aosw(audio_manager.get());
585 596
586 // 10ms @ 48kHz shall work. 597 // 10ms @ 48kHz shall work.
(...skipping 30 matching lines...) Expand all
617 // 3.3333ms @ 48kHz <=> smallest possible buffer size we can use. 628 // 3.3333ms @ 48kHz <=> smallest possible buffer size we can use.
618 aos = aosw.Create(48000, 160); 629 aos = aosw.Create(48000, 160);
619 EXPECT_TRUE(aos->Open()); 630 EXPECT_TRUE(aos->Open());
620 aos->Close(); 631 aos->Close();
621 } 632 }
622 633
623 // Verify that we can open the output stream in exclusive mode using a 634 // Verify that we can open the output stream in exclusive mode using a
624 // certain set of audio parameters and a sample rate of 44.1kHz. 635 // certain set of audio parameters and a sample rate of 44.1kHz.
625 // The expected outcomes of each setting in this test has been derived 636 // The expected outcomes of each setting in this test has been derived
626 // manually using log outputs (--v=1). 637 // manually using log outputs (--v=1).
627 TEST(WinAudioOutputTest, WASAPIExclusiveModeBufferSizesAt44kHz) { 638 TEST(WASAPIAudioOutputStreamTest, ExclusiveModeBufferSizesAt44kHz) {
628 if (!ExclusiveModeIsEnabled()) 639 if (!ExclusiveModeIsEnabled())
629 return; 640 return;
630 641
631 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 642 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
632 if (!CanRunAudioTests(audio_manager.get())) 643 if (!CanRunAudioTests(audio_manager.get()))
633 return; 644 return;
634 645
635 AudioOutputStreamWrapper aosw(audio_manager.get()); 646 AudioOutputStreamWrapper aosw(audio_manager.get());
636 647
637 // 10ms @ 44.1kHz does not work due to misalignment. 648 // 10ms @ 44.1kHz does not work due to misalignment.
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 aos->Close(); 686 aos->Close();
676 687
677 // 3.6281ms @ 44.1kHz <=> smallest possible buffer size we can use. 688 // 3.6281ms @ 44.1kHz <=> smallest possible buffer size we can use.
678 aos = aosw.Create(44100, 160); 689 aos = aosw.Create(44100, 160);
679 EXPECT_TRUE(aos->Open()); 690 EXPECT_TRUE(aos->Open());
680 aos->Close(); 691 aos->Close();
681 } 692 }
682 693
683 // Verify that we can open and start the output stream in exclusive mode at 694 // Verify that we can open and start the output stream in exclusive mode at
684 // the lowest possible delay at 48kHz. 695 // the lowest possible delay at 48kHz.
685 TEST(WinAudioOutputTest, WASAPIExclusiveModeMinBufferSizeAt48kHz) { 696 TEST(WASAPIAudioOutputStreamTest, ExclusiveModeMinBufferSizeAt48kHz) {
686 if (!ExclusiveModeIsEnabled()) 697 if (!ExclusiveModeIsEnabled())
687 return; 698 return;
688 699
689 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 700 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
690 if (!CanRunAudioTests(audio_manager.get())) 701 if (!CanRunAudioTests(audio_manager.get()))
691 return; 702 return;
692 703
693 MessageLoopForUI loop; 704 MessageLoopForUI loop;
694 MockAudioSourceCallback source; 705 MockAudioSourceCallback source;
695 706
(...skipping 21 matching lines...) Expand all
717 aos->Start(&source); 728 aos->Start(&source);
718 loop.PostDelayedTask(FROM_HERE, MessageLoop::QuitClosure(), 729 loop.PostDelayedTask(FROM_HERE, MessageLoop::QuitClosure(),
719 TestTimeouts::action_timeout()); 730 TestTimeouts::action_timeout());
720 loop.Run(); 731 loop.Run();
721 aos->Stop(); 732 aos->Stop();
722 aos->Close(); 733 aos->Close();
723 } 734 }
724 735
725 // Verify that we can open and start the output stream in exclusive mode at 736 // Verify that we can open and start the output stream in exclusive mode at
726 // the lowest possible delay at 44.1kHz. 737 // the lowest possible delay at 44.1kHz.
727 TEST(WinAudioOutputTest, WASAPIExclusiveModeMinBufferSizeAt44kHz) { 738 TEST(WASAPIAudioOutputStreamTest, ExclusiveModeMinBufferSizeAt44kHz) {
728 if (!ExclusiveModeIsEnabled()) 739 if (!ExclusiveModeIsEnabled())
729 return; 740 return;
730 741
731 scoped_ptr<AudioManager> audio_manager(AudioManager::Create()); 742 scoped_ptr<AudioManager> audio_manager(AudioManager::Create());
732 if (!CanRunAudioTests(audio_manager.get())) 743 if (!CanRunAudioTests(audio_manager.get()))
733 return; 744 return;
734 745
735 MessageLoopForUI loop; 746 MessageLoopForUI loop;
736 MockAudioSourceCallback source; 747 MockAudioSourceCallback source;
737 748
(...skipping 20 matching lines...) Expand all
758 769
759 aos->Start(&source); 770 aos->Start(&source);
760 loop.PostDelayedTask(FROM_HERE, MessageLoop::QuitClosure(), 771 loop.PostDelayedTask(FROM_HERE, MessageLoop::QuitClosure(),
761 TestTimeouts::action_timeout()); 772 TestTimeouts::action_timeout());
762 loop.Run(); 773 loop.Run();
763 aos->Stop(); 774 aos->Stop();
764 aos->Close(); 775 aos->Close();
765 } 776 }
766 777
767 } // namespace media 778 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698