Add Environment-based constructor to DefaultVideoJitterTiming. The existing one will be removed in a separate CL once no longer used. Bug: b/493549134 Change-Id: I4786ed17b2c6b94c0236c8c17c1581ed362fa6f8 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/482280 Commit-Queue: Åsa Persson <asapersson@webrtc.org> Reviewed-by: Rasmus Brandt <brandtr@webrtc.org> Cr-Commit-Position: refs/heads/main@{#47999}
diff --git a/modules/video_coding/timing/BUILD.gn b/modules/video_coding/timing/BUILD.gn index 6b2440c..2cccb28 100644 --- a/modules/video_coding/timing/BUILD.gn +++ b/modules/video_coding/timing/BUILD.gn
@@ -105,6 +105,7 @@ ":jitter_estimator", ":timestamp_extrapolator", "../../../api:field_trials_view", + "../../../api/environment", "../../../api/units:data_size", "../../../api/units:time_delta", "../../../api/units:timestamp", @@ -158,6 +159,7 @@ ":timestamp_extrapolator", ":timing_module", "../../../api:field_trials", + "../../../api/environment", "../../../api/units:data_size", "../../../api/units:frequency", "../../../api/units:time_delta", @@ -165,6 +167,7 @@ "../../../rtc_base:histogram_percentile_counter", "../../../system_wrappers", "../../../system_wrappers:metrics", + "../../../test:create_test_environment", "../../../test:create_test_field_trials", "../../../test:test_support", ]
diff --git a/modules/video_coding/timing/default_video_jitter_timing.cc b/modules/video_coding/timing/default_video_jitter_timing.cc index 01a3335..ee130a9 100644 --- a/modules/video_coding/timing/default_video_jitter_timing.cc +++ b/modules/video_coding/timing/default_video_jitter_timing.cc
@@ -13,6 +13,7 @@ #include <cstdint> #include <optional> +#include "api/environment/environment.h" #include "api/field_trials_view.h" #include "api/units/data_size.h" #include "api/units/time_delta.h" @@ -24,6 +25,9 @@ namespace webrtc { +DefaultVideoJitterTiming::DefaultVideoJitterTiming(const Environment& env) + : DefaultVideoJitterTiming(&env.clock(), env.field_trials()) {} + DefaultVideoJitterTiming::DefaultVideoJitterTiming( Clock* clock, const FieldTrialsView& field_trials)
diff --git a/modules/video_coding/timing/default_video_jitter_timing.h b/modules/video_coding/timing/default_video_jitter_timing.h index a88eb0a..c3c8b7f 100644 --- a/modules/video_coding/timing/default_video_jitter_timing.h +++ b/modules/video_coding/timing/default_video_jitter_timing.h
@@ -14,6 +14,7 @@ #include <cstdint> #include <optional> +#include "api/environment/environment.h" #include "api/field_trials_view.h" #include "api/units/data_size.h" #include "api/units/time_delta.h" @@ -27,7 +28,8 @@ class DefaultVideoJitterTiming { public: - // TODO(b/493549134): Use Environment. + explicit DefaultVideoJitterTiming(const Environment& env); + // TODO(b/493549134): Remove once no longer used. DefaultVideoJitterTiming(Clock* clock, const FieldTrialsView& field_trials); ~DefaultVideoJitterTiming() = default;
diff --git a/modules/video_coding/timing/default_video_jitter_timing_unittest.cc b/modules/video_coding/timing/default_video_jitter_timing_unittest.cc index f73cdda..04a3fff 100644 --- a/modules/video_coding/timing/default_video_jitter_timing_unittest.cc +++ b/modules/video_coding/timing/default_video_jitter_timing_unittest.cc
@@ -13,11 +13,13 @@ #include <cstdint> #include <optional> +#include "api/environment/environment.h" #include "api/field_trials.h" #include "api/units/data_size.h" #include "api/units/time_delta.h" #include "api/units/timestamp.h" #include "system_wrappers/include/clock.h" +#include "test/create_test_environment.h" #include "test/create_test_field_trials.h" #include "test/gtest.h" @@ -30,26 +32,26 @@ constexpr TimeDelta kRtt = TimeDelta::Millis(100); TEST(DefaultVideoJitterTimingTest, ExtrapolatorReturnsNulloptInitially) { - FieldTrials field_trials = CreateTestFieldTrials(); SimulatedClock clock(kInitialTime); - DefaultVideoJitterTiming timing(&clock, field_trials); + Environment env = CreateTestEnvironment({.time = &clock}); + DefaultVideoJitterTiming timing(env); EXPECT_EQ(timing.ExtrapolateLocalTime(kRtpTimestamp), std::nullopt); } TEST(DefaultVideoJitterTimingTest, ExtrapolatorReturnsTimeAfterUpdate) { - FieldTrials field_trials = CreateTestFieldTrials(); SimulatedClock clock(kInitialTime); - DefaultVideoJitterTiming timing(&clock, field_trials); + Environment env = CreateTestEnvironment({.time = &clock}); + DefaultVideoJitterTiming timing(env); timing.OnCompleteTemporalUnit(kRtpTimestamp, clock.CurrentTime()); EXPECT_EQ(timing.ExtrapolateLocalTime(kRtpTimestamp), clock.CurrentTime()); } TEST(DefaultVideoJitterTimingTest, ExtrapolatorReturnsNulloptAfterReset) { - FieldTrials field_trials = CreateTestFieldTrials(); SimulatedClock clock(kInitialTime); - DefaultVideoJitterTiming timing(&clock, field_trials); + Environment env = CreateTestEnvironment({.time = &clock}); + DefaultVideoJitterTiming timing(env); timing.OnCompleteTemporalUnit(kRtpTimestamp, clock.CurrentTime()); EXPECT_EQ(timing.ExtrapolateLocalTime(kRtpTimestamp), clock.CurrentTime()); @@ -59,9 +61,9 @@ } TEST(DefaultVideoJitterTimingTest, OnDecodableTemporalUnitReturnsEstimate) { - FieldTrials field_trials = CreateTestFieldTrials(); SimulatedClock clock(kInitialTime); - DefaultVideoJitterTiming timing(&clock, field_trials); + Environment env = CreateTestEnvironment({.time = &clock}); + DefaultVideoJitterTiming timing(env); EXPECT_NE(timing.OnDecodableTemporalUnit(kRtpTimestamp, kFrameSize, clock.CurrentTime(), @@ -71,9 +73,9 @@ TEST(DefaultVideoJitterTimingTest, OnDecodableTemporalUnitReturnsNulloptOnRetransmission) { - FieldTrials field_trials = CreateTestFieldTrials(); SimulatedClock clock(kInitialTime); - DefaultVideoJitterTiming timing(&clock, field_trials); + Environment env = CreateTestEnvironment({.time = &clock}); + DefaultVideoJitterTiming timing(env); EXPECT_EQ(timing.OnDecodableTemporalUnit(kRtpTimestamp, kFrameSize, clock.CurrentTime(), @@ -86,7 +88,9 @@ FieldTrials field_trials = CreateTestFieldTrials("WebRTC-JitterEstimatorConfig/nack_limit:1/"); SimulatedClock clock(kInitialTime); - DefaultVideoJitterTiming timing(&clock, field_trials); + Environment env = + CreateTestEnvironment({.field_trials = field_trials, .time = &clock}); + DefaultVideoJitterTiming timing(env); timing.UpdateRtt(kRtt); @@ -115,7 +119,9 @@ FieldTrials field_trials = CreateTestFieldTrials("WebRTC-JitterEstimatorConfig/nack_limit:1/"); SimulatedClock clock(kInitialTime); - DefaultVideoJitterTiming timing(&clock, field_trials); + Environment env = + CreateTestEnvironment({.field_trials = field_trials, .time = &clock}); + DefaultVideoJitterTiming timing(env); timing.UpdateRtt(kRtt);