Make QualityScaler more responsive to downgrades.

Permits going from HD to QVGA in 6 seconds instead of 10. Also adds
windows for going up quickly in the beginning of a call (before any
downscaling happens due to bad quality).

BUG=webrtc:5678
R=glaznev@webrtc.org, stefan@webrtc.org

Review URL: https://codereview.webrtc.org/1830593003 .

Cr-Commit-Position: refs/heads/master@{#12219}
This commit is contained in:
Peter Boström
2016-04-04 18:11:06 +02:00
parent 74f6e9ea23
commit 85829fd90c
5 changed files with 146 additions and 43 deletions

View File

@ -604,8 +604,8 @@ int VP8EncoderImpl::InitEncode(const VideoCodec* inst,
// TODO(glaznev/sprang): consider passing codec initial bitrate to quality
// scaler to avoid starting with HD for low initial bitrates.
quality_scaler_.Init(codec_.qpMax / QualityScaler::kDefaultLowQpDenominator,
kDisabledBadQpThreshold, false, 0, 0, 0);
quality_scaler_.ReportFramerate(codec_.maxFramerate);
kDisabledBadQpThreshold, false, 0, 0, 0,
codec_.maxFramerate);
// Only apply scaling to improve for single-layer streams. The scaling metrics
// use frame drops as a signal and is only applicable when we drop frames.