Index: webrtc/video/send_statistics_proxy_unittest.cc |
diff --git a/webrtc/video/send_statistics_proxy_unittest.cc b/webrtc/video/send_statistics_proxy_unittest.cc |
index 778514a083f7a66cafac048b3fa3fd9a57e6847c..b63b99e8f70fd2c774cc6f6232862109b4a5306f 100644 |
--- a/webrtc/video/send_statistics_proxy_unittest.cc |
+++ b/webrtc/video/send_statistics_proxy_unittest.cc |
@@ -367,6 +367,53 @@ TEST_F(SendStatisticsProxyTest, OnSendEncodedImageWithoutQpQpSumWontExist) { |
EXPECT_EQ(rtc::Optional<uint64_t>(), statistics_proxy_->GetStats().qp_sum); |
} |
+TEST_F(SendStatisticsProxyTest, SetCpuRestrictionUpdatesStats) { |
+ const bool kQualityScalingEnabled = true; |
+ const bool kCpuRestricted = true; |
+ const int kQualityDownscales = 0; |
+ EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_resolution); |
+ EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); |
+ |
+ // Cpu restricted and cpu scaling enabled, stats should be cpu limited. |
+ statistics_proxy_->SetResolutionRestrictionStats( |
+ true, // cpu_scaling_enabled |
+ kQualityScalingEnabled, kCpuRestricted, kQualityDownscales); |
+ EXPECT_TRUE(statistics_proxy_->GetStats().cpu_limited_resolution); |
+ EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); |
+ |
+ // Cpu restricted but cpu scaling disabled, stats should not be cpu limited. |
+ statistics_proxy_->SetResolutionRestrictionStats( |
+ false, // cpu_scaling_enabled |
+ kQualityScalingEnabled, kCpuRestricted, kQualityDownscales); |
+ EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_resolution); |
+ EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); |
+} |
+ |
+TEST_F(SendStatisticsProxyTest, SetQualityRestrictionUpdatesStats) { |
+ const bool kCpuScalingEnabled = true; |
+ const bool kCpuRestricted = false; |
+ const int kQualityDownscales = 1; |
+ EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); |
+ EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_resolution); |
+ |
+ // Quality downscaled and quality scaling enabled, stats should be bw limited. |
+ statistics_proxy_->SetResolutionRestrictionStats( |
+ kCpuScalingEnabled, |
+ true, // quality_scaling_enabled |
+ kCpuRestricted, kQualityDownscales); |
+ EXPECT_TRUE(statistics_proxy_->GetStats().bw_limited_resolution); |
+ EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_resolution); |
+ |
+ // Quality downscaled but quality scaling disabled, stats should not be bw |
+ // limited. |
+ statistics_proxy_->SetResolutionRestrictionStats( |
+ kCpuScalingEnabled, |
+ false, // quality_scaling_enabled |
+ kCpuRestricted, kQualityDownscales); |
+ EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); |
+ EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_resolution); |
+} |
+ |
TEST_F(SendStatisticsProxyTest, SwitchContentTypeUpdatesHistograms) { |
for (int i = 0; i < SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) |
statistics_proxy_->OnIncomingFrame(kWidth, kHeight); |
@@ -780,8 +827,9 @@ TEST_F(SendStatisticsProxyTest, |
TEST_F(SendStatisticsProxyTest, |
QualityLimitedHistogramsNotUpdatedWhenDisabled) { |
EncodedImage encoded_image; |
- statistics_proxy_->SetResolutionRestrictionStats(false /* scaling_enabled */, |
- 0, 0); |
+ statistics_proxy_->SetResolutionRestrictionStats( |
+ true /* cpu_scaling_enabled */, false /* quality_scaling_enabled */, |
+ false, 0); |
for (int i = 0; i < SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) |
statistics_proxy_->OnSendEncodedImage(encoded_image, &kDefaultCodecInfo); |