Reduce number of InterpolateSimulcastFormat calls

Call it once instead of 3 times.

Also remove FindSimulcastMaxBitrate, FindSimulcastTargetBitrate, FindSimulcastMinBitrate and a one parameter less version of InterpolateSimulcastFormat.

Bug: b/337757868, webrtc:351644568
Change-Id: I7b4002fc3134c47f368bb833925c959a07ce5177
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/356980
Reviewed-by: Ilya Nikolaevskiy <ilnik@webrtc.org>
Commit-Queue: Sergey Silkin <ssilkin@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#42623}
diff --git a/video/config/simulcast.cc b/video/config/simulcast.cc
index 8373341..00b8667 100644
--- a/video/config/simulcast.cc
+++ b/video/config/simulcast.cc
@@ -267,45 +267,6 @@
   return {width, height, max_layers, max_bitrate, target_bitrate, min_bitrate};
 }
 
-SimulcastFormat InterpolateSimulcastFormat(
-    int width,
-    int height,
-    bool enable_lowres_bitrate_interpolation,
-    webrtc::VideoCodecType codec) {
-  return InterpolateSimulcastFormat(width, height, absl::nullopt,
-                                    enable_lowres_bitrate_interpolation, codec);
-}
-
-webrtc::DataRate FindSimulcastMaxBitrate(
-    int width,
-    int height,
-    bool enable_lowres_bitrate_interpolation,
-    webrtc::VideoCodecType codec) {
-  return InterpolateSimulcastFormat(width, height,
-                                    enable_lowres_bitrate_interpolation, codec)
-      .max_bitrate;
-}
-
-webrtc::DataRate FindSimulcastTargetBitrate(
-    int width,
-    int height,
-    bool enable_lowres_bitrate_interpolation,
-    webrtc::VideoCodecType codec) {
-  return InterpolateSimulcastFormat(width, height,
-                                    enable_lowres_bitrate_interpolation, codec)
-      .target_bitrate;
-}
-
-webrtc::DataRate FindSimulcastMinBitrate(
-    int width,
-    int height,
-    bool enable_lowres_bitrate_interpolation,
-    webrtc::VideoCodecType codec) {
-  return InterpolateSimulcastFormat(width, height,
-                                    enable_lowres_bitrate_interpolation, codec)
-      .min_bitrate;
-}
-
 void BoostMaxSimulcastLayer(webrtc::DataRate max_bitrate,
                             std::vector<webrtc::VideoStream>* layers) {
   if (layers->empty())
@@ -426,14 +387,15 @@
     layers[s].max_qp = max_qp;
     layers[s].num_temporal_layers =
         temporal_layers_supported ? num_temporal_layers : 1;
-    layers[s].max_bitrate_bps =
-        FindSimulcastMaxBitrate(width, height,
-                                enable_lowres_bitrate_interpolation, codec)
-            .bps();
-    layers[s].target_bitrate_bps =
-        FindSimulcastTargetBitrate(width, height,
-                                   enable_lowres_bitrate_interpolation, codec)
-            .bps();
+
+    SimulcastFormat interpolated_format = InterpolateSimulcastFormat(
+        width, height, /*max_roundup_rate=*/absl::nullopt,
+        enable_lowres_bitrate_interpolation, codec);
+
+    layers[s].max_bitrate_bps = interpolated_format.max_bitrate.bps();
+    layers[s].target_bitrate_bps = interpolated_format.target_bitrate.bps();
+    layers[s].min_bitrate_bps = interpolated_format.min_bitrate.bps();
+
     if (s == 0) {
       // If alternative temporal rate allocation is selected, adjust the
       // bitrate of the lowest simulcast stream so that absolute bitrate for
@@ -459,10 +421,6 @@
       layers[s].target_bitrate_bps =
           static_cast<int>(layers[s].target_bitrate_bps * rate_factor);
     }
-    layers[s].min_bitrate_bps =
-        FindSimulcastMinBitrate(width, height,
-                                enable_lowres_bitrate_interpolation, codec)
-            .bps();
 
     // Ensure consistency.
     layers[s].max_bitrate_bps =