summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorstefan@webrtc.org <stefan@webrtc.org>2014-11-04 19:33:55 +0000
committerstefan@webrtc.org <stefan@webrtc.org>2014-11-04 19:33:55 +0000
commitc4cd81a0dadc61761efb1e14bbec0f191d45c971 (patch)
treea5b9b1573d0432f4dc1ee7209202149e9f359d24
parent4706c9639d883916b8ed35a1f40f6327162f51b4 (diff)
downloadwebrtc-c4cd81a0dadc61761efb1e14bbec0f191d45c971.tar.gz
Reduce to 2 probes when probing for initial bandwidth.
BUG= R=mflodman@webrtc.org Review URL: https://webrtc-codereview.appspot.com/23359005 git-svn-id: http://webrtc.googlecode.com/svn/trunk/webrtc@7621 4adac7df-926f-26a2-2b94-8c16560cd09d
-rw-r--r--modules/pacing/bitrate_prober.cc10
-rw-r--r--modules/pacing/bitrate_prober_unittest.cc14
-rw-r--r--modules/pacing/paced_sender_unittest.cc7
3 files changed, 14 insertions, 17 deletions
diff --git a/modules/pacing/bitrate_prober.cc b/modules/pacing/bitrate_prober.cc
index 04e71c5c..51c87fb2 100644
--- a/modules/pacing/bitrate_prober.cc
+++ b/modules/pacing/bitrate_prober.cc
@@ -55,16 +55,18 @@ void BitrateProber::MaybeInitializeProbe(int bitrate_bps) {
return;
probe_bitrates_.clear();
// Max number of packets used for probing.
- const int kMaxProbeLength = 15;
- const int kMaxNumProbes = 3;
- const int kPacketsPerProbe = kMaxProbeLength / kMaxNumProbes;
- const float kProbeBitrateMultipliers[kMaxNumProbes] = {2.5, 4, 6};
+ const int kMaxNumProbes = 2;
+ const int kPacketsPerProbe = 5;
+ const float kProbeBitrateMultipliers[kMaxNumProbes] = {3, 6};
int bitrates_bps[kMaxNumProbes];
std::stringstream bitrate_log;
bitrate_log << "Start probing for bandwidth, bitrates:";
for (int i = 0; i < kMaxNumProbes; ++i) {
bitrates_bps[i] = kProbeBitrateMultipliers[i] * bitrate_bps;
bitrate_log << " " << bitrates_bps[i];
+ // We need one extra to get 5 deltas for the first probe.
+ if (i == 0)
+ probe_bitrates_.push_back(bitrates_bps[i]);
for (int j = 0; j < kPacketsPerProbe; ++j)
probe_bitrates_.push_back(bitrates_bps[i]);
}
diff --git a/modules/pacing/bitrate_prober_unittest.cc b/modules/pacing/bitrate_prober_unittest.cc
index 15b1cc58..fac6a721 100644
--- a/modules/pacing/bitrate_prober_unittest.cc
+++ b/modules/pacing/bitrate_prober_unittest.cc
@@ -30,17 +30,11 @@ TEST(BitrateProberTest, VerifyStatesAndTimeBetweenProbes) {
EXPECT_EQ(0, prober.TimeUntilNextProbe(now_ms));
prober.PacketSent(now_ms, 1000);
- for (int i = 0; i < 4; ++i) {
- EXPECT_EQ(10, prober.TimeUntilNextProbe(now_ms));
- now_ms += 5;
- EXPECT_EQ(5, prober.TimeUntilNextProbe(now_ms));
- now_ms += 5;
- EXPECT_EQ(0, prober.TimeUntilNextProbe(now_ms));
- prober.PacketSent(now_ms, 1000);
- }
for (int i = 0; i < 5; ++i) {
- EXPECT_EQ(6, prober.TimeUntilNextProbe(now_ms));
- now_ms += 6;
+ EXPECT_EQ(8, prober.TimeUntilNextProbe(now_ms));
+ now_ms += 4;
+ EXPECT_EQ(4, prober.TimeUntilNextProbe(now_ms));
+ now_ms += 4;
EXPECT_EQ(0, prober.TimeUntilNextProbe(now_ms));
prober.PacketSent(now_ms, 1000);
}
diff --git a/modules/pacing/paced_sender_unittest.cc b/modules/pacing/paced_sender_unittest.cc
index 34787d16..fe16008c 100644
--- a/modules/pacing/paced_sender_unittest.cc
+++ b/modules/pacing/paced_sender_unittest.cc
@@ -711,13 +711,14 @@ class ProbingPacedSender : public PacedSender {
};
TEST_F(PacedSenderTest, ProbingWithInitialFrame) {
- const int kNumPackets = 15;
+ const int kNumPackets = 11;
+ const int kNumDeltas = kNumPackets - 1;
const int kPacketSize = 1200;
const int kInitialBitrateKbps = 300;
uint32_t ssrc = 12346;
uint16_t sequence_number = 1234;
- const int expected_deltas[kNumPackets - 1] = {
- 12, 12, 12, 12, 8, 8, 8, 8, 8, 5, 5, 5, 5, 5};
+ const int expected_deltas[kNumDeltas] = {
+ 10, 10, 10, 10, 10, 5, 5, 5, 5, 5};
std::list<int> expected_deltas_list(expected_deltas,
expected_deltas + kNumPackets - 1);
PacedSenderProbing callback(expected_deltas_list, &clock_);