BalancedDegradationSettings: Add option to configure QP thresholds.

Add possibility to configure low/high QP thresholds based on resolution.

Bug: none
Change-Id: Iaa3168b77678bd74feb67295d7658c0140721231
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141867
Reviewed-by: Sergey Silkin <ssilkin@webrtc.org>
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28348}
This commit is contained in:
Åsa Persson
2019-06-20 15:45:07 +02:00
committed by Commit Bot
parent 88290ae358
commit 1231419785
8 changed files with 328 additions and 24 deletions

View File

@ -134,6 +134,11 @@ int64_t QualityScaler::GetSamplingPeriodMs() const {
return sampling_period_ms_ * initial_scale_factor_;
}
void QualityScaler::SetQpThresholds(VideoEncoder::QpThresholds thresholds) {
RTC_DCHECK_RUN_ON(&task_checker_);
thresholds_ = thresholds;
}
void QualityScaler::ReportDroppedFrameByMediaOpt() {
RTC_DCHECK_RUN_ON(&task_checker_);
framedrop_percent_media_opt_.AddSample(100);

View File

@ -60,6 +60,8 @@ class QualityScaler {
// Inform the QualityScaler of the last seen QP.
void ReportQp(int qp, int64_t time_sent_us);
void SetQpThresholds(VideoEncoder::QpThresholds thresholds);
// The following members declared protected for testing purposes.
protected:
QualityScaler(rtc::TaskQueue* task_queue,
@ -80,7 +82,7 @@ class QualityScaler {
AdaptationObserverInterface* const observer_ RTC_GUARDED_BY(&task_checker_);
SequenceChecker task_checker_;
const VideoEncoder::QpThresholds thresholds_;
VideoEncoder::QpThresholds thresholds_ RTC_GUARDED_BY(&task_checker_);
const int64_t sampling_period_ms_;
bool fast_rampup_ RTC_GUARDED_BY(&task_checker_);
rtc::MovingAverage average_qp_ RTC_GUARDED_BY(&task_checker_);