Don't pad if only one stream is sent, except if auto muted.

BUG=
R=mflodman@webrtc.org

Review URL: https://webrtc-codereview.appspot.com/2406004

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4975 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/video_engine/vie_encoder.cc b/webrtc/video_engine/vie_encoder.cc
index 99154cd..0d714f3 100644
--- a/webrtc/video_engine/vie_encoder.cc
+++ b/webrtc/video_engine/vie_encoder.cc
@@ -1051,22 +1051,33 @@
   // point, based on which streams are currently active and what our current
   // available bandwidth is.
   int max_padding_bitrate_kbps = 0;
-  int i = send_codec.numberOfSimulcastStreams - 1;
-  for (std::vector<uint32_t>::reverse_iterator it = stream_bitrates.rbegin();
-       it != stream_bitrates.rend(); ++it) {
-    if (*it > 0) {
-      max_padding_bitrate_kbps = std::min((*it + 500) / 1000,
-                                          stream_configs[i].minBitrate);
-      break;
+  int pad_up_to_bitrate_kbps = 0;
+  if (send_codec.numberOfSimulcastStreams == 0) {
+    max_padding_bitrate_kbps = send_codec.minBitrate;
+    pad_up_to_bitrate_kbps = send_codec.minBitrate;
+  } else {
+    int i = send_codec.numberOfSimulcastStreams - 1;
+    for (std::vector<uint32_t>::reverse_iterator it = stream_bitrates.rbegin();
+        it != stream_bitrates.rend(); ++it) {
+      if (*it > 0) {
+        max_padding_bitrate_kbps = std::min((*it + 500) / 1000,
+                                            stream_configs[i].minBitrate);
+        break;
+      }
+      --i;
     }
-    --i;
+    pad_up_to_bitrate_kbps =
+        stream_configs[send_codec.numberOfSimulcastStreams - 1].minBitrate;
+    for (int i = 0; i < send_codec.numberOfSimulcastStreams - 1; ++i) {
+      pad_up_to_bitrate_kbps += stream_configs[i].targetBitrate;
+    }
   }
-  int pad_up_to_bitrate_kbps =
-      stream_configs[send_codec.numberOfSimulcastStreams - 1].minBitrate;
-  for (int i = 0; i < send_codec.numberOfSimulcastStreams - 1; ++i) {
-    pad_up_to_bitrate_kbps += stream_configs[i].targetBitrate;
+  if (video_is_muted || send_codec.numberOfSimulcastStreams > 1) {
+    pad_up_to_bitrate_kbps = std::min(bitrate_kbps, pad_up_to_bitrate_kbps);
+  } else {
+    // Disable padding if only sending one stream and video isn't muted.
+    pad_up_to_bitrate_kbps = 0;
   }
-  pad_up_to_bitrate_kbps = std::min(bitrate_kbps, pad_up_to_bitrate_kbps);
   paced_sender_->UpdateBitrate(bitrate_kbps,
                                max_padding_bitrate_kbps,
                                pad_up_to_bitrate_kbps);