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}
diff --git a/video/video_stream_encoder.cc b/video/video_stream_encoder.cc
index 56835d6..942b82e 100644
--- a/video/video_stream_encoder.cc
+++ b/video/video_stream_encoder.cc
@@ -665,9 +665,6 @@
     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 @@
     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_);