Do not report bucket delay for stats when pacer is paused (zero returned).

Avoids reporting a growing delay (i.e. time b/w current time and oldest packet in the pacer).

BUG=webrtc:6253

Review-Url: https://codereview.webrtc.org/2279283002
Cr-Commit-Position: refs/heads/master@{#14118}
This commit is contained in:
asapersson 2016-09-07 23:14:50 -07:00 committed by Commit bot
parent a264ecc456
commit 14f1250f47
2 changed files with 18 additions and 1 deletions

View File

@ -309,7 +309,7 @@ void CongestionController::SetAllocatedSendBitrateLimits(
}
int64_t CongestionController::GetPacerQueuingDelayMs() const {
return pacer_->QueueInMs();
return IsNetworkDown() ? 0 : pacer_->QueueInMs();
}
void CongestionController::SignalNetworkState(NetworkState state) {

View File

@ -18,6 +18,7 @@
#include "webrtc/system_wrappers/include/clock.h"
using testing::_;
using testing::AtLeast;
using testing::NiceMock;
using testing::Return;
using testing::SaveArg;
@ -169,5 +170,21 @@ TEST_F(CongestionControllerTest,
controller_->Process();
}
TEST_F(CongestionControllerTest, GetPacerQueuingDelayMs) {
EXPECT_CALL(observer_, OnNetworkChanged(_, _, _)).Times(AtLeast(1));
const int64_t kQueueTimeMs = 123;
EXPECT_CALL(*pacer_, QueueInMs()).WillRepeatedly(Return(kQueueTimeMs));
EXPECT_EQ(kQueueTimeMs, controller_->GetPacerQueuingDelayMs());
// Expect zero pacer delay when network is down.
controller_->SignalNetworkState(kNetworkDown);
EXPECT_EQ(0, controller_->GetPacerQueuingDelayMs());
// Network is up, pacer delay should be reported.
controller_->SignalNetworkState(kNetworkUp);
EXPECT_EQ(kQueueTimeMs, controller_->GetPacerQueuingDelayMs());
}
} // namespace test
} // namespace webrtc