Create rate allocator after codec bitrates are set.

Before this change the max bitrate could be updated after it was passed
to rate allocator.

Bug: none
Change-Id: I742fca0f122bef3e95c1a768d6e844f8c28b6279
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/141661
Reviewed-by: Erik Språng <sprang@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#28253}
This commit is contained in:
Sergey Silkin
2019-06-12 11:02:30 +02:00
committed by Commit Bot
parent f53cfa9ebe
commit 65d9c4d761

View File

@ -665,9 +665,6 @@ void VideoStreamEncoder::ReconfigureEncoder() {
RTC_LOG(LS_ERROR) << "Failed to create encoder configuration.";
}
rate_allocator_ =
settings_.bitrate_allocator_factory->CreateVideoBitrateAllocator(codec);
// Set min_bitrate_bps, max_bitrate_bps, and max padding bit rate for VP9.
if (encoder_config_.codec_type == kVideoCodecVP9) {
// Lower max bitrate to the level codec actually can produce.
@ -711,6 +708,9 @@ void VideoStreamEncoder::ReconfigureEncoder() {
codec.startBitrate = codec.maxBitrate;
}
rate_allocator_ =
settings_.bitrate_allocator_factory->CreateVideoBitrateAllocator(codec);
// Reset (release existing encoder) if one exists and anything except
// start bitrate or max framerate has changed.
const bool reset_required = RequiresEncoderReset(codec, send_codec_);