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

Unified Diff: webrtc/video/vie_encoder.cc

Issue 2766513003: Don't reset quality scaler on resolution change. (Closed)
Patch Set: 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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) {
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698