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()); | |
stefan-webrtc
2017/03/20 14:40:10
It would be nice if this was done in roughly the s
oprypin_webrtc
2017/03/20 15:09:16
I have not changed the logic of CallTest here, onl
stefan-webrtc
2017/03/20 15:42:32
Ack
| |
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 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
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 Loading... | |
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 |
OLD | NEW |