Base padding bitrate for an encoder on the bitrate allocated for that encoder, rather than the total bitrate of the channel group.

Review URL: https://codereview.webrtc.org/1231273004

Cr-Commit-Position: refs/heads/master@{#9584}
diff --git a/webrtc/video_engine/vie_channel_group.cc b/webrtc/video_engine/vie_channel_group.cc
index bf01137..055e1c3 100644
--- a/webrtc/video_engine/vie_channel_group.cc
+++ b/webrtc/video_engine/vie_channel_group.cc
@@ -479,10 +479,8 @@
   int pad_up_to_bitrate_bps = 0;
   {
     CriticalSectionScoped lock(encoder_map_cs_.get());
-    for (const auto& encoder : send_encoders_) {
-      pad_up_to_bitrate_bps +=
-          encoder.second->GetPaddingNeededBps(target_bitrate_bps);
-    }
+    for (const auto& encoder : send_encoders_)
+      pad_up_to_bitrate_bps += encoder.second->GetPaddingNeededBps();
   }
   pacer_->UpdateBitrate(
       target_bitrate_bps / 1000,
diff --git a/webrtc/video_engine/vie_encoder.cc b/webrtc/video_engine/vie_encoder.cc
index 26e76e7..173ca96 100644
--- a/webrtc/video_engine/vie_encoder.cc
+++ b/webrtc/video_engine/vie_encoder.cc
@@ -397,9 +397,10 @@
   return 0;
 }
 
-int ViEEncoder::GetPaddingNeededBps(int bitrate_bps) const {
+int ViEEncoder::GetPaddingNeededBps() const {
   int64_t time_of_last_frame_activity_ms;
   int min_transmit_bitrate_bps;
+  int bitrate_bps;
   {
     CriticalSectionScoped cs(data_cs_.get());
     bool send_padding =
@@ -408,15 +409,12 @@
       return 0;
     time_of_last_frame_activity_ms = time_of_last_frame_activity_ms_;
     min_transmit_bitrate_bps = 1000 * min_transmit_bitrate_kbps_;
+    bitrate_bps = last_observed_bitrate_bps_;
   }
 
   VideoCodec send_codec;
   if (vcm_->SendCodec(&send_codec) != 0)
     return 0;
-  SimulcastStream* stream_configs = send_codec.simulcastStream;
-  // Allocate the bandwidth between the streams.
-  std::vector<uint32_t> stream_bitrates = AllocateStreamBitrates(
-      bitrate_bps, stream_configs, send_codec.numberOfSimulcastStreams);
 
   bool video_is_suspended = vcm_->VideoSuspended();
 
@@ -427,6 +425,7 @@
   if (send_codec.numberOfSimulcastStreams == 0) {
     pad_up_to_bitrate_bps = send_codec.minBitrate * 1000;
   } else {
+    SimulcastStream* stream_configs = send_codec.simulcastStream;
     pad_up_to_bitrate_bps =
         stream_configs[send_codec.numberOfSimulcastStreams - 1].minBitrate *
         1000;
diff --git a/webrtc/video_engine/vie_encoder.h b/webrtc/video_engine/vie_encoder.h
index 44a555b..6ecf6a7 100644
--- a/webrtc/video_engine/vie_encoder.h
+++ b/webrtc/video_engine/vie_encoder.h
@@ -177,7 +177,7 @@
 
   int channel_id() const { return channel_id_; }
 
-  int GetPaddingNeededBps(int bitrate_bps) const;
+  int GetPaddingNeededBps() const;
 
  protected:
   // Called by BitrateObserver.