| Index: webrtc/video/vie_encoder.cc
|
| diff --git a/webrtc/video/vie_encoder.cc b/webrtc/video/vie_encoder.cc
|
| index c30752b6dfb048e96d40a5f2e2e25853fe4b529e..97446abea5f0bc40cd6edcd3fba75813e77605e3 100644
|
| --- a/webrtc/video/vie_encoder.cc
|
| +++ b/webrtc/video/vie_encoder.cc
|
| @@ -463,7 +463,16 @@ void ViEEncoder::ConfigureQualityScaler() {
|
| const auto scaling_settings = settings_.encoder->GetScalingSettings();
|
| const bool degradation_preference_allows_scaling =
|
| degradation_preference_ != DegradationPreference::kMaintainResolution;
|
| - if (degradation_preference_allows_scaling && scaling_settings.enabled) {
|
| +
|
| + stats_proxy_->SetResolutionRestrictionStats(
|
| + degradation_preference_allows_scaling, scale_counter_[kCpu] > 0,
|
| + scale_counter_[kQuality]);
|
| +
|
| + if (degradation_preference_allows_scaling &&
|
| + scaling_settings.enabled) {
|
| + // Abort if quality scaler has already been configured.
|
| + if (quality_scaler_.get() != nullptr)
|
| + return;
|
| // Drop frames and scale down until desired quality is achieved.
|
| if (scaling_settings.thresholds) {
|
| quality_scaler_.reset(
|
| @@ -475,9 +484,6 @@ void ViEEncoder::ConfigureQualityScaler() {
|
| quality_scaler_.reset(nullptr);
|
| initial_rampup_ = kMaxInitialFramedrop;
|
| }
|
| - stats_proxy_->SetResolutionRestrictionStats(
|
| - degradation_preference_allows_scaling, scale_counter_[kCpu] > 0,
|
| - scale_counter_[kQuality]);
|
| }
|
|
|
| void ViEEncoder::OnFrame(const VideoFrame& video_frame) {
|
|
|