| 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);
|
|
|
|
|