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

Side by Side Diff: webrtc/test/call_test.cc

Issue 2694203002: Low-bandwidth audio testing (Closed)
Patch Set: Fix build errors Created 3 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
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 CallTest::~CallTest() { 43 CallTest::~CallTest() {
44 } 44 }
45 45
46 void CallTest::RunBaseTest(BaseTest* test) { 46 void CallTest::RunBaseTest(BaseTest* test) {
47 num_video_streams_ = test->GetNumVideoStreams(); 47 num_video_streams_ = test->GetNumVideoStreams();
48 num_audio_streams_ = test->GetNumAudioStreams(); 48 num_audio_streams_ = test->GetNumAudioStreams();
49 num_flexfec_streams_ = test->GetNumFlexfecStreams(); 49 num_flexfec_streams_ = test->GetNumFlexfecStreams();
50 RTC_DCHECK(num_video_streams_ > 0 || num_audio_streams_ > 0); 50 RTC_DCHECK(num_video_streams_ > 0 || num_audio_streams_ > 0);
51 Call::Config send_config(test->GetSenderCallConfig()); 51 Call::Config send_config(test->GetSenderCallConfig());
52 if (num_audio_streams_ > 0) { 52 if (num_audio_streams_ > 0) {
53 CreateFakeAudioDevices(test->CreateCapturer(), test->CreateRenderer());
54 test->OnFakeAudioDevicesCreated(fake_send_audio_device_.get(),
55 fake_recv_audio_device_.get());
53 CreateVoiceEngines(); 56 CreateVoiceEngines();
54 AudioState::Config audio_state_config; 57 AudioState::Config audio_state_config;
55 audio_state_config.voice_engine = voe_send_.voice_engine; 58 audio_state_config.voice_engine = voe_send_.voice_engine;
56 audio_state_config.audio_mixer = AudioMixerImpl::Create(); 59 audio_state_config.audio_mixer = AudioMixerImpl::Create();
57 send_config.audio_state = AudioState::Create(audio_state_config); 60 send_config.audio_state = AudioState::Create(audio_state_config);
58 } 61 }
59 CreateSenderCall(send_config); 62 CreateSenderCall(send_config);
60 if (test->ShouldCreateReceivers()) { 63 if (test->ShouldCreateReceivers()) {
61 Call::Config recv_config(test->GetReceiverCallConfig()); 64 Call::Config recv_config(test->GetReceiverCallConfig());
62 if (num_audio_streams_ > 0) { 65 if (num_audio_streams_ > 0) {
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 Start(); 128 Start();
126 test->PerformTest(); 129 test->PerformTest();
127 send_transport_->StopSending(); 130 send_transport_->StopSending();
128 receive_transport_->StopSending(); 131 receive_transport_->StopSending();
129 Stop(); 132 Stop();
130 133
131 DestroyStreams(); 134 DestroyStreams();
132 DestroyCalls(); 135 DestroyCalls();
133 if (num_audio_streams_ > 0) 136 if (num_audio_streams_ > 0)
134 DestroyVoiceEngines(); 137 DestroyVoiceEngines();
138
139 test->OnTestFinished();
135 } 140 }
136 141
137 void CallTest::Start() { 142 void CallTest::Start() {
138 if (video_send_stream_) 143 if (video_send_stream_)
139 video_send_stream_->Start(); 144 video_send_stream_->Start();
140 for (VideoReceiveStream* video_recv_stream : video_receive_streams_) 145 for (VideoReceiveStream* video_recv_stream : video_receive_streams_)
141 video_recv_stream->Start(); 146 video_recv_stream->Start();
142 if (audio_send_stream_) { 147 if (audio_send_stream_) {
143 audio_send_stream_->Start(); 148 audio_send_stream_->Start();
144 } 149 }
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 void CallTest::CreateFrameGeneratorCapturer(int framerate, 296 void CallTest::CreateFrameGeneratorCapturer(int framerate,
292 int width, 297 int width,
293 int height) { 298 int height) {
294 frame_generator_capturer_.reset( 299 frame_generator_capturer_.reset(
295 test::FrameGeneratorCapturer::Create(width, height, framerate, clock_)); 300 test::FrameGeneratorCapturer::Create(width, height, framerate, clock_));
296 video_send_stream_->SetSource( 301 video_send_stream_->SetSource(
297 frame_generator_capturer_.get(), 302 frame_generator_capturer_.get(),
298 VideoSendStream::DegradationPreference::kBalanced); 303 VideoSendStream::DegradationPreference::kBalanced);
299 } 304 }
300 305
301 void CallTest::CreateFakeAudioDevices() { 306 void CallTest::CreateFakeAudioDevices(
307 std::unique_ptr<FakeAudioDevice::Capturer> capturer,
308 std::unique_ptr<FakeAudioDevice::Renderer> renderer) {
302 fake_send_audio_device_.reset(new FakeAudioDevice( 309 fake_send_audio_device_.reset(new FakeAudioDevice(
303 FakeAudioDevice::CreatePulsedNoiseCapturer(256, 48000), nullptr, 1.f)); 310 std::move(capturer), nullptr, 1.f));
304 fake_recv_audio_device_.reset(new FakeAudioDevice( 311 fake_recv_audio_device_.reset(new FakeAudioDevice(
305 nullptr, FakeAudioDevice::CreateDiscardRenderer(48000), 1.f)); 312 nullptr, std::move(renderer), 1.f));
306 } 313 }
307 314
308 void CallTest::CreateVideoStreams() { 315 void CallTest::CreateVideoStreams() {
309 RTC_DCHECK(video_send_stream_ == nullptr); 316 RTC_DCHECK(video_send_stream_ == nullptr);
310 RTC_DCHECK(video_receive_streams_.empty()); 317 RTC_DCHECK(video_receive_streams_.empty());
311 RTC_DCHECK(audio_send_stream_ == nullptr); 318 RTC_DCHECK(audio_send_stream_ == nullptr);
312 RTC_DCHECK(audio_receive_streams_.empty()); 319 RTC_DCHECK(audio_receive_streams_.empty());
313 320
314 video_send_stream_ = sender_call_->CreateVideoSendStream( 321 video_send_stream_ = sender_call_->CreateVideoSendStream(
315 video_send_config_.Copy(), video_encoder_config_.Copy()); 322 video_send_config_.Copy(), video_encoder_config_.Copy());
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
354 receiver_call_->DestroyVideoReceiveStream(video_recv_stream); 361 receiver_call_->DestroyVideoReceiveStream(video_recv_stream);
355 362
356 for (FlexfecReceiveStream* flexfec_recv_stream : flexfec_receive_streams_) 363 for (FlexfecReceiveStream* flexfec_recv_stream : flexfec_receive_streams_)
357 receiver_call_->DestroyFlexfecReceiveStream(flexfec_recv_stream); 364 receiver_call_->DestroyFlexfecReceiveStream(flexfec_recv_stream);
358 365
359 video_receive_streams_.clear(); 366 video_receive_streams_.clear();
360 allocated_decoders_.clear(); 367 allocated_decoders_.clear();
361 } 368 }
362 369
363 void CallTest::CreateVoiceEngines() { 370 void CallTest::CreateVoiceEngines() {
364 CreateFakeAudioDevices();
kjellander_webrtc 2017/03/17 07:11:41 Won't this affect other tests using this code?
oprypin_webrtc 2017/03/20 10:39:27 I only moved this call outside of CreateVoiceEngin
365 voe_send_.voice_engine = VoiceEngine::Create(); 371 voe_send_.voice_engine = VoiceEngine::Create();
366 voe_send_.base = VoEBase::GetInterface(voe_send_.voice_engine); 372 voe_send_.base = VoEBase::GetInterface(voe_send_.voice_engine);
367 EXPECT_EQ(0, voe_send_.base->Init(fake_send_audio_device_.get(), nullptr, 373 EXPECT_EQ(0, voe_send_.base->Init(fake_send_audio_device_.get(), nullptr,
368 decoder_factory_)); 374 decoder_factory_));
369 VoEBase::ChannelConfig config; 375 VoEBase::ChannelConfig config;
370 config.enable_voice_pacing = true; 376 config.enable_voice_pacing = true;
371 voe_send_.channel_id = voe_send_.base->CreateChannel(config); 377 voe_send_.channel_id = voe_send_.base->CreateChannel(config);
372 EXPECT_GE(voe_send_.channel_id, 0); 378 EXPECT_GE(voe_send_.channel_id, 0);
373 379
374 voe_recv_.voice_engine = VoiceEngine::Create(); 380 voe_recv_.voice_engine = VoiceEngine::Create();
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
418 const uint32_t CallTest::kReceiverLocalVideoSsrc = 0x123456; 424 const uint32_t CallTest::kReceiverLocalVideoSsrc = 0x123456;
419 const uint32_t CallTest::kReceiverLocalAudioSsrc = 0x1234567; 425 const uint32_t CallTest::kReceiverLocalAudioSsrc = 0x1234567;
420 const int CallTest::kNackRtpHistoryMs = 1000; 426 const int CallTest::kNackRtpHistoryMs = 1000;
421 427
422 BaseTest::BaseTest(unsigned int timeout_ms) : RtpRtcpObserver(timeout_ms) { 428 BaseTest::BaseTest(unsigned int timeout_ms) : RtpRtcpObserver(timeout_ms) {
423 } 429 }
424 430
425 BaseTest::~BaseTest() { 431 BaseTest::~BaseTest() {
426 } 432 }
427 433
434 std::unique_ptr<FakeAudioDevice::Capturer> BaseTest::CreateCapturer() {
435 return FakeAudioDevice::CreatePulsedNoiseCapturer(256, 48000);
436 }
437
438 std::unique_ptr<FakeAudioDevice::Renderer> BaseTest::CreateRenderer() {
439 return FakeAudioDevice::CreateDiscardRenderer(48000);
440 }
441
442 void BaseTest::OnFakeAudioDevicesCreated(FakeAudioDevice* send_audio_device,
443 FakeAudioDevice* recv_audio_device) {
444 }
445
428 Call::Config BaseTest::GetSenderCallConfig() { 446 Call::Config BaseTest::GetSenderCallConfig() {
429 return Call::Config(&event_log_); 447 return Call::Config(&event_log_);
430 } 448 }
431 449
432 Call::Config BaseTest::GetReceiverCallConfig() { 450 Call::Config BaseTest::GetReceiverCallConfig() {
433 return Call::Config(&event_log_); 451 return Call::Config(&event_log_);
434 } 452 }
435 453
436 void BaseTest::OnCallsCreated(Call* sender_call, Call* receiver_call) { 454 void BaseTest::OnCallsCreated(Call* sender_call, Call* receiver_call) {
437 } 455 }
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
482 void BaseTest::ModifyFlexfecConfigs( 500 void BaseTest::ModifyFlexfecConfigs(
483 std::vector<FlexfecReceiveStream::Config>* receive_configs) {} 501 std::vector<FlexfecReceiveStream::Config>* receive_configs) {}
484 502
485 void BaseTest::OnFlexfecStreamsCreated( 503 void BaseTest::OnFlexfecStreamsCreated(
486 const std::vector<FlexfecReceiveStream*>& receive_streams) {} 504 const std::vector<FlexfecReceiveStream*>& receive_streams) {}
487 505
488 void BaseTest::OnFrameGeneratorCapturerCreated( 506 void BaseTest::OnFrameGeneratorCapturerCreated(
489 FrameGeneratorCapturer* frame_generator_capturer) { 507 FrameGeneratorCapturer* frame_generator_capturer) {
490 } 508 }
491 509
510 void BaseTest::OnTestFinished() {
511 }
512
492 SendTest::SendTest(unsigned int timeout_ms) : BaseTest(timeout_ms) { 513 SendTest::SendTest(unsigned int timeout_ms) : BaseTest(timeout_ms) {
493 } 514 }
494 515
495 bool SendTest::ShouldCreateReceivers() const { 516 bool SendTest::ShouldCreateReceivers() const {
496 return false; 517 return false;
497 } 518 }
498 519
499 EndToEndTest::EndToEndTest(unsigned int timeout_ms) : BaseTest(timeout_ms) { 520 EndToEndTest::EndToEndTest(unsigned int timeout_ms) : BaseTest(timeout_ms) {
500 } 521 }
501 522
502 bool EndToEndTest::ShouldCreateReceivers() const { 523 bool EndToEndTest::ShouldCreateReceivers() const {
503 return true; 524 return true;
504 } 525 }
505 526
506 } // namespace test 527 } // namespace test
507 } // namespace webrtc 528 } // namespace webrtc
OLDNEW
« webrtc/audio/test/low_bandwidth_audio_test.py ('K') | « webrtc/test/call_test.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698