Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Side by Side Diff: webrtc/media/engine/webrtcvideoengine2_unittest.cc

Issue 2666303002: Revert of Drop frames until specified bitrate is achieved. (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
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
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
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
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
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
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
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
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
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
OLDNEW
« no previous file with comments | « webrtc/api/video/video_frame.cc ('k') | webrtc/modules/video_coding/utility/default_video_bitrate_allocator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698