From 164b3b3fced2186ff4f9e97ce6373d189481cd1b Mon Sep 17 00:00:00 2001 From: Danil Chapovalov Date: Fri, 30 Aug 2024 15:59:33 +0200 Subject: [PATCH] Introduce ModuleRtpRtcpImpl factory that accepts Environment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ModuleRtpRtcpImpl and ModuleRtpRtcpImpl2 share certain components, RtcpReceiver in particular. To always have Environment in RtcpReceiver both legacy and new module need to propagate it. No-Iwyu: suggests too many changes, better address them separately. Bug: webrtc:362762208 Change-Id: I2c885f57e24f135229fb7cd9781126d663017b3d Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/361142 Reviewed-by: Åsa Persson Commit-Queue: Danil Chapovalov Cr-Commit-Position: refs/heads/main@{#42908} --- modules/rtp_rtcp/BUILD.gn | 1 + modules/rtp_rtcp/include/rtp_rtcp.h | 19 ++++++++++--------- modules/rtp_rtcp/source/rtp_rtcp_impl.cc | 16 ++++++++++++++-- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/modules/rtp_rtcp/BUILD.gn b/modules/rtp_rtcp/BUILD.gn index 4873a744cd..ec05361b1f 100644 --- a/modules/rtp_rtcp/BUILD.gn +++ b/modules/rtp_rtcp/BUILD.gn @@ -377,6 +377,7 @@ rtc_source_set("rtp_rtcp_legacy") { "..:module_fec_api", "../../api:rtp_headers", "../../api:transport_api", + "../../api/environment", "../../api/rtc_event_log", "../../api/units:data_rate", "../../api/units:timestamp", diff --git a/modules/rtp_rtcp/include/rtp_rtcp.h b/modules/rtp_rtcp/include/rtp_rtcp.h index e56d5ef637..ccf193ee95 100644 --- a/modules/rtp_rtcp/include/rtp_rtcp.h +++ b/modules/rtp_rtcp/include/rtp_rtcp.h @@ -13,21 +13,22 @@ #include -#include "absl/base/attributes.h" +#include "api/environment/environment.h" #include "modules/rtp_rtcp/source/rtp_rtcp_interface.h" namespace webrtc { -class ABSL_DEPRECATED("") RtpRtcp : public RtpRtcpInterface { +// A deprecated version of the RtpRtcp module. +class [[deprecated("bugs.webrtc.org/42224904")]] RtpRtcp + : public RtpRtcpInterface { public: - // Instantiates a deprecated version of the RtpRtcp module. - static std::unique_ptr ABSL_DEPRECATED("") - Create(const Configuration& configuration) { - return DEPRECATED_Create(configuration); - } + [[deprecated("bugs.webrtc.org/362762208")]] // + static std::unique_ptr + Create(const Configuration& configuration); - static std::unique_ptr DEPRECATED_Create( - const Configuration& configuration); + [[deprecated("bugs.webrtc.org/42224904")]] // + static std::unique_ptr + Create(const Environment& env, const Configuration& configuration); // Process any pending tasks such as timeouts. virtual void Process() = 0; diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/modules/rtp_rtcp/source/rtp_rtcp_impl.cc index eb4665bed2..e13b0439bd 100644 --- a/modules/rtp_rtcp/source/rtp_rtcp_impl.cc +++ b/modules/rtp_rtcp/source/rtp_rtcp_impl.cc @@ -57,12 +57,24 @@ ModuleRtpRtcpImpl::RtpSenderContext::RtpSenderContext( &packet_history, config.paced_sender ? config.paced_sender : &non_paced_sender) {} -std::unique_ptr RtpRtcp::DEPRECATED_Create( - const Configuration& configuration) { +std::unique_ptr RtpRtcp::Create(const Configuration& configuration) { RTC_DCHECK(configuration.clock); return std::make_unique(configuration); } +std::unique_ptr RtpRtcp::Create(const Environment& env, + const Configuration& configuration) { + RTC_DCHECK(configuration.field_trials == nullptr); + RTC_DCHECK(configuration.clock == nullptr); + RTC_DCHECK(configuration.event_log == nullptr); + + Configuration config = configuration; + config.field_trials = &env.field_trials(); + config.clock = &env.clock(); + config.event_log = &env.event_log(); + return std::make_unique(config); +} + ModuleRtpRtcpImpl::ModuleRtpRtcpImpl(const Configuration& configuration) : rtcp_sender_( RTCPSender::Configuration::FromRtpRtcpConfiguration(configuration)),