| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2004 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 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 it = rtx_types.find(config.encoder_settings.payload_type); | 95 it = rtx_types.find(config.encoder_settings.payload_type); |
| 96 EXPECT_TRUE(it != rtx_types.end() && | 96 EXPECT_TRUE(it != rtx_types.end() && |
| 97 it->second == config.rtp.rtx.payload_type); | 97 it->second == config.rtp.rtx.payload_type); |
| 98 | 98 |
| 99 if (config.rtp.ulpfec.red_rtx_payload_type != -1) { | 99 if (config.rtp.ulpfec.red_rtx_payload_type != -1) { |
| 100 it = rtx_types.find(config.rtp.ulpfec.red_payload_type); | 100 it = rtx_types.find(config.rtp.ulpfec.red_payload_type); |
| 101 EXPECT_TRUE(it != rtx_types.end() && | 101 EXPECT_TRUE(it != rtx_types.end() && |
| 102 it->second == config.rtp.ulpfec.red_rtx_payload_type); | 102 it->second == config.rtp.ulpfec.red_rtx_payload_type); |
| 103 } | 103 } |
| 104 } | 104 } |
| 105 |
| 106 cricket::MediaConfig GetMediaConfig() { |
| 107 cricket::MediaConfig media_config; |
| 108 media_config.video.enable_cpu_overuse_detection = false; |
| 109 return media_config; |
| 110 } |
| 105 } // namespace | 111 } // namespace |
| 106 | 112 |
| 107 namespace cricket { | 113 namespace cricket { |
| 108 class WebRtcVideoEngine2Test : public ::testing::Test { | 114 class WebRtcVideoEngine2Test : public ::testing::Test { |
| 109 public: | 115 public: |
| 110 WebRtcVideoEngine2Test() : WebRtcVideoEngine2Test("") {} | 116 WebRtcVideoEngine2Test() : WebRtcVideoEngine2Test("") {} |
| 111 explicit WebRtcVideoEngine2Test(const char* field_trials) | 117 explicit WebRtcVideoEngine2Test(const char* field_trials) |
| 112 : override_field_trials_(field_trials), | 118 : override_field_trials_(field_trials), |
| 113 call_(webrtc::Call::Create(webrtc::Call::Config(&event_log_))), | 119 call_(webrtc::Call::Create(webrtc::Call::Config(&event_log_))), |
| 114 engine_() { | 120 engine_() { |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 | 329 |
| 324 // Verify removing header extension turns on applying rotation. | 330 // Verify removing header extension turns on applying rotation. |
| 325 parameters.extensions.clear(); | 331 parameters.extensions.clear(); |
| 326 EXPECT_TRUE(channel->SetSendParameters(parameters)); | 332 EXPECT_TRUE(channel->SetSendParameters(parameters)); |
| 327 EXPECT_TRUE(capturer.apply_rotation()); | 333 EXPECT_TRUE(capturer.apply_rotation()); |
| 328 } | 334 } |
| 329 | 335 |
| 330 TEST_F(WebRtcVideoEngine2Test, SetSendFailsBeforeSettingCodecs) { | 336 TEST_F(WebRtcVideoEngine2Test, SetSendFailsBeforeSettingCodecs) { |
| 331 engine_.Init(); | 337 engine_.Init(); |
| 332 std::unique_ptr<VideoMediaChannel> channel( | 338 std::unique_ptr<VideoMediaChannel> channel( |
| 333 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions())); | 339 engine_.CreateChannel(call_.get(), GetMediaConfig(), VideoOptions())); |
| 334 | 340 |
| 335 EXPECT_TRUE(channel->AddSendStream(StreamParams::CreateLegacy(123))); | 341 EXPECT_TRUE(channel->AddSendStream(StreamParams::CreateLegacy(123))); |
| 336 | 342 |
| 337 EXPECT_FALSE(channel->SetSend(true)) | 343 EXPECT_FALSE(channel->SetSend(true)) |
| 338 << "Channel should not start without codecs."; | 344 << "Channel should not start without codecs."; |
| 339 EXPECT_TRUE(channel->SetSend(false)) | 345 EXPECT_TRUE(channel->SetSend(false)) |
| 340 << "Channel should be stoppable even without set codecs."; | 346 << "Channel should be stoppable even without set codecs."; |
| 341 } | 347 } |
| 342 | 348 |
| 343 TEST_F(WebRtcVideoEngine2Test, GetStatsWithoutSendCodecsSetDoesNotCrash) { | 349 TEST_F(WebRtcVideoEngine2Test, GetStatsWithoutSendCodecsSetDoesNotCrash) { |
| 344 engine_.Init(); | 350 engine_.Init(); |
| 345 std::unique_ptr<VideoMediaChannel> channel( | 351 std::unique_ptr<VideoMediaChannel> channel( |
| 346 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions())); | 352 engine_.CreateChannel(call_.get(), GetMediaConfig(), VideoOptions())); |
| 347 EXPECT_TRUE(channel->AddSendStream(StreamParams::CreateLegacy(123))); | 353 EXPECT_TRUE(channel->AddSendStream(StreamParams::CreateLegacy(123))); |
| 348 VideoMediaInfo info; | 354 VideoMediaInfo info; |
| 349 channel->GetStats(&info); | 355 channel->GetStats(&info); |
| 350 } | 356 } |
| 351 | 357 |
| 352 TEST_F(WebRtcVideoEngine2Test, UseExternalFactoryForVp8WhenSupported) { | 358 TEST_F(WebRtcVideoEngine2Test, UseExternalFactoryForVp8WhenSupported) { |
| 353 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; | 359 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; |
| 354 encoder_factory.AddSupportedVideoCodecType("VP8"); | 360 encoder_factory.AddSupportedVideoCodecType("VP8"); |
| 355 | 361 |
| 356 std::unique_ptr<VideoMediaChannel> channel( | 362 std::unique_ptr<VideoMediaChannel> channel( |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 431 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; | 437 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; |
| 432 encoder_factory.AddSupportedVideoCodecType("VP8"); | 438 encoder_factory.AddSupportedVideoCodecType("VP8"); |
| 433 std::unique_ptr<VideoMediaChannel> channel; | 439 std::unique_ptr<VideoMediaChannel> channel; |
| 434 FakeCall* fake_call = new FakeCall(webrtc::Call::Config(&event_log_)); | 440 FakeCall* fake_call = new FakeCall(webrtc::Call::Config(&event_log_)); |
| 435 call_.reset(fake_call); | 441 call_.reset(fake_call); |
| 436 if (use_external_encoder) { | 442 if (use_external_encoder) { |
| 437 channel.reset(SetUpForExternalEncoderFactory(&encoder_factory)); | 443 channel.reset(SetUpForExternalEncoderFactory(&encoder_factory)); |
| 438 } else { | 444 } else { |
| 439 engine_.Init(); | 445 engine_.Init(); |
| 440 channel.reset( | 446 channel.reset( |
| 441 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions())); | 447 engine_.CreateChannel(call_.get(), GetMediaConfig(), VideoOptions())); |
| 442 } | 448 } |
| 443 ASSERT_TRUE( | 449 ASSERT_TRUE( |
| 444 channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc))); | 450 channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc))); |
| 445 cricket::VideoSendParameters parameters; | 451 cricket::VideoSendParameters parameters; |
| 446 parameters.codecs.push_back(GetEngineCodec("VP8")); | 452 parameters.codecs.push_back(GetEngineCodec("VP8")); |
| 447 EXPECT_TRUE(channel->SetSendParameters(parameters)); | 453 EXPECT_TRUE(channel->SetSendParameters(parameters)); |
| 448 EXPECT_TRUE(channel->SetSend(true)); | 454 EXPECT_TRUE(channel->SetSend(true)); |
| 449 FakeVideoSendStream* stream = fake_call->GetVideoSendStreams()[0]; | 455 FakeVideoSendStream* stream = fake_call->GetVideoSendStreams()[0]; |
| 450 | 456 |
| 451 EXPECT_EQ(use_external_encoder, | 457 EXPECT_EQ(use_external_encoder, |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 541 ADD_FAILURE() << "Unrecognized codec name: " << name; | 547 ADD_FAILURE() << "Unrecognized codec name: " << name; |
| 542 return cricket::VideoCodec(); | 548 return cricket::VideoCodec(); |
| 543 } | 549 } |
| 544 | 550 |
| 545 VideoMediaChannel* WebRtcVideoEngine2Test::SetUpForExternalEncoderFactory( | 551 VideoMediaChannel* WebRtcVideoEngine2Test::SetUpForExternalEncoderFactory( |
| 546 cricket::WebRtcVideoEncoderFactory* encoder_factory) { | 552 cricket::WebRtcVideoEncoderFactory* encoder_factory) { |
| 547 engine_.SetExternalEncoderFactory(encoder_factory); | 553 engine_.SetExternalEncoderFactory(encoder_factory); |
| 548 engine_.Init(); | 554 engine_.Init(); |
| 549 | 555 |
| 550 VideoMediaChannel* channel = | 556 VideoMediaChannel* channel = |
| 551 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions()); | 557 engine_.CreateChannel(call_.get(), GetMediaConfig(), VideoOptions()); |
| 552 cricket::VideoSendParameters parameters; | 558 cricket::VideoSendParameters parameters; |
| 553 // We need to look up the codec in the engine to get the correct payload type. | 559 // We need to look up the codec in the engine to get the correct payload type. |
| 554 for (const VideoCodec& codec : encoder_factory->supported_codecs()) | 560 for (const VideoCodec& codec : encoder_factory->supported_codecs()) |
| 555 parameters.codecs.push_back(GetEngineCodec(codec.name)); | 561 parameters.codecs.push_back(GetEngineCodec(codec.name)); |
| 556 | 562 |
| 557 EXPECT_TRUE(channel->SetSendParameters(parameters)); | 563 EXPECT_TRUE(channel->SetSendParameters(parameters)); |
| 558 | 564 |
| 559 return channel; | 565 return channel; |
| 560 } | 566 } |
| 561 | 567 |
| 562 VideoMediaChannel* WebRtcVideoEngine2Test::SetUpForExternalDecoderFactory( | 568 VideoMediaChannel* WebRtcVideoEngine2Test::SetUpForExternalDecoderFactory( |
| 563 cricket::WebRtcVideoDecoderFactory* decoder_factory, | 569 cricket::WebRtcVideoDecoderFactory* decoder_factory, |
| 564 const std::vector<VideoCodec>& codecs) { | 570 const std::vector<VideoCodec>& codecs) { |
| 565 engine_.SetExternalDecoderFactory(decoder_factory); | 571 engine_.SetExternalDecoderFactory(decoder_factory); |
| 566 engine_.Init(); | 572 engine_.Init(); |
| 567 | 573 |
| 568 VideoMediaChannel* channel = | 574 VideoMediaChannel* channel = |
| 569 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions()); | 575 engine_.CreateChannel(call_.get(), GetMediaConfig(), VideoOptions()); |
| 570 cricket::VideoRecvParameters parameters; | 576 cricket::VideoRecvParameters parameters; |
| 571 parameters.codecs = codecs; | 577 parameters.codecs = codecs; |
| 572 EXPECT_TRUE(channel->SetRecvParameters(parameters)); | 578 EXPECT_TRUE(channel->SetRecvParameters(parameters)); |
| 573 | 579 |
| 574 return channel; | 580 return channel; |
| 575 } | 581 } |
| 576 | 582 |
| 577 TEST_F(WebRtcVideoEngine2Test, UsesSimulcastAdapterForVp8Factories) { | 583 TEST_F(WebRtcVideoEngine2Test, UsesSimulcastAdapterForVp8Factories) { |
| 578 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; | 584 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; |
| 579 encoder_factory.AddSupportedVideoCodecType("VP8"); | 585 encoder_factory.AddSupportedVideoCodecType("VP8"); |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 632 | 638 |
| 633 TEST_F(WebRtcVideoEngine2Test, | 639 TEST_F(WebRtcVideoEngine2Test, |
| 634 DontUseExternalEncoderFactoryForUnsupportedCodecs) { | 640 DontUseExternalEncoderFactoryForUnsupportedCodecs) { |
| 635 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; | 641 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; |
| 636 encoder_factory.AddSupportedVideoCodecType("H264"); | 642 encoder_factory.AddSupportedVideoCodecType("H264"); |
| 637 | 643 |
| 638 engine_.SetExternalEncoderFactory(&encoder_factory); | 644 engine_.SetExternalEncoderFactory(&encoder_factory); |
| 639 engine_.Init(); | 645 engine_.Init(); |
| 640 | 646 |
| 641 std::unique_ptr<VideoMediaChannel> channel( | 647 std::unique_ptr<VideoMediaChannel> channel( |
| 642 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions())); | 648 engine_.CreateChannel(call_.get(), GetMediaConfig(), VideoOptions())); |
| 643 cricket::VideoSendParameters parameters; | 649 cricket::VideoSendParameters parameters; |
| 644 parameters.codecs.push_back(GetEngineCodec("VP8")); | 650 parameters.codecs.push_back(GetEngineCodec("VP8")); |
| 645 EXPECT_TRUE(channel->SetSendParameters(parameters)); | 651 EXPECT_TRUE(channel->SetSendParameters(parameters)); |
| 646 | 652 |
| 647 EXPECT_TRUE( | 653 EXPECT_TRUE( |
| 648 channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc))); | 654 channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc))); |
| 649 // Make sure DestroyVideoEncoder was called on the factory. | 655 // Make sure DestroyVideoEncoder was called on the factory. |
| 650 ASSERT_EQ(0u, encoder_factory.encoders().size()); | 656 ASSERT_EQ(0u, encoder_factory.encoders().size()); |
| 651 } | 657 } |
| 652 | 658 |
| 653 TEST_F(WebRtcVideoEngine2Test, | 659 TEST_F(WebRtcVideoEngine2Test, |
| 654 UsesSimulcastAdapterForVp8WithCombinedVP8AndH264Factory) { | 660 UsesSimulcastAdapterForVp8WithCombinedVP8AndH264Factory) { |
| 655 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; | 661 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; |
| 656 encoder_factory.AddSupportedVideoCodecType("VP8"); | 662 encoder_factory.AddSupportedVideoCodecType("VP8"); |
| 657 encoder_factory.AddSupportedVideoCodecType("H264"); | 663 encoder_factory.AddSupportedVideoCodecType("H264"); |
| 658 | 664 |
| 659 engine_.SetExternalEncoderFactory(&encoder_factory); | 665 engine_.SetExternalEncoderFactory(&encoder_factory); |
| 660 engine_.Init(); | 666 engine_.Init(); |
| 661 | 667 |
| 662 std::unique_ptr<VideoMediaChannel> channel( | 668 std::unique_ptr<VideoMediaChannel> channel( |
| 663 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions())); | 669 engine_.CreateChannel(call_.get(), GetMediaConfig(), VideoOptions())); |
| 664 cricket::VideoSendParameters parameters; | 670 cricket::VideoSendParameters parameters; |
| 665 parameters.codecs.push_back(GetEngineCodec("VP8")); | 671 parameters.codecs.push_back(GetEngineCodec("VP8")); |
| 666 EXPECT_TRUE(channel->SetSendParameters(parameters)); | 672 EXPECT_TRUE(channel->SetSendParameters(parameters)); |
| 667 | 673 |
| 668 std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs3); | 674 std::vector<uint32_t> ssrcs = MAKE_VECTOR(kSsrcs3); |
| 669 | 675 |
| 670 EXPECT_TRUE( | 676 EXPECT_TRUE( |
| 671 channel->AddSendStream(CreateSimStreamParams("cname", ssrcs))); | 677 channel->AddSendStream(CreateSimStreamParams("cname", ssrcs))); |
| 672 EXPECT_TRUE(channel->SetSend(true)); | 678 EXPECT_TRUE(channel->SetSend(true)); |
| 673 | 679 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 693 TEST_F(WebRtcVideoEngine2Test, | 699 TEST_F(WebRtcVideoEngine2Test, |
| 694 DestroysNonSimulcastEncoderFromCombinedVP8AndH264Factory) { | 700 DestroysNonSimulcastEncoderFromCombinedVP8AndH264Factory) { |
| 695 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; | 701 cricket::FakeWebRtcVideoEncoderFactory encoder_factory; |
| 696 encoder_factory.AddSupportedVideoCodecType("VP8"); | 702 encoder_factory.AddSupportedVideoCodecType("VP8"); |
| 697 encoder_factory.AddSupportedVideoCodecType("H264"); | 703 encoder_factory.AddSupportedVideoCodecType("H264"); |
| 698 | 704 |
| 699 engine_.SetExternalEncoderFactory(&encoder_factory); | 705 engine_.SetExternalEncoderFactory(&encoder_factory); |
| 700 engine_.Init(); | 706 engine_.Init(); |
| 701 | 707 |
| 702 std::unique_ptr<VideoMediaChannel> channel( | 708 std::unique_ptr<VideoMediaChannel> channel( |
| 703 engine_.CreateChannel(call_.get(), MediaConfig(), VideoOptions())); | 709 engine_.CreateChannel(call_.get(), GetMediaConfig(), VideoOptions())); |
| 704 cricket::VideoSendParameters parameters; | 710 cricket::VideoSendParameters parameters; |
| 705 parameters.codecs.push_back(GetEngineCodec("H264")); | 711 parameters.codecs.push_back(GetEngineCodec("H264")); |
| 706 EXPECT_TRUE(channel->SetSendParameters(parameters)); | 712 EXPECT_TRUE(channel->SetSendParameters(parameters)); |
| 707 | 713 |
| 708 EXPECT_TRUE( | 714 EXPECT_TRUE( |
| 709 channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc))); | 715 channel->AddSendStream(cricket::StreamParams::CreateLegacy(kSsrc))); |
| 710 ASSERT_EQ(1u, encoder_factory.encoders().size()); | 716 ASSERT_EQ(1u, encoder_factory.encoders().size()); |
| 711 | 717 |
| 712 // Send a frame of 720p. This should trigger a "real" encoder initialization. | 718 // Send a frame of 720p. This should trigger a "real" encoder initialization. |
| 713 cricket::VideoFormat format( | 719 cricket::VideoFormat format( |
| (...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 956 } | 962 } |
| 957 | 963 |
| 958 class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test { | 964 class WebRtcVideoChannel2Test : public WebRtcVideoEngine2Test { |
| 959 public: | 965 public: |
| 960 WebRtcVideoChannel2Test() : WebRtcVideoChannel2Test("") {} | 966 WebRtcVideoChannel2Test() : WebRtcVideoChannel2Test("") {} |
| 961 explicit WebRtcVideoChannel2Test(const char* field_trials) | 967 explicit WebRtcVideoChannel2Test(const char* field_trials) |
| 962 : WebRtcVideoEngine2Test(field_trials), last_ssrc_(0) {} | 968 : WebRtcVideoEngine2Test(field_trials), last_ssrc_(0) {} |
| 963 void SetUp() override { | 969 void SetUp() override { |
| 964 fake_call_.reset(new FakeCall(webrtc::Call::Config(&event_log_))); | 970 fake_call_.reset(new FakeCall(webrtc::Call::Config(&event_log_))); |
| 965 engine_.Init(); | 971 engine_.Init(); |
| 966 channel_.reset( | 972 channel_.reset(engine_.CreateChannel(fake_call_.get(), GetMediaConfig(), |
| 967 engine_.CreateChannel(fake_call_.get(), MediaConfig(), VideoOptions())); | 973 VideoOptions())); |
| 968 channel_->OnReadyToSend(true); | 974 channel_->OnReadyToSend(true); |
| 969 last_ssrc_ = 123; | 975 last_ssrc_ = 123; |
| 970 send_parameters_.codecs = engine_.codecs(); | 976 send_parameters_.codecs = engine_.codecs(); |
| 971 recv_parameters_.codecs = engine_.codecs(); | 977 recv_parameters_.codecs = engine_.codecs(); |
| 972 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_)); | 978 ASSERT_TRUE(channel_->SetSendParameters(send_parameters_)); |
| 973 } | 979 } |
| 974 | 980 |
| 975 protected: | 981 protected: |
| 976 FakeVideoSendStream* AddSendStream() { | 982 FakeVideoSendStream* AddSendStream() { |
| 977 return AddSendStream(StreamParams::CreateLegacy(++last_ssrc_)); | 983 return AddSendStream(StreamParams::CreateLegacy(++last_ssrc_)); |
| (...skipping 790 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1768 | 1774 |
| 1769 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); | 1775 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); |
| 1770 } | 1776 } |
| 1771 | 1777 |
| 1772 TEST_F(WebRtcVideoChannel2Test, SuspendBelowMinBitrateDisabledByDefault) { | 1778 TEST_F(WebRtcVideoChannel2Test, SuspendBelowMinBitrateDisabledByDefault) { |
| 1773 FakeVideoSendStream* stream = AddSendStream(); | 1779 FakeVideoSendStream* stream = AddSendStream(); |
| 1774 EXPECT_FALSE(stream->GetConfig().suspend_below_min_bitrate); | 1780 EXPECT_FALSE(stream->GetConfig().suspend_below_min_bitrate); |
| 1775 } | 1781 } |
| 1776 | 1782 |
| 1777 TEST_F(WebRtcVideoChannel2Test, SetMediaConfigSuspendBelowMinBitrate) { | 1783 TEST_F(WebRtcVideoChannel2Test, SetMediaConfigSuspendBelowMinBitrate) { |
| 1778 MediaConfig media_config = MediaConfig(); | 1784 MediaConfig media_config = GetMediaConfig(); |
| 1779 media_config.video.suspend_below_min_bitrate = true; | 1785 media_config.video.suspend_below_min_bitrate = true; |
| 1780 | 1786 |
| 1781 channel_.reset( | 1787 channel_.reset( |
| 1782 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions())); | 1788 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions())); |
| 1783 channel_->OnReadyToSend(true); | 1789 channel_->OnReadyToSend(true); |
| 1784 | 1790 |
| 1785 channel_->SetSendParameters(send_parameters_); | 1791 channel_->SetSendParameters(send_parameters_); |
| 1786 | 1792 |
| 1787 FakeVideoSendStream* stream = AddSendStream(); | 1793 FakeVideoSendStream* stream = AddSendStream(); |
| 1788 EXPECT_TRUE(stream->GetConfig().suspend_below_min_bitrate); | 1794 EXPECT_TRUE(stream->GetConfig().suspend_below_min_bitrate); |
| (...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2065 | 2071 |
| 2066 TEST_F(WebRtcVideoChannel2Test, DoesNotAdaptOnOveruseWhenScreensharing) { | 2072 TEST_F(WebRtcVideoChannel2Test, DoesNotAdaptOnOveruseWhenScreensharing) { |
| 2067 TestCpuAdaptation(true, true); | 2073 TestCpuAdaptation(true, true); |
| 2068 } | 2074 } |
| 2069 | 2075 |
| 2070 TEST_F(WebRtcVideoChannel2Test, AdaptsOnOveruseAndChangeResolution) { | 2076 TEST_F(WebRtcVideoChannel2Test, AdaptsOnOveruseAndChangeResolution) { |
| 2071 cricket::VideoCodec codec = GetEngineCodec("VP8"); | 2077 cricket::VideoCodec codec = GetEngineCodec("VP8"); |
| 2072 cricket::VideoSendParameters parameters; | 2078 cricket::VideoSendParameters parameters; |
| 2073 parameters.codecs.push_back(codec); | 2079 parameters.codecs.push_back(codec); |
| 2074 | 2080 |
| 2075 MediaConfig media_config = MediaConfig(); | 2081 MediaConfig media_config = GetMediaConfig(); |
| 2076 channel_.reset( | 2082 channel_.reset( |
| 2077 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions())); | 2083 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions())); |
| 2078 channel_->OnReadyToSend(true); | 2084 channel_->OnReadyToSend(true); |
| 2079 ASSERT_TRUE(channel_->SetSendParameters(parameters)); | 2085 ASSERT_TRUE(channel_->SetSendParameters(parameters)); |
| 2080 | 2086 |
| 2081 AddSendStream(); | 2087 AddSendStream(); |
| 2082 | 2088 |
| 2083 cricket::FakeVideoCapturer capturer; | 2089 cricket::FakeVideoCapturer capturer; |
| 2084 ASSERT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, &capturer)); | 2090 ASSERT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, &capturer)); |
| 2085 ASSERT_EQ(cricket::CS_RUNNING, | 2091 ASSERT_EQ(cricket::CS_RUNNING, |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2140 EXPECT_EQ(724, send_stream->GetLastHeight()); | 2146 EXPECT_EQ(724, send_stream->GetLastHeight()); |
| 2141 | 2147 |
| 2142 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); | 2148 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); |
| 2143 } | 2149 } |
| 2144 | 2150 |
| 2145 TEST_F(WebRtcVideoChannel2Test, PreviousAdaptationDoesNotApplyToScreenshare) { | 2151 TEST_F(WebRtcVideoChannel2Test, PreviousAdaptationDoesNotApplyToScreenshare) { |
| 2146 cricket::VideoCodec codec = GetEngineCodec("VP8"); | 2152 cricket::VideoCodec codec = GetEngineCodec("VP8"); |
| 2147 cricket::VideoSendParameters parameters; | 2153 cricket::VideoSendParameters parameters; |
| 2148 parameters.codecs.push_back(codec); | 2154 parameters.codecs.push_back(codec); |
| 2149 | 2155 |
| 2150 MediaConfig media_config = MediaConfig(); | 2156 MediaConfig media_config = GetMediaConfig(); |
| 2157 media_config.video.enable_cpu_overuse_detection = true; |
| 2151 channel_.reset( | 2158 channel_.reset( |
| 2152 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions())); | 2159 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions())); |
| 2153 channel_->OnReadyToSend(true); | 2160 channel_->OnReadyToSend(true); |
| 2154 ASSERT_TRUE(channel_->SetSendParameters(parameters)); | 2161 ASSERT_TRUE(channel_->SetSendParameters(parameters)); |
| 2155 | 2162 |
| 2156 AddSendStream(); | 2163 AddSendStream(); |
| 2157 | 2164 |
| 2158 cricket::FakeVideoCapturer capturer; | 2165 cricket::FakeVideoCapturer capturer; |
| 2159 ASSERT_EQ(cricket::CS_RUNNING, | 2166 ASSERT_EQ(cricket::CS_RUNNING, |
| 2160 capturer.Start(capturer.GetSupportedFormats()->front())); | 2167 capturer.Start(capturer.GetSupportedFormats()->front())); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2205 | 2212 |
| 2206 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); | 2213 EXPECT_TRUE(channel_->SetVideoSend(last_ssrc_, true, nullptr, nullptr)); |
| 2207 } | 2214 } |
| 2208 | 2215 |
| 2209 void WebRtcVideoChannel2Test::TestCpuAdaptation(bool enable_overuse, | 2216 void WebRtcVideoChannel2Test::TestCpuAdaptation(bool enable_overuse, |
| 2210 bool is_screenshare) { | 2217 bool is_screenshare) { |
| 2211 cricket::VideoCodec codec = GetEngineCodec("VP8"); | 2218 cricket::VideoCodec codec = GetEngineCodec("VP8"); |
| 2212 cricket::VideoSendParameters parameters; | 2219 cricket::VideoSendParameters parameters; |
| 2213 parameters.codecs.push_back(codec); | 2220 parameters.codecs.push_back(codec); |
| 2214 | 2221 |
| 2215 MediaConfig media_config = MediaConfig(); | 2222 MediaConfig media_config = GetMediaConfig(); |
| 2216 if (!enable_overuse) { | 2223 if (enable_overuse) { |
| 2217 media_config.video.enable_cpu_overuse_detection = false; | 2224 media_config.video.enable_cpu_overuse_detection = true; |
| 2218 } | 2225 } |
| 2219 channel_.reset( | 2226 channel_.reset( |
| 2220 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions())); | 2227 engine_.CreateChannel(fake_call_.get(), media_config, VideoOptions())); |
| 2221 channel_->OnReadyToSend(true); | 2228 channel_->OnReadyToSend(true); |
| 2222 | 2229 |
| 2223 EXPECT_TRUE(channel_->SetSendParameters(parameters)); | 2230 EXPECT_TRUE(channel_->SetSendParameters(parameters)); |
| 2224 | 2231 |
| 2225 AddSendStream(); | 2232 AddSendStream(); |
| 2226 | 2233 |
| 2227 cricket::FakeVideoCapturer capturer; | 2234 cricket::FakeVideoCapturer capturer; |
| (...skipping 1705 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3933 } | 3940 } |
| 3934 | 3941 |
| 3935 class WebRtcVideoChannel2SimulcastTest : public testing::Test { | 3942 class WebRtcVideoChannel2SimulcastTest : public testing::Test { |
| 3936 public: | 3943 public: |
| 3937 WebRtcVideoChannel2SimulcastTest() | 3944 WebRtcVideoChannel2SimulcastTest() |
| 3938 : fake_call_(webrtc::Call::Config(&event_log_)), last_ssrc_(0) {} | 3945 : fake_call_(webrtc::Call::Config(&event_log_)), last_ssrc_(0) {} |
| 3939 | 3946 |
| 3940 void SetUp() override { | 3947 void SetUp() override { |
| 3941 engine_.Init(); | 3948 engine_.Init(); |
| 3942 channel_.reset( | 3949 channel_.reset( |
| 3943 engine_.CreateChannel(&fake_call_, MediaConfig(), VideoOptions())); | 3950 engine_.CreateChannel(&fake_call_, GetMediaConfig(), VideoOptions())); |
| 3944 channel_->OnReadyToSend(true); | 3951 channel_->OnReadyToSend(true); |
| 3945 last_ssrc_ = 123; | 3952 last_ssrc_ = 123; |
| 3946 } | 3953 } |
| 3947 | 3954 |
| 3948 protected: | 3955 protected: |
| 3949 void VerifySimulcastSettings(const VideoCodec& codec, | 3956 void VerifySimulcastSettings(const VideoCodec& codec, |
| 3950 int capture_width, | 3957 int capture_width, |
| 3951 int capture_height, | 3958 int capture_height, |
| 3952 size_t num_configured_streams, | 3959 size_t num_configured_streams, |
| 3953 size_t expected_num_streams, | 3960 size_t expected_num_streams, |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4119 } | 4126 } |
| 4120 | 4127 |
| 4121 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsForSimulcastScreenshare) { | 4128 TEST_F(WebRtcVideoChannel2SimulcastTest, SetSendCodecsForSimulcastScreenshare) { |
| 4122 webrtc::test::ScopedFieldTrials override_field_trials_( | 4129 webrtc::test::ScopedFieldTrials override_field_trials_( |
| 4123 "WebRTC-SimulcastScreenshare/Enabled/"); | 4130 "WebRTC-SimulcastScreenshare/Enabled/"); |
| 4124 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 2, true, | 4131 VerifySimulcastSettings(cricket::VideoCodec("VP8"), 1280, 720, 3, 2, true, |
| 4125 true); | 4132 true); |
| 4126 } | 4133 } |
| 4127 | 4134 |
| 4128 } // namespace cricket | 4135 } // namespace cricket |
| OLD | NEW |