Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Unified Diff: webrtc/modules/pacing/paced_sender_unittest.cc

Issue 1993113003: Refactor how padding is calculated. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Addressed review comments. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/modules/pacing/paced_sender.cc ('k') | webrtc/video/end_to_end_tests.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/modules/pacing/paced_sender_unittest.cc
diff --git a/webrtc/modules/pacing/paced_sender_unittest.cc b/webrtc/modules/pacing/paced_sender_unittest.cc
index 063ec1e1947f566578850b24646b9e79c285a329..51394c72d198397c93a2c92355c380478a6ced28 100644
--- a/webrtc/modules/pacing/paced_sender_unittest.cc
+++ b/webrtc/modules/pacing/paced_sender_unittest.cc
@@ -322,7 +322,7 @@ TEST_F(PacedSenderTest, Padding) {
uint16_t sequence_number = 1234;
send_bucket_->SetEstimatedBitrate(kTargetBitrateBps);
- send_bucket_->SetAllocatedSendBitrate(kTargetBitrateBps, kTargetBitrateBps);
+ send_bucket_->SetSendBitrateLimits(kTargetBitrateBps, kTargetBitrateBps);
// Due to the multiplicative factor we can send 5 packets during a send
// interval. (network capacity * multiplier / (8 bits per byte *
@@ -357,6 +357,29 @@ TEST_F(PacedSenderTest, Padding) {
send_bucket_->Process();
}
+TEST_F(PacedSenderTest, NoPaddingBeforeNormalPacket) {
+ send_bucket_->SetEstimatedBitrate(kTargetBitrateBps);
+ send_bucket_->SetSendBitrateLimits(kTargetBitrateBps, kTargetBitrateBps);
+
+ EXPECT_CALL(callback_, TimeToSendPadding(_, _)).Times(0);
+ send_bucket_->Process();
+ clock_.AdvanceTimeMilliseconds(send_bucket_->TimeUntilNextProcess());
+
+ send_bucket_->Process();
+ clock_.AdvanceTimeMilliseconds(send_bucket_->TimeUntilNextProcess());
+
+ uint32_t ssrc = 12345;
+ uint16_t sequence_number = 1234;
+ int64_t capture_time_ms = 56789;
+
+ SendAndExpectPacket(PacedSender::kNormalPriority, ssrc, sequence_number++,
+ capture_time_ms, 250, false);
+ EXPECT_CALL(callback_, TimeToSendPadding(250, _))
+ .Times(1)
+ .WillOnce(Return(250));
+ send_bucket_->Process();
+}
+
TEST_F(PacedSenderTest, VerifyPaddingUpToBitrate) {
uint32_t ssrc = 12345;
uint16_t sequence_number = 1234;
@@ -364,7 +387,7 @@ TEST_F(PacedSenderTest, VerifyPaddingUpToBitrate) {
const int kTimeStep = 5;
const int64_t kBitrateWindow = 100;
send_bucket_->SetEstimatedBitrate(kTargetBitrateBps);
- send_bucket_->SetAllocatedSendBitrate(kTargetBitrateBps, kTargetBitrateBps);
+ send_bucket_->SetSendBitrateLimits(kTargetBitrateBps, kTargetBitrateBps);
int64_t start_time = clock_.TimeInMilliseconds();
while (clock_.TimeInMilliseconds() - start_time < kBitrateWindow) {
@@ -392,7 +415,10 @@ TEST_F(PacedSenderTest, VerifyAverageBitrateVaryingMediaPayload) {
send_bucket_.reset(new PacedSender(&clock_, &callback));
send_bucket_->SetProbingEnabled(false);
send_bucket_->SetEstimatedBitrate(kTargetBitrateBps);
- send_bucket_->SetAllocatedSendBitrate(kTargetBitrateBps, kTargetBitrateBps);
+
+ send_bucket_->SetSendBitrateLimits(
+ 0 /*allocated_bitrate_bps*/,
+ kTargetBitrateBps * 2 /* max_padding_bitrate_bps */);
int64_t start_time = clock_.TimeInMilliseconds();
size_t media_bytes = 0;
@@ -806,7 +832,7 @@ TEST_F(PacedSenderTest, PaddingOveruse) {
send_bucket_->Process();
send_bucket_->SetEstimatedBitrate(60000);
- send_bucket_->SetAllocatedSendBitrate(60000, 0);
+ send_bucket_->SetSendBitrateLimits(60000, 0);
SendAndExpectPacket(PacedSender::kNormalPriority, ssrc, sequence_number++,
clock_.TimeInMilliseconds(), kPacketSize, false);
@@ -815,7 +841,7 @@ TEST_F(PacedSenderTest, PaddingOveruse) {
// Add 30kbit padding. When increasing budget, media budget will increase from
// negative (overuse) while padding budget will increase from 0.
clock_.AdvanceTimeMilliseconds(5);
- send_bucket_->SetAllocatedSendBitrate(60000, 30000);
+ send_bucket_->SetSendBitrateLimits(60000, 30000);
SendAndExpectPacket(PacedSender::kNormalPriority, ssrc, sequence_number++,
clock_.TimeInMilliseconds(), kPacketSize, false);
@@ -875,7 +901,7 @@ TEST_F(PacedSenderTest, ProbeClusterId) {
uint16_t sequence_number = 1234;
const size_t kPacketSize = 1200;
- send_bucket_->SetAllocatedSendBitrate(kTargetBitrateBps, kTargetBitrateBps);
+ send_bucket_->SetSendBitrateLimits(kTargetBitrateBps, kTargetBitrateBps);
send_bucket_->SetProbingEnabled(true);
for (int i = 0; i < 11; ++i) {
send_bucket_->InsertPacket(PacedSender::kNormalPriority, ssrc,
« no previous file with comments | « webrtc/modules/pacing/paced_sender.cc ('k') | webrtc/video/end_to_end_tests.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698