OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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(); | |
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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
420 const int CallTest::kNackRtpHistoryMs = 1000; | 426 const int CallTest::kNackRtpHistoryMs = 1000; |
421 | 427 |
422 BaseTest::BaseTest() {} | 428 BaseTest::BaseTest() {} |
423 | 429 |
424 BaseTest::BaseTest(unsigned int timeout_ms) : RtpRtcpObserver(timeout_ms) { | 430 BaseTest::BaseTest(unsigned int timeout_ms) : RtpRtcpObserver(timeout_ms) { |
425 } | 431 } |
426 | 432 |
427 BaseTest::~BaseTest() { | 433 BaseTest::~BaseTest() { |
428 } | 434 } |
429 | 435 |
| 436 std::unique_ptr<FakeAudioDevice::Capturer> BaseTest::CreateCapturer() { |
| 437 return FakeAudioDevice::CreatePulsedNoiseCapturer(256, 48000); |
| 438 } |
| 439 |
| 440 std::unique_ptr<FakeAudioDevice::Renderer> BaseTest::CreateRenderer() { |
| 441 return FakeAudioDevice::CreateDiscardRenderer(48000); |
| 442 } |
| 443 |
| 444 void BaseTest::OnFakeAudioDevicesCreated(FakeAudioDevice* send_audio_device, |
| 445 FakeAudioDevice* recv_audio_device) { |
| 446 } |
| 447 |
430 Call::Config BaseTest::GetSenderCallConfig() { | 448 Call::Config BaseTest::GetSenderCallConfig() { |
431 return Call::Config(&event_log_); | 449 return Call::Config(&event_log_); |
432 } | 450 } |
433 | 451 |
434 Call::Config BaseTest::GetReceiverCallConfig() { | 452 Call::Config BaseTest::GetReceiverCallConfig() { |
435 return Call::Config(&event_log_); | 453 return Call::Config(&event_log_); |
436 } | 454 } |
437 | 455 |
438 void BaseTest::OnCallsCreated(Call* sender_call, Call* receiver_call) { | 456 void BaseTest::OnCallsCreated(Call* sender_call, Call* receiver_call) { |
439 } | 457 } |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
484 void BaseTest::ModifyFlexfecConfigs( | 502 void BaseTest::ModifyFlexfecConfigs( |
485 std::vector<FlexfecReceiveStream::Config>* receive_configs) {} | 503 std::vector<FlexfecReceiveStream::Config>* receive_configs) {} |
486 | 504 |
487 void BaseTest::OnFlexfecStreamsCreated( | 505 void BaseTest::OnFlexfecStreamsCreated( |
488 const std::vector<FlexfecReceiveStream*>& receive_streams) {} | 506 const std::vector<FlexfecReceiveStream*>& receive_streams) {} |
489 | 507 |
490 void BaseTest::OnFrameGeneratorCapturerCreated( | 508 void BaseTest::OnFrameGeneratorCapturerCreated( |
491 FrameGeneratorCapturer* frame_generator_capturer) { | 509 FrameGeneratorCapturer* frame_generator_capturer) { |
492 } | 510 } |
493 | 511 |
| 512 void BaseTest::OnTestFinished() { |
| 513 } |
| 514 |
494 SendTest::SendTest(unsigned int timeout_ms) : BaseTest(timeout_ms) { | 515 SendTest::SendTest(unsigned int timeout_ms) : BaseTest(timeout_ms) { |
495 } | 516 } |
496 | 517 |
497 bool SendTest::ShouldCreateReceivers() const { | 518 bool SendTest::ShouldCreateReceivers() const { |
498 return false; | 519 return false; |
499 } | 520 } |
500 | 521 |
501 EndToEndTest::EndToEndTest() {} | 522 EndToEndTest::EndToEndTest() {} |
502 | 523 |
503 EndToEndTest::EndToEndTest(unsigned int timeout_ms) : BaseTest(timeout_ms) { | 524 EndToEndTest::EndToEndTest(unsigned int timeout_ms) : BaseTest(timeout_ms) { |
504 } | 525 } |
505 | 526 |
506 bool EndToEndTest::ShouldCreateReceivers() const { | 527 bool EndToEndTest::ShouldCreateReceivers() const { |
507 return true; | 528 return true; |
508 } | 529 } |
509 | 530 |
510 } // namespace test | 531 } // namespace test |
511 } // namespace webrtc | 532 } // namespace webrtc |
OLD | NEW |