VideoStreamEncoderTest: Use DataRate for some constants.

Use config from FakeEncoder in some tests.

Bug: none
Change-Id: I1d7e01f604f8aabb5d6815bb519ef2532d024d76
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/233243
Commit-Queue: Åsa Persson <asapersson@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#35138}
diff --git a/test/fake_encoder.cc b/test/fake_encoder.cc
index 04ce66b..7a55231 100644
--- a/test/fake_encoder.cc
+++ b/test/fake_encoder.cc
@@ -50,6 +50,7 @@
 
 FakeEncoder::FakeEncoder(Clock* clock)
     : clock_(clock),
+      num_initializations_(0),
       callback_(nullptr),
       max_target_bitrate_kbps_(-1),
       pending_keyframe_(true),
@@ -81,6 +82,7 @@
                                 const Settings& settings) {
   MutexLock lock(&mutex_);
   config_ = *config;
+  ++num_initializations_;
   current_rate_settings_.bitrate.SetBitrate(0, 0, config_.startBitrate * 1000);
   current_rate_settings_.framerate_fps = config_.maxFramerate;
   pending_keyframe_ = true;
@@ -293,6 +295,16 @@
   return static_cast<int>(current_rate_settings_.framerate_fps + 0.5);
 }
 
+int FakeEncoder::GetNumInitializations() const {
+  MutexLock lock(&mutex_);
+  return num_initializations_;
+}
+
+const VideoCodec& FakeEncoder::config() const {
+  MutexLock lock(&mutex_);
+  return config_;
+}
+
 FakeH264Encoder::FakeH264Encoder(Clock* clock)
     : FakeEncoder(clock), idr_counter_(0) {}
 
diff --git a/test/fake_encoder.h b/test/fake_encoder.h
index 5257fc2..57cdbbc 100644
--- a/test/fake_encoder.h
+++ b/test/fake_encoder.h
@@ -55,9 +55,12 @@
   int32_t Release() override;
   void SetRates(const RateControlParameters& parameters)
       RTC_LOCKS_EXCLUDED(mutex_) override;
-  int GetConfiguredInputFramerate() const RTC_LOCKS_EXCLUDED(mutex_);
   EncoderInfo GetEncoderInfo() const override;
 
+  int GetConfiguredInputFramerate() const RTC_LOCKS_EXCLUDED(mutex_);
+  int GetNumInitializations() const RTC_LOCKS_EXCLUDED(mutex_);
+  const VideoCodec& config() const RTC_LOCKS_EXCLUDED(mutex_);
+
   static const char* kImplementationName;
 
  protected:
@@ -96,6 +99,7 @@
   Clock* const clock_;
 
   VideoCodec config_ RTC_GUARDED_BY(mutex_);
+  int num_initializations_ RTC_GUARDED_BY(mutex_);
   EncodedImageCallback* callback_ RTC_GUARDED_BY(mutex_);
   RateControlParameters current_rate_settings_ RTC_GUARDED_BY(mutex_);
   int max_target_bitrate_kbps_ RTC_GUARDED_BY(mutex_);
diff --git a/video/video_send_stream_tests.cc b/video/video_send_stream_tests.cc
index 7edb332..294181e 100644
--- a/video/video_send_stream_tests.cc
+++ b/video/video_send_stream_tests.cc
@@ -2463,13 +2463,10 @@
                                  public test::FakeEncoder {
  public:
   VideoCodecConfigObserver(VideoCodecType video_codec_type,
-                           const char* codec_name,
                            TaskQueueBase* task_queue)
       : SendTest(VideoSendStreamTest::kDefaultTimeoutMs),
         FakeEncoder(Clock::GetRealTimeClock()),
         video_codec_type_(video_codec_type),
-        codec_name_(codec_name),
-        num_initializations_(0),
         stream_(nullptr),
         encoder_factory_(this),
         task_queue_(task_queue) {
@@ -2482,7 +2479,7 @@
       std::vector<VideoReceiveStream::Config>* receive_configs,
       VideoEncoderConfig* encoder_config) override {
     send_config->encoder_settings.encoder_factory = &encoder_factory_;
-    send_config->rtp.payload_name = codec_name_;
+    send_config->rtp.payload_name = CodecTypeToPayloadString(video_codec_type_);
 
     encoder_config->codec_type = video_codec_type_;
     encoder_config->encoder_specific_settings = GetEncoderSpecificSettings();
@@ -2502,9 +2499,9 @@
                      const Settings& settings) override {
     EXPECT_EQ(video_codec_type_, config->codecType);
     VerifyCodecSpecifics(*config);
-    ++num_initializations_;
+    int ret = FakeEncoder::InitEncode(config, settings);
     init_encode_event_.Set();
-    return FakeEncoder::InitEncode(config, settings);
+    return ret;
   }
 
   void InitCodecSpecifics();
@@ -2515,7 +2512,8 @@
   void PerformTest() override {
     EXPECT_TRUE(
         init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs));
-    ASSERT_EQ(1u, num_initializations_) << "VideoEncoder not initialized.";
+    ASSERT_EQ(1, FakeEncoder::GetNumInitializations())
+        << "VideoEncoder not initialized.";
 
     // Change encoder settings to actually trigger reconfiguration.
     encoder_settings_.frameDroppingOn = !encoder_settings_.frameDroppingOn;
@@ -2525,7 +2523,7 @@
     });
     ASSERT_TRUE(
         init_encode_event_.Wait(VideoSendStreamTest::kDefaultTimeoutMs));
-    EXPECT_EQ(2u, num_initializations_)
+    EXPECT_EQ(2, FakeEncoder::GetNumInitializations())
         << "ReconfigureVideoEncoder did not reinitialize the encoder with "
            "new encoder settings.";
   }
@@ -2538,9 +2536,7 @@
 
   T encoder_settings_;
   const VideoCodecType video_codec_type_;
-  const char* const codec_name_;
   rtc::Event init_encode_event_;
-  size_t num_initializations_;
   VideoSendStream* stream_;
   test::VideoEncoderProxyFactory encoder_factory_;
   VideoEncoderConfig encoder_config_;
@@ -2650,14 +2646,12 @@
 }
 
 TEST_F(VideoSendStreamTest, EncoderSetupPropagatesVp8Config) {
-  VideoCodecConfigObserver<VideoCodecVP8> test(kVideoCodecVP8, "VP8",
-                                               task_queue());
+  VideoCodecConfigObserver<VideoCodecVP8> test(kVideoCodecVP8, task_queue());
   RunBaseTest(&test);
 }
 
 TEST_F(VideoSendStreamTest, EncoderSetupPropagatesVp9Config) {
-  VideoCodecConfigObserver<VideoCodecVP9> test(kVideoCodecVP9, "VP9",
-                                               task_queue());
+  VideoCodecConfigObserver<VideoCodecVP9> test(kVideoCodecVP9, task_queue());
   RunBaseTest(&test);
 }
 
@@ -2669,8 +2663,7 @@
 #define MAYBE_EncoderSetupPropagatesH264Config EncoderSetupPropagatesH264Config
 #endif
 TEST_F(VideoSendStreamTest, MAYBE_EncoderSetupPropagatesH264Config) {
-  VideoCodecConfigObserver<VideoCodecH264> test(kVideoCodecH264, "H264",
-                                                task_queue());
+  VideoCodecConfigObserver<VideoCodecH264> test(kVideoCodecH264, task_queue());
   RunBaseTest(&test);
 }
 
diff --git a/video/video_stream_encoder_unittest.cc b/video/video_stream_encoder_unittest.cc
index d9f1136..9782e83 100644
--- a/video/video_stream_encoder_unittest.cc
+++ b/video/video_stream_encoder_unittest.cc
@@ -89,10 +89,10 @@
 const int kMinBalancedFramerateFps = 7;
 const int64_t kFrameTimeoutMs = 100;
 const size_t kMaxPayloadLength = 1440;
-const uint32_t kTargetBitrateBps = 1000000;
-const uint32_t kStartBitrateBps = 600000;
-const uint32_t kSimulcastTargetBitrateBps = 3150000;
-const uint32_t kLowTargetBitrateBps = kTargetBitrateBps / 10;
+const DataRate kTargetBitrate = DataRate::KilobitsPerSec(1000);
+const DataRate kLowTargetBitrate = DataRate::KilobitsPerSec(100);
+const DataRate kStartBitrate = DataRate::KilobitsPerSec(600);
+const DataRate kSimulcastTargetBitrate = DataRate::KilobitsPerSec(3150);
 const int kMaxInitialFramedrop = 4;
 const int kDefaultFramerate = 30;
 const int64_t kFrameIntervalMs = rtc::kNumMillisecsPerSec / kDefaultFramerate;
@@ -102,7 +102,7 @@
 const VideoEncoder::ResolutionBitrateLimits
     kEncoderBitrateLimits720p(1280 * 720, 200 * 1000, 200 * 1000, 4000 * 1000);
 
-uint8_t optimal_sps[] = {0,    0,    0,    1,    H264::NaluType::kSps,
+uint8_t kOptimalSps[] = {0,    0,    0,    1,    H264::NaluType::kSps,
                          0x00, 0x00, 0x03, 0x03, 0xF4,
                          0x05, 0x03, 0xC7, 0xE0, 0x1B,
                          0x41, 0x10, 0x8D, 0x00};
@@ -688,10 +688,10 @@
     video_stream_encoder_.reset(new VideoStreamEncoderUnderTest(
         &time_controller_, GetTaskQueueFactory(), stats_proxy_.get(),
         video_send_config_.encoder_settings, allocation_callback_type));
-    video_stream_encoder_->SetSink(&sink_, false /* rotation_applied */);
+    video_stream_encoder_->SetSink(&sink_, /*rotation_applied=*/false);
     video_stream_encoder_->SetSource(
         &video_source_, webrtc::DegradationPreference::MAINTAIN_FRAMERATE);
-    video_stream_encoder_->SetStartBitrate(kTargetBitrateBps);
+    video_stream_encoder_->SetStartBitrate(kTargetBitrate.bps());
     video_stream_encoder_->ConfigureEncoder(std::move(video_encoder_config),
                                             kMaxPayloadLength);
     video_stream_encoder_->WaitUntilTaskQueueIsIdle();
@@ -716,7 +716,7 @@
       layer.max_framerate = kDefaultFramerate;
     }
     video_encoder_config.max_bitrate_bps =
-        num_streams == 1 ? kTargetBitrateBps : kSimulcastTargetBitrateBps;
+        num_streams == 1 ? kTargetBitrate.bps() : kSimulcastTargetBitrate.bps();
     video_encoder_config.content_type =
         screenshare ? VideoEncoderConfig::ContentType::kScreen
                     : VideoEncoderConfig::ContentType::kRealtimeVideo;
@@ -809,9 +809,7 @@
 
   void VerifyAllocatedBitrate(const VideoBitrateAllocation& expected_bitrate) {
     video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-        DataRate::BitsPerSec(kTargetBitrateBps),
-        DataRate::BitsPerSec(kTargetBitrateBps),
-        DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+        kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
     video_source_.IncomingCapturedFrame(
         CreateFrame(1, codec_width_, codec_height_));
@@ -854,11 +852,6 @@
       RTC_DCHECK(time_controller_);
     }
 
-    VideoCodec codec_config() const {
-      MutexLock lock(&mutex_);
-      return config_;
-    }
-
     void BlockNextEncode() {
       MutexLock lock(&local_mutex_);
       block_next_encode_ = true;
@@ -1017,21 +1010,11 @@
       return last_input_pixel_format_;
     }
 
-    int GetNumEncoderInitializations() const {
-      MutexLock lock(&local_mutex_);
-      return num_encoder_initializations_;
-    }
-
     int GetNumSetRates() const {
       MutexLock lock(&local_mutex_);
       return num_set_rates_;
     }
 
-    VideoCodec video_codec() const {
-      MutexLock lock(&local_mutex_);
-      return video_codec_;
-    }
-
     void SetPreferredPixelFormats(
         absl::InlinedVector<VideoFrameBuffer::Type, kMaxPreferredPixelFormats>
             pixel_formats) {
@@ -1100,9 +1083,6 @@
       MutexLock lock(&local_mutex_);
       EXPECT_EQ(initialized_, EncoderState::kUninitialized);
 
-      ++num_encoder_initializations_;
-      video_codec_ = *config;
-
       if (config->codecType == kVideoCodecVP8) {
         // Simulate setting up temporal layers, in order to validate the life
         // cycle of these objects.
@@ -1184,11 +1164,9 @@
     EncodedImageCallback* encoded_image_callback_ RTC_GUARDED_BY(local_mutex_) =
         nullptr;
     NiceMock<MockFecControllerOverride> fec_controller_override_;
-    int num_encoder_initializations_ RTC_GUARDED_BY(local_mutex_) = 0;
     std::vector<ResolutionBitrateLimits> resolution_bitrate_limits_
         RTC_GUARDED_BY(local_mutex_);
     int num_set_rates_ RTC_GUARDED_BY(local_mutex_) = 0;
-    VideoCodec video_codec_ RTC_GUARDED_BY(local_mutex_);
     absl::optional<VideoFrameBuffer::Type> last_input_pixel_format_
         RTC_GUARDED_BY(local_mutex_);
     absl::InlinedVector<VideoFrameBuffer::Type, kMaxPreferredPixelFormats>
@@ -1453,9 +1431,7 @@
 
 TEST_F(VideoStreamEncoderTest, EncodeOneFrame) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   rtc::Event frame_destroyed_event;
   video_source_.IncomingCapturedFrame(CreateFrame(1, &frame_destroyed_event));
   WaitForEncodedFrame(1);
@@ -1475,9 +1451,7 @@
   EXPECT_TRUE(frame_destroyed_event.Wait(kDefaultTimeoutMs));
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // The pending frame should be received.
   WaitForEncodedFrame(2);
@@ -1489,15 +1463,13 @@
 
 TEST_F(VideoStreamEncoderTest, DropsFramesWhenRateSetToZero) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_source_.IncomingCapturedFrame(CreateFrame(1, nullptr));
   WaitForEncodedFrame(1);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(0), DataRate::BitsPerSec(0), DataRate::BitsPerSec(0),
-      0, 0, 0);
+      DataRate::Zero(), DataRate::Zero(), DataRate::Zero(), 0, 0, 0);
+
   // The encoder will cache up to one frame for a short duration. Adding two
   // frames means that the first frame will be dropped and the second frame will
   // be sent when the encoder is resumed.
