From 366a1bc709d00d8d7f1b2855b463d2eede90f443 Mon Sep 17 00:00:00 2001 From: Danil Chapovalov Date: Tue, 16 Apr 2024 14:22:29 +0200 Subject: [PATCH] Add factory function for legacy VideoCoding that takes Environment That forces external field trials, thus VideoCoding will be able to remove dependency on the global field trials string through FieldTrialBasedConfig class. Bug: webrtc:10335 Change-Id: I6d22a7d20a4433801a0086b0863cda78e91f4f60 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/347646 Reviewed-by: Philip Eliasson Commit-Queue: Danil Chapovalov Cr-Commit-Position: refs/heads/main@{#42092} --- modules/video_coding/BUILD.gn | 1 + modules/video_coding/include/video_coding.h | 8 ++++++-- modules/video_coding/video_coding_impl.cc | 6 ++++++ 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/modules/video_coding/BUILD.gn b/modules/video_coding/BUILD.gn index 69cca17cad..15face24a7 100644 --- a/modules/video_coding/BUILD.gn +++ b/modules/video_coding/BUILD.gn @@ -333,6 +333,7 @@ rtc_library("video_coding_legacy") { "../../api:rtp_headers", "../../api:rtp_packet_info", "../../api:sequence_checker", + "../../api/environment", "../../api/transport:field_trial_based_config", "../../api/units:timestamp", "../../api/video:encoded_image", diff --git a/modules/video_coding/include/video_coding.h b/modules/video_coding/include/video_coding.h index ee9326d9fc..ad0f591498 100644 --- a/modules/video_coding/include/video_coding.h +++ b/modules/video_coding/include/video_coding.h @@ -11,6 +11,9 @@ #ifndef MODULES_VIDEO_CODING_INCLUDE_VIDEO_CODING_H_ #define MODULES_VIDEO_CODING_INCLUDE_VIDEO_CODING_H_ +#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" @@ -27,10 +30,11 @@ struct CodecSpecificInfo; class VideoCodingModule { public: - // DEPRECATED. - static VideoCodingModule* Create( + [[deprecated]] static VideoCodingModule* Create( Clock* clock, const FieldTrialsView* field_trials = nullptr); + [[deprecated]] static std::unique_ptr CreateDeprecated( + const Environment& env); virtual ~VideoCodingModule() = default; diff --git a/modules/video_coding/video_coding_impl.cc b/modules/video_coding/video_coding_impl.cc index 2eaecd5011..888ea60adc 100644 --- a/modules/video_coding/video_coding_impl.cc +++ b/modules/video_coding/video_coding_impl.cc @@ -251,4 +251,10 @@ VideoCodingModule* VideoCodingModule::Create( return new VideoCodingModuleImpl(clock, field_trials); } +std::unique_ptr VideoCodingModule::CreateDeprecated( + const Environment& env) { + return std::make_unique(&env.clock(), + &env.field_trials()); +} + } // namespace webrtc