OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 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 #include <algorithm> | 10 #include <algorithm> |
(...skipping 278 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
289 | 289 |
290 AudioSendStream::Config audio_send_config(&audio_send_transport); | 290 AudioSendStream::Config audio_send_config(&audio_send_transport); |
291 audio_send_config.voe_channel_id = send_channel_id; | 291 audio_send_config.voe_channel_id = send_channel_id; |
292 audio_send_config.rtp.ssrc = kAudioSendSsrc; | 292 audio_send_config.rtp.ssrc = kAudioSendSsrc; |
293 AudioSendStream* audio_send_stream = | 293 AudioSendStream* audio_send_stream = |
294 sender_call_->CreateAudioSendStream(audio_send_config); | 294 sender_call_->CreateAudioSendStream(audio_send_config); |
295 | 295 |
296 CodecInst isac = {103, "ISAC", 16000, 480, 1, 32000}; | 296 CodecInst isac = {103, "ISAC", 16000, 480, 1, 32000}; |
297 EXPECT_EQ(0, voe_codec->SetSendCodec(send_channel_id, isac)); | 297 EXPECT_EQ(0, voe_codec->SetSendCodec(send_channel_id, isac)); |
298 | 298 |
299 send_config_.rtp.nack.rtp_history_ms = kNackRtpHistoryMs; | 299 video_send_config_.rtp.nack.rtp_history_ms = kNackRtpHistoryMs; |
300 if (fec) { | 300 if (fec) { |
301 send_config_.rtp.fec.red_payload_type = kRedPayloadType; | 301 video_send_config_.rtp.fec.red_payload_type = kRedPayloadType; |
302 send_config_.rtp.fec.ulpfec_payload_type = kUlpfecPayloadType; | 302 video_send_config_.rtp.fec.ulpfec_payload_type = kUlpfecPayloadType; |
303 receive_configs_[0].rtp.fec.red_payload_type = kRedPayloadType; | 303 video_receive_configs_[0].rtp.fec.red_payload_type = kRedPayloadType; |
304 receive_configs_[0].rtp.fec.ulpfec_payload_type = kUlpfecPayloadType; | 304 video_receive_configs_[0].rtp.fec.ulpfec_payload_type = kUlpfecPayloadType; |
305 } | 305 } |
306 receive_configs_[0].rtp.nack.rtp_history_ms = 1000; | 306 video_receive_configs_[0].rtp.nack.rtp_history_ms = 1000; |
307 receive_configs_[0].renderer = &observer; | 307 video_receive_configs_[0].renderer = &observer; |
308 receive_configs_[0].sync_group = kSyncGroup; | 308 video_receive_configs_[0].sync_group = kSyncGroup; |
309 | 309 |
310 AudioReceiveStream::Config audio_recv_config; | 310 AudioReceiveStream::Config audio_recv_config; |
311 audio_recv_config.rtp.remote_ssrc = kAudioSendSsrc; | 311 audio_recv_config.rtp.remote_ssrc = kAudioSendSsrc; |
312 audio_recv_config.rtp.local_ssrc = kAudioRecvSsrc; | 312 audio_recv_config.rtp.local_ssrc = kAudioRecvSsrc; |
313 audio_recv_config.voe_channel_id = recv_channel_id; | 313 audio_recv_config.voe_channel_id = recv_channel_id; |
314 audio_recv_config.sync_group = kSyncGroup; | 314 audio_recv_config.sync_group = kSyncGroup; |
315 | 315 |
316 AudioReceiveStream* audio_receive_stream; | 316 AudioReceiveStream* audio_receive_stream; |
317 | 317 |
318 if (create_audio_first) { | 318 if (create_audio_first) { |
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
457 capture_time_list_.end(), | 457 capture_time_list_.end(), |
458 std::make_pair(header.timestamp, capture_timestamp)); | 458 std::make_pair(header.timestamp, capture_timestamp)); |
459 return SEND_PACKET; | 459 return SEND_PACKET; |
460 } | 460 } |
461 | 461 |
462 void OnFrameGeneratorCapturerCreated( | 462 void OnFrameGeneratorCapturerCreated( |
463 test::FrameGeneratorCapturer* frame_generator_capturer) override { | 463 test::FrameGeneratorCapturer* frame_generator_capturer) override { |
464 capturer_ = frame_generator_capturer; | 464 capturer_ = frame_generator_capturer; |
465 } | 465 } |
466 | 466 |
467 void ModifyConfigs(VideoSendStream::Config* send_config, | 467 void ModifyVideoConfigs( |
468 std::vector<VideoReceiveStream::Config>* receive_configs, | 468 VideoSendStream::Config* send_config, |
469 VideoEncoderConfig* encoder_config) override { | 469 std::vector<VideoReceiveStream::Config>* receive_configs, |
| 470 VideoEncoderConfig* encoder_config) override { |
470 (*receive_configs)[0].renderer = this; | 471 (*receive_configs)[0].renderer = this; |
471 // Enable the receiver side rtt calculation. | 472 // Enable the receiver side rtt calculation. |
472 (*receive_configs)[0].rtp.rtcp_xr.receiver_reference_time_report = true; | 473 (*receive_configs)[0].rtp.rtcp_xr.receiver_reference_time_report = true; |
473 } | 474 } |
474 | 475 |
475 void PerformTest() override { | 476 void PerformTest() override { |
476 EXPECT_TRUE(Wait()) << "Timed out while waiting for " | 477 EXPECT_TRUE(Wait()) << "Timed out while waiting for " |
477 "estimated capture NTP time to be " | 478 "estimated capture NTP time to be " |
478 "within bounds."; | 479 "within bounds."; |
479 } | 480 } |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
524 LoadObserver(LoadObserver::Load tested_load, int encode_delay_ms) | 525 LoadObserver(LoadObserver::Load tested_load, int encode_delay_ms) |
525 : SendTest(kLongTimeoutMs), | 526 : SendTest(kLongTimeoutMs), |
526 tested_load_(tested_load), | 527 tested_load_(tested_load), |
527 encoder_(Clock::GetRealTimeClock(), encode_delay_ms) {} | 528 encoder_(Clock::GetRealTimeClock(), encode_delay_ms) {} |
528 | 529 |
529 void OnLoadUpdate(Load load) override { | 530 void OnLoadUpdate(Load load) override { |
530 if (load == tested_load_) | 531 if (load == tested_load_) |
531 observation_complete_.Set(); | 532 observation_complete_.Set(); |
532 } | 533 } |
533 | 534 |
534 void ModifyConfigs(VideoSendStream::Config* send_config, | 535 void ModifyVideoConfigs( |
535 std::vector<VideoReceiveStream::Config>* receive_configs, | 536 VideoSendStream::Config* send_config, |
536 VideoEncoderConfig* encoder_config) override { | 537 std::vector<VideoReceiveStream::Config>* receive_configs, |
| 538 VideoEncoderConfig* encoder_config) override { |
537 send_config->overuse_callback = this; | 539 send_config->overuse_callback = this; |
538 send_config->encoder_settings.encoder = &encoder_; | 540 send_config->encoder_settings.encoder = &encoder_; |
539 } | 541 } |
540 | 542 |
541 void PerformTest() override { | 543 void PerformTest() override { |
542 EXPECT_TRUE(Wait()) << "Timed out before receiving an overuse callback."; | 544 EXPECT_TRUE(Wait()) << "Timed out before receiving an overuse callback."; |
543 } | 545 } |
544 | 546 |
545 LoadObserver::Load tested_load_; | 547 LoadObserver::Load tested_load_; |
546 test::DelayedEncoder encoder_; | 548 test::DelayedEncoder encoder_; |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
606 } | 608 } |
607 } | 609 } |
608 if (num_bitrate_observations_in_range_ == | 610 if (num_bitrate_observations_in_range_ == |
609 kNumBitrateObservationsInRange) | 611 kNumBitrateObservationsInRange) |
610 observation_complete_.Set(); | 612 observation_complete_.Set(); |
611 } | 613 } |
612 } | 614 } |
613 return SEND_PACKET; | 615 return SEND_PACKET; |
614 } | 616 } |
615 | 617 |
616 void OnStreamsCreated( | 618 void OnVideoStreamsCreated( |
617 VideoSendStream* send_stream, | 619 VideoSendStream* send_stream, |
618 const std::vector<VideoReceiveStream*>& receive_streams) override { | 620 const std::vector<VideoReceiveStream*>& receive_streams) override { |
619 send_stream_ = send_stream; | 621 send_stream_ = send_stream; |
620 } | 622 } |
621 | 623 |
622 void ModifyConfigs(VideoSendStream::Config* send_config, | 624 void ModifyVideoConfigs( |
623 std::vector<VideoReceiveStream::Config>* receive_configs, | 625 VideoSendStream::Config* send_config, |
624 VideoEncoderConfig* encoder_config) override { | 626 std::vector<VideoReceiveStream::Config>* receive_configs, |
| 627 VideoEncoderConfig* encoder_config) override { |
625 if (pad_to_min_bitrate_) { | 628 if (pad_to_min_bitrate_) { |
626 encoder_config->min_transmit_bitrate_bps = kMinTransmitBitrateBps; | 629 encoder_config->min_transmit_bitrate_bps = kMinTransmitBitrateBps; |
627 } else { | 630 } else { |
628 RTC_DCHECK_EQ(0, encoder_config->min_transmit_bitrate_bps); | 631 RTC_DCHECK_EQ(0, encoder_config->min_transmit_bitrate_bps); |
629 } | 632 } |
630 } | 633 } |
631 | 634 |
632 void PerformTest() override { | 635 void PerformTest() override { |
633 EXPECT_TRUE(Wait()) << "Timeout while waiting for send-bitrate stats."; | 636 EXPECT_TRUE(Wait()) << "Timeout while waiting for send-bitrate stats."; |
634 } | 637 } |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
691 } | 694 } |
692 return FakeEncoder::SetRates(new_target_bitrate_kbps, framerate); | 695 return FakeEncoder::SetRates(new_target_bitrate_kbps, framerate); |
693 } | 696 } |
694 | 697 |
695 Call::Config GetSenderCallConfig() override { | 698 Call::Config GetSenderCallConfig() override { |
696 Call::Config config = EndToEndTest::GetSenderCallConfig(); | 699 Call::Config config = EndToEndTest::GetSenderCallConfig(); |
697 config.bitrate_config.start_bitrate_bps = kInitialBitrateKbps * 1000; | 700 config.bitrate_config.start_bitrate_bps = kInitialBitrateKbps * 1000; |
698 return config; | 701 return config; |
699 } | 702 } |
700 | 703 |
701 void ModifyConfigs(VideoSendStream::Config* send_config, | 704 void ModifyVideoConfigs( |
702 std::vector<VideoReceiveStream::Config>* receive_configs, | 705 VideoSendStream::Config* send_config, |
703 VideoEncoderConfig* encoder_config) override { | 706 std::vector<VideoReceiveStream::Config>* receive_configs, |
| 707 VideoEncoderConfig* encoder_config) override { |
704 send_config->encoder_settings.encoder = this; | 708 send_config->encoder_settings.encoder = this; |
705 encoder_config->streams[0].min_bitrate_bps = 50000; | 709 encoder_config->streams[0].min_bitrate_bps = 50000; |
706 encoder_config->streams[0].target_bitrate_bps = | 710 encoder_config->streams[0].target_bitrate_bps = |
707 encoder_config->streams[0].max_bitrate_bps = 2000000; | 711 encoder_config->streams[0].max_bitrate_bps = 2000000; |
708 | 712 |
709 encoder_config_ = *encoder_config; | 713 encoder_config_ = *encoder_config; |
710 } | 714 } |
711 | 715 |
712 void OnStreamsCreated( | 716 void OnVideoStreamsCreated( |
713 VideoSendStream* send_stream, | 717 VideoSendStream* send_stream, |
714 const std::vector<VideoReceiveStream*>& receive_streams) override { | 718 const std::vector<VideoReceiveStream*>& receive_streams) override { |
715 send_stream_ = send_stream; | 719 send_stream_ = send_stream; |
716 } | 720 } |
717 | 721 |
718 void PerformTest() override { | 722 void PerformTest() override { |
719 ASSERT_TRUE(time_to_reconfigure_.Wait(kDefaultTimeoutMs)) | 723 ASSERT_TRUE(time_to_reconfigure_.Wait(kDefaultTimeoutMs)) |
720 << "Timed out before receiving an initial high bitrate."; | 724 << "Timed out before receiving an initial high bitrate."; |
721 encoder_config_.streams[0].width *= 2; | 725 encoder_config_.streams[0].width *= 2; |
722 encoder_config_.streams[0].height *= 2; | 726 encoder_config_.streams[0].height *= 2; |
723 EXPECT_TRUE(send_stream_->ReconfigureVideoEncoder(encoder_config_)); | 727 EXPECT_TRUE(send_stream_->ReconfigureVideoEncoder(encoder_config_)); |
724 EXPECT_TRUE(Wait()) | 728 EXPECT_TRUE(Wait()) |
725 << "Timed out while waiting for a couple of high bitrate estimates " | 729 << "Timed out while waiting for a couple of high bitrate estimates " |
726 "after reconfiguring the send stream."; | 730 "after reconfiguring the send stream."; |
727 } | 731 } |
728 | 732 |
729 private: | 733 private: |
730 rtc::Event time_to_reconfigure_; | 734 rtc::Event time_to_reconfigure_; |
731 int encoder_inits_; | 735 int encoder_inits_; |
732 uint32_t last_set_bitrate_; | 736 uint32_t last_set_bitrate_; |
733 VideoSendStream* send_stream_; | 737 VideoSendStream* send_stream_; |
734 VideoEncoderConfig encoder_config_; | 738 VideoEncoderConfig encoder_config_; |
735 } test; | 739 } test; |
736 | 740 |
737 RunBaseTest(&test, FakeNetworkPipe::Config()); | 741 RunBaseTest(&test, FakeNetworkPipe::Config()); |
738 } | 742 } |
739 | 743 |
740 } // namespace webrtc | 744 } // namespace webrtc |
OLD | NEW |