Make VideoStreamEncoder::ReconfigureEncoder always call ConfigureQualityScaler.
In addition restore call to ConfigureQualityScaler in SetSource, which is needed if degradation preferences change mid-stream. Fixes a regressions from https://webrtc-review.googlesource.com/70740, The encoder's GetScalingSettings may depend on arguments to InitEncode, so configuring the quality scaler only at encoder creation time isn't enough. Bug: webrtc:8830 Change-Id: I48f66cde219c56272f44441fdb26ec64c6002068 Reviewed-on: https://webrtc-review.googlesource.com/72000 Reviewed-by: Åsa Persson <asapersson@webrtc.org> Commit-Queue: Niels Moller <nisse@webrtc.org> Cr-Commit-Position: refs/heads/master@{#22993}
This commit is contained in:
parent
882477f19d
commit
f394f65b71
@ -418,8 +418,8 @@ void VideoStreamEncoder::SetSource(
|
||||
bool allow_scaling = IsResolutionScalingEnabled(degradation_preference_);
|
||||
initial_rampup_ = allow_scaling ? 0 : kMaxInitialFramedrop;
|
||||
|
||||
stats_proxy_->SetAdaptationStats(GetActiveCounts(kCpu),
|
||||
GetActiveCounts(kQuality));
|
||||
if (encoder_)
|
||||
ConfigureQualityScaler();
|
||||
|
||||
if (!IsFramerateScalingEnabled(degradation_preference) &&
|
||||
max_framerate_ != -1) {
|
||||
@ -542,8 +542,6 @@ void VideoStreamEncoder::ReconfigureEncoder() {
|
||||
// or just discard incoming frames?
|
||||
RTC_CHECK(encoder_);
|
||||
|
||||
ConfigureQualityScaler();
|
||||
|
||||
const webrtc::VideoEncoderFactory::CodecInfo info =
|
||||
settings_.encoder_factory->QueryVideoEncoder(
|
||||
encoder_config_.video_format);
|
||||
@ -592,6 +590,8 @@ void VideoStreamEncoder::ReconfigureEncoder() {
|
||||
int target_framerate = std::min(
|
||||
max_framerate_, source_proxy_->GetActiveSinkWants().max_framerate_fps);
|
||||
overuse_detector_->OnTargetFramerateUpdated(target_framerate);
|
||||
|
||||
ConfigureQualityScaler();
|
||||
}
|
||||
|
||||
void VideoStreamEncoder::ConfigureQualityScaler() {
|
||||
@ -616,8 +616,6 @@ void VideoStreamEncoder::ConfigureQualityScaler() {
|
||||
initial_rampup_ = kMaxInitialFramedrop;
|
||||
}
|
||||
|
||||
// TODO(nisse): Is this still the right place to do this? This is
|
||||
// now called when the encoder is created.
|
||||
stats_proxy_->SetAdaptationStats(GetActiveCounts(kCpu),
|
||||
GetActiveCounts(kQuality));
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user