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

Unified Diff: webrtc/video/send_statistics_proxy_unittest.cc

Issue 2783213002: Do not report quality limited resolution stats when quality scaler is disabled. (Closed)
Patch Set: rebase Created 3 years, 9 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 side-by-side diff with in-line comments
Download patch
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);

Powered by Google App Engine
This is Rietveld 408576698