diff --git a/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.cc b/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.cc index 546ae2c400..86506fb1b7 100644 --- a/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.cc +++ b/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.cc @@ -335,6 +335,7 @@ void ChokeFilter::RunFor(int64_t /*time_ms*/, Packets* in_out) { TraceBasedDeliveryFilter::TraceBasedDeliveryFilter( PacketProcessorListener* listener) : PacketProcessor(listener), + current_offset_us_(0), delivery_times_us_(), next_delivery_it_(), local_time_us_(-1), @@ -345,6 +346,7 @@ TraceBasedDeliveryFilter::TraceBasedDeliveryFilter( PacketProcessorListener* listener, const std::string& name) : PacketProcessor(listener), + current_offset_us_(0), delivery_times_us_(), next_delivery_it_(), local_time_us_(-1), @@ -409,8 +411,9 @@ void TraceBasedDeliveryFilter::ProceedToNextSlot() { // When the trace wraps we allow two packets to be sent back-to-back. for (TimeList::iterator it = delivery_times_us_.begin(); it != delivery_times_us_.end(); ++it) { - *it += local_time_us_; + *it += local_time_us_ - current_offset_us_; } + current_offset_us_ += local_time_us_ - current_offset_us_; next_delivery_it_ = delivery_times_us_.begin(); } } diff --git a/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.h b/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.h index ddddd7499b..f5bd326a62 100644 --- a/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.h +++ b/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework.h @@ -312,6 +312,7 @@ class TraceBasedDeliveryFilter : public PacketProcessor { void ProceedToNextSlot(); typedef std::vector TimeList; + int64_t current_offset_us_; TimeList delivery_times_us_; TimeList::const_iterator next_delivery_it_; int64_t local_time_us_; diff --git a/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework_unittest.cc b/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework_unittest.cc index 1ef421ac43..31bb27e384 100644 --- a/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework_unittest.cc +++ b/webrtc/modules/remote_bitrate_estimator/test/bwe_test_framework_unittest.cc @@ -709,12 +709,12 @@ TEST_F(BweTestFramework_ChokeFilterTest, ShortTrace) { TestChoke(&filter, 100, 100, 6); } -TEST_F(BweTestFramework_ChokeFilterTest, ShortTraceWrap) { - // According to the input file 10 packets should be transmitted within - // 140 milliseconds (at the wrapping point two packets are sent back to back). +TEST_F(BweTestFramework_ChokeFilterTest, ShortTraceTwoWraps) { + // According to the input file 19 packets should be transmitted within + // 280 milliseconds (at the wrapping point two packets are sent back to back). TraceBasedDeliveryFilter filter(NULL); ASSERT_TRUE(filter.Init(test::ResourcePath("synthetic-trace", "rx"))); - TestChoke(&filter, 140, 100, 10); + TestChoke(&filter, 280, 100, 19); } void TestVideoSender(VideoSender* sender, int64_t run_for_ms,