@@ -1505,9 +1477,7 @@
   video_source_.IncomingCapturedFrame(CreateFrame(3, nullptr));
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   WaitForEncodedFrame(3);
   video_source_.IncomingCapturedFrame(CreateFrame(4, nullptr));
   WaitForEncodedFrame(4);
@@ -1516,9 +1486,7 @@
 
 TEST_F(VideoStreamEncoderTest, DropsFramesWithSameOrOldNtpTimestamp) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_source_.IncomingCapturedFrame(CreateFrame(1, nullptr));
   WaitForEncodedFrame(1);
 
@@ -1532,9 +1500,7 @@
 
 TEST_F(VideoStreamEncoderTest, DropsFrameAfterStop) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   video_source_.IncomingCapturedFrame(CreateFrame(1, nullptr));
   WaitForEncodedFrame(1);
@@ -1561,9 +1527,7 @@
 
 TEST_F(VideoStreamEncoderBlockedTest, DropsPendingFramesOnSlowEncode) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   int dropped_count = 0;
   stats_proxy_->SetDroppedFrameCallback(
@@ -1588,9 +1552,7 @@
 
 TEST_F(VideoStreamEncoderTest, NativeFrameWithoutI420SupportGetsDelivered) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   rtc::Event frame_destroyed_event;
   video_source_.IncomingCapturedFrame(
@@ -1598,10 +1560,8 @@
   WaitForEncodedFrame(1);
   EXPECT_EQ(VideoFrameBuffer::Type::kNative,
             fake_encoder_.GetLastInputPixelFormat());
-  EXPECT_EQ(fake_encoder_.codec_config().width,
-            fake_encoder_.GetLastInputWidth());
-  EXPECT_EQ(fake_encoder_.codec_config().height,
-            fake_encoder_.GetLastInputHeight());
+  EXPECT_EQ(fake_encoder_.config().width, fake_encoder_.GetLastInputWidth());
+  EXPECT_EQ(fake_encoder_.config().height, fake_encoder_.GetLastInputHeight());
   video_stream_encoder_->Stop();
 }
 
@@ -1616,15 +1576,13 @@
 
   // Capture a frame at codec_width_/codec_height_.
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_source_.IncomingCapturedFrame(CreateFrame(1, nullptr));
   WaitForEncodedFrame(1);
   // The encoder will have been configured once.
   EXPECT_EQ(1, sink_.number_of_reconfigurations());
-  EXPECT_EQ(codec_width_, fake_encoder_.codec_config().width);
-  EXPECT_EQ(codec_height_, fake_encoder_.codec_config().height);
+  EXPECT_EQ(codec_width_, fake_encoder_.config().width);
+  EXPECT_EQ(codec_height_, fake_encoder_.config().height);
 
   // Now send in a fake frame that needs to be cropped as the width/height
   // aren't divisible by 4 (see CreateEncoderStreams above).
@@ -1634,18 +1592,14 @@
   WaitForEncodedFrame(2);
   EXPECT_EQ(VideoFrameBuffer::Type::kNative,
             fake_encoder_.GetLastInputPixelFormat());
-  EXPECT_EQ(fake_encoder_.codec_config().width,
-            fake_encoder_.GetLastInputWidth());
-  EXPECT_EQ(fake_encoder_.codec_config().height,
-            fake_encoder_.GetLastInputHeight());
+  EXPECT_EQ(fake_encoder_.config().width, fake_encoder_.GetLastInputWidth());
+  EXPECT_EQ(fake_encoder_.config().height, fake_encoder_.GetLastInputHeight());
   video_stream_encoder_->Stop();
 }
 
 TEST_F(VideoStreamEncoderTest, NonI420FramesShouldNotBeConvertedToI420) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   video_source_.IncomingCapturedFrame(
       CreateNV12Frame(1, codec_width_, codec_height_));
@@ -1657,9 +1611,7 @@
 
 TEST_F(VideoStreamEncoderTest, NativeFrameGetsDelivered_NoFrameTypePreference) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   fake_encoder_.SetPreferredPixelFormats({});
 
@@ -1675,9 +1627,7 @@
 TEST_F(VideoStreamEncoderTest,
        NativeFrameGetsDelivered_PixelFormatPreferenceMatches) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   fake_encoder_.SetPreferredPixelFormats({VideoFrameBuffer::Type::kNV12});
 
@@ -1692,9 +1642,7 @@
 
 TEST_F(VideoStreamEncoderTest, NativeFrameGetsDelivered_MappingIsNotFeasible) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Fake NV12 native frame does not allow mapping to I444.
   fake_encoder_.SetPreferredPixelFormats({VideoFrameBuffer::Type::kI444});
@@ -1710,9 +1658,7 @@
 
 TEST_F(VideoStreamEncoderTest, NativeFrameGetsDelivered_BackedByNV12) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   rtc::Event frame_destroyed_event;
   video_source_.IncomingCapturedFrame(CreateFakeNV12NativeFrame(
@@ -1725,16 +1671,12 @@
 
 TEST_F(VideoStreamEncoderTest, DropsFramesWhenCongestionWindowPushbackSet) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_source_.IncomingCapturedFrame(CreateFrame(1, nullptr));
   WaitForEncodedFrame(1);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0.5);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0.5);
   // The congestion window pushback is set to 0.5, which will drop 1/2 of
   // frames. Adding two frames means that the first frame will be dropped and
   // the second frame will be sent to the encoder.
@@ -1751,9 +1693,7 @@
 TEST_F(VideoStreamEncoderTest,
        ConfigureEncoderTriggersOnEncoderConfigurationChanged) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   EXPECT_EQ(0, sink_.number_of_reconfigurations());
 
   // Capture a frame and wait for it to synchronize with the encoder thread.
@@ -1780,17 +1720,15 @@
 
 TEST_F(VideoStreamEncoderTest, FrameResolutionChangeReconfigureEncoder) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Capture a frame and wait for it to synchronize with the encoder thread.
   video_source_.IncomingCapturedFrame(CreateFrame(1, nullptr));
   WaitForEncodedFrame(1);
   // The encoder will have been configured once.
   EXPECT_EQ(1, sink_.number_of_reconfigurations());
-  EXPECT_EQ(codec_width_, fake_encoder_.codec_config().width);
-  EXPECT_EQ(codec_height_, fake_encoder_.codec_config().height);
+  EXPECT_EQ(codec_width_, fake_encoder_.config().width);
+  EXPECT_EQ(codec_height_, fake_encoder_.config().height);
 
   codec_width_ *= 2;
   codec_height_ *= 2;
@@ -1798,8 +1736,8 @@
   // with the encoder thread.
   video_source_.IncomingCapturedFrame(CreateFrame(2, nullptr));
   WaitForEncodedFrame(2);
-  EXPECT_EQ(codec_width_, fake_encoder_.codec_config().width);
-  EXPECT_EQ(codec_height_, fake_encoder_.codec_config().height);
+  EXPECT_EQ(codec_width_, fake_encoder_.config().width);
+  EXPECT_EQ(codec_height_, fake_encoder_.config().height);
   EXPECT_EQ(2, sink_.number_of_reconfigurations());
 
   video_stream_encoder_->Stop();
@@ -1808,9 +1746,7 @@
 TEST_F(VideoStreamEncoderTest,
        EncoderInstanceDestroyedBeforeAnotherInstanceCreated) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Capture a frame and wait for it to synchronize with the encoder thread.
   video_source_.IncomingCapturedFrame(CreateFrame(1, nullptr));
@@ -1832,14 +1768,12 @@
 
 TEST_F(VideoStreamEncoderTest, BitrateLimitsChangeReconfigureRateAllocator) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   VideoEncoderConfig video_encoder_config;
   test::FillEncoderConfiguration(kVideoCodecVP8, 1, &video_encoder_config);
-  video_encoder_config.max_bitrate_bps = kTargetBitrateBps;
-  video_stream_encoder_->SetStartBitrate(kStartBitrateBps);
+  video_encoder_config.max_bitrate_bps = kTargetBitrate.bps();
+  video_stream_encoder_->SetStartBitrate(kStartBitrate.bps());
   video_stream_encoder_->ConfigureEncoder(video_encoder_config.Copy(),
                                           kMaxPayloadLength);
 
@@ -1849,15 +1783,15 @@
   // The encoder will have been configured once when the first frame is
   // received.
   EXPECT_EQ(1, sink_.number_of_reconfigurations());
-  EXPECT_EQ(kTargetBitrateBps,
+  EXPECT_EQ(kTargetBitrate.bps(),
             bitrate_allocator_factory_.codec_config().maxBitrate * 1000);
-  EXPECT_EQ(kStartBitrateBps,
+  EXPECT_EQ(kStartBitrate.bps(),
             bitrate_allocator_factory_.codec_config().startBitrate * 1000);
 
   test::FillEncoderConfiguration(kVideoCodecVP8, 1,
                                  &video_encoder_config);  //???
-  video_encoder_config.max_bitrate_bps = kTargetBitrateBps * 2;
-  video_stream_encoder_->SetStartBitrate(kStartBitrateBps * 2);
+  video_encoder_config.max_bitrate_bps = kTargetBitrate.bps() * 2;
+  video_stream_encoder_->SetStartBitrate(kStartBitrate.bps() * 2);
   video_stream_encoder_->ConfigureEncoder(std::move(video_encoder_config),
                                           kMaxPayloadLength);
 
@@ -1867,11 +1801,11 @@
   EXPECT_EQ(2, sink_.number_of_reconfigurations());
   // Bitrate limits have changed - rate allocator should be reconfigured,
   // encoder should not be reconfigured.
-  EXPECT_EQ(kTargetBitrateBps * 2,
+  EXPECT_EQ(kTargetBitrate.bps() * 2,
             bitrate_allocator_factory_.codec_config().maxBitrate * 1000);
-  EXPECT_EQ(kStartBitrateBps * 2,
+  EXPECT_EQ(kStartBitrate.bps() * 2,
             bitrate_allocator_factory_.codec_config().startBitrate * 1000);
-  EXPECT_EQ(1, fake_encoder_.GetNumEncoderInitializations());
+  EXPECT_EQ(1, fake_encoder_.GetNumInitializations());
 
   video_stream_encoder_->Stop();
 }
@@ -1879,9 +1813,7 @@
 TEST_F(VideoStreamEncoderTest,
        IntersectionOfEncoderAndAppBitrateLimitsUsedWhenBothProvided) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   const uint32_t kMinEncBitrateKbps = 100;
   const uint32_t kMaxEncBitrateKbps = 1000;
@@ -1927,9 +1859,7 @@
 TEST_F(VideoStreamEncoderTest,
        EncoderAndAppLimitsDontIntersectEncoderLimitsIgnored) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   const uint32_t kMinAppBitrateKbps = 100;
   const uint32_t kMaxAppBitrateKbps = 200;
@@ -1963,9 +1893,7 @@
 TEST_F(VideoStreamEncoderTest,
        EncoderRecommendedMaxAndMinBitratesUsedForGivenResolution) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   const VideoEncoder::ResolutionBitrateLimits encoder_bitrate_limits_270p(
       480 * 270, 34 * 1000, 12 * 1000, 1234 * 1000);
@@ -2033,9 +1961,7 @@
 
 TEST_F(VideoStreamEncoderTest, EncoderRecommendedMaxBitrateCapsTargetBitrate) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   VideoEncoderConfig video_encoder_config;
   test::FillEncoderConfiguration(kVideoCodecVP8, 1, &video_encoder_config);
@@ -2101,48 +2027,48 @@
   // The encoder bitrate limits for 270p should be used.
   video_source_.IncomingCapturedFrame(CreateFrame(1, 480, 270));
   EXPECT_FALSE(WaitForFrame(1000));
-  EXPECT_EQ(fake_encoder_.video_codec().numberOfSimulcastStreams, kNumStreams);
+  EXPECT_EQ(fake_encoder_.config().numberOfSimulcastStreams, kNumStreams);
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits270p.min_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].minBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].minBitrate * 1000);
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits270p.max_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].maxBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].maxBitrate * 1000);
 
   // The encoder bitrate limits for 360p should be used.
   video_source_.IncomingCapturedFrame(CreateFrame(2, 640, 360));
   EXPECT_FALSE(WaitForFrame(1000));
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits360p.min_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].minBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].minBitrate * 1000);
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits360p.max_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].maxBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].maxBitrate * 1000);
 
   // Resolution b/w 270p and 360p. The encoder limits for 360p should be used.
   video_source_.IncomingCapturedFrame(
       CreateFrame(3, (640 + 480) / 2, (360 + 270) / 2));
   EXPECT_FALSE(WaitForFrame(1000));
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits360p.min_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].minBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].minBitrate * 1000);
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits360p.max_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].maxBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].maxBitrate * 1000);
 
   // Resolution higher than 360p. Encoder limits should be ignored.
   video_source_.IncomingCapturedFrame(CreateFrame(4, 960, 540));
   EXPECT_FALSE(WaitForFrame(1000));
   EXPECT_NE(static_cast<uint32_t>(kEncoderLimits270p.min_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].minBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].minBitrate * 1000);
   EXPECT_NE(static_cast<uint32_t>(kEncoderLimits270p.max_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].maxBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].maxBitrate * 1000);
   EXPECT_NE(static_cast<uint32_t>(kEncoderLimits360p.min_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].minBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].minBitrate * 1000);
   EXPECT_NE(static_cast<uint32_t>(kEncoderLimits360p.max_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].maxBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].maxBitrate * 1000);
 
   // Resolution lower than 270p. The encoder limits for 270p should be used.
   video_source_.IncomingCapturedFrame(CreateFrame(5, 320, 180));
   EXPECT_FALSE(WaitForFrame(1000));
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits270p.min_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].minBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].minBitrate * 1000);
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits270p.max_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].maxBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].maxBitrate * 1000);
 
   video_stream_encoder_->Stop();
 }
