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@7621 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
@@ -55,16 +55,18 @@ void BitrateProber::MaybeInitializeProbe(int bitrate_bps) {
|
|||||||
return;
|
return;
|
||||||
probe_bitrates_.clear();
|
probe_bitrates_.clear();
|
||||||
// Max number of packets used for probing.
|
// Max number of packets used for probing.
|
||||||
const int kMaxProbeLength = 15;
|
const int kMaxNumProbes = 2;
|
||||||
const int kMaxNumProbes = 3;
|
const int kPacketsPerProbe = 5;
|
||||||
const int kPacketsPerProbe = kMaxProbeLength / kMaxNumProbes;
|
const float kProbeBitrateMultipliers[kMaxNumProbes] = {3, 6};
|
||||||
const float kProbeBitrateMultipliers[kMaxNumProbes] = {2.5, 4, 6};
|
|
||||||
int bitrates_bps[kMaxNumProbes];
|
int bitrates_bps[kMaxNumProbes];
|
||||||
std::stringstream bitrate_log;
|
std::stringstream bitrate_log;
|
||||||
bitrate_log << "Start probing for bandwidth, bitrates:";
|
bitrate_log << "Start probing for bandwidth, bitrates:";
|
||||||
for (int i = 0; i < kMaxNumProbes; ++i) {
|
for (int i = 0; i < kMaxNumProbes; ++i) {
|
||||||
bitrates_bps[i] = kProbeBitrateMultipliers[i] * bitrate_bps;
|
bitrates_bps[i] = kProbeBitrateMultipliers[i] * bitrate_bps;
|
||||||
bitrate_log << " " << bitrates_bps[i];
|
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)
|
for (int j = 0; j < kPacketsPerProbe; ++j)
|
||||||
probe_bitrates_.push_back(bitrates_bps[i]);
|
probe_bitrates_.push_back(bitrates_bps[i]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,17 +30,11 @@ TEST(BitrateProberTest, VerifyStatesAndTimeBetweenProbes) {
|
|||||||
EXPECT_EQ(0, prober.TimeUntilNextProbe(now_ms));
|
EXPECT_EQ(0, prober.TimeUntilNextProbe(now_ms));
|
||||||
prober.PacketSent(now_ms, 1000);
|
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) {
|
for (int i = 0; i < 5; ++i) {
|
||||||
EXPECT_EQ(6, prober.TimeUntilNextProbe(now_ms));
|
EXPECT_EQ(8, prober.TimeUntilNextProbe(now_ms));
|
||||||
now_ms += 6;
|
now_ms += 4;
|
||||||
|
EXPECT_EQ(4, prober.TimeUntilNextProbe(now_ms));
|
||||||
|
now_ms += 4;
|
||||||
EXPECT_EQ(0, prober.TimeUntilNextProbe(now_ms));
|
EXPECT_EQ(0, prober.TimeUntilNextProbe(now_ms));
|
||||||
prober.PacketSent(now_ms, 1000);
|
prober.PacketSent(now_ms, 1000);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -711,13 +711,14 @@ class ProbingPacedSender : public PacedSender {
|
|||||||
};
|
};
|
||||||
|
|
||||||
TEST_F(PacedSenderTest, ProbingWithInitialFrame) {
|
TEST_F(PacedSenderTest, ProbingWithInitialFrame) {
|
||||||
const int kNumPackets = 15;
|
const int kNumPackets = 11;
|
||||||
|
const int kNumDeltas = kNumPackets - 1;
|
||||||
const int kPacketSize = 1200;
|
const int kPacketSize = 1200;
|
||||||
const int kInitialBitrateKbps = 300;
|
const int kInitialBitrateKbps = 300;
|
||||||
uint32_t ssrc = 12346;
|
uint32_t ssrc = 12346;
|
||||||
uint16_t sequence_number = 1234;
|
uint16_t sequence_number = 1234;
|
||||||
const int expected_deltas[kNumPackets - 1] = {
|
const int expected_deltas[kNumDeltas] = {
|
||||||
12, 12, 12, 12, 8, 8, 8, 8, 8, 5, 5, 5, 5, 5};
|
10, 10, 10, 10, 10, 5, 5, 5, 5, 5};
|
||||||
std::list<int> expected_deltas_list(expected_deltas,
|
std::list<int> expected_deltas_list(expected_deltas,
|
||||||
expected_deltas + kNumPackets - 1);
|
expected_deltas + kNumPackets - 1);
|
||||||
PacedSenderProbing callback(expected_deltas_list, &clock_);
|
PacedSenderProbing callback(expected_deltas_list, &clock_);
|
||||||
|
|||||||
Reference in New Issue
Block a user