| 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 |