| Index: webrtc/video/vie_encoder_unittest.cc
|
| diff --git a/webrtc/video/vie_encoder_unittest.cc b/webrtc/video/vie_encoder_unittest.cc
|
| index 4c19d5806ddc3547a44992c8fc46b9a5a23896bf..f037600e7d88025615d9a2e48184f921d21b9da3 100644
|
| --- a/webrtc/video/vie_encoder_unittest.cc
|
| +++ b/webrtc/video/vie_encoder_unittest.cc
|
| @@ -930,6 +930,48 @@ TEST_F(ViEEncoderTest, SwitchingSourceKeepsQualityAdaptation) {
|
| vie_encoder_->Stop();
|
| }
|
|
|
| +TEST_F(ViEEncoderTest, QualityAdaptationStatsAreResetWhenScalerIsDisabled) {
|
| + vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0);
|
| +
|
| + const int kWidth = 1280;
|
| + const int kHeight = 720;
|
| + video_source_.set_adaptation_enabled(true);
|
| + video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth, kHeight));
|
| + sink_.WaitForEncodedFrame(1);
|
| + EXPECT_FALSE(stats_proxy_->GetStats().cpu_limited_resolution);
|
| + EXPECT_FALSE(stats_proxy_->GetStats().bw_limited_resolution);
|
| + EXPECT_EQ(0, stats_proxy_->GetStats().number_of_cpu_adapt_changes);
|
| +
|
| + // Trigger adapt down.
|
| + vie_encoder_->TriggerQualityLow();
|
| + video_source_.IncomingCapturedFrame(CreateFrame(2, kWidth, kHeight));
|
| + sink_.WaitForEncodedFrame(2);
|
| + EXPECT_FALSE(stats_proxy_->GetStats().cpu_limited_resolution);
|
| + EXPECT_TRUE(stats_proxy_->GetStats().bw_limited_resolution);
|
| + EXPECT_EQ(0, stats_proxy_->GetStats().number_of_cpu_adapt_changes);
|
| +
|
| + // Trigger overuse.
|
| + vie_encoder_->TriggerCpuOveruse();
|
| + video_source_.IncomingCapturedFrame(CreateFrame(3, kWidth, kHeight));
|
| + sink_.WaitForEncodedFrame(3);
|
| + EXPECT_TRUE(stats_proxy_->GetStats().cpu_limited_resolution);
|
| + EXPECT_TRUE(stats_proxy_->GetStats().bw_limited_resolution);
|
| + EXPECT_EQ(1, stats_proxy_->GetStats().number_of_cpu_adapt_changes);
|
| +
|
| + // Set source with adaptation still enabled but quality scaler is off.
|
| + fake_encoder_.SetQualityScaling(false);
|
| + vie_encoder_->SetSource(&video_source_,
|
| + VideoSendStream::DegradationPreference::kBalanced);
|
| +
|
| + video_source_.IncomingCapturedFrame(CreateFrame(4, kWidth, kHeight));
|
| + sink_.WaitForEncodedFrame(4);
|
| + EXPECT_TRUE(stats_proxy_->GetStats().cpu_limited_resolution);
|
| + EXPECT_FALSE(stats_proxy_->GetStats().bw_limited_resolution);
|
| + EXPECT_EQ(1, stats_proxy_->GetStats().number_of_cpu_adapt_changes);
|
| +
|
| + vie_encoder_->Stop();
|
| +}
|
| +
|
| TEST_F(ViEEncoderTest, StatsTracksAdaptationStatsWhenSwitchingSource) {
|
| vie_encoder_->OnBitrateUpdated(kTargetBitrateBps, 0, 0);
|
|
|
|
|