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

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

Issue 23731007: Implicit audio output device selection for getUserMedia. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Rebase 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
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 529 matching lines...) Expand 10 before | Expand all | Expand 10 after
540 ASSERT_TRUE(external_media.valid()); 540 ASSERT_TRUE(external_media.valid());
541 base::WaitableEvent event(false, false); 541 base::WaitableEvent event(false, false);
542 scoped_ptr<WebRTCMediaProcessImpl> media_process( 542 scoped_ptr<WebRTCMediaProcessImpl> media_process(
543 new WebRTCMediaProcessImpl(&event)); 543 new WebRTCMediaProcessImpl(&event));
544 int ch = base->CreateChannel(); 544 int ch = base->CreateChannel();
545 EXPECT_NE(-1, ch); 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 = 550 scoped_refptr<WebRtcAudioRenderer> renderer(
551 new WebRtcAudioRenderer(kRenderViewId); 551 CreateDefaultWebRtcAudioRenderer(kRenderViewId));
552
552 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get())); 553 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get()));
553 renderer->Play(); 554 renderer->Play();
554 555
555 EXPECT_TRUE(event.TimedWait(TestTimeouts::action_timeout())); 556 EXPECT_TRUE(event.TimedWait(TestTimeouts::action_timeout()));
556 WaitForIOThreadCompletion(); 557 WaitForIOThreadCompletion();
557 558
558 EXPECT_TRUE(webrtc_audio_device->Playing()); 559 EXPECT_TRUE(webrtc_audio_device->Playing());
559 EXPECT_FALSE(webrtc_audio_device->Recording()); 560 EXPECT_FALSE(webrtc_audio_device->Recording());
560 EXPECT_EQ(ch, media_process->channel_id()); 561 EXPECT_EQ(ch, media_process->channel_id());
561 EXPECT_EQ(webrtc::kPlaybackPerChannel, media_process->type()); 562 EXPECT_EQ(webrtc::kPlaybackPerChannel, media_process->type());
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
715 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get()); 716 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get());
716 ASSERT_TRUE(base.valid()); 717 ASSERT_TRUE(base.valid());
717 718
718 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device( 719 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device(
719 new WebRtcAudioDeviceImpl()); 720 new WebRtcAudioDeviceImpl());
720 int err = base->Init(webrtc_audio_device.get()); 721 int err = base->Init(webrtc_audio_device.get());
721 ASSERT_EQ(0, err); 722 ASSERT_EQ(0, err);
722 int ch = base->CreateChannel(); 723 int ch = base->CreateChannel();
723 EXPECT_NE(-1, ch); 724 EXPECT_NE(-1, ch);
724 EXPECT_EQ(0, base->StartPlayout(ch)); 725 EXPECT_EQ(0, base->StartPlayout(ch));
725 scoped_refptr<WebRtcAudioRenderer> renderer = 726 scoped_refptr<WebRtcAudioRenderer> renderer(
726 new WebRtcAudioRenderer(kRenderViewId); 727 CreateDefaultWebRtcAudioRenderer(kRenderViewId));
727 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get())); 728 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get()));
728 renderer->Play(); 729 renderer->Play();
729 730
730 ScopedWebRTCPtr<webrtc::VoEFile> file(engine.get()); 731 ScopedWebRTCPtr<webrtc::VoEFile> file(engine.get());
731 ASSERT_TRUE(file.valid()); 732 ASSERT_TRUE(file.valid());
732 int duration = 0; 733 int duration = 0;
733 EXPECT_EQ(0, file->GetFileDuration(file_path.c_str(), duration, 734 EXPECT_EQ(0, file->GetFileDuration(file_path.c_str(), duration,
734 webrtc::kFileFormatPcm16kHzFile)); 735 webrtc::kFileFormatPcm16kHzFile));
735 EXPECT_NE(0, duration); 736 EXPECT_NE(0, duration);
736 737
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
825 static_cast<webrtc::AudioTrackInterface*>(local_audio_track.get())-> 826 static_cast<webrtc::AudioTrackInterface*>(local_audio_track.get())->
826 GetRenderer()->AddChannel(ch); 827 GetRenderer()->AddChannel(ch);
827 828
828 ScopedWebRTCPtr<webrtc::VoENetwork> network(engine.get()); 829 ScopedWebRTCPtr<webrtc::VoENetwork> network(engine.get());
829 ASSERT_TRUE(network.valid()); 830 ASSERT_TRUE(network.valid());
830 scoped_ptr<WebRTCTransportImpl> transport( 831 scoped_ptr<WebRTCTransportImpl> transport(
831 new WebRTCTransportImpl(network.get())); 832 new WebRTCTransportImpl(network.get()));
832 EXPECT_EQ(0, network->RegisterExternalTransport(ch, *transport.get())); 833 EXPECT_EQ(0, network->RegisterExternalTransport(ch, *transport.get()));
833 EXPECT_EQ(0, base->StartPlayout(ch)); 834 EXPECT_EQ(0, base->StartPlayout(ch));
834 EXPECT_EQ(0, base->StartSend(ch)); 835 EXPECT_EQ(0, base->StartSend(ch));
835 scoped_refptr<WebRtcAudioRenderer> renderer = 836 scoped_refptr<WebRtcAudioRenderer> renderer(
836 new WebRtcAudioRenderer(kRenderViewId); 837 CreateDefaultWebRtcAudioRenderer(kRenderViewId));
837 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get())); 838 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get()));
838 renderer->Play(); 839 renderer->Play();
839 840
840 LOG(INFO) << ">> You should now be able to hear yourself in loopback..."; 841 LOG(INFO) << ">> You should now be able to hear yourself in loopback...";
841 message_loop_.PostDelayedTask(FROM_HERE, 842 message_loop_.PostDelayedTask(FROM_HERE,
842 base::MessageLoop::QuitClosure(), 843 base::MessageLoop::QuitClosure(),
843 base::TimeDelta::FromSeconds(2)); 844 base::TimeDelta::FromSeconds(2));
844 message_loop_.Run(); 845 message_loop_.Run();
845 846
846 local_audio_track->Stop(); 847 local_audio_track->Stop();
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after
936 EXPECT_CALL(media_observer(), 937 EXPECT_CALL(media_observer(),
937 OnSetAudioStreamStatus(_, 1, _)).Times(AnyNumber()); 938 OnSetAudioStreamStatus(_, 1, _)).Times(AnyNumber());
938 EXPECT_CALL(media_observer(), 939 EXPECT_CALL(media_observer(),
939 OnSetAudioStreamPlaying(_, 1, true)); 940 OnSetAudioStreamPlaying(_, 1, true));
940 EXPECT_CALL(media_observer(), 941 EXPECT_CALL(media_observer(),
941 OnDeleteAudioStream(_, 1)).Times(AnyNumber()); 942 OnDeleteAudioStream(_, 1)).Times(AnyNumber());
942 943
943 base::WaitableEvent event(false, false); 944 base::WaitableEvent event(false, false);
944 scoped_ptr<MockWebRtcAudioRendererSource> renderer_source( 945 scoped_ptr<MockWebRtcAudioRendererSource> renderer_source(
945 new MockWebRtcAudioRendererSource(&event)); 946 new MockWebRtcAudioRendererSource(&event));
946 scoped_refptr<WebRtcAudioRenderer> renderer = 947
947 new WebRtcAudioRenderer(kRenderViewId); 948 scoped_refptr<WebRtcAudioRenderer> renderer(
949 CreateDefaultWebRtcAudioRenderer(kRenderViewId));
948 renderer->Initialize(renderer_source.get()); 950 renderer->Initialize(renderer_source.get());
949 951
950 // Start the timer and playout. 952 // Start the timer and playout.
951 base::Time start_time = base::Time::Now(); 953 base::Time start_time = base::Time::Now();
952 renderer->Play(); 954 renderer->Play();
953 EXPECT_TRUE(event.TimedWait(TestTimeouts::action_timeout())); 955 EXPECT_TRUE(event.TimedWait(TestTimeouts::action_timeout()));
954 int delay = (base::Time::Now() - start_time).InMilliseconds(); 956 int delay = (base::Time::Now() - start_time).InMilliseconds();
955 PrintPerfResultMs("webrtc_playout_setup_c", "t", delay); 957 PrintPerfResultMs("webrtc_playout_setup_c", "t", delay);
956 958
957 renderer->Stop(); 959 renderer->Stop();
(...skipping 25 matching lines...) Expand all
983 #endif 985 #endif
984 986
985 TEST_F(MAYBE_WebRTCAudioDeviceTest, 987 TEST_F(MAYBE_WebRTCAudioDeviceTest,
986 MAYBE_WebRtcLoopbackTimeWithSignalProcessing) { 988 MAYBE_WebRtcLoopbackTimeWithSignalProcessing) {
987 int latency = RunWebRtcLoopbackTimeTest(audio_manager_.get(), true); 989 int latency = RunWebRtcLoopbackTimeTest(audio_manager_.get(), true);
988 PrintPerfResultMs("webrtc_loopback_with_signal_processing (100 packets)", 990 PrintPerfResultMs("webrtc_loopback_with_signal_processing (100 packets)",
989 "t", latency); 991 "t", latency);
990 } 992 }
991 993
992 } // namespace content 994 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/media_stream_impl.cc ('k') | content/renderer/media/webrtc_audio_renderer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698