From e92b143eea2d5f1c3dedfb6a0e0bdd6fd19337f6 Mon Sep 17 00:00:00 2001 From: Danil Chapovalov Date: Wed, 17 Apr 2024 15:32:43 +0200 Subject: [PATCH] Remove VideoCodingModule dependency on the global field trial string Environment provides non-null interface for FieldTrialsView and thus VideoCodingModule no longer need to rely on FieldTrialBasedConfig class to provide field_trials when not passed at construction. Bug: webrtc:10335 Change-Id: Iedfb29e8b29056618a85f2e7a1528da29e3be5c1 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/347701 Auto-Submit: Danil Chapovalov Reviewed-by: Philip Eliasson Commit-Queue: Philip Eliasson Cr-Commit-Position: refs/heads/main@{#42163} --- modules/video_coding/BUILD.gn | 2 -- modules/video_coding/include/video_coding.h | 10 -------- modules/video_coding/video_coding_impl.cc | 27 ++++++--------------- 3 files changed, 7 insertions(+), 32 deletions(-) diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn index acd49d0ace..00b8236f2f 100644 --- a/modules/video_coding/BUILD.gn +++ b/modules/video_coding/BUILD.gn @@ -334,7 +334,6 @@ rtc_library("video_coding_legacy") { "../../api:rtp_packet_info", "../../api:sequence_checker", "../../api/environment", - "../../api/transport:field_trial_based_config", "../../api/units:timestamp", "../../api/video:encoded_image", "../../api/video:video_frame", @@ -350,7 +349,6 @@ rtc_library("video_coding_legacy") { "../../rtc_base:one_time_event", "../../rtc_base:rtc_event", "../../rtc_base:safe_conversions", - "../../rtc_base/memory:always_valid_pointer", "../../rtc_base/synchronization:mutex", "../../system_wrappers", "../rtp_rtcp:rtp_rtcp_format", diff --git a/modules/video_coding/include/video_coding.h b/modules/video_coding/include/video_coding.h index ad0f591498..70ccebfaad 100644 --- a/modules/video_coding/include/video_coding.h +++ b/modules/video_coding/include/video_coding.h @@ -14,7 +14,6 @@ #include #include "api/environment/environment.h" -#include "api/field_trials_view.h" #include "api/video/video_frame.h" #include "api/video_codecs/video_decoder.h" #include "modules/rtp_rtcp/source/rtp_video_header.h" @@ -22,17 +21,8 @@ namespace webrtc { -class Clock; -class EncodedImageCallback; -class VideoDecoder; -class VideoEncoder; -struct CodecSpecificInfo; - class VideoCodingModule { public: - [[deprecated]] static VideoCodingModule* Create( - Clock* clock, - const FieldTrialsView* field_trials = nullptr); [[deprecated]] static std::unique_ptr CreateDeprecated( const Environment& env); diff --git a/modules/video_coding/video_coding_impl.cc b/modules/video_coding/video_coding_impl.cc index 888ea60adc..8799d9bff8 100644 --- a/modules/video_coding/video_coding_impl.cc +++ b/modules/video_coding/video_coding_impl.cc @@ -15,12 +15,10 @@ #include "api/field_trials_view.h" #include "api/sequence_checker.h" -#include "api/transport/field_trial_based_config.h" #include "api/video/encoded_image.h" #include "modules/video_coding/include/video_codec_interface.h" #include "modules/video_coding/timing/timing.h" #include "rtc_base/logging.h" -#include "rtc_base/memory/always_valid_pointer.h" #include "system_wrappers/include/clock.h" namespace webrtc { @@ -175,12 +173,10 @@ namespace { class VideoCodingModuleImpl : public VideoCodingModule { public: - explicit VideoCodingModuleImpl(Clock* clock, - const FieldTrialsView* field_trials) - : VideoCodingModule(), - field_trials_(field_trials), - timing_(new VCMTiming(clock, *field_trials_)), - receiver_(clock, timing_.get(), *field_trials_) {} + explicit VideoCodingModuleImpl(const Environment& env) + : env_(env), + timing_(&env_.clock(), env_.field_trials()), + receiver_(&env_.clock(), &timing_, env_.field_trials()) {} ~VideoCodingModuleImpl() override = default; @@ -234,27 +230,18 @@ class VideoCodingModuleImpl : public VideoCodingModule { } private: - AlwaysValidPointer - field_trials_; + const Environment env_; SequenceChecker construction_thread_; - const std::unique_ptr timing_; + VCMTiming timing_; vcm::VideoReceiver receiver_; }; } // namespace // DEPRECATED. Create method for current interface, will be removed when the // new jitter buffer is in place. -VideoCodingModule* VideoCodingModule::Create( - Clock* clock, - const FieldTrialsView* field_trials) { - RTC_DCHECK(clock); - return new VideoCodingModuleImpl(clock, field_trials); -} - std::unique_ptr VideoCodingModule::CreateDeprecated( const Environment& env) { - return std::make_unique(&env.clock(), - &env.field_trials()); + return std::make_unique(env); } } // namespace webrtc