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

Side by Side Diff: content/renderer/media/webrtc_audio_device_unittest.cc

Issue 23533039: Re-enables three WebRTC unit tests in content (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Disabled Android and improved tests for all other platforms Created 7 years, 3 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
« no previous file with comments | « content/renderer/media/webrtc_audio_device_impl.cc ('k') | no next file » | 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) 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 <vector> 5 #include <vector>
6 6
7 #include "base/environment.h" 7 #include "base/environment.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/files/file_path.h" 9 #include "base/files/file_path.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 478 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 EXPECT_TRUE(CreateAndInitializeCapturer(webrtc_audio_device.get())); 489 EXPECT_TRUE(CreateAndInitializeCapturer(webrtc_audio_device.get()));
490 EXPECT_EQ(0, err); 490 EXPECT_EQ(0, err);
491 EXPECT_EQ(0, base->Terminate()); 491 EXPECT_EQ(0, base->Terminate());
492 } 492 }
493 493
494 // Verify that a call to webrtc::VoEBase::StartPlayout() starts audio output 494 // Verify that a call to webrtc::VoEBase::StartPlayout() starts audio output
495 // with the correct set of parameters. A WebRtcAudioDeviceImpl instance will 495 // with the correct set of parameters. A WebRtcAudioDeviceImpl instance will
496 // be utilized to implement the actual audio path. The test registers a 496 // be utilized to implement the actual audio path. The test registers a
497 // webrtc::VoEExternalMedia implementation to hijack the output audio and 497 // webrtc::VoEExternalMedia implementation to hijack the output audio and
498 // verify that streaming starts correctly. 498 // verify that streaming starts correctly.
499 // Disabled when running headless since the bots don't have the required config. 499 // TODO(henrika): include on Android as well as soon as alla race conditions
500 // Flaky, http://crbug.com/167299 . 500 // in OpenSLES are resolved.
501 TEST_F(MAYBE_WebRTCAudioDeviceTest, DISABLED_StartPlayout) { 501 #if defined(OS_ANDROID)
502 #define MAYBE_StartPlayout DISABLED_StartPlayout
503 #else
504 #define MAYBE_StartPlayout StartPlayout
505 #endif
506 TEST_F(MAYBE_WebRTCAudioDeviceTest, MAYBE_StartPlayout) {
502 if (!has_output_devices_) { 507 if (!has_output_devices_) {
503 LOG(WARNING) << "No output device detected."; 508 LOG(WARNING) << "No output device detected.";
504 return; 509 return;
505 } 510 }
506 511
507 scoped_ptr<media::AudioHardwareConfig> config = 512 scoped_ptr<media::AudioHardwareConfig> config =
508 CreateRealHardwareConfig(audio_manager_.get()); 513 CreateRealHardwareConfig(audio_manager_.get());
509 SetAudioHardwareConfig(config.get()); 514 SetAudioHardwareConfig(config.get());
515 media::AudioParameters params(config->GetOutputConfig());
510 516
511 if (!HardwareSampleRatesAreValid()) 517 if (!HardwareSampleRatesAreValid())
512 return; 518 return;
513 519
514 EXPECT_CALL(media_observer(), 520 EXPECT_CALL(media_observer(),
515 OnSetAudioStreamStatus(_, 1, StrEq("created"))).Times(1); 521 OnAudioStreamCreated(_, 1, params, StrEq(""))).Times(1);
516 EXPECT_CALL(media_observer(), 522 EXPECT_CALL(media_observer(),
517 OnSetAudioStreamPlaying(_, 1, true)).Times(1); 523 OnSetAudioStreamPlaying(_, 1, true)).Times(1);
518 EXPECT_CALL(media_observer(), 524 EXPECT_CALL(media_observer(),
519 OnSetAudioStreamStatus(_, 1, StrEq("closed"))).Times(1); 525 OnSetAudioStreamStatus(_, 1, StrEq("closed"))).Times(1);
520 EXPECT_CALL(media_observer(), 526 EXPECT_CALL(media_observer(),
521 OnDeleteAudioStream(_, 1)).Times(AnyNumber()); 527 OnDeleteAudioStream(_, 1)).Times(AnyNumber());
522 528
523 scoped_refptr<WebRtcAudioRenderer> renderer = 529 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create());
524 new WebRtcAudioRenderer(kRenderViewId); 530 ASSERT_TRUE(engine.valid());
531 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get());
532 ASSERT_TRUE(base.valid());
533
525 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device( 534 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device(
526 new WebRtcAudioDeviceImpl()); 535 new WebRtcAudioDeviceImpl());
527 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get()));
528
529 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create());
530 ASSERT_TRUE(engine.valid());
531
532 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get());
533 ASSERT_TRUE(base.valid());
534 int err = base->Init(webrtc_audio_device.get()); 536 int err = base->Init(webrtc_audio_device.get());
535 ASSERT_EQ(0, err); 537 ASSERT_EQ(0, err);
536 538
537 int ch = base->CreateChannel();
538 EXPECT_NE(-1, ch);
539
540 ScopedWebRTCPtr<webrtc::VoEExternalMedia> external_media(engine.get()); 539 ScopedWebRTCPtr<webrtc::VoEExternalMedia> external_media(engine.get());
541 ASSERT_TRUE(external_media.valid()); 540 ASSERT_TRUE(external_media.valid());
542
543 base::WaitableEvent event(false, false); 541 base::WaitableEvent event(false, false);
544 scoped_ptr<WebRTCMediaProcessImpl> media_process( 542 scoped_ptr<WebRTCMediaProcessImpl> media_process(
545 new WebRTCMediaProcessImpl(&event)); 543 new WebRTCMediaProcessImpl(&event));
544 int ch = base->CreateChannel();
545 EXPECT_NE(-1, ch);
546 EXPECT_EQ(0, external_media->RegisterExternalMediaProcessing( 546 EXPECT_EQ(0, external_media->RegisterExternalMediaProcessing(
547 ch, webrtc::kPlaybackPerChannel, *media_process.get())); 547 ch, webrtc::kPlaybackPerChannel, *media_process.get()));
548 548
549 EXPECT_EQ(0, base->StartPlayout(ch)); 549 EXPECT_EQ(0, base->StartPlayout(ch));
550 scoped_refptr<WebRtcAudioRenderer> renderer =
551 new WebRtcAudioRenderer(kRenderViewId);
552 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get()));
550 renderer->Play(); 553 renderer->Play();
551 554
552 EXPECT_TRUE(event.TimedWait(TestTimeouts::action_timeout())); 555 EXPECT_TRUE(event.TimedWait(TestTimeouts::action_timeout()));
553 WaitForIOThreadCompletion(); 556 WaitForIOThreadCompletion();
554 557
555 EXPECT_TRUE(webrtc_audio_device->Playing()); 558 EXPECT_TRUE(webrtc_audio_device->Playing());
556 EXPECT_FALSE(webrtc_audio_device->Recording()); 559 EXPECT_FALSE(webrtc_audio_device->Recording());
557 EXPECT_EQ(ch, media_process->channel_id()); 560 EXPECT_EQ(ch, media_process->channel_id());
558 EXPECT_EQ(webrtc::kPlaybackPerChannel, media_process->type()); 561 EXPECT_EQ(webrtc::kPlaybackPerChannel, media_process->type());
559 EXPECT_EQ(80, media_process->packet_size()); 562 EXPECT_EQ(80, media_process->packet_size());
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
667 EXPECT_EQ(0, external_media->DeRegisterExternalMediaProcessing( 670 EXPECT_EQ(0, external_media->DeRegisterExternalMediaProcessing(
668 ch, webrtc::kRecordingPerChannel)); 671 ch, webrtc::kRecordingPerChannel));
669 EXPECT_EQ(0, base->StopSend(ch)); 672 EXPECT_EQ(0, base->StopSend(ch));
670 673
671 local_audio_track->Stop(); 674 local_audio_track->Stop();
672 EXPECT_EQ(0, base->DeleteChannel(ch)); 675 EXPECT_EQ(0, base->DeleteChannel(ch));
673 EXPECT_EQ(0, base->Terminate()); 676 EXPECT_EQ(0, base->Terminate());
674 } 677 }
675 678
676 // Uses WebRtcAudioDeviceImpl to play a local wave file. 679 // Uses WebRtcAudioDeviceImpl to play a local wave file.
677 // Disabled when running headless since the bots don't have the required config. 680 // TODO(henrika): include on Android as well as soon as alla race conditions
678 // Flaky, http://crbug.com/167298 . 681 // in OpenSLES are resolved.
679 TEST_F(MAYBE_WebRTCAudioDeviceTest, DISABLED_PlayLocalFile) { 682 #if defined(OS_ANDROID)
683 #define MAYBE_PlayLocalFile DISABLED_PlayLocalFile
684 #else
685 #define MAYBE_PlayLocalFile PlayLocalFile
686 #endif
687 TEST_F(MAYBE_WebRTCAudioDeviceTest, MAYBE_PlayLocalFile) {
680 if (!has_output_devices_) { 688 if (!has_output_devices_) {
681 LOG(WARNING) << "No output device detected."; 689 LOG(WARNING) << "No output device detected.";
682 return; 690 return;
683 } 691 }
684 692
685 std::string file_path( 693 std::string file_path(
686 GetTestDataPath(FILE_PATH_LITERAL("speechmusic_mono_16kHz.pcm"))); 694 GetTestDataPath(FILE_PATH_LITERAL("speechmusic_mono_16kHz.pcm")));
687 695
688 scoped_ptr<media::AudioHardwareConfig> config = 696 scoped_ptr<media::AudioHardwareConfig> config =
689 CreateRealHardwareConfig(audio_manager_.get()); 697 CreateRealHardwareConfig(audio_manager_.get());
690 SetAudioHardwareConfig(config.get()); 698 SetAudioHardwareConfig(config.get());
699 media::AudioParameters params(config->GetOutputConfig());
691 700
692 if (!HardwareSampleRatesAreValid()) 701 if (!HardwareSampleRatesAreValid())
693 return; 702 return;
694 703
695 EXPECT_CALL(media_observer(), 704 EXPECT_CALL(media_observer(),
696 OnSetAudioStreamStatus(_, 1, StrEq("created"))).Times(1); 705 OnAudioStreamCreated(_, 1, params, StrEq(""))).Times(1);
697 EXPECT_CALL(media_observer(), 706 EXPECT_CALL(media_observer(),
698 OnSetAudioStreamPlaying(_, 1, true)).Times(1); 707 OnSetAudioStreamPlaying(_, 1, true)).Times(1);
699 EXPECT_CALL(media_observer(), 708 EXPECT_CALL(media_observer(),
700 OnSetAudioStreamStatus(_, 1, StrEq("closed"))).Times(1); 709 OnSetAudioStreamStatus(_, 1, StrEq("closed"))).Times(1);
701 EXPECT_CALL(media_observer(), 710 EXPECT_CALL(media_observer(),
702 OnDeleteAudioStream(_, 1)).Times(AnyNumber()); 711 OnDeleteAudioStream(_, 1)).Times(AnyNumber());
703 712
704 scoped_refptr<WebRtcAudioRenderer> renderer = 713 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create());
705 new WebRtcAudioRenderer(kRenderViewId); 714 ASSERT_TRUE(engine.valid());
715 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get());
716 ASSERT_TRUE(base.valid());
717
706 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device( 718 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device(
707 new WebRtcAudioDeviceImpl()); 719 new WebRtcAudioDeviceImpl());
708 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get()));
709
710 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create());
711 ASSERT_TRUE(engine.valid());
712
713 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get());
714 ASSERT_TRUE(base.valid());
715 int err = base->Init(webrtc_audio_device.get()); 720 int err = base->Init(webrtc_audio_device.get());
716 ASSERT_EQ(0, err); 721 ASSERT_EQ(0, err);
717
718 int ch = base->CreateChannel(); 722 int ch = base->CreateChannel();
719 EXPECT_NE(-1, ch); 723 EXPECT_NE(-1, ch);
720 EXPECT_EQ(0, base->StartPlayout(ch)); 724 EXPECT_EQ(0, base->StartPlayout(ch));
725 scoped_refptr<WebRtcAudioRenderer> renderer =
726 new WebRtcAudioRenderer(kRenderViewId);
727 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get()));
721 renderer->Play(); 728 renderer->Play();
722 729
723 ScopedWebRTCPtr<webrtc::VoEFile> file(engine.get()); 730 ScopedWebRTCPtr<webrtc::VoEFile> file(engine.get());
724 ASSERT_TRUE(file.valid()); 731 ASSERT_TRUE(file.valid());
725 int duration = 0; 732 int duration = 0;
726 EXPECT_EQ(0, file->GetFileDuration(file_path.c_str(), duration, 733 EXPECT_EQ(0, file->GetFileDuration(file_path.c_str(), duration,
727 webrtc::kFileFormatPcm16kHzFile)); 734 webrtc::kFileFormatPcm16kHzFile));
728 EXPECT_NE(0, duration); 735 EXPECT_NE(0, duration);
729 736
730 EXPECT_EQ(0, file->StartPlayingFileLocally(ch, file_path.c_str(), false, 737 EXPECT_EQ(0, file->StartPlayingFileLocally(ch, file_path.c_str(), false,
731 webrtc::kFileFormatPcm16kHzFile)); 738 webrtc::kFileFormatPcm16kHzFile));
732 739
733 // Play 2 seconds worth of audio and then quit. 740 // Play 2 seconds worth of audio and then quit.
734 message_loop_.PostDelayedTask(FROM_HERE, 741 message_loop_.PostDelayedTask(FROM_HERE,
735 base::MessageLoop::QuitClosure(), 742 base::MessageLoop::QuitClosure(),
736 base::TimeDelta::FromSeconds(6)); 743 base::TimeDelta::FromSeconds(2));
737 message_loop_.Run(); 744 message_loop_.Run();
738 745
739 renderer->Stop(); 746 renderer->Stop();
740 EXPECT_EQ(0, base->StopSend(ch)); 747 EXPECT_EQ(0, base->StopSend(ch));
741 EXPECT_EQ(0, base->StopPlayout(ch)); 748 EXPECT_EQ(0, base->StopPlayout(ch));
742 EXPECT_EQ(0, base->DeleteChannel(ch)); 749 EXPECT_EQ(0, base->DeleteChannel(ch));
743 EXPECT_EQ(0, base->Terminate()); 750 EXPECT_EQ(0, base->Terminate());
744 } 751 }
745 752
746 // Uses WebRtcAudioDeviceImpl to play out recorded audio in loopback. 753 // Uses WebRtcAudioDeviceImpl to play out recorded audio in loopback.
(...skipping 13 matching lines...) Expand all
760 #endif 767 #endif
761 TEST_F(MAYBE_WebRTCAudioDeviceTest, MAYBE_FullDuplexAudioWithAGC) { 768 TEST_F(MAYBE_WebRTCAudioDeviceTest, MAYBE_FullDuplexAudioWithAGC) {
762 if (!has_output_devices_ || !has_input_devices_) { 769 if (!has_output_devices_ || !has_input_devices_) {
763 LOG(WARNING) << "Missing audio devices."; 770 LOG(WARNING) << "Missing audio devices.";
764 return; 771 return;
765 } 772 }
766 773
767 scoped_ptr<media::AudioHardwareConfig> config = 774 scoped_ptr<media::AudioHardwareConfig> config =
768 CreateRealHardwareConfig(audio_manager_.get()); 775 CreateRealHardwareConfig(audio_manager_.get());
769 SetAudioHardwareConfig(config.get()); 776 SetAudioHardwareConfig(config.get());
777 media::AudioParameters params(config->GetOutputConfig());
770 778
771 if (!HardwareSampleRatesAreValid()) 779 if (!HardwareSampleRatesAreValid())
772 return; 780 return;
773 781
774 EXPECT_CALL(media_observer(), 782 EXPECT_CALL(media_observer(),
783 OnAudioStreamCreated(_, 1, params, StrEq(""))).Times(1);
784 EXPECT_CALL(media_observer(),
775 OnSetAudioStreamPlaying(_, 1, true)); 785 OnSetAudioStreamPlaying(_, 1, true));
776 EXPECT_CALL(media_observer(), 786 EXPECT_CALL(media_observer(),
777 OnSetAudioStreamStatus(_, 1, StrEq("closed"))); 787 OnSetAudioStreamStatus(_, 1, StrEq("closed")));
778 EXPECT_CALL(media_observer(), 788 EXPECT_CALL(media_observer(),
779 OnDeleteAudioStream(_, 1)).Times(AnyNumber()); 789 OnDeleteAudioStream(_, 1)).Times(AnyNumber());
780 790
781 scoped_refptr<WebRtcAudioRenderer> renderer = 791 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create());
782 new WebRtcAudioRenderer(kRenderViewId); 792 ASSERT_TRUE(engine.valid());
793 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get());
794 ASSERT_TRUE(base.valid());
795
783 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device( 796 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device(
784 new WebRtcAudioDeviceImpl()); 797 new WebRtcAudioDeviceImpl());
785 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get()));
786
787 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create());
788 ASSERT_TRUE(engine.valid());
789
790 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get());
791 ASSERT_TRUE(base.valid());
792 int err = base->Init(webrtc_audio_device.get()); 798 int err = base->Init(webrtc_audio_device.get());
793 ASSERT_EQ(0, err); 799 ASSERT_EQ(0, err);
794 800
795 ScopedWebRTCPtr<webrtc::VoEAudioProcessing> audio_processing(engine.get()); 801 ScopedWebRTCPtr<webrtc::VoEAudioProcessing> audio_processing(engine.get());
796 ASSERT_TRUE(audio_processing.valid()); 802 ASSERT_TRUE(audio_processing.valid());
797 #if defined(OS_ANDROID) 803 #if defined(OS_ANDROID)
798 // On Android, by default AGC is off. 804 // On Android, by default AGC is off.
799 bool enabled = true; 805 bool enabled = true;
800 webrtc::AgcModes agc_mode = webrtc::kAgcDefault; 806 webrtc::AgcModes agc_mode = webrtc::kAgcDefault;
801 EXPECT_EQ(0, audio_processing->GetAgcStatus(enabled, agc_mode)); 807 EXPECT_EQ(0, audio_processing->GetAgcStatus(enabled, agc_mode));
(...skipping 17 matching lines...) Expand all
819 static_cast<webrtc::AudioTrackInterface*>(local_audio_track.get())-> 825 static_cast<webrtc::AudioTrackInterface*>(local_audio_track.get())->
820 GetRenderer()->AddChannel(ch); 826 GetRenderer()->AddChannel(ch);
821 827
822 ScopedWebRTCPtr<webrtc::VoENetwork> network(engine.get()); 828 ScopedWebRTCPtr<webrtc::VoENetwork> network(engine.get());
823 ASSERT_TRUE(network.valid()); 829 ASSERT_TRUE(network.valid());
824 scoped_ptr<WebRTCTransportImpl> transport( 830 scoped_ptr<WebRTCTransportImpl> transport(
825 new WebRTCTransportImpl(network.get())); 831 new WebRTCTransportImpl(network.get()));
826 EXPECT_EQ(0, network->RegisterExternalTransport(ch, *transport.get())); 832 EXPECT_EQ(0, network->RegisterExternalTransport(ch, *transport.get()));
827 EXPECT_EQ(0, base->StartPlayout(ch)); 833 EXPECT_EQ(0, base->StartPlayout(ch));
828 EXPECT_EQ(0, base->StartSend(ch)); 834 EXPECT_EQ(0, base->StartSend(ch));
835 scoped_refptr<WebRtcAudioRenderer> renderer =
836 new WebRtcAudioRenderer(kRenderViewId);
837 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get()));
829 renderer->Play(); 838 renderer->Play();
830 839
831 LOG(INFO) << ">> You should now be able to hear yourself in loopback..."; 840 LOG(INFO) << ">> You should now be able to hear yourself in loopback...";
832 message_loop_.PostDelayedTask(FROM_HERE, 841 message_loop_.PostDelayedTask(FROM_HERE,
833 base::MessageLoop::QuitClosure(), 842 base::MessageLoop::QuitClosure(),
834 base::TimeDelta::FromSeconds(2)); 843 base::TimeDelta::FromSeconds(2));
835 message_loop_.Run(); 844 message_loop_.Run();
836 845
837 local_audio_track->Stop(); 846 local_audio_track->Stop();
838 renderer->Stop(); 847 renderer->Stop();
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
893 int delay = (base::Time::Now() - start_time).InMilliseconds(); 902 int delay = (base::Time::Now() - start_time).InMilliseconds();
894 PrintPerfResultMs("webrtc_recording_setup_c", "t", delay); 903 PrintPerfResultMs("webrtc_recording_setup_c", "t", delay);
895 904
896 local_audio_track->RemoveSink(sink.get()); 905 local_audio_track->RemoveSink(sink.get());
897 local_audio_track->Stop(); 906 local_audio_track->Stop();
898 EXPECT_EQ(0, base->StopSend(ch)); 907 EXPECT_EQ(0, base->StopSend(ch));
899 EXPECT_EQ(0, base->DeleteChannel(ch)); 908 EXPECT_EQ(0, base->DeleteChannel(ch));
900 EXPECT_EQ(0, base->Terminate()); 909 EXPECT_EQ(0, base->Terminate());
901 } 910 }
902 911
903 TEST_F(MAYBE_WebRTCAudioDeviceTest, WebRtcPlayoutSetupTime) { 912
913 // TODO(henrika): include on Android as well as soon as alla race conditions
914 // in OpenSLES are resolved.
915 #if defined(OS_ANDROID)
916 #define MAYBE_WebRtcPlayoutSetupTime DISABLED_WebRtcPlayoutSetupTime
917 #else
918 #define MAYBE_WebRtcPlayoutSetupTime WebRtcPlayoutSetupTime
919 #endif
920 TEST_F(MAYBE_WebRTCAudioDeviceTest, MAYBE_WebRtcPlayoutSetupTime) {
904 if (!has_output_devices_) { 921 if (!has_output_devices_) {
905 LOG(WARNING) << "No output device detected."; 922 LOG(WARNING) << "No output device detected.";
906 return; 923 return;
907 } 924 }
908 925
909 scoped_ptr<media::AudioHardwareConfig> config = 926 scoped_ptr<media::AudioHardwareConfig> config =
910 CreateRealHardwareConfig(audio_manager_.get()); 927 CreateRealHardwareConfig(audio_manager_.get());
911 SetAudioHardwareConfig(config.get()); 928 SetAudioHardwareConfig(config.get());
929 media::AudioParameters params(config->GetOutputConfig());
912 930
913 if (!HardwareSampleRatesAreValid()) 931 if (!HardwareSampleRatesAreValid())
914 return; 932 return;
915 933
916 EXPECT_CALL(media_observer(), 934 EXPECT_CALL(media_observer(),
935 OnAudioStreamCreated(_, 1, params, StrEq(""))).Times(1);
936 EXPECT_CALL(media_observer(),
917 OnSetAudioStreamStatus(_, 1, _)).Times(AnyNumber()); 937 OnSetAudioStreamStatus(_, 1, _)).Times(AnyNumber());
918 EXPECT_CALL(media_observer(), 938 EXPECT_CALL(media_observer(),
919 OnSetAudioStreamPlaying(_, 1, true)); 939 OnSetAudioStreamPlaying(_, 1, true));
920 EXPECT_CALL(media_observer(), 940 EXPECT_CALL(media_observer(),
921 OnDeleteAudioStream(_, 1)).Times(AnyNumber()); 941 OnDeleteAudioStream(_, 1)).Times(AnyNumber());
922 942
923 base::WaitableEvent event(false, false); 943 base::WaitableEvent event(false, false);
924 scoped_ptr<MockWebRtcAudioRendererSource> renderer_source( 944 scoped_ptr<MockWebRtcAudioRendererSource> renderer_source(
925 new MockWebRtcAudioRendererSource(&event)); 945 new MockWebRtcAudioRendererSource(&event));
926 scoped_refptr<WebRtcAudioRenderer> renderer = 946 scoped_refptr<WebRtcAudioRenderer> renderer =
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
963 #endif 983 #endif
964 984
965 TEST_F(MAYBE_WebRTCAudioDeviceTest, 985 TEST_F(MAYBE_WebRTCAudioDeviceTest,
966 MAYBE_WebRtcLoopbackTimeWithSignalProcessing) { 986 MAYBE_WebRtcLoopbackTimeWithSignalProcessing) {
967 int latency = RunWebRtcLoopbackTimeTest(audio_manager_.get(), true); 987 int latency = RunWebRtcLoopbackTimeTest(audio_manager_.get(), true);
968 PrintPerfResultMs("webrtc_loopback_with_signal_processing (100 packets)", 988 PrintPerfResultMs("webrtc_loopback_with_signal_processing (100 packets)",
969 "t", latency); 989 "t", latency);
970 } 990 }
971 991
972 } // namespace content 992 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/webrtc_audio_device_impl.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698