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;