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 |