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