From 65d9c4d761b90fd1f7dc9438b6dc1df7ff0899d6 Mon Sep 17 00:00:00 2001 From: Sergey Silkin Date: Wed, 12 Jun 2019 11:02:30 +0200 Subject: [PATCH] Create rate allocator after codec bitrates are set. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Commit-Queue: Sergey Silkin Cr-Commit-Position: refs/heads/master@{#28253} --- video/video_stream_encoder.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/video/video_stream_encoder.cc b/video/video_stream_encoder.cc index 56835d6ef6..942b82e9e7 100644 --- a/video/video_stream_encoder.cc +++ b/video/video_stream_encoder.cc @@ -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_);