From 01cac31d581b515c4f513196a7fdaebd04547809 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20de=20Vicente=20Pe=C3=B1a?= Date: Thu, 8 Dec 2022 10:51:22 +0100 Subject: [PATCH] Fixes for the neteq_test clock. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The problem occurs when more than one call is made to the method RunToNextGetAudio. Except for the first call to that method, the clock was not properly updated on the first iteration of the inner loop in RunToNextGetAudio. Pair: lionelk@webrtc.org Bug: webrtc:14735 Change-Id: If6fb5c2c700b0f715f626fedf95672a56b04ab12 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/285942 Reviewed-by: Jakob Ivarsson‎ Commit-Queue: Jesus de Vicente Pena Cr-Commit-Position: refs/heads/main@{#38843} --- modules/audio_coding/neteq/tools/neteq_test.cc | 6 +++--- modules/audio_coding/neteq/tools/neteq_test.h | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/modules/audio_coding/neteq/tools/neteq_test.cc b/modules/audio_coding/neteq/tools/neteq_test.cc index a80b769451..a567efe2de 100644 --- a/modules/audio_coding/neteq/tools/neteq_test.cc +++ b/modules/audio_coding/neteq/tools/neteq_test.cc @@ -67,11 +67,11 @@ NetEqTest::NetEqTest(const NetEq::Config& config, std::unique_ptr input, std::unique_ptr output, Callbacks callbacks) - : clock_(0), + : input_(std::move(input)), + clock_(Timestamp::Millis(input_->NextEventTime().value_or(0))), neteq_(neteq_factory ? neteq_factory->CreateNetEq(config, decoder_factory, &clock_) : CreateNetEq(config, &clock_, decoder_factory)), - input_(std::move(input)), output_(std::move(output)), callbacks_(callbacks), sample_rate_hz_(config.sample_rate_hz), @@ -99,7 +99,7 @@ int64_t NetEqTest::Run() { NetEqTest::SimulationStepResult NetEqTest::RunToNextGetAudio() { SimulationStepResult result; const int64_t start_time_ms = *input_->NextEventTime(); - int64_t time_now_ms = start_time_ms; + int64_t time_now_ms = clock_.CurrentTime().ms(); current_state_.packet_iat_ms.clear(); while (!input_->ended()) { diff --git a/modules/audio_coding/neteq/tools/neteq_test.h b/modules/audio_coding/neteq/tools/neteq_test.h index 0a6c24f3d6..1d3eeda453 100644 --- a/modules/audio_coding/neteq/tools/neteq_test.h +++ b/modules/audio_coding/neteq/tools/neteq_test.h @@ -109,11 +109,11 @@ class NetEqTest : public NetEqSimulator { private: void RegisterDecoders(const DecoderMap& codecs); + std::unique_ptr input_; SimulatedClock clock_; absl::optional next_action_; absl::optional last_packet_time_ms_; std::unique_ptr neteq_; - std::unique_ptr input_; std::unique_ptr output_; Callbacks callbacks_; int sample_rate_hz_;