Don't pace out packets or generate padding when the pacer is disabled.

TEST=trybots
R=pbos@webrtc.org

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

git-svn-id: http://webrtc.googlecode.com/svn/trunk@4513 4adac7df-926f-26a2-2b94-8c16560cd09d
diff --git a/webrtc/modules/pacing/paced_sender.cc b/webrtc/modules/pacing/paced_sender.cc
index 4ffe86a..a242cc9 100644
--- a/webrtc/modules/pacing/paced_sender.cc
+++ b/webrtc/modules/pacing/paced_sender.cc
@@ -175,7 +175,6 @@
   CriticalSectionScoped cs(critsect_.get());
 
   if (!enabled_) {
-    UpdateMediaBytesSent(bytes);
     return true;  // We can send now.
   }
   if (capture_time_ms < 0) {
@@ -244,6 +243,9 @@
   CriticalSectionScoped cs(critsect_.get());
   int elapsed_time_ms = (now - time_last_update_).Milliseconds();
   time_last_update_ = now;
+  if (!enabled_) {
+    return 0;
+  }
   if (!paused_) {
     if (elapsed_time_ms > 0) {
       uint32_t delta_time_ms = std::min(kMaxIntervalTimeMs, elapsed_time_ms);
@@ -261,7 +263,7 @@
       const bool success = callback_->TimeToSendPacket(ssrc, sequence_number,
                                                        capture_time_ms);
       critsect_->Enter();
-      // If packet cannt be sent then keep it in packet list and exit early.
+      // If packet cannot be sent then keep it in packet list and exit early.
       // There's no need to send more packets.
       if (!success) {
         return 0;
diff --git a/webrtc/modules/pacing/paced_sender_unittest.cc b/webrtc/modules/pacing/paced_sender_unittest.cc
index 3a574d9..3e61273 100644
--- a/webrtc/modules/pacing/paced_sender_unittest.cc
+++ b/webrtc/modules/pacing/paced_sender_unittest.cc
@@ -235,6 +235,22 @@
   EXPECT_EQ(0, send_bucket_->Process());
 }
 
+TEST_F(PacedSenderTest, NoPaddingWhenDisabled) {
+  send_bucket_->SetStatus(false);
+  send_bucket_->UpdateBitrate(kTargetBitrate, kTargetBitrate);
+  // No padding is expected since the pacer is disabled.
+  EXPECT_CALL(callback_, TimeToSendPadding(_)).Times(0);
+  EXPECT_EQ(5, send_bucket_->TimeUntilNextProcess());
+  TickTime::AdvanceFakeClock(5);
+  EXPECT_EQ(0, send_bucket_->TimeUntilNextProcess());
+  EXPECT_EQ(0, send_bucket_->Process());
+  EXPECT_CALL(callback_, TimeToSendPadding(_)).Times(0);
+  EXPECT_EQ(5, send_bucket_->TimeUntilNextProcess());
+  TickTime::AdvanceFakeClock(5);
+  EXPECT_EQ(0, send_bucket_->TimeUntilNextProcess());
+  EXPECT_EQ(0, send_bucket_->Process());
+}
+
 TEST_F(PacedSenderTest, VerifyPaddingUpToBitrate) {
   uint32_t ssrc = 12345;
   uint16_t sequence_number = 1234;