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

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: 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 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 513
514 EXPECT_CALL(media_observer(), 514 EXPECT_CALL(media_observer(),
515 OnSetAudioStreamStatus(_, 1, StrEq("created"))).Times(1); 515 OnSetAudioStreamStatus(_, 1, StrEq("created"))).Times(1);
516 EXPECT_CALL(media_observer(), 516 EXPECT_CALL(media_observer(),
517 OnSetAudioStreamPlaying(_, 1, true)).Times(1); 517 OnSetAudioStreamPlaying(_, 1, true)).Times(1);
518 EXPECT_CALL(media_observer(), 518 EXPECT_CALL(media_observer(),
519 OnSetAudioStreamStatus(_, 1, StrEq("closed"))).Times(1); 519 OnSetAudioStreamStatus(_, 1, StrEq("closed"))).Times(1);
520 EXPECT_CALL(media_observer(), 520 EXPECT_CALL(media_observer(),
521 OnDeleteAudioStream(_, 1)).Times(AnyNumber()); 521 OnDeleteAudioStream(_, 1)).Times(AnyNumber());
522 522
523 media::AudioHardwareConfig* hardware_config =
524 RenderThreadImpl::current()->GetAudioHardwareConfig();
525 int sample_rate = hardware_config->GetOutputSampleRate();
526 int frames_per_buffer = hardware_config->GetOutputBufferSize();
527
523 scoped_refptr<WebRtcAudioRenderer> renderer = 528 scoped_refptr<WebRtcAudioRenderer> renderer =
524 new WebRtcAudioRenderer(kRenderViewId); 529 new WebRtcAudioRenderer(kRenderViewId, -1, sample_rate,
530 frames_per_buffer);
525 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device( 531 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device(
526 new WebRtcAudioDeviceImpl()); 532 new WebRtcAudioDeviceImpl());
527 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get())); 533 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get()));
528 534
529 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create()); 535 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create());
530 ASSERT_TRUE(engine.valid()); 536 ASSERT_TRUE(engine.valid());
531 537
532 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get()); 538 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get());
533 ASSERT_TRUE(base.valid()); 539 ASSERT_TRUE(base.valid());
534 int err = base->Init(webrtc_audio_device.get()); 540 int err = base->Init(webrtc_audio_device.get());
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
694 700
695 EXPECT_CALL(media_observer(), 701 EXPECT_CALL(media_observer(),
696 OnSetAudioStreamStatus(_, 1, StrEq("created"))).Times(1); 702 OnSetAudioStreamStatus(_, 1, StrEq("created"))).Times(1);
697 EXPECT_CALL(media_observer(), 703 EXPECT_CALL(media_observer(),
698 OnSetAudioStreamPlaying(_, 1, true)).Times(1); 704 OnSetAudioStreamPlaying(_, 1, true)).Times(1);
699 EXPECT_CALL(media_observer(), 705 EXPECT_CALL(media_observer(),
700 OnSetAudioStreamStatus(_, 1, StrEq("closed"))).Times(1); 706 OnSetAudioStreamStatus(_, 1, StrEq("closed"))).Times(1);
701 EXPECT_CALL(media_observer(), 707 EXPECT_CALL(media_observer(),
702 OnDeleteAudioStream(_, 1)).Times(AnyNumber()); 708 OnDeleteAudioStream(_, 1)).Times(AnyNumber());
703 709
710 media::AudioHardwareConfig* hardware_config =
711 RenderThreadImpl::current()->GetAudioHardwareConfig();
712 int sample_rate = hardware_config->GetOutputSampleRate();
713 int frames_per_buffer = hardware_config->GetOutputBufferSize();
714
704 scoped_refptr<WebRtcAudioRenderer> renderer = 715 scoped_refptr<WebRtcAudioRenderer> renderer =
705 new WebRtcAudioRenderer(kRenderViewId); 716 new WebRtcAudioRenderer(kRenderViewId, -1, sample_rate,
717 frames_per_buffer);
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())); 720 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get()));
709 721
710 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create()); 722 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create());
711 ASSERT_TRUE(engine.valid()); 723 ASSERT_TRUE(engine.valid());
712 724
713 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get()); 725 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get());
714 ASSERT_TRUE(base.valid()); 726 ASSERT_TRUE(base.valid());
715 int err = base->Init(webrtc_audio_device.get()); 727 int err = base->Init(webrtc_audio_device.get());
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
771 if (!HardwareSampleRatesAreValid()) 783 if (!HardwareSampleRatesAreValid())
772 return; 784 return;
773 785
774 EXPECT_CALL(media_observer(), 786 EXPECT_CALL(media_observer(),
775 OnSetAudioStreamPlaying(_, 1, true)); 787 OnSetAudioStreamPlaying(_, 1, true));
776 EXPECT_CALL(media_observer(), 788 EXPECT_CALL(media_observer(),
777 OnSetAudioStreamStatus(_, 1, StrEq("closed"))); 789 OnSetAudioStreamStatus(_, 1, StrEq("closed")));
778 EXPECT_CALL(media_observer(), 790 EXPECT_CALL(media_observer(),
779 OnDeleteAudioStream(_, 1)).Times(AnyNumber()); 791 OnDeleteAudioStream(_, 1)).Times(AnyNumber());
780 792
793 media::AudioHardwareConfig* hardware_config =
794 RenderThreadImpl::current()->GetAudioHardwareConfig();
795 int sample_rate = hardware_config->GetOutputSampleRate();
796 int frames_per_buffer = hardware_config->GetOutputBufferSize();
797
781 scoped_refptr<WebRtcAudioRenderer> renderer = 798 scoped_refptr<WebRtcAudioRenderer> renderer =
782 new WebRtcAudioRenderer(kRenderViewId); 799 new WebRtcAudioRenderer(kRenderViewId, -1, sample_rate,
800 frames_per_buffer);
783 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device( 801 scoped_refptr<WebRtcAudioDeviceImpl> webrtc_audio_device(
784 new WebRtcAudioDeviceImpl()); 802 new WebRtcAudioDeviceImpl());
785 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get())); 803 EXPECT_TRUE(webrtc_audio_device->SetAudioRenderer(renderer.get()));
786 804
787 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create()); 805 WebRTCAutoDelete<webrtc::VoiceEngine> engine(webrtc::VoiceEngine::Create());
788 ASSERT_TRUE(engine.valid()); 806 ASSERT_TRUE(engine.valid());
789 807
790 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get()); 808 ScopedWebRTCPtr<webrtc::VoEBase> base(engine.get());
791 ASSERT_TRUE(base.valid()); 809 ASSERT_TRUE(base.valid());
792 int err = base->Init(webrtc_audio_device.get()); 810 int err = base->Init(webrtc_audio_device.get());
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 EXPECT_CALL(media_observer(), 934 EXPECT_CALL(media_observer(),
917 OnSetAudioStreamStatus(_, 1, _)).Times(AnyNumber()); 935 OnSetAudioStreamStatus(_, 1, _)).Times(AnyNumber());
918 EXPECT_CALL(media_observer(), 936 EXPECT_CALL(media_observer(),
919 OnSetAudioStreamPlaying(_, 1, true)); 937 OnSetAudioStreamPlaying(_, 1, true));
920 EXPECT_CALL(media_observer(), 938 EXPECT_CALL(media_observer(),
921 OnDeleteAudioStream(_, 1)).Times(AnyNumber()); 939 OnDeleteAudioStream(_, 1)).Times(AnyNumber());
922 940
923 base::WaitableEvent event(false, false); 941 base::WaitableEvent event(false, false);
924 scoped_ptr<MockWebRtcAudioRendererSource> renderer_source( 942 scoped_ptr<MockWebRtcAudioRendererSource> renderer_source(
925 new MockWebRtcAudioRendererSource(&event)); 943 new MockWebRtcAudioRendererSource(&event));
944
945 media::AudioHardwareConfig* hardware_config =
946 RenderThreadImpl::current()->GetAudioHardwareConfig();
947 int sample_rate = hardware_config->GetOutputSampleRate();
948 int frames_per_buffer = hardware_config->GetOutputBufferSize();
949
926 scoped_refptr<WebRtcAudioRenderer> renderer = 950 scoped_refptr<WebRtcAudioRenderer> renderer =
927 new WebRtcAudioRenderer(kRenderViewId); 951 new WebRtcAudioRenderer(kRenderViewId, -1, sample_rate,
Jói 2013/09/06 14:49:26 These parameters and the boilerplate to get the sa
tommi (sloooow) - chröme 2013/09/06 16:56:54 Done. Added a factory method to WebRTCAudioDevice
952 frames_per_buffer);
928 renderer->Initialize(renderer_source.get()); 953 renderer->Initialize(renderer_source.get());
929 954
930 // Start the timer and playout. 955 // Start the timer and playout.
931 base::Time start_time = base::Time::Now(); 956 base::Time start_time = base::Time::Now();
932 renderer->Play(); 957 renderer->Play();
933 EXPECT_TRUE(event.TimedWait(TestTimeouts::action_timeout())); 958 EXPECT_TRUE(event.TimedWait(TestTimeouts::action_timeout()));
934 int delay = (base::Time::Now() - start_time).InMilliseconds(); 959 int delay = (base::Time::Now() - start_time).InMilliseconds();
935 PrintPerfResultMs("webrtc_playout_setup_c", "t", delay); 960 PrintPerfResultMs("webrtc_playout_setup_c", "t", delay);
936 961
937 renderer->Stop(); 962 renderer->Stop();
(...skipping 25 matching lines...) Expand all
963 #endif 988 #endif
964 989
965 TEST_F(MAYBE_WebRTCAudioDeviceTest, 990 TEST_F(MAYBE_WebRTCAudioDeviceTest,
966 MAYBE_WebRtcLoopbackTimeWithSignalProcessing) { 991 MAYBE_WebRtcLoopbackTimeWithSignalProcessing) {
967 int latency = RunWebRtcLoopbackTimeTest(audio_manager_.get(), true); 992 int latency = RunWebRtcLoopbackTimeTest(audio_manager_.get(), true);
968 PrintPerfResultMs("webrtc_loopback_with_signal_processing (100 packets)", 993 PrintPerfResultMs("webrtc_loopback_with_signal_processing (100 packets)",
969 "t", latency); 994 "t", latency);
970 } 995 }
971 996
972 } // namespace content 997 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698