BalancedDegradationSettings: add option to configure a min framerate diff.

If a framerate reduction (input fps - restricted fps) is less than the
configured diff, shorten interval to next qp check.

Bug: none
Change-Id: Ia0b9e0638e5ba75cdc20a1bb45bfcb7d858c5f89
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/149040
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Magnus Flodman <mflodman@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28880}
This commit is contained in:
Åsa Persson
2019-08-16 17:24:59 +02:00
committed by Commit Bot
parent df625f46c0
commit f5e5d250bc
10 changed files with 266 additions and 60 deletions

View File

@ -37,7 +37,9 @@ class AdaptationObserverInterface {
// Called to signal that we can handle larger or more frequent frames.
virtual void AdaptUp(AdaptReason reason) = 0;
// Called to signal that the source should reduce the resolution or framerate.
virtual void AdaptDown(AdaptReason reason) = 0;
// Returns false if a downgrade was requested but the request did not result
// in a new limiting resolution or fps.
virtual bool AdaptDown(AdaptReason reason) = 0;
protected:
virtual ~AdaptationObserverInterface() {}
@ -101,7 +103,8 @@ class QualityScaler {
const size_t min_frames_needed_;
const double initial_scale_factor_;
const absl::optional<double> scale_factor_;
bool last_adapted_ RTC_GUARDED_BY(&task_checker_);
bool adapt_called_ RTC_GUARDED_BY(&task_checker_);
bool adapt_failed_ RTC_GUARDED_BY(&task_checker_);
};
} // namespace webrtc