Add field trial kill switch for packetization overhead subtraction.

Just in case.
Also slightly update picture id test to make it more clear.
This is a follow-up to
https://webrtc-review.googlesource.com/c/src/+/115410

Bug: webrtc:10155
Change-Id: I9a0239e474b79fe545738860983e1931e8b82eff
Reviewed-on: https://webrtc-review.googlesource.com/c/116661
Commit-Queue: Erik Språng <sprang@webrtc.org>
Reviewed-by: Niels Moller <nisse@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#26173}
diff --git a/call/rtp_video_sender.cc b/call/rtp_video_sender.cc
index 5da7bb7..9958d36 100644
--- a/call/rtp_video_sender.cc
+++ b/call/rtp_video_sender.cc
@@ -193,6 +193,8 @@
     const CryptoOptions& crypto_options)
     : send_side_bwe_with_overhead_(
           webrtc::field_trial::IsEnabled("WebRTC-SendSideBwe-WithOverhead")),
+      account_for_packetization_overhead_(!webrtc::field_trial::IsDisabled(
+          "WebRTC-SubtractPacketizationOverhead")),
       active_(false),
       module_process_thread_(nullptr),
       suspended_ssrcs_(std::move(suspended_ssrcs)),
@@ -634,15 +636,17 @@
   encoder_target_rate_bps_ = fec_controller_->UpdateFecRates(
       payload_bitrate_bps, framerate, fraction_loss, loss_mask_vector_, rtt);
 
-  // Subtract packetization overhead from the encoder target. If rate is really
-  // low, cap the overhead at 50%. Since packetization is measured over an
-  // averaging window, it might intermittently be higher than encoder target
-  // (eg encoder pause event), so cap it to target.
-  const uint32_t packetization_rate_bps =
-      std::min(GetPacketizationOverheadRate(), encoder_target_rate_bps_);
-  encoder_target_rate_bps_ =
-      std::max(encoder_target_rate_bps_ - packetization_rate_bps,
-               encoder_target_rate_bps_ / 2);
+  if (account_for_packetization_overhead_) {
+    // Subtract packetization overhead from the encoder target. If rate is
+    // really low, cap the overhead at 50%. Since packetization is measured over
+    // an averaging window, it might intermittently be higher than encoder
+    // target (eg encoder pause event), so cap it to target.
+    const uint32_t packetization_rate_bps =
+        std::min(GetPacketizationOverheadRate(), encoder_target_rate_bps_);
+    encoder_target_rate_bps_ =
+        std::max(encoder_target_rate_bps_ - packetization_rate_bps,
+                 encoder_target_rate_bps_ / 2);
+  }
 
   loss_mask_vector_.clear();
 
diff --git a/call/rtp_video_sender.h b/call/rtp_video_sender.h
index 2eab569..d72ef0d 100644
--- a/call/rtp_video_sender.h
+++ b/call/rtp_video_sender.h
@@ -131,6 +131,7 @@
   uint32_t GetPacketizationOverheadRate() const;
 
   const bool send_side_bwe_with_overhead_;
+  const bool account_for_packetization_overhead_;
 
   // TODO(holmer): Remove crit_ once RtpVideoSender runs on the
   // transport task queue.
diff --git a/video/picture_id_tests.cc b/video/picture_id_tests.cc
index 57abb20..c8f5cf3 100644
--- a/video/picture_id_tests.cc
+++ b/video/picture_id_tests.cc
@@ -262,13 +262,15 @@
 
     // Always divide the same total bitrate across all streams so that sending a
     // single stream avoids lowering the bitrate estimate and requiring a
-    // subsequent rampup. Also reduce the target by 10% to account for overhead
-    // that might sometimes otherwise cause streams to not be enabled.
-    const int encoder_stream_bps = rtc::checked_cast<int>(
-        0.9 * (kEncoderBitrateBps / encoder_config.number_of_streams));
+    // subsequent rampup.
+    const int encoder_stream_bps =
+        kEncoderBitrateBps /
+        rtc::checked_cast<int>(encoder_config.number_of_streams);
 
     for (size_t i = 0; i < encoder_config.number_of_streams; ++i) {
-      streams[i].min_bitrate_bps = encoder_stream_bps;
+      // Reduce the min bitrate by 10% to account for overhead that might
+      // otherwise cause streams to not be enabled.
+      streams[i].min_bitrate_bps = static_cast<int>(encoder_stream_bps * 0.9);
       streams[i].target_bitrate_bps = encoder_stream_bps;
       streams[i].max_bitrate_bps = encoder_stream_bps;
       streams[i].num_temporal_layers = num_of_temporal_layers_;