@@ -2169,11 +2095,11 @@
               kVideoCodecVP8, 480 * 270);
   video_source_.IncomingCapturedFrame(CreateFrame(1, 480, 270));
   EXPECT_FALSE(WaitForFrame(1000));
-  EXPECT_EQ(fake_encoder_.video_codec().numberOfSimulcastStreams, kNumStreams);
+  EXPECT_EQ(fake_encoder_.config().numberOfSimulcastStreams, kNumStreams);
   EXPECT_EQ(static_cast<uint32_t>(kDefaultLimits270p->min_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].minBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].minBitrate * 1000);
   EXPECT_EQ(static_cast<uint32_t>(kDefaultLimits270p->max_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].maxBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].maxBitrate * 1000);
 
   // Default bitrate limits for 360p should be used.
   const absl::optional<VideoEncoder::ResolutionBitrateLimits>
@@ -2183,18 +2109,18 @@
   video_source_.IncomingCapturedFrame(CreateFrame(2, 640, 360));
   EXPECT_FALSE(WaitForFrame(1000));
   EXPECT_EQ(static_cast<uint32_t>(kDefaultLimits360p->min_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].minBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].minBitrate * 1000);
   EXPECT_EQ(static_cast<uint32_t>(kDefaultLimits360p->max_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].maxBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].maxBitrate * 1000);
 
   // Resolution b/w 270p and 360p. The default limits for 360p should be used.
   video_source_.IncomingCapturedFrame(
       CreateFrame(3, (640 + 480) / 2, (360 + 270) / 2));
   EXPECT_FALSE(WaitForFrame(1000));
   EXPECT_EQ(static_cast<uint32_t>(kDefaultLimits360p->min_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].minBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].minBitrate * 1000);
   EXPECT_EQ(static_cast<uint32_t>(kDefaultLimits360p->max_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].maxBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].maxBitrate * 1000);
 
   // Default bitrate limits for 540p should be used.
   const absl::optional<VideoEncoder::ResolutionBitrateLimits>
@@ -2204,9 +2130,9 @@
   video_source_.IncomingCapturedFrame(CreateFrame(4, 960, 540));
   EXPECT_FALSE(WaitForFrame(1000));
   EXPECT_EQ(static_cast<uint32_t>(kDefaultLimits540p->min_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].minBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].minBitrate * 1000);
   EXPECT_EQ(static_cast<uint32_t>(kDefaultLimits540p->max_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].maxBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].maxBitrate * 1000);
 
   video_stream_encoder_->Stop();
 }
@@ -2238,19 +2164,19 @@
   // The encoder bitrate limits for 360p should be used.
   video_source_.IncomingCapturedFrame(CreateFrame(1, 1280, 720));
   EXPECT_FALSE(WaitForFrame(1000));
-  EXPECT_EQ(fake_encoder_.video_codec().numberOfSimulcastStreams, kNumStreams);
+  EXPECT_EQ(fake_encoder_.config().numberOfSimulcastStreams, kNumStreams);
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits360p.min_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].minBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].minBitrate * 1000);
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits360p.max_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].maxBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].maxBitrate * 1000);
 
   // The encoder bitrate limits for 270p should be used.
   video_source_.IncomingCapturedFrame(CreateFrame(2, 960, 540));
   EXPECT_FALSE(WaitForFrame(1000));
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits270p.min_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].minBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].minBitrate * 1000);
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits270p.max_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].maxBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].maxBitrate * 1000);
 
   video_stream_encoder_->Stop();
 }
@@ -2283,11 +2209,11 @@
   // on lowest stream, limits for 270p should not be used
   video_source_.IncomingCapturedFrame(CreateFrame(1, 1280, 720));
   EXPECT_FALSE(WaitForFrame(1000));
-  EXPECT_EQ(fake_encoder_.video_codec().numberOfSimulcastStreams, kNumStreams);
+  EXPECT_EQ(fake_encoder_.config().numberOfSimulcastStreams, kNumStreams);
   EXPECT_NE(static_cast<uint32_t>(kEncoderLimits270p.min_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].minBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].minBitrate * 1000);
   EXPECT_NE(static_cast<uint32_t>(kEncoderLimits270p.max_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].maxBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].maxBitrate * 1000);
 
   video_stream_encoder_->Stop();
 }
@@ -2318,19 +2244,19 @@
   // The encoder bitrate limits for 270p should be used.
   video_source_.IncomingCapturedFrame(CreateFrame(1, 480, 270));
   EXPECT_FALSE(WaitForFrame(1000));
-  EXPECT_EQ(fake_encoder_.video_codec().numberOfSimulcastStreams, kNumStreams);
+  EXPECT_EQ(fake_encoder_.config().numberOfSimulcastStreams, kNumStreams);
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits270p.min_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].minBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].minBitrate * 1000);
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits270p.max_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].maxBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].maxBitrate * 1000);
 
   // The max configured bitrate is less than the encoder limit for 360p.
   video_source_.IncomingCapturedFrame(CreateFrame(2, 640, 360));
   EXPECT_FALSE(WaitForFrame(1000));
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits360p.min_bitrate_bps),
-            fake_encoder_.video_codec().simulcastStream[1].minBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].minBitrate * 1000);
   EXPECT_EQ(static_cast<uint32_t>(kMaxBitrateBps),
-            fake_encoder_.video_codec().simulcastStream[1].maxBitrate * 1000);
+            fake_encoder_.config().simulcastStream[1].maxBitrate * 1000);
 
   video_stream_encoder_->Stop();
 }
@@ -2404,9 +2330,8 @@
   video_stream_encoder_->ConfigureEncoder(std::move(config), kMaxPayloadLength);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps),
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps),
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps), 0, 0, 0);
+      kSimulcastTargetBitrate, kSimulcastTargetBitrate, kSimulcastTargetBitrate,
+      0, 0, 0);
   // Wait for all layers before triggering event.
   sink_.SetNumExpectedLayers(num_streams);
 
@@ -2415,7 +2340,7 @@
   int64_t timestamp_ms = kFrameIntervalMs;
   video_source_.IncomingCapturedFrame(CreateFrame(timestamp_ms, 1280, 720));
   WaitForEncodedFrame(timestamp_ms);
-  EXPECT_EQ(1, fake_encoder_.GetNumEncoderInitializations());
+  EXPECT_EQ(1, fake_encoder_.GetNumInitializations());
 
   // On the 2nd frame, we should be receiving a correctly aligned resolution.
   // (It's up the to the encoder to potentially drop the previous frame,
@@ -2423,9 +2348,9 @@
   timestamp_ms += kFrameIntervalMs;
   video_source_.IncomingCapturedFrame(CreateFrame(timestamp_ms, 1280, 720));
   WaitForEncodedFrame(timestamp_ms);
-  EXPECT_GE(fake_encoder_.GetNumEncoderInitializations(), 1);
+  EXPECT_GE(fake_encoder_.GetNumInitializations(), 1);
 
-  VideoCodec codec = fake_encoder_.video_codec();
+  VideoCodec codec = fake_encoder_.config();
   EXPECT_EQ(codec.numberOfSimulcastStreams, num_streams);
   // Frame size should be a multiple of the requested alignment.
   for (int i = 0; i < codec.numberOfSimulcastStreams; ++i) {
@@ -2450,9 +2375,7 @@
 
   // Enable BALANCED preference, no initial limitation.
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_stream_encoder_->SetSource(&video_source_,
                                    webrtc::DegradationPreference::BALANCED);
   EXPECT_THAT(video_source_.sink_wants(), UnlimitedSinkWants());
@@ -2538,10 +2461,8 @@
 
 TEST_F(VideoStreamEncoderTest,
        SinkWantsNotChangedByResourceLimitedBeforeDegradationPreferenceChange) {
-  video_stream_encoder_->OnBitrateUpdated(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+  video_stream_encoder_->OnBitrateUpdated(kTargetBitrate, kTargetBitrate,
+                                          kTargetBitrate, 0, 0, 0);
   EXPECT_THAT(video_source_.sink_wants(), UnlimitedSinkWants());
 
   const int kFrameWidth = 1280;
@@ -2651,9 +2572,7 @@
 
 TEST_F(VideoStreamEncoderTest, SinkWantsStoredByDegradationPreference) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   EXPECT_THAT(video_source_.sink_wants(), UnlimitedSinkWants());
 
   const int kFrameWidth = 1280;
@@ -2765,9 +2684,7 @@
 
 TEST_F(VideoStreamEncoderTest, StatsTracksQualityAdaptationStats) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   const int kWidth = 1280;
   const int kHeight = 720;
@@ -2801,9 +2718,7 @@
 
 TEST_F(VideoStreamEncoderTest, StatsTracksCpuAdaptationStats) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   const int kWidth = 1280;
   const int kHeight = 720;
@@ -2837,9 +2752,7 @@
 
 TEST_F(VideoStreamEncoderTest, SwitchingSourceKeepsCpuAdaptation) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   const int kWidth = 1280;
   const int kHeight = 720;
@@ -2908,9 +2821,7 @@
 
 TEST_F(VideoStreamEncoderTest, SwitchingSourceKeepsQualityAdaptation) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   const int kWidth = 1280;
   const int kHeight = 720;
@@ -2971,9 +2882,7 @@
 TEST_F(VideoStreamEncoderTest,
        QualityAdaptationStatsAreResetWhenScalerIsDisabled) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   const int kWidth = 1280;
   const int kHeight = 720;
@@ -3029,9 +2938,7 @@
 TEST_F(VideoStreamEncoderTest,
        StatsTracksCpuAdaptationStatsWhenSwitchingSource_Balanced) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   const int kWidth = 1280;
   const int kHeight = 720;
@@ -3096,9 +3003,7 @@
 TEST_F(VideoStreamEncoderTest,
        StatsTracksCpuAdaptationStatsWhenSwitchingSource) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   const int kWidth = 1280;
   const int kHeight = 720;
@@ -3235,9 +3140,7 @@
   const int kWidth = 1280;
   const int kHeight = 720;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Expect no scaling to begin with.
   EXPECT_THAT(video_source_.sink_wants(), UnlimitedSinkWants());
@@ -3286,9 +3189,7 @@
   const int kWidth = 1280;
   const int kHeight = 720;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable MAINTAIN_FRAMERATE preference, no initial limitation.
   test::FrameForwarder source;
@@ -3322,9 +3223,7 @@
   const int kWidth = 1280;
   const int kHeight = 720;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable BALANCED preference, no initial limitation.
   test::FrameForwarder source;
@@ -3367,9 +3266,7 @@
   const int kHeight = 360;
   const int64_t kFrameIntervalMs = 150;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable BALANCED preference, no initial limitation.
   AdaptingFrameForwarder source(&time_controller_);
@@ -3476,9 +3373,7 @@
   const int kHeight = 720;
   const int64_t kFrameIntervalMs = 150;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable BALANCED preference, no initial limitation.
   AdaptingFrameForwarder source(&time_controller_);
@@ -3617,9 +3512,7 @@
   const int kWidth = 1280;
   const int kHeight = 720;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable MAINTAIN_FRAMERATE preference, no initial limitation.
   test::FrameForwarder source;
@@ -3646,9 +3539,7 @@
   const int kWidth = 1280;
   const int kHeight = 720;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable MAINTAIN_RESOLUTION preference, no initial limitation.
   test::FrameForwarder source;
@@ -3674,9 +3565,7 @@
   const int kWidth = 1280;
   const int kHeight = 720;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable BALANCED preference, no initial limitation.
   test::FrameForwarder source;
@@ -3704,9 +3593,7 @@
   const int kWidth = 1280;
   const int kHeight = 720;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable DISABLED preference, no initial limitation.
   test::FrameForwarder source;
@@ -3735,9 +3622,7 @@
   const int kWidth = 1280;
   const int kHeight = 720;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable MAINTAIN_FRAMERATE preference, no initial limitation.
   AdaptingFrameForwarder source(&time_controller_);
@@ -3776,9 +3661,7 @@
   const int kHeight = 720;
   const int kInputFps = 30;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   VideoSendStream::Stats stats = stats_proxy_->GetStats();
   stats.input_frame_rate = kInputFps;
@@ -3826,9 +3709,7 @@
   const size_t kNumFrames = 10;
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable adapter, expected input resolutions when downscaling:
   // 1280x720 -> 960x540 -> 640x360 -> 480x270 -> 320x180 (kMinPixelsPerFrame)
@@ -3864,9 +3745,7 @@
   const int kWidth = 1280;
   const int kHeight = 720;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable MAINTAIN_FRAMERATE preference, no initial limitation.
   AdaptingFrameForwarder source(&time_controller_);
@@ -3927,9 +3806,7 @@
   const int kWidth = 1280;
   const int kHeight = 720;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable BALANCED preference, no initial limitation.
   AdaptingFrameForwarder source(&time_controller_);
@@ -4075,17 +3952,16 @@
   void SetupTest() {
     // Reset encoder for field trials to take effect.
     ConfigureEncoder(video_encoder_config_.Copy());
-    OnBitrateUpdated(kTargetBitrateBps);
+    OnBitrateUpdated(kTargetBitrate);
 
     // Enable BALANCED preference.
     source_.set_adaptation_enabled(true);
     video_stream_encoder_->SetSource(&source_, DegradationPreference::BALANCED);
   }
 
-  void OnBitrateUpdated(int bitrate_bps) {
+  void OnBitrateUpdated(DataRate bitrate) {
     video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-        DataRate::BitsPerSec(bitrate_bps), DataRate::BitsPerSec(bitrate_bps),
-        DataRate::BitsPerSec(bitrate_bps), 0, 0, 0);
+        bitrate, bitrate, bitrate, 0, 0, 0);
   }
 
   void InsertFrame() {
@@ -4176,9 +4052,9 @@
       "pixels:57600|129600|230400,fps:7|10|14,kbps:0|0|425/");
   SetupTest();
 
-  const int kMinBitrateBps = 425000;
-  const int kTooLowMinBitrateBps = 424000;
-  OnBitrateUpdated(kTooLowMinBitrateBps);
+  const DataRate kMinBitrate = DataRate::KilobitsPerSec(425);
+  const DataRate kTooLowMinBitrate = DataRate::KilobitsPerSec(424);
+  OnBitrateUpdated(kTooLowMinBitrate);
 
   InsertFrameAndWaitForEncoded();
   EXPECT_THAT(source_.sink_wants(), FpsMaxResolutionMax());
@@ -4209,7 +4085,7 @@
   EXPECT_EQ(3, stats_proxy_->GetStats().number_of_quality_adapt_changes);
 
   // Trigger adapt up, expect upscaled fps (target bitrate == min bitrate).
-  OnBitrateUpdated(kMinBitrateBps);
+  OnBitrateUpdated(kMinBitrate);
   video_stream_encoder_->TriggerQualityHigh();
   InsertFrameAndWaitForEncoded();
   EXPECT_EQ(source_.sink_wants().max_framerate_fps, 14);
@@ -4224,7 +4100,7 @@
       "WebRTC-Video-BalancedDegradationSettings/"
       "pixels:57600|129600|230400,fps:7|24|24/");
   SetupTest();
-  OnBitrateUpdated(kLowTargetBitrateBps);
+  OnBitrateUpdated(kLowTargetBitrate);
 
   EXPECT_THAT(source_.sink_wants(), UnlimitedSinkWants());
 
@@ -4256,9 +4132,9 @@
       "pixels:57600|129600|230400,fps:7|10|14,kbps_res:0|0|435/");
   SetupTest();
 
-  const int kResolutionMinBitrateBps = 435000;
-  const int kTooLowMinResolutionBitrateBps = 434000;
-  OnBitrateUpdated(kTooLowMinResolutionBitrateBps);
+  const DataRate kResolutionMinBitrate = DataRate::KilobitsPerSec(435);
+  const DataRate kTooLowMinResolutionBitrate = DataRate::KilobitsPerSec(434);
+  OnBitrateUpdated(kTooLowMinResolutionBitrate);
 
   InsertFrameAndWaitForEncoded();
   EXPECT_THAT(source_.sink_wants(), FpsMaxResolutionMax());
@@ -4294,7 +4170,7 @@
   EXPECT_EQ(4, stats_proxy_->GetStats().number_of_quality_adapt_changes);
 
   // Trigger adapt up, expect upscaled res (target bitrate == min bitrate).
-  OnBitrateUpdated(kResolutionMinBitrateBps);
+  OnBitrateUpdated(kResolutionMinBitrate);
   video_stream_encoder_->TriggerQualityHigh();
   InsertFrameAndWaitForEncoded();
   EXPECT_THAT(source_.sink_wants(), FpsEqResolutionGt(source_.last_wants()));
@@ -4310,11 +4186,11 @@
       "pixels:57600|129600|230400,fps:7|10|14,kbps:0|0|425,kbps_res:0|0|435/");
   SetupTest();
 
-  const int kMinBitrateBps = 425000;
-  const int kTooLowMinBitrateBps = 424000;
-  const int kResolutionMinBitrateBps = 435000;
-  const int kTooLowMinResolutionBitrateBps = 434000;
-  OnBitrateUpdated(kTooLowMinBitrateBps);
+  const DataRate kMinBitrate = DataRate::KilobitsPerSec(425);
+  const DataRate kTooLowMinBitrate = DataRate::KilobitsPerSec(424);
+  const DataRate kResolutionMinBitrate = DataRate::KilobitsPerSec(435);
+  const DataRate kTooLowMinResolutionBitrate = DataRate::KilobitsPerSec(434);
+  OnBitrateUpdated(kTooLowMinBitrate);
 
   InsertFrameAndWaitForEncoded();
   EXPECT_THAT(source_.sink_wants(), FpsMaxResolutionMax());
@@ -4344,20 +4220,20 @@
   EXPECT_EQ(3, stats_proxy_->GetStats().number_of_quality_adapt_changes);
 
   // Trigger adapt up, expect upscaled fps (target bitrate == min bitrate).
-  OnBitrateUpdated(kMinBitrateBps);
+  OnBitrateUpdated(kMinBitrate);
   video_stream_encoder_->TriggerQualityHigh();
   InsertFrameAndWaitForEncoded();
   EXPECT_THAT(source_.sink_wants(), FpsGtResolutionEq(source_.last_wants()));
   EXPECT_EQ(4, stats_proxy_->GetStats().number_of_quality_adapt_changes);
 
   // Trigger adapt up, expect no upscale in res (target bitrate < min bitrate).
-  OnBitrateUpdated(kTooLowMinResolutionBitrateBps);
+  OnBitrateUpdated(kTooLowMinResolutionBitrate);
   video_stream_encoder_->TriggerQualityHigh();
   InsertFrameAndWaitForEncoded();
   EXPECT_EQ(4, stats_proxy_->GetStats().number_of_quality_adapt_changes);
 
   // Trigger adapt up, expect upscaled res (target bitrate == min bitrate).
-  OnBitrateUpdated(kResolutionMinBitrateBps);
+  OnBitrateUpdated(kResolutionMinBitrate);
   video_stream_encoder_->TriggerQualityHigh();
   InsertFrameAndWaitForEncoded();
   EXPECT_THAT(source_.sink_wants(), FpsEqResolutionGt(source_.last_wants()));
@@ -4371,9 +4247,7 @@
   const int kWidth = 1280;
   const int kHeight = 720;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable MAINTAIN_FRAMERATE preference, no initial limitation.
   AdaptingFrameForwarder source(&time_controller_);
@@ -4518,9 +4392,7 @@
   const int kHeight = 360;
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   for (int i = 1; i <= SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) {
     video_source_.IncomingCapturedFrame(CreateFrame(i, kWidth, kHeight));
@@ -4547,9 +4419,7 @@
 TEST_F(VideoStreamEncoderTest,
        CpuLimitedHistogramIsNotReportedForDisabledDegradation) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   const int kWidth = 640;
   const int kHeight = 360;
 
@@ -4576,14 +4446,12 @@
 
   const int kDefaultFps = 30;
   const VideoBitrateAllocation expected_bitrate =
-      SimulcastRateAllocator(fake_encoder_.codec_config())
-          .Allocate(VideoBitrateAllocationParameters(kLowTargetBitrateBps,
+      SimulcastRateAllocator(fake_encoder_.config())
+          .Allocate(VideoBitrateAllocationParameters(kLowTargetBitrate.bps(),
                                                      kDefaultFps));
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps), 0, 0, 0);
+      kLowTargetBitrate, kLowTargetBitrate, kLowTargetBitrate, 0, 0, 0);
 
   video_source_.IncomingCapturedFrame(
       CreateFrame(CurrentTimeMs(), codec_width_, codec_height_));
@@ -4623,9 +4491,7 @@
   const int kDefaultFps = 30;
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps), 0, 0, 0);
+      kLowTargetBitrate, kLowTargetBitrate, kLowTargetBitrate, 0, 0, 0);
 
   video_source_.IncomingCapturedFrame(
       CreateFrame(CurrentTimeMs(), codec_width_, codec_height_));
@@ -4633,13 +4499,13 @@
   EXPECT_EQ(sink_.number_of_layers_allocations(), 1);
   VideoLayersAllocation last_layer_allocation =
       sink_.GetLastVideoLayersAllocation();
-  // kLowTargetBitrateBps is only enough for one spatial layer.
+  // kLowTargetBitrate is only enough for one spatial layer.
   ASSERT_EQ(last_layer_allocation.active_spatial_layers.size(), 1u);
 
   VideoBitrateAllocation bitrate_allocation =
       fake_encoder_.GetAndResetLastRateControlSettings()->target_bitrate;
   // Check that encoder has been updated too, not just allocation observer.
-  EXPECT_EQ(bitrate_allocation.get_sum_bps(), kLowTargetBitrateBps);
+  EXPECT_EQ(bitrate_allocation.get_sum_bps(), kLowTargetBitrate.bps());
   AdvanceTime(TimeDelta::Seconds(1) / kDefaultFps);
 
   // VideoLayersAllocation might be updated if frame rate changes.
@@ -4675,7 +4541,7 @@
   VideoEncoderConfig video_encoder_config;
   test::FillEncoderConfiguration(VideoCodecType::kVideoCodecVP8,
                                  /* num_streams*/ 3, &video_encoder_config);
-  video_encoder_config.max_bitrate_bps = 2 * kTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = 2 * kTargetBitrate.bps();
   video_encoder_config.content_type =
       VideoEncoderConfig::ContentType::kRealtimeVideo;
   video_encoder_config.encoder_specific_settings =
@@ -4693,9 +4559,7 @@
                        kVideoLayersAllocation);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   video_source_.IncomingCapturedFrame(CreateFrame(CurrentTimeMs(), 1280, 720));
   WaitForEncodedFrame(CurrentTimeMs());
@@ -4720,7 +4584,7 @@
   VideoEncoderConfig video_encoder_config;
   test::FillEncoderConfiguration(VideoCodecType::kVideoCodecVP8,
                                  /* num_streams*/ 3, &video_encoder_config);
-  video_encoder_config.max_bitrate_bps = 2 * kTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = 2 * kTargetBitrate.bps();
   video_encoder_config.content_type =
       VideoEncoderConfig::ContentType::kRealtimeVideo;
   video_encoder_config.encoder_specific_settings =
@@ -4738,9 +4602,7 @@
                        kVideoLayersAllocation);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   video_source_.IncomingCapturedFrame(CreateFrame(CurrentTimeMs(), 1280, 720));
   WaitForEncodedFrame(CurrentTimeMs());
@@ -4764,7 +4626,7 @@
   VideoEncoderConfig video_encoder_config;
   test::FillEncoderConfiguration(VideoCodecType::kVideoCodecVP9,
                                  /* num_streams*/ 1, &video_encoder_config);
-  video_encoder_config.max_bitrate_bps = 2 * kTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = 2 * kTargetBitrate.bps();
   video_encoder_config.content_type =
       VideoEncoderConfig::ContentType::kRealtimeVideo;
   VideoCodecVP9 vp9_settings = VideoEncoder::GetDefaultVp9Settings();
@@ -4780,9 +4642,7 @@
                        kVideoLayersAllocation);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   video_source_.IncomingCapturedFrame(CreateFrame(CurrentTimeMs(), 1280, 720));
   WaitForEncodedFrame(CurrentTimeMs());
@@ -4808,7 +4668,7 @@
   // rate.
   EXPECT_EQ(last_layer_allocation.active_spatial_layers[1]
                 .target_bitrate_per_temporal_layer[1],
-            DataRate::BitsPerSec(kTargetBitrateBps));
+            kTargetBitrate);
   video_stream_encoder_->Stop();
 }
 
@@ -4819,7 +4679,7 @@
   VideoEncoderConfig video_encoder_config;
   test::FillEncoderConfiguration(VideoCodecType::kVideoCodecVP9,
                                  /* num_streams*/ 1, &video_encoder_config);
-  video_encoder_config.max_bitrate_bps = 2 * kTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = 2 * kTargetBitrate.bps();
   video_encoder_config.content_type =
       VideoEncoderConfig::ContentType::kRealtimeVideo;
   VideoCodecVP9 vp9_settings = VideoEncoder::GetDefaultVp9Settings();
@@ -4835,9 +4695,7 @@
                        kVideoLayersAllocation);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   video_source_.IncomingCapturedFrame(CreateFrame(CurrentTimeMs(), 1280, 720));
   WaitForEncodedFrame(CurrentTimeMs());
@@ -4856,7 +4714,7 @@
   // rate.
   EXPECT_EQ(last_layer_allocation.active_spatial_layers[1]
                 .target_bitrate_per_temporal_layer[0],
-            DataRate::BitsPerSec(kTargetBitrateBps));
+            kTargetBitrate);
   video_stream_encoder_->Stop();
 }
 
@@ -4867,7 +4725,7 @@
   VideoEncoderConfig video_encoder_config;
   test::FillEncoderConfiguration(VideoCodecType::kVideoCodecVP9,
                                  /* num_streams*/ 1, &video_encoder_config);
-  video_encoder_config.max_bitrate_bps = 2 * kTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = 2 * kTargetBitrate.bps();
   video_encoder_config.content_type =
       VideoEncoderConfig::ContentType::kRealtimeVideo;
   VideoCodecVP9 vp9_settings = VideoEncoder::GetDefaultVp9Settings();
@@ -4883,9 +4741,7 @@
                        kVideoLayersAllocation);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   video_source_.IncomingCapturedFrame(CreateFrame(CurrentTimeMs(), 1280, 720));
   WaitForEncodedFrame(CurrentTimeMs());
@@ -4903,7 +4759,7 @@
   // Since  KSVC is, spatial layers are independend except on key frames.
   EXPECT_LT(last_layer_allocation.active_spatial_layers[1]
                 .target_bitrate_per_temporal_layer[1],
-            DataRate::BitsPerSec(kTargetBitrateBps));
+            kTargetBitrate);
   video_stream_encoder_->Stop();
 }
 
@@ -4915,7 +4771,7 @@
   VideoEncoderConfig video_encoder_config;
   test::FillEncoderConfiguration(VideoCodecType::kVideoCodecVP9,
                                  /* num_streams*/ 1, &video_encoder_config);
-  video_encoder_config.max_bitrate_bps = 2 * kTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = 2 * kTargetBitrate.bps();
   video_encoder_config.content_type =
       VideoEncoderConfig::ContentType::kRealtimeVideo;
   VideoCodecVP9 vp9_settings = VideoEncoder::GetDefaultVp9Settings();
@@ -4936,9 +4792,7 @@
                        kVideoLayersAllocation);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   video_source_.IncomingCapturedFrame(CreateFrame(CurrentTimeMs(), 1280, 720));
   WaitForEncodedFrame(CurrentTimeMs());
@@ -4962,7 +4816,7 @@
   // rate.
   EXPECT_EQ(last_layer_allocation.active_spatial_layers[1]
                 .target_bitrate_per_temporal_layer[1],
-            DataRate::BitsPerSec(kTargetBitrateBps));
+            kTargetBitrate);
   video_stream_encoder_->Stop();
 }
 
@@ -4974,7 +4828,7 @@
   VideoEncoderConfig video_encoder_config;
   test::FillEncoderConfiguration(VideoCodecType::kVideoCodecVP9,
                                  /* num_streams*/ 1, &video_encoder_config);
-  video_encoder_config.max_bitrate_bps = 2 * kTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = 2 * kTargetBitrate.bps();
   video_encoder_config.content_type =
       VideoEncoderConfig::ContentType::kRealtimeVideo;
   VideoCodecVP9 vp9_settings = VideoEncoder::GetDefaultVp9Settings();
@@ -4993,9 +4847,7 @@
                        kVideoLayersAllocation);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   video_source_.IncomingCapturedFrame(CreateFrame(CurrentTimeMs(), 1280, 720));
   WaitForEncodedFrame(CurrentTimeMs());
@@ -5026,7 +4878,7 @@
   VideoEncoderConfig video_encoder_config;
   test::FillEncoderConfiguration(VideoCodecType::kVideoCodecVP9,
                                  /* num_streams*/ 1, &video_encoder_config);
-  video_encoder_config.max_bitrate_bps = 2 * kTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = 2 * kTargetBitrate.bps();
   video_encoder_config.content_type =
       VideoEncoderConfig::ContentType::kRealtimeVideo;
   VideoCodecVP9 vp9_settings = VideoEncoder::GetDefaultVp9Settings();
@@ -5047,9 +4899,7 @@
                        kVideoLayersAllocation);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   video_source_.IncomingCapturedFrame(CreateFrame(CurrentTimeMs(), 1280, 720));
   WaitForEncodedFrame(CurrentTimeMs());
@@ -5065,7 +4915,7 @@
   EXPECT_EQ(last_layer_allocation.active_spatial_layers[0].spatial_id, 0);
   EXPECT_EQ(last_layer_allocation.active_spatial_layers[0]
                 .target_bitrate_per_temporal_layer[1],
-            DataRate::BitsPerSec(kTargetBitrateBps));
+            kTargetBitrate);
   video_stream_encoder_->Stop();
 }
 
@@ -5074,9 +4924,7 @@
                VideoStreamEncoder::BitrateAllocationCallbackType::
                    kVideoLayersAllocation);
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   video_source_.IncomingCapturedFrame(CreateFrame(CurrentTimeMs(), 1280, 720));
   WaitForEncodedFrame(CurrentTimeMs());
@@ -5090,7 +4938,7 @@
               SizeIs(1));
   EXPECT_EQ(last_layer_allocation.active_spatial_layers[0]
                 .target_bitrate_per_temporal_layer[0],
-            DataRate::BitsPerSec(kTargetBitrateBps));
+            kTargetBitrate);
   EXPECT_EQ(last_layer_allocation.active_spatial_layers[0].width, 1280);
   EXPECT_EQ(last_layer_allocation.active_spatial_layers[0].height, 720);
   EXPECT_EQ(last_layer_allocation.active_spatial_layers[0].frame_rate_fps, 30);
@@ -5104,9 +4952,7 @@
                    kVideoLayersAllocation);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps), 0, 0, 0);
+      kLowTargetBitrate, kLowTargetBitrate, kLowTargetBitrate, 0, 0, 0);
 
   video_source_.IncomingCapturedFrame(
       CreateFrame(CurrentTimeMs(), codec_width_, codec_height_));
@@ -5114,16 +4960,15 @@
   EXPECT_EQ(sink_.number_of_layers_allocations(), 1);
   VideoLayersAllocation last_layer_allocation =
       sink_.GetLastVideoLayersAllocation();
-  // kLowTargetBitrateBps is only enough for one spatial layer.
+  // kLowTargetBitrate is only enough for one spatial layer.
   ASSERT_EQ(last_layer_allocation.active_spatial_layers.size(), 1u);
   EXPECT_EQ(last_layer_allocation.active_spatial_layers[0]
                 .target_bitrate_per_temporal_layer[0],
-            DataRate::BitsPerSec(kLowTargetBitrateBps));
+            kLowTargetBitrate);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps),
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps),
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps), 0, 0, 0);
+      kSimulcastTargetBitrate, kSimulcastTargetBitrate, kSimulcastTargetBitrate,
+      0, 0, 0);
   video_source_.IncomingCapturedFrame(
       CreateFrame(CurrentTimeMs(), codec_width_, codec_height_));
   WaitForEncodedFrame(CurrentTimeMs());
@@ -5145,9 +4990,8 @@
                    kVideoLayersAllocation);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps),
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps),
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps), 0, 0, 0);
+      kSimulcastTargetBitrate, kSimulcastTargetBitrate, kSimulcastTargetBitrate,
+      0, 0, 0);
 
   video_source_.IncomingCapturedFrame(
       CreateFrame(CurrentTimeMs(), codec_width_, codec_height_));
@@ -5185,11 +5029,11 @@
   fake_encoder_.SetTemporalLayersSupported(0, true);
 
   // Bitrate allocated across temporal layers.
-  const int kTl0Bps = kTargetBitrateBps *
+  const int kTl0Bps = kTargetBitrate.bps() *
                       webrtc::SimulcastRateAllocator::GetTemporalRateAllocation(
                           kNumTemporalLayers, /*temporal_id*/ 0,
                           /*base_heavy_tl3_alloc*/ false);
-  const int kTl1Bps = kTargetBitrateBps *
+  const int kTl1Bps = kTargetBitrate.bps() *
                       webrtc::SimulcastRateAllocator::GetTemporalRateAllocation(
                           kNumTemporalLayers, /*temporal_id*/ 1,
                           /*base_heavy_tl3_alloc*/ false);
@@ -5211,7 +5055,7 @@
   // Temporal layers not supported by the encoder.
   // Total bitrate should be at ti:0.
   VideoBitrateAllocation expected_bitrate;
-  expected_bitrate.SetBitrate(/*si*/ 0, /*ti*/ 0, kTargetBitrateBps);
+  expected_bitrate.SetBitrate(/*si*/ 0, /*ti*/ 0, kTargetBitrate.bps());
 
   VerifyAllocatedBitrate(expected_bitrate);
   video_stream_encoder_->Stop();
@@ -5240,7 +5084,7 @@
       kS0Bps *
       webrtc::SimulcastRateAllocator::GetTemporalRateAllocation(
           /*num_layers*/ 2, /*temporal_id*/ 1, /*base_heavy_tl3_alloc*/ false);
-  const int kS1Bps = kTargetBitrateBps - kS0Tl1Bps;
+  const int kS1Bps = kTargetBitrate.bps() - kS0Tl1Bps;
   // Temporal layers not supported by si:1.
   VideoBitrateAllocation expected_bitrate;
   expected_bitrate.SetBitrate(/*si*/ 0, /*ti*/ 0, kS0Tl0Bps);
@@ -5257,9 +5101,7 @@
   const int kFramerate = 24;
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   test::FrameForwarder source;
   video_stream_encoder_->SetSource(
       &source, webrtc::DegradationPreference::MAINTAIN_RESOLUTION);
@@ -5276,7 +5118,7 @@
   VideoEncoderConfig video_encoder_config;
   test::FillEncoderConfiguration(kVideoCodecVP8, 1, &video_encoder_config);
   video_encoder_config.simulcast_layers[0].max_framerate = kFramerate;
-  video_encoder_config.max_bitrate_bps = kTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = kTargetBitrate.bps();
   video_stream_encoder_->ConfigureEncoder(std::move(video_encoder_config),
                                           kMaxPayloadLength);
   video_stream_encoder_->WaitUntilTaskQueueIsIdle();
@@ -5318,9 +5160,7 @@
   const int kHighFramerate = 25;
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   test::FrameForwarder source;
   video_stream_encoder_->SetSource(
       &source, webrtc::DegradationPreference::MAINTAIN_RESOLUTION);
@@ -5329,7 +5169,7 @@
   VideoEncoderConfig video_encoder_config;
   test::FillEncoderConfiguration(kVideoCodecVP8, 1, &video_encoder_config);
   video_encoder_config.simulcast_layers[0].max_framerate = kLowFramerate;
-  video_encoder_config.max_bitrate_bps = kTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = kTargetBitrate.bps();
   source.IncomingCapturedFrame(CreateFrame(1, kFrameWidth, kFrameHeight));
   video_stream_encoder_->ConfigureEncoder(video_encoder_config.Copy(),
                                           kMaxPayloadLength);
@@ -5381,9 +5221,7 @@
   const int kFramerate = 24;
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   test::FrameForwarder source;
   video_stream_encoder_->SetSource(
       &source, webrtc::DegradationPreference::MAINTAIN_RESOLUTION);
@@ -5392,7 +5230,7 @@
   VideoEncoderConfig video_encoder_config;
   test::FillEncoderConfiguration(kVideoCodecVP8, 1, &video_encoder_config);
   video_encoder_config.simulcast_layers[0].max_framerate = kFramerate;
-  video_encoder_config.max_bitrate_bps = kTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = kTargetBitrate.bps();
   source.IncomingCapturedFrame(CreateFrame(1, kFrameWidth, kFrameHeight));
   video_stream_encoder_->ConfigureEncoder(std::move(video_encoder_config),
                                           kMaxPayloadLength);
@@ -5487,9 +5325,7 @@
   const int kWidth = 640;
   const int kHeight = 360;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps), 0, 0, 0);
+      kLowTargetBitrate, kLowTargetBitrate, kLowTargetBitrate, 0, 0, 0);
 
   // Set degradation preference.
   video_stream_encoder_->SetSource(
@@ -5514,9 +5350,7 @@
   video_stream_encoder_->ConfigureEncoder(std::move(video_encoder_config),
                                           kMaxPayloadLength);
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps), 0, 0, 0);
+      kLowTargetBitrate, kLowTargetBitrate, kLowTargetBitrate, 0, 0, 0);
 
   // Force quality scaler reconfiguration by resetting the source.
   video_stream_encoder_->SetSource(&video_source_,
@@ -5536,15 +5370,13 @@
       "initial_bitrate_interval_ms:1000,initial_bitrate_factor:0.2/");
   // Reset encoder for field trials to take effect.
   ConfigureEncoder(video_encoder_config_.Copy());
-  const int kNotTooLowBitrateForFrameSizeBps = kTargetBitrateBps * 0.2;
-  const int kTooLowBitrateForFrameSizeBps = kTargetBitrateBps * 0.19;
+  const int kNotTooLowBitrateForFrameSizeBps = kTargetBitrate.bps() * 0.2;
+  const int kTooLowBitrateForFrameSizeBps = kTargetBitrate.bps() * 0.19;
   const int kWidth = 640;
   const int kHeight = 360;
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth, kHeight));
   // Frame should not be dropped.
   WaitForEncodedFrame(1);
@@ -5578,15 +5410,13 @@
       "initial_bitrate_interval_ms:1000,initial_bitrate_factor:0.2/");
   fake_encoder_.SetQualityScaling(false);
   ConfigureEncoder(video_encoder_config_.Copy());
-  const int kNotTooLowBitrateForFrameSizeBps = kTargetBitrateBps * 0.2;
-  const int kTooLowBitrateForFrameSizeBps = kTargetBitrateBps * 0.19;
+  const int kNotTooLowBitrateForFrameSizeBps = kTargetBitrate.bps() * 0.2;
+  const int kTooLowBitrateForFrameSizeBps = kTargetBitrate.bps() * 0.19;
   const int kWidth = 640;
   const int kHeight = 360;
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth, kHeight));
   // Frame should not be dropped.
   WaitForEncodedFrame(1);
@@ -5615,16 +5445,14 @@
 }
 
 TEST_F(VideoStreamEncoderTest, InitialFrameDropActivatesWhenLayersChange) {
-  const int kLowTargetBitrateBps = 400000;
+  const DataRate kLowTargetBitrate = DataRate::KilobitsPerSec(400);
   // Set simulcast.
   ResetEncoder("VP8", 3, 1, 1, false);
   fake_encoder_.SetQualityScaling(true);
   const int kWidth = 1280;
   const int kHeight = 720;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps), 0, 0, 0);
+      kLowTargetBitrate, kLowTargetBitrate, kLowTargetBitrate, 0, 0, 0);
   video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth, kHeight));
   // Frame should not be dropped.
   WaitForEncodedFrame(1);
@@ -5642,7 +5470,7 @@
     layer.num_temporal_layers = 1;
     layer.max_framerate = kDefaultFramerate;
   }
-  video_encoder_config.max_bitrate_bps = kSimulcastTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = kSimulcastTargetBitrate.bps();
   video_encoder_config.content_type =
       VideoEncoderConfig::ContentType::kRealtimeVideo;
 
@@ -5678,16 +5506,14 @@
 }
 
 TEST_F(VideoStreamEncoderTest, InitialFrameDropActivatesWhenSVCLayersChange) {
-  const int kLowTargetBitrateBps = 400000;
+  const DataRate kLowTargetBitrate = DataRate::KilobitsPerSec(400);
   // Set simulcast.
   ResetEncoder("VP9", 1, 1, 3, false);
   fake_encoder_.SetQualityScaling(true);
   const int kWidth = 1280;
   const int kHeight = 720;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps), 0, 0, 0);
+      kLowTargetBitrate, kLowTargetBitrate, kLowTargetBitrate, 0, 0, 0);
   video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth, kHeight));
   // Frame should not be dropped.
   WaitForEncodedFrame(1);
@@ -5704,7 +5530,7 @@
   video_encoder_config.encoder_specific_settings =
       rtc::make_ref_counted<VideoEncoderConfig::Vp9EncoderSpecificSettings>(
           vp9_settings);
-  video_encoder_config.max_bitrate_bps = kSimulcastTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = kSimulcastTargetBitrate.bps();
   video_encoder_config.content_type =
       VideoEncoderConfig::ContentType::kRealtimeVideo;
   // Currently simulcast layers `active` flags are used to inidicate
@@ -5763,7 +5589,7 @@
   video_encoder_config.encoder_specific_settings =
       rtc::make_ref_counted<VideoEncoderConfig::Vp9EncoderSpecificSettings>(
           vp9_settings);
-  video_encoder_config.max_bitrate_bps = kSimulcastTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = kSimulcastTargetBitrate.bps();
   video_encoder_config.content_type =
       VideoEncoderConfig::ContentType::kRealtimeVideo;
   // Simulcast layers are used to indicate which spatial layers are active.
@@ -5779,32 +5605,30 @@
   // The encoder bitrate limits for 360p should be used.
   video_source_.IncomingCapturedFrame(CreateFrame(1, 1280, 720));
   EXPECT_FALSE(WaitForFrame(1000));
-  EXPECT_EQ(fake_encoder_.video_codec().numberOfSimulcastStreams, 1);
-  EXPECT_EQ(fake_encoder_.video_codec().codecType,
-            VideoCodecType::kVideoCodecVP9);
-  EXPECT_EQ(fake_encoder_.video_codec().VP9()->numberOfSpatialLayers, 2);
-  EXPECT_TRUE(fake_encoder_.video_codec().spatialLayers[0].active);
-  EXPECT_EQ(640, fake_encoder_.video_codec().spatialLayers[0].width);
-  EXPECT_EQ(360, fake_encoder_.video_codec().spatialLayers[0].height);
+  EXPECT_EQ(fake_encoder_.config().numberOfSimulcastStreams, 1);
+  EXPECT_EQ(fake_encoder_.config().codecType, VideoCodecType::kVideoCodecVP9);
+  EXPECT_EQ(fake_encoder_.config().VP9().numberOfSpatialLayers, 2);
+  EXPECT_TRUE(fake_encoder_.config().spatialLayers[0].active);
+  EXPECT_EQ(640, fake_encoder_.config().spatialLayers[0].width);
+  EXPECT_EQ(360, fake_encoder_.config().spatialLayers[0].height);
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits360p.min_bitrate_bps),
-            fake_encoder_.video_codec().spatialLayers[0].minBitrate * 1000);
+            fake_encoder_.config().spatialLayers[0].minBitrate * 1000);
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits360p.max_bitrate_bps),
-            fake_encoder_.video_codec().spatialLayers[0].maxBitrate * 1000);
+            fake_encoder_.config().spatialLayers[0].maxBitrate * 1000);
 
   // The encoder bitrate limits for 270p should be used.
   video_source_.IncomingCapturedFrame(CreateFrame(2, 960, 540));
   EXPECT_FALSE(WaitForFrame(1000));
-  EXPECT_EQ(fake_encoder_.video_codec().numberOfSimulcastStreams, 1);
-  EXPECT_EQ(fake_encoder_.video_codec().codecType,
-            VideoCodecType::kVideoCodecVP9);
-  EXPECT_EQ(fake_encoder_.video_codec().VP9()->numberOfSpatialLayers, 2);
-  EXPECT_TRUE(fake_encoder_.video_codec().spatialLayers[0].active);
-  EXPECT_EQ(480, fake_encoder_.video_codec().spatialLayers[0].width);
-  EXPECT_EQ(270, fake_encoder_.video_codec().spatialLayers[0].height);
+  EXPECT_EQ(fake_encoder_.config().numberOfSimulcastStreams, 1);
+  EXPECT_EQ(fake_encoder_.config().codecType, VideoCodecType::kVideoCodecVP9);
+  EXPECT_EQ(fake_encoder_.config().VP9().numberOfSpatialLayers, 2);
+  EXPECT_TRUE(fake_encoder_.config().spatialLayers[0].active);
+  EXPECT_EQ(480, fake_encoder_.config().spatialLayers[0].width);
+  EXPECT_EQ(270, fake_encoder_.config().spatialLayers[0].height);
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits270p.min_bitrate_bps),
-            fake_encoder_.video_codec().spatialLayers[0].minBitrate * 1000);
+            fake_encoder_.config().spatialLayers[0].minBitrate * 1000);
   EXPECT_EQ(static_cast<uint32_t>(kEncoderLimits270p.max_bitrate_bps),
-            fake_encoder_.video_codec().spatialLayers[0].maxBitrate * 1000);
+            fake_encoder_.config().spatialLayers[0].maxBitrate * 1000);
 
   video_stream_encoder_->Stop();
 }
@@ -5821,7 +5645,7 @@
   video_encoder_config.encoder_specific_settings =
       rtc::make_ref_counted<VideoEncoderConfig::Vp9EncoderSpecificSettings>(
           vp9_settings);
-  video_encoder_config.max_bitrate_bps = kSimulcastTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = kSimulcastTargetBitrate.bps();
   video_encoder_config.content_type =
       VideoEncoderConfig::ContentType::kRealtimeVideo;
   // Simulcast layers are used to indicate which spatial layers are active.
@@ -5840,17 +5664,16 @@
           kVideoCodecVP9, 640 * 360);
   video_source_.IncomingCapturedFrame(CreateFrame(1, 1280, 720));
   EXPECT_FALSE(WaitForFrame(1000));
-  EXPECT_EQ(fake_encoder_.video_codec().numberOfSimulcastStreams, 1);
-  EXPECT_EQ(fake_encoder_.video_codec().codecType,
-            VideoCodecType::kVideoCodecVP9);
-  EXPECT_EQ(fake_encoder_.video_codec().VP9()->numberOfSpatialLayers, 2);
-  EXPECT_TRUE(fake_encoder_.video_codec().spatialLayers[0].active);
-  EXPECT_EQ(640, fake_encoder_.video_codec().spatialLayers[0].width);
-  EXPECT_EQ(360, fake_encoder_.video_codec().spatialLayers[0].height);
+  EXPECT_EQ(fake_encoder_.config().numberOfSimulcastStreams, 1);
+  EXPECT_EQ(fake_encoder_.config().codecType, VideoCodecType::kVideoCodecVP9);
+  EXPECT_EQ(fake_encoder_.config().VP9().numberOfSpatialLayers, 2);
+  EXPECT_TRUE(fake_encoder_.config().spatialLayers[0].active);
+  EXPECT_EQ(640, fake_encoder_.config().spatialLayers[0].width);
+  EXPECT_EQ(360, fake_encoder_.config().spatialLayers[0].height);
   EXPECT_EQ(static_cast<uint32_t>(kLimits360p->min_bitrate_bps),
-            fake_encoder_.video_codec().spatialLayers[0].minBitrate * 1000);
+            fake_encoder_.config().spatialLayers[0].minBitrate * 1000);
   EXPECT_EQ(static_cast<uint32_t>(kLimits360p->max_bitrate_bps),
-            fake_encoder_.video_codec().spatialLayers[0].maxBitrate * 1000);
+            fake_encoder_.config().spatialLayers[0].maxBitrate * 1000);
 
   // The default bitrate limits for 270p should be used.
   const absl::optional<VideoEncoder::ResolutionBitrateLimits> kLimits270p =
@@ -5858,17 +5681,16 @@
           kVideoCodecVP9, 480 * 270);
   video_source_.IncomingCapturedFrame(CreateFrame(2, 960, 540));
   EXPECT_FALSE(WaitForFrame(1000));
-  EXPECT_EQ(fake_encoder_.video_codec().numberOfSimulcastStreams, 1);
-  EXPECT_EQ(fake_encoder_.video_codec().codecType,
-            VideoCodecType::kVideoCodecVP9);
-  EXPECT_EQ(fake_encoder_.video_codec().VP9()->numberOfSpatialLayers, 2);
-  EXPECT_TRUE(fake_encoder_.video_codec().spatialLayers[0].active);
-  EXPECT_EQ(480, fake_encoder_.video_codec().spatialLayers[0].width);
-  EXPECT_EQ(270, fake_encoder_.video_codec().spatialLayers[0].height);
+  EXPECT_EQ(fake_encoder_.config().numberOfSimulcastStreams, 1);
+  EXPECT_EQ(fake_encoder_.config().codecType, VideoCodecType::kVideoCodecVP9);
+  EXPECT_EQ(fake_encoder_.config().VP9().numberOfSpatialLayers, 2);
+  EXPECT_TRUE(fake_encoder_.config().spatialLayers[0].active);
+  EXPECT_EQ(480, fake_encoder_.config().spatialLayers[0].width);
+  EXPECT_EQ(270, fake_encoder_.config().spatialLayers[0].height);
   EXPECT_EQ(static_cast<uint32_t>(kLimits270p->min_bitrate_bps),
-            fake_encoder_.video_codec().spatialLayers[0].minBitrate * 1000);
+            fake_encoder_.config().spatialLayers[0].minBitrate * 1000);
   EXPECT_EQ(static_cast<uint32_t>(kLimits270p->max_bitrate_bps),
-            fake_encoder_.video_codec().spatialLayers[0].maxBitrate * 1000);
+            fake_encoder_.config().spatialLayers[0].maxBitrate * 1000);
 
   video_stream_encoder_->Stop();
 }
@@ -5886,7 +5708,7 @@
   video_encoder_config.encoder_specific_settings =
       rtc::make_ref_counted<VideoEncoderConfig::Vp9EncoderSpecificSettings>(
           vp9_settings);
-  video_encoder_config.max_bitrate_bps = kSimulcastTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = kSimulcastTargetBitrate.bps();
   video_encoder_config.content_type =
       VideoEncoderConfig::ContentType::kRealtimeVideo;
   // Simulcast layers are used to indicate which spatial layers are active.
@@ -5908,14 +5730,14 @@
           kVideoCodecVP9, 640 * 360);
   video_source_.IncomingCapturedFrame(CreateFrame(1, 1280, 720));
   EXPECT_FALSE(WaitForFrame(1000));
-  EXPECT_EQ(fake_encoder_.video_codec().numberOfSimulcastStreams, 1);
-  EXPECT_EQ(fake_encoder_.video_codec().codecType, kVideoCodecVP9);
-  EXPECT_EQ(fake_encoder_.video_codec().VP9()->numberOfSpatialLayers, 2);
-  EXPECT_TRUE(fake_encoder_.video_codec().spatialLayers[0].active);
-  EXPECT_EQ(640, fake_encoder_.video_codec().spatialLayers[0].width);
-  EXPECT_EQ(360, fake_encoder_.video_codec().spatialLayers[0].height);
+  EXPECT_EQ(fake_encoder_.config().numberOfSimulcastStreams, 1);
+  EXPECT_EQ(fake_encoder_.config().codecType, kVideoCodecVP9);
+  EXPECT_EQ(fake_encoder_.config().VP9().numberOfSpatialLayers, 2);
+  EXPECT_TRUE(fake_encoder_.config().spatialLayers[0].active);
+  EXPECT_EQ(640, fake_encoder_.config().spatialLayers[0].width);
+  EXPECT_EQ(360, fake_encoder_.config().spatialLayers[0].height);
   EXPECT_NE(static_cast<uint32_t>(kLimits360p->max_bitrate_bps),
-            fake_encoder_.video_codec().spatialLayers[0].maxBitrate * 1000);
+            fake_encoder_.config().spatialLayers[0].maxBitrate * 1000);
 
   video_stream_encoder_->Stop();
 }
@@ -5930,15 +5752,14 @@
           kVideoCodecVP9, 1280 * 720);
   video_source_.IncomingCapturedFrame(CreateFrame(1, 1280, 720));
   EXPECT_FALSE(WaitForFrame(1000));
-  EXPECT_EQ(fake_encoder_.video_codec().numberOfSimulcastStreams, 1);
-  EXPECT_EQ(fake_encoder_.video_codec().codecType,
-            VideoCodecType::kVideoCodecVP9);
-  EXPECT_EQ(fake_encoder_.video_codec().VP9()->numberOfSpatialLayers, 1);
-  EXPECT_TRUE(fake_encoder_.video_codec().spatialLayers[0].active);
-  EXPECT_EQ(1280, fake_encoder_.video_codec().spatialLayers[0].width);
-  EXPECT_EQ(720, fake_encoder_.video_codec().spatialLayers[0].height);
+  EXPECT_EQ(fake_encoder_.config().numberOfSimulcastStreams, 1);
+  EXPECT_EQ(fake_encoder_.config().codecType, VideoCodecType::kVideoCodecVP9);
+  EXPECT_EQ(fake_encoder_.config().VP9().numberOfSpatialLayers, 1);
+  EXPECT_TRUE(fake_encoder_.config().spatialLayers[0].active);
+  EXPECT_EQ(1280, fake_encoder_.config().spatialLayers[0].width);
+  EXPECT_EQ(720, fake_encoder_.config().spatialLayers[0].height);
   EXPECT_NE(static_cast<uint32_t>(kLimits720p->max_bitrate_bps),
-            fake_encoder_.video_codec().spatialLayers[0].maxBitrate * 1000);
+            fake_encoder_.config().spatialLayers[0].maxBitrate * 1000);
 
   video_stream_encoder_->Stop();
 }
@@ -5962,7 +5783,7 @@
   video_encoder_config.encoder_specific_settings =
       rtc::make_ref_counted<VideoEncoderConfig::Vp9EncoderSpecificSettings>(
           vp9_settings);
-  video_encoder_config.max_bitrate_bps = kSimulcastTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = kSimulcastTargetBitrate.bps();
   video_encoder_config.content_type =
       VideoEncoderConfig::ContentType::kRealtimeVideo;
   // Simulcast layers are used to indicate which spatial layers are active.
@@ -5978,17 +5799,16 @@
   // Limits not applied on lowest stream, limits for 180p should not be used.
   video_source_.IncomingCapturedFrame(CreateFrame(1, 1280, 720));
   EXPECT_FALSE(WaitForFrame(1000));
-  EXPECT_EQ(fake_encoder_.video_codec().numberOfSimulcastStreams, 1);
-  EXPECT_EQ(fake_encoder_.video_codec().codecType,
-            VideoCodecType::kVideoCodecVP9);
-  EXPECT_EQ(fake_encoder_.video_codec().VP9()->numberOfSpatialLayers, 3);
-  EXPECT_TRUE(fake_encoder_.video_codec().spatialLayers[0].active);
-  EXPECT_EQ(320, fake_encoder_.video_codec().spatialLayers[0].width);
-  EXPECT_EQ(180, fake_encoder_.video_codec().spatialLayers[0].height);
+  EXPECT_EQ(fake_encoder_.config().numberOfSimulcastStreams, 1);
+  EXPECT_EQ(fake_encoder_.config().codecType, VideoCodecType::kVideoCodecVP9);
+  EXPECT_EQ(fake_encoder_.config().VP9().numberOfSpatialLayers, 3);
+  EXPECT_TRUE(fake_encoder_.config().spatialLayers[0].active);
+  EXPECT_EQ(320, fake_encoder_.config().spatialLayers[0].width);
+  EXPECT_EQ(180, fake_encoder_.config().spatialLayers[0].height);
   EXPECT_NE(static_cast<uint32_t>(kEncoderLimits180p.min_bitrate_bps),
-            fake_encoder_.video_codec().spatialLayers[0].minBitrate * 1000);
+            fake_encoder_.config().spatialLayers[0].minBitrate * 1000);
   EXPECT_NE(static_cast<uint32_t>(kEncoderLimits180p.max_bitrate_bps),
-            fake_encoder_.video_codec().spatialLayers[0].maxBitrate * 1000);
+            fake_encoder_.config().spatialLayers[0].maxBitrate * 1000);
 
   video_stream_encoder_->Stop();
 }
@@ -5999,17 +5819,13 @@
   const int kHeight = 360;
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_source_.IncomingCapturedFrame(CreateFrame(1, kWidth / 2, kHeight / 2));
   // Frame should not be dropped.
   WaitForEncodedFrame(1);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps), 0, 0, 0);
+      kLowTargetBitrate, kLowTargetBitrate, kLowTargetBitrate, 0, 0, 0);
   video_source_.IncomingCapturedFrame(CreateFrame(2, kWidth / 2, kHeight / 2));
   // Frame should not be dropped, bitrate not too low for frame.
   WaitForEncodedFrame(2);
@@ -6039,9 +5855,7 @@
   int timestamp = 1;
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   source.IncomingCapturedFrame(CreateFrame(timestamp, kWidth, kHeight));
   WaitForEncodedFrame(timestamp);
   timestamp += 9000;
@@ -6049,9 +5863,7 @@
   AdvanceTime(TimeDelta::Millis(1000));
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps),
-      DataRate::BitsPerSec(kLowTargetBitrateBps), 0, 0, 0);
+      kLowTargetBitrate, kLowTargetBitrate, kLowTargetBitrate, 0, 0, 0);
   source.IncomingCapturedFrame(CreateFrame(timestamp, kWidth, kHeight));
   // Not dropped frame, as initial frame drop is disabled by now.
   WaitForEncodedFrame(timestamp);
@@ -6150,7 +5962,7 @@
 
   // Reset encoder for field trials to take effect.
   VideoEncoderConfig config = video_encoder_config_.Copy();
-  config.max_bitrate_bps = kTargetBitrateBps;
+  config.max_bitrate_bps = kTargetBitrate.bps();
   DataRate max_bitrate = DataRate::BitsPerSec(config.max_bitrate_bps);
   ConfigureEncoder(std::move(config));
   fake_encoder_.SetQp(kQpLow);
@@ -6162,11 +5974,9 @@
                                    DegradationPreference::MAINTAIN_FRAMERATE);
 
   // Start at low bitrate.
-  const int kLowBitrateBps = 200000;
+  const DataRate kLowBitrate = DataRate::KilobitsPerSec(200);
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kLowBitrateBps),
-      DataRate::BitsPerSec(kLowBitrateBps),
-      DataRate::BitsPerSec(kLowBitrateBps), 0, 0, 0);
+      kLowBitrate, kLowBitrate, kLowBitrate, 0, 0, 0);
 
   // Expect first frame to be dropped and resolution to be limited.
   const int64_t kFrameIntervalMs = 1000 / kFps;
@@ -6224,9 +6034,7 @@
   video_stream_encoder_->SetSource(&source,
                                    DegradationPreference::MAINTAIN_FRAMERATE);
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   fake_encoder_.SetQp(kQpHigh + 1);
   const int kWidth = 1280;
   const int kHeight = 720;
@@ -6270,9 +6078,7 @@
   const int kTooSmallWidth = 10;
   const int kTooSmallHeight = 10;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable MAINTAIN_FRAMERATE preference, no initial limitation.
   test::FrameForwarder source;
@@ -6298,9 +6104,7 @@
   const int kTooSmallHeight = 10;
   const int kFpsLimit = 7;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable BALANCED preference, no initial limitation.
   test::FrameForwarder source;
@@ -6334,9 +6138,7 @@
 TEST_F(VideoStreamEncoderTest, FailingInitEncodeDoesntCauseCrash) {
   fake_encoder_.ForceInitEncodeFailure(true);
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   ResetEncoder("VP8", 2, 1, 1, false);
   const int kFrameWidth = 1280;
   const int kFrameHeight = 720;
@@ -6350,9 +6152,7 @@
 TEST_F(VideoStreamEncoderTest,
        AdaptsResolutionOnOveruse_MaintainFramerateMode) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   const int kFrameWidth = 1280;
   const int kFrameHeight = 720;
@@ -6386,9 +6186,7 @@
   const int kFrameHeight = 720;
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_stream_encoder_->SetSource(
       &video_source_, webrtc::DegradationPreference::MAINTAIN_RESOLUTION);
   video_source_.set_adaptation_enabled(true);
@@ -6490,9 +6288,7 @@
   ResetEncoder("VP8", 1, 2, 1, true);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_stream_encoder_->SetSource(
       &video_source_, webrtc::DegradationPreference::MAINTAIN_RESOLUTION);
   video_source_.set_adaptation_enabled(true);
@@ -6532,9 +6328,7 @@
   const int64_t kFrameIntervalMs = 150;
   int64_t timestamp_ms = kFrameIntervalMs;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable BALANCED preference, no initial limitation.
   AdaptingFrameForwarder source(&time_controller_);
@@ -6718,9 +6512,7 @@
   const int64_t kFrameIntervalMs = 150;
   int64_t timestamp_ms = kFrameIntervalMs;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable BALANCED preference, no initial limitation.
   AdaptingFrameForwarder source(&time_controller_);
@@ -6853,9 +6645,7 @@
   const int64_t kFrameIntervalMs = 150;
   int64_t timestamp_ms = kFrameIntervalMs;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Enable BALANCED preference, no initial limitation.
   AdaptingFrameForwarder source(&time_controller_);
@@ -6959,14 +6749,12 @@
   const int kFramerate = 24;
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   // Trigger reconfigure encoder (without resetting the entire instance).
   VideoEncoderConfig video_encoder_config;
   test::FillEncoderConfiguration(kVideoCodecVP8, 1, &video_encoder_config);
   video_encoder_config.simulcast_layers[0].max_framerate = kFramerate;
-  video_encoder_config.max_bitrate_bps = kTargetBitrateBps;
+  video_encoder_config.max_bitrate_bps = kTargetBitrate.bps();
   video_encoder_config.video_stream_factory =
       rtc::make_ref_counted<CroppingVideoStreamFactory>();
   video_stream_encoder_->ConfigureEncoder(std::move(video_encoder_config),
@@ -6995,9 +6783,7 @@
   const int kHighFps = 30;
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   int64_t timestamp_ms = CurrentTimeMs();
   max_framerate_ = kLowFps;
@@ -7012,9 +6798,7 @@
 
   // Make sure encoder is updated with new target.
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_source_.IncomingCapturedFrame(
       CreateFrame(timestamp_ms, kFrameWidth, kFrameHeight));
   WaitForEncodedFrame(timestamp_ms);
@@ -7047,15 +6831,12 @@
 TEST_F(VideoStreamEncoderTest, DoesNotUpdateBitrateAllocationWhenSuspended) {
   const int kFrameWidth = 1280;
   const int kFrameHeight = 720;
-  const int kTargetBitrateBps = 1000000;
   ResetEncoder("FAKE", 1, 1, 1, false,
                VideoStreamEncoder::BitrateAllocationCallbackType::
                    kVideoBitrateAllocation);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_stream_encoder_->WaitUntilTaskQueueIsIdle();
 
   // Insert a first video frame, causes another bitrate update.
@@ -7067,8 +6848,7 @@
 
   // Next, simulate video suspension due to pacer queue overrun.
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(0), DataRate::BitsPerSec(0), DataRate::BitsPerSec(0),
-      0, 1, 0);
+      DataRate::Zero(), DataRate::Zero(), DataRate::Zero(), 0, 1, 0);
 
   // Skip ahead until a new periodic parameter update should have occured.
   timestamp_ms += kProcessIntervalMs;
@@ -7089,9 +6869,7 @@
   const int kFrameHeight = 720;
   const CpuOveruseOptions default_options;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_source_.IncomingCapturedFrame(
       CreateFrame(1, kFrameWidth, kFrameHeight));
   WaitForEncodedFrame(1);
@@ -7114,9 +6892,7 @@
   fake_encoder_.SetIsHardwareAccelerated(true);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_source_.IncomingCapturedFrame(
       CreateFrame(1, kFrameWidth, kFrameHeight));
   WaitForEncodedFrame(1);
@@ -7136,9 +6912,7 @@
 
   const CpuOveruseOptions default_options;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_source_.IncomingCapturedFrame(
       CreateFrame(1, kFrameWidth, kFrameHeight));
   WaitForEncodedFrame(1);
@@ -7172,13 +6946,11 @@
   const int kFrameWidth = 320;
   const int kFrameHeight = 240;
   const int kFps = 30;
-  const int kTargetBitrateBps = 120000;
+  const DataRate kTargetBitrate = DataRate::KilobitsPerSec(120);
   const int kNumFramesInRun = kFps * 5;  // Runs of five seconds.
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   int64_t timestamp_ms = CurrentTimeMs();
   max_framerate_ = kFps;
@@ -7219,9 +6991,9 @@
   }
   fake_encoder_.SimulateOvershoot(overshoot_factor);
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps + 1000),
-      DataRate::BitsPerSec(kTargetBitrateBps + 1000),
-      DataRate::BitsPerSec(kTargetBitrateBps + 1000), 0, 0, 0);
+      kTargetBitrate + DataRate::KilobitsPerSec(1),
+      kTargetBitrate + DataRate::KilobitsPerSec(1),
+      kTargetBitrate + DataRate::KilobitsPerSec(1), 0, 0, 0);
   num_dropped = 0;
   for (int i = 0; i < kNumFramesInRun; ++i) {
     video_source_.IncomingCapturedFrame(
@@ -7234,9 +7006,7 @@
   }
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Target framerate should be still be near the expected target, despite
   // the frame drops.
@@ -7252,16 +7022,14 @@
   const int kFrameWidth = 320;
   const int kFrameHeight = 240;
   const int kActualInputFps = 24;
-  const int kTargetBitrateBps = 120000;
+  const DataRate kTargetBitrate = DataRate::KilobitsPerSec(120);
 
   ASSERT_GT(max_framerate_, kActualInputFps);
 
   int64_t timestamp_ms = CurrentTimeMs();
   max_framerate_ = kActualInputFps;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Insert 3 seconds of video, with an input fps lower than configured max.
   for (int i = 0; i < kActualInputFps * 3; ++i) {
@@ -7280,9 +7048,7 @@
 TEST_F(VideoStreamEncoderBlockedTest, AccumulatesUpdateRectOnDroppedFrames) {
   VideoFrame::UpdateRect rect;
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   fake_encoder_.BlockNextEncode();
   video_source_.IncomingCapturedFrame(
@@ -7326,9 +7092,7 @@
 
 TEST_F(VideoStreamEncoderTest, SetsFrameTypes) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // First frame is always keyframe.
   video_source_.IncomingCapturedFrame(CreateFrame(1, nullptr));
@@ -7359,9 +7123,8 @@
   // Setup simulcast with three streams.
   ResetEncoder("VP8", 3, 1, 1, false);
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps),
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps),
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps), 0, 0, 0);
+      kSimulcastTargetBitrate, kSimulcastTargetBitrate, kSimulcastTargetBitrate,
+      0, 0, 0);
   // Wait for all three layers before triggering event.
   sink_.SetNumExpectedLayers(3);
 
@@ -7402,9 +7165,7 @@
   encoder_factory_.SetHasInternalSource(true);
   ResetEncoder("VP8", 1, 1, 1, false);
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Call encoder directly, simulating internal source where encoded frame
   // callback in VideoStreamEncoder is called despite no OnFrame().
@@ -7441,9 +7202,7 @@
   encoder_factory_.SetHasInternalSource(true);
   ResetEncoder("VP8", 1, 1, 1, false);
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   int64_t timestamp = 1;
   EncodedImage image;
@@ -7470,19 +7229,17 @@
   ResetEncoder("H264", 1, 1, 1, false);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_stream_encoder_->WaitUntilTaskQueueIsIdle();
 
   fake_encoder_.SetEncodedImageData(
-      EncodedImageBuffer::Create(optimal_sps, sizeof(optimal_sps)));
+      EncodedImageBuffer::Create(kOptimalSps, sizeof(kOptimalSps)));
 
   video_source_.IncomingCapturedFrame(CreateFrame(1, nullptr));
   WaitForEncodedFrame(1);
 
   EXPECT_THAT(sink_.GetLastEncodedImageData(),
-              testing::ElementsAreArray(optimal_sps));
+              testing::ElementsAreArray(kOptimalSps));
 
   video_stream_encoder_->Stop();
 }
@@ -7497,9 +7254,7 @@
   ResetEncoder("H264", 1, 1, 1, false);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_stream_encoder_->WaitUntilTaskQueueIsIdle();
 
   fake_encoder_.SetEncodedImageData(
@@ -7509,7 +7264,7 @@
   WaitForEncodedFrame(1);
 
   EXPECT_THAT(sink_.GetLastEncodedImageData(),
-              testing::ElementsAreArray(optimal_sps));
+              testing::ElementsAreArray(kOptimalSps));
 
   video_stream_encoder_->Stop();
 }
@@ -7517,12 +7272,11 @@
 TEST_F(VideoStreamEncoderTest, CopiesVideoFrameMetadataAfterDownscale) {
   const int kFrameWidth = 1280;
   const int kFrameHeight = 720;
-  const int kTargetBitrateBps = 300000;  // To low for HD resolution.
+  const DataRate kTargetBitrate =
+      DataRate::KilobitsPerSec(300);  // Too low for HD resolution.
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_stream_encoder_->WaitUntilTaskQueueIsIdle();
 
   // Insert a first video frame. It should be dropped because of downscale in
@@ -7576,7 +7330,7 @@
   WaitForEncodedFrame(timestamp_ms);
 
   // Set a target rate below the minimum allowed by the codec settings.
-  VideoCodec codec_config = fake_encoder_.codec_config();
+  VideoCodec codec_config = fake_encoder_.config();
   DataRate min_rate = DataRate::KilobitsPerSec(codec_config.minBitrate);
   DataRate target_rate = min_rate - DataRate::KilobitsPerSec(1);
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
@@ -7601,9 +7355,7 @@
 
 TEST_F(VideoStreamEncoderTest, EncoderRatesPropagatedOnReconfigure) {
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   // Capture a frame and wait for it to synchronize with the encoder thread.
   int64_t timestamp_ms = CurrentTimeMs();
   video_source_.IncomingCapturedFrame(CreateFrame(timestamp_ms, nullptr));
@@ -7851,9 +7603,7 @@
 
   // BALANCED degradation preference is required for this feature.
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   video_stream_encoder_->SetSource(&video_source_,
                                    webrtc::DegradationPreference::BALANCED);
   EXPECT_THAT(video_source_.sink_wants(), UnlimitedSinkWants());
@@ -7904,9 +7654,7 @@
   video_source_.set_adaptation_enabled(true);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   VideoFrame frame = CreateFrame(1, kWidth, kHeight);
 
@@ -7937,9 +7685,8 @@
           "VP8", /*max qp*/ 56, /*screencast*/ false,
           /*screenshare enabled*/ false);
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps),
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps),
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps), 0, 0, 0);
+      kSimulcastTargetBitrate, kSimulcastTargetBitrate, kSimulcastTargetBitrate,
+      0, 0, 0);
 
   // First initialization.
   // Encoder should be initialized. Next frame should be key frame.
@@ -7948,7 +7695,7 @@
   int64_t timestamp_ms = kFrameIntervalMs;
   video_source_.IncomingCapturedFrame(CreateFrame(timestamp_ms, 1280, 720));
   WaitForEncodedFrame(timestamp_ms);
-  EXPECT_EQ(1, fake_encoder_.GetNumEncoderInitializations());
+  EXPECT_EQ(1, fake_encoder_.GetNumInitializations());
   EXPECT_THAT(fake_encoder_.LastFrameTypes(),
               ::testing::ElementsAreArray({VideoFrameType::kVideoFrameKey,
                                            VideoFrameType::kVideoFrameKey,
@@ -7962,7 +7709,7 @@
   timestamp_ms += kFrameIntervalMs;
   video_source_.IncomingCapturedFrame(CreateFrame(timestamp_ms, 1280, 720));
   WaitForEncodedFrame(timestamp_ms);
-  EXPECT_EQ(1, fake_encoder_.GetNumEncoderInitializations());
+  EXPECT_EQ(1, fake_encoder_.GetNumInitializations());
   EXPECT_THAT(fake_encoder_.LastFrameTypes(),
               ::testing::ElementsAreArray({VideoFrameType::kVideoFrameDelta,
                                            VideoFrameType::kVideoFrameDelta,
@@ -7976,7 +7723,7 @@
   timestamp_ms += kFrameIntervalMs;
   video_source_.IncomingCapturedFrame(CreateFrame(timestamp_ms, 1280, 720));
   WaitForEncodedFrame(timestamp_ms);
-  EXPECT_EQ(2, fake_encoder_.GetNumEncoderInitializations());
+  EXPECT_EQ(2, fake_encoder_.GetNumInitializations());
   EXPECT_THAT(fake_encoder_.LastFrameTypes(),
               ::testing::ElementsAreArray({VideoFrameType::kVideoFrameKey,
                                            VideoFrameType::kVideoFrameKey,
@@ -7990,7 +7737,7 @@
   timestamp_ms += kFrameIntervalMs;
   video_source_.IncomingCapturedFrame(CreateFrame(timestamp_ms, 1280, 720));
   WaitForEncodedFrame(timestamp_ms);
-  EXPECT_EQ(2, fake_encoder_.GetNumEncoderInitializations());
+  EXPECT_EQ(2, fake_encoder_.GetNumInitializations());
   EXPECT_THAT(fake_encoder_.LastFrameTypes(),
               ::testing::ElementsAreArray({VideoFrameType::kVideoFrameDelta,
                                            VideoFrameType::kVideoFrameDelta,
@@ -8004,7 +7751,7 @@
   timestamp_ms += kFrameIntervalMs;
   video_source_.IncomingCapturedFrame(CreateFrame(timestamp_ms, 1280, 720));
   WaitForEncodedFrame(timestamp_ms);
-  EXPECT_EQ(3, fake_encoder_.GetNumEncoderInitializations());
+  EXPECT_EQ(3, fake_encoder_.GetNumInitializations());
   EXPECT_THAT(fake_encoder_.LastFrameTypes(),
               ::testing::ElementsAreArray({VideoFrameType::kVideoFrameKey,
                                            VideoFrameType::kVideoFrameKey,
@@ -8018,9 +7765,7 @@
 
   SetUp();
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   // Capturing a frame should reconfigure the encoder and expose the encoder
   // resolution, which is the same as the input frame.
@@ -8065,9 +7810,8 @@
           "VP8", /*max qp*/ 56, /*screencast*/ false,
           /*screenshare enabled*/ false);
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps),
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps),
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps), 0, 0, 0);
+      kSimulcastTargetBitrate, kSimulcastTargetBitrate, kSimulcastTargetBitrate,
+      0, 0, 0);
 
   // Capture a frame with all layers active.
   int64_t timestamp_ms = kFrameIntervalMs;
@@ -8192,9 +7936,7 @@
   ConfigureEncoder(std::move(video_encoder_config));
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   test::FrameForwarder source;
   video_stream_encoder_->SetSource(
@@ -8222,9 +7964,7 @@
   ConfigureEncoder(std::move(video_encoder_config));
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   test::FrameForwarder source;
   video_stream_encoder_->SetSource(
@@ -8253,9 +7993,7 @@
   ConfigureEncoder(std::move(video_encoder_config));
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   test::FrameForwarder source;
   video_stream_encoder_->SetSource(
@@ -8284,9 +8022,7 @@
   ConfigureEncoder(std::move(video_encoder_config));
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   test::FrameForwarder source;
   video_stream_encoder_->SetSource(
@@ -8316,9 +8052,7 @@
       /*max_bitrate_bps=*/MaxEncBitrateKbps * 1000);
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   fake_encoder_.SetResolutionBitrateLimits({encoder_bitrate_limits});
 
@@ -8394,9 +8128,7 @@
   ConfigureEncoder(std::move(video_encoder_config));
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   test::FrameForwarder source;
   video_stream_encoder_->SetSource(
@@ -8424,9 +8156,7 @@
   ConfigureEncoder(std::move(video_encoder_config));
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   test::FrameForwarder source;
   video_stream_encoder_->SetSource(
@@ -8454,9 +8184,7 @@
   ConfigureEncoder(std::move(video_encoder_config));
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   test::FrameForwarder source;
   video_stream_encoder_->SetSource(
@@ -8487,9 +8215,7 @@
   ConfigureEncoder(std::move(video_encoder_config));
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   test::FrameForwarder source;
   video_stream_encoder_->SetSource(
@@ -8519,9 +8245,7 @@
   ConfigureEncoder(std::move(video_encoder_config));
 
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps),
-      DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+      kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
 
   test::FrameForwarder source;
   video_stream_encoder_->SetSource(
@@ -8606,9 +8330,7 @@
 
     // Set bitrate to ensure frame is not dropped.
     video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-        DataRate::BitsPerSec(kTargetBitrateBps),
-        DataRate::BitsPerSec(kTargetBitrateBps),
-        DataRate::BitsPerSec(kTargetBitrateBps), 0, 0, 0);
+        kTargetBitrate, kTargetBitrate, kTargetBitrate, 0, 0, 0);
   }
 
   const VideoCodecType codec_type_;
@@ -8675,7 +8397,7 @@
   VideoEncoderConfig config;
   if (codec_type_ == VideoCodecType::kVideoCodecVP9) {
     test::FillEncoderConfiguration(codec_type_, 1, &config);
-    config.max_bitrate_bps = kSimulcastTargetBitrateBps;
+    config.max_bitrate_bps = kSimulcastTargetBitrate.bps();
     VideoCodecVP9 vp9_settings = VideoEncoder::GetDefaultVp9Settings();
     vp9_settings.numberOfSpatialLayers = kNumSpatialLayers;
     vp9_settings.numberOfTemporalLayers = 3;
@@ -8691,7 +8413,7 @@
                                          /*is_screenshare=*/false);
   } else if (codec_type_ == VideoCodecType::kVideoCodecAV1) {
     test::FillEncoderConfiguration(codec_type_, 1, &config);
-    config.max_bitrate_bps = kSimulcastTargetBitrateBps;
+    config.max_bitrate_bps = kSimulcastTargetBitrate.bps();
     config.spatial_layers = GetSvcConfig(kFrameWidth, kFrameHeight,
                                          /*fps=*/30.0,
                                          /*first_active_layer=*/0,
@@ -8731,9 +8453,8 @@
           /*screencast*/ false,
           /*screenshare enabled*/ false);
   video_stream_encoder_->OnBitrateUpdatedAndWaitForManagedResources(
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps),
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps),
-      DataRate::BitsPerSec(kSimulcastTargetBitrateBps), 0, 0, 0);
+      kSimulcastTargetBitrate, kSimulcastTargetBitrate, kSimulcastTargetBitrate,
+      0, 0, 0);
 
   // Capture a frame with all layers active.
   sink_.SetNumExpectedLayers(kNumSpatialLayers);
@@ -8853,22 +8574,21 @@
   void RunTest(const std::vector<VideoStream>& configs,
                const int expected_num_init_encode) {
     ConfigureEncoder(configs[0]);
-    OnBitrateUpdated(DataRate::BitsPerSec(kTargetBitrateBps));
+    OnBitrateUpdated(kTargetBitrate);
     InsertFrameAndWaitForEncoded();
     EXPECT_EQ(1, sink_.number_of_reconfigurations());
     ExpectEqual(bitrate_allocator_factory_.codec_config(), configs[0]);
-    EXPECT_EQ(1, fake_encoder_.GetNumEncoderInitializations());
-    ExpectEqual(fake_encoder_.video_codec(), configs[0]);
+    EXPECT_EQ(1, fake_encoder_.GetNumInitializations());
+    ExpectEqual(fake_encoder_.config(), configs[0]);
 
     // Reconfigure encoder, the encoder should only be reconfigured if needed.
     ConfigureEncoder(configs[1]);
     InsertFrameAndWaitForEncoded();
     EXPECT_EQ(2, sink_.number_of_reconfigurations());
     ExpectEqual(bitrate_allocator_factory_.codec_config(), configs[1]);
-    EXPECT_EQ(expected_num_init_encode,
-              fake_encoder_.GetNumEncoderInitializations());
+    EXPECT_EQ(expected_num_init_encode, fake_encoder_.GetNumInitializations());
     if (expected_num_init_encode > 1)
-      ExpectEqual(fake_encoder_.video_codec(), configs[1]);
+      ExpectEqual(fake_encoder_.config(), configs[1]);
 
     video_stream_encoder_->Stop();
   }