| Index: webrtc/modules/congestion_controller/delay_based_bwe_unittest_helper.cc
|
| diff --git a/webrtc/modules/congestion_controller/delay_based_bwe_unittest_helper.cc b/webrtc/modules/congestion_controller/delay_based_bwe_unittest_helper.cc
|
| index a3a1893cbe23811e4baed231423bf17947865ca6..9aafc7b51607d551b982384761c616a5ca25c4a4 100644
|
| --- a/webrtc/modules/congestion_controller/delay_based_bwe_unittest_helper.cc
|
| +++ b/webrtc/modules/congestion_controller/delay_based_bwe_unittest_helper.cc
|
| @@ -150,10 +150,11 @@ int64_t StreamGenerator::GenerateFrame(std::vector<PacketInfo>* packets,
|
|
|
| DelayBasedBweTest::DelayBasedBweTest()
|
| : clock_(100000000),
|
| - bitrate_estimator_(&clock_),
|
| + bitrate_estimator_(new DelayBasedBwe(&clock_)),
|
| stream_generator_(new test::StreamGenerator(1e6, // Capacity.
|
| clock_.TimeInMicroseconds())),
|
| - arrival_time_offset_ms_(0) {}
|
| + arrival_time_offset_ms_(0),
|
| + first_update_(true) {}
|
|
|
| DelayBasedBweTest::~DelayBasedBweTest() {}
|
|
|
| @@ -182,7 +183,7 @@ void DelayBasedBweTest::IncomingFeedback(int64_t arrival_time_ms,
|
| std::vector<PacketInfo> packets;
|
| packets.push_back(packet);
|
| DelayBasedBwe::Result result =
|
| - bitrate_estimator_.IncomingPacketFeedbackVector(packets);
|
| + bitrate_estimator_->IncomingPacketFeedbackVector(packets);
|
| const uint32_t kDummySsrc = 0;
|
| if (result.updated) {
|
| bitrate_observer_.OnReceiveBitrateChanged({kDummySsrc},
|
| @@ -214,13 +215,14 @@ bool DelayBasedBweTest::GenerateAndProcessFrame(uint32_t ssrc,
|
| packet.arrival_time_ms += arrival_time_offset_ms_;
|
| }
|
| DelayBasedBwe::Result result =
|
| - bitrate_estimator_.IncomingPacketFeedbackVector(packets);
|
| + bitrate_estimator_->IncomingPacketFeedbackVector(packets);
|
| const uint32_t kDummySsrc = 0;
|
| if (result.updated) {
|
| bitrate_observer_.OnReceiveBitrateChanged({kDummySsrc},
|
| result.target_bitrate_bps);
|
| - if (result.target_bitrate_bps < bitrate_bps)
|
| + if (!first_update_ && result.target_bitrate_bps < bitrate_bps)
|
| overuse = true;
|
| + first_update_ = false;
|
| }
|
|
|
| clock_.AdvanceTimeMicroseconds(next_time_us - clock_.TimeInMicroseconds());
|
| @@ -267,10 +269,10 @@ void DelayBasedBweTest::InitialBehaviorTestHelper(
|
| int64_t send_time_ms = 0;
|
| uint16_t sequence_number = 0;
|
| std::vector<uint32_t> ssrcs;
|
| - EXPECT_FALSE(bitrate_estimator_.LatestEstimate(&ssrcs, &bitrate_bps));
|
| + EXPECT_FALSE(bitrate_estimator_->LatestEstimate(&ssrcs, &bitrate_bps));
|
| EXPECT_EQ(0u, ssrcs.size());
|
| clock_.AdvanceTimeMilliseconds(1000);
|
| - EXPECT_FALSE(bitrate_estimator_.LatestEstimate(&ssrcs, &bitrate_bps));
|
| + EXPECT_FALSE(bitrate_estimator_->LatestEstimate(&ssrcs, &bitrate_bps));
|
| EXPECT_FALSE(bitrate_observer_.updated());
|
| bitrate_observer_.Reset();
|
| clock_.AdvanceTimeMilliseconds(1000);
|
| @@ -281,7 +283,7 @@ void DelayBasedBweTest::InitialBehaviorTestHelper(
|
| int cluster_id = i < kInitialProbingPackets ? 0 : PacketInfo::kNotAProbe;
|
|
|
| if (i == kNumInitialPackets) {
|
| - EXPECT_FALSE(bitrate_estimator_.LatestEstimate(&ssrcs, &bitrate_bps));
|
| + EXPECT_FALSE(bitrate_estimator_->LatestEstimate(&ssrcs, &bitrate_bps));
|
| EXPECT_EQ(0u, ssrcs.size());
|
| EXPECT_FALSE(bitrate_observer_.updated());
|
| bitrate_observer_.Reset();
|
| @@ -291,7 +293,7 @@ void DelayBasedBweTest::InitialBehaviorTestHelper(
|
| clock_.AdvanceTimeMilliseconds(1000 / kFramerate);
|
| send_time_ms += kFrameIntervalMs;
|
| }
|
| - EXPECT_TRUE(bitrate_estimator_.LatestEstimate(&ssrcs, &bitrate_bps));
|
| + EXPECT_TRUE(bitrate_estimator_->LatestEstimate(&ssrcs, &bitrate_bps));
|
| ASSERT_EQ(1u, ssrcs.size());
|
| EXPECT_EQ(kDefaultSsrc, ssrcs.front());
|
| EXPECT_NEAR(expected_converge_bitrate, bitrate_bps, kAcceptedBitrateErrorBps);
|
| @@ -364,7 +366,6 @@ void DelayBasedBweTest::RateIncreaseRtpTimestampsTestHelper(
|
| bitrate_observer_.Reset();
|
| }
|
| ++iterations;
|
| - // ASSERT_LE(iterations, expected_iterations);
|
| }
|
| ASSERT_EQ(expected_iterations, iterations);
|
| }
|
| @@ -483,19 +484,19 @@ void DelayBasedBweTest::TestWrappingHelper(int silence_time_s) {
|
| }
|
| uint32_t bitrate_before = 0;
|
| std::vector<uint32_t> ssrcs;
|
| - bitrate_estimator_.LatestEstimate(&ssrcs, &bitrate_before);
|
| + bitrate_estimator_->LatestEstimate(&ssrcs, &bitrate_before);
|
|
|
| clock_.AdvanceTimeMilliseconds(silence_time_s * 1000);
|
| send_time_ms += silence_time_s * 1000;
|
|
|
| - for (size_t i = 0; i < 21; ++i) {
|
| + for (size_t i = 0; i < 22; ++i) {
|
| IncomingFeedback(clock_.TimeInMilliseconds(), send_time_ms,
|
| sequence_number++, 1000);
|
| clock_.AdvanceTimeMilliseconds(2 * kFrameIntervalMs);
|
| send_time_ms += kFrameIntervalMs;
|
| }
|
| uint32_t bitrate_after = 0;
|
| - bitrate_estimator_.LatestEstimate(&ssrcs, &bitrate_after);
|
| + bitrate_estimator_->LatestEstimate(&ssrcs, &bitrate_after);
|
| EXPECT_LT(bitrate_after, bitrate_before);
|
| }
|
| } // namespace webrtc
|
|
|