commit 63fc0d504e307915a14ac3de8fc0cb350f25c759
parent c12d76104a631b4060a1038bba5b50c47a174963
Author: Dan Baker <dbaker@mozilla.com>
Date: Wed, 19 Nov 2025 21:45:41 -0700
Bug 2000941 - Vendor libwebrtc from 6196e72116
Upstream commit: https://webrtc.googlesource.com/src/+/6196e72116e94d2df331e28b0210638f3db48dfe
Remove RtpTransportControllerSendFactoryInterface
This removes the possibility of injecting a custom factory for creating
the RtpTransportControllerSendInterface. It done in preparation of
moving RtpTransportControllerSend to RtpTransport.
Bug: webrtc:438396766
Change-Id: Iaffa554b29564820b5f8b7c4a02619254dedbd48
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/404322
Commit-Queue: Per Kjellander <perkj@webrtc.org>
Reviewed-by: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#45542}
Diffstat:
13 files changed, 10 insertions(+), 103 deletions(-)
diff --git a/third_party/libwebrtc/README.mozilla.last-vendor b/third_party/libwebrtc/README.mozilla.last-vendor
@@ -1,4 +1,4 @@
# ./mach python dom/media/webrtc/third_party_build/vendor-libwebrtc.py --from-local /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc --commit mozpatches libwebrtc
-libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-11-20T04:43:02.001877+00:00.
+libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-11-20T04:45:16.909296+00:00.
# base of lastest vendoring
-1de952a79d
+6196e72116
diff --git a/third_party/libwebrtc/api/DEPS b/third_party/libwebrtc/api/DEPS
@@ -44,10 +44,6 @@ include_rules = [
specific_include_rules = {
# Some internal headers are allowed even in API headers:
- "call_factory_interface\.h": [
- "+call/rtp_transport_controller_send_factory_interface.h",
- ],
-
".*\.h": [
"+rtc_base/checks.h",
"+rtc_base/system/rtc_export.h",
@@ -127,7 +123,6 @@ specific_include_rules = {
],
"peer_connection_interface\.h": [
- "+call/rtp_transport_controller_send_factory_interface.h",
"+media/base/media_config.h",
"+media/base/media_engine.h",
"+p2p/base/port.h",
diff --git a/third_party/libwebrtc/api/peer_connection_interface.h b/third_party/libwebrtc/api/peer_connection_interface.h
@@ -126,7 +126,6 @@
#include "api/video/video_bitrate_allocator_factory.h"
#include "api/video_codecs/video_decoder_factory.h"
#include "api/video_codecs/video_encoder_factory.h"
-#include "call/rtp_transport_controller_send_factory_interface.h"
#include "media/base/media_config.h"
// TODO(bugs.webrtc.org/7447): We plan to provide a way to let applications
// inject a PacketSocketFactory and/or NetworkManager, and not expose
@@ -1469,8 +1468,6 @@ struct RTC_EXPORT PeerConnectionFactoryDependencies final {
std::unique_ptr<NetworkMonitorFactory> network_monitor_factory;
std::unique_ptr<NetEqFactory> neteq_factory;
std::unique_ptr<SctpTransportFactoryInterface> sctp_factory;
- std::unique_ptr<RtpTransportControllerSendFactoryInterface>
- transport_controller_send_factory;
// Metronome used for decoding, must be called on the worker thread.
std::unique_ptr<Metronome> decode_metronome;
// Metronome used for encoding, must be called on the worker thread.
diff --git a/third_party/libwebrtc/call/BUILD.gn b/third_party/libwebrtc/call/BUILD.gn
@@ -103,7 +103,6 @@ rtc_library("rtp_interfaces") {
"rtp_packet_sink_interface.h",
"rtp_stream_receiver_controller_interface.h",
"rtp_transport_config.h",
- "rtp_transport_controller_send_factory_interface.h",
"rtp_transport_controller_send_interface.h",
]
deps = [
@@ -165,7 +164,6 @@ rtc_library("rtp_sender") {
"rtp_payload_params.h",
"rtp_transport_controller_send.cc",
"rtp_transport_controller_send.h",
- "rtp_transport_controller_send_factory.h",
"rtp_video_sender.cc",
"rtp_video_sender.h",
"rtp_video_sender_interface.h",
diff --git a/third_party/libwebrtc/call/call.cc b/third_party/libwebrtc/call/call.cc
@@ -59,7 +59,7 @@
#include "call/receive_time_calculator.h"
#include "call/rtp_config.h"
#include "call/rtp_stream_receiver_controller.h"
-#include "call/rtp_transport_controller_send_factory.h"
+#include "call/rtp_transport_controller_send.h"
#include "call/version.h"
#include "call/video_receive_stream.h"
#include "call/video_send_stream.h"
@@ -514,14 +514,8 @@ class Call final : public webrtc::Call,
} // namespace internal
std::unique_ptr<Call> Call::Create(CallConfig config) {
- std::unique_ptr<RtpTransportControllerSendInterface> transport_send;
- if (config.rtp_transport_controller_send_factory != nullptr) {
- transport_send = config.rtp_transport_controller_send_factory->Create(
- config.ExtractTransportConfig());
- } else {
- transport_send = RtpTransportControllerSendFactory().Create(
- config.ExtractTransportConfig());
- }
+ auto transport_send = std::make_unique<RtpTransportControllerSend>(
+ config.ExtractTransportConfig());
return std::make_unique<internal::Call>(std::move(config),
std::move(transport_send));
diff --git a/third_party/libwebrtc/call/call_config.h b/third_party/libwebrtc/call/call_config.h
@@ -25,7 +25,6 @@
#include "api/units/time_delta.h"
#include "call/audio_state.h"
#include "call/rtp_transport_config.h"
-#include "call/rtp_transport_controller_send_factory_interface.h"
namespace webrtc {
@@ -77,9 +76,6 @@ struct CallConfig {
NetEqFactory* neteq_factory = nullptr;
TaskQueueBase* network_task_queue_ = nullptr;
- // RtpTransportControllerSend to use for this call.
- RtpTransportControllerSendFactoryInterface*
- rtp_transport_controller_send_factory = nullptr;
Metronome* decode_metronome = nullptr;
Metronome* encode_metronome = nullptr;
diff --git a/third_party/libwebrtc/call/rtp_transport_controller_send_factory.h b/third_party/libwebrtc/call/rtp_transport_controller_send_factory.h
@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2021 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-
-#ifndef CALL_RTP_TRANSPORT_CONTROLLER_SEND_FACTORY_H_
-#define CALL_RTP_TRANSPORT_CONTROLLER_SEND_FACTORY_H_
-
-#include <memory>
-
-#include "call/rtp_transport_config.h"
-#include "call/rtp_transport_controller_send.h"
-#include "call/rtp_transport_controller_send_factory_interface.h"
-#include "call/rtp_transport_controller_send_interface.h"
-
-namespace webrtc {
-class RtpTransportControllerSendFactory
- : public RtpTransportControllerSendFactoryInterface {
- public:
- std::unique_ptr<RtpTransportControllerSendInterface> Create(
- const RtpTransportConfig& config) override {
- return std::make_unique<RtpTransportControllerSend>(config);
- }
-
- virtual ~RtpTransportControllerSendFactory() {}
-};
-} // namespace webrtc
-#endif // CALL_RTP_TRANSPORT_CONTROLLER_SEND_FACTORY_H_
diff --git a/third_party/libwebrtc/call/rtp_transport_controller_send_factory_interface.h b/third_party/libwebrtc/call/rtp_transport_controller_send_factory_interface.h
@@ -1,29 +0,0 @@
-/*
- * Copyright (c) 2021 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license
- * that can be found in the LICENSE file in the root of the source
- * tree. An additional intellectual property rights grant can be found
- * in the file PATENTS. All contributing project authors may
- * be found in the AUTHORS file in the root of the source tree.
- */
-#ifndef CALL_RTP_TRANSPORT_CONTROLLER_SEND_FACTORY_INTERFACE_H_
-#define CALL_RTP_TRANSPORT_CONTROLLER_SEND_FACTORY_INTERFACE_H_
-
-#include <memory>
-
-#include "call/rtp_transport_config.h"
-#include "call/rtp_transport_controller_send_interface.h"
-
-namespace webrtc {
-// A factory used for dependency injection on the send side of the transport
-// controller.
-class RtpTransportControllerSendFactoryInterface {
- public:
- virtual ~RtpTransportControllerSendFactoryInterface() = default;
-
- virtual std::unique_ptr<RtpTransportControllerSendInterface> Create(
- const RtpTransportConfig& config) = 0;
-};
-} // namespace webrtc
-#endif // CALL_RTP_TRANSPORT_CONTROLLER_SEND_FACTORY_INTERFACE_H_
diff --git a/third_party/libwebrtc/moz-patch-stack/s0001.patch b/third_party/libwebrtc/moz-patch-stack/s0001.patch
@@ -413,7 +413,7 @@ index 7bd443f711..a433aa21e7 100644
bool RtpExtension::IsSupportedForVideo(absl::string_view uri) {
diff --git a/call/BUILD.gn b/call/BUILD.gn
-index d3504a3aba..a9c0de8016 100644
+index 886a5983a1..a189b83f55 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -20,6 +20,7 @@ rtc_library("call_interfaces") {
diff --git a/third_party/libwebrtc/moz-patch-stack/s0027.patch b/third_party/libwebrtc/moz-patch-stack/s0027.patch
@@ -473,7 +473,7 @@ index 67a2dbf7ec..9c5e881a70 100644
if (rtc_include_tests) {
rtc_source_set("test_feedback_generator_interface") {
diff --git a/call/BUILD.gn b/call/BUILD.gn
-index a9c0de8016..f8b2a9b7b5 100644
+index a189b83f55..3f6cc7a48a 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -48,7 +48,7 @@ rtc_library("call_interfaces") {
diff --git a/third_party/libwebrtc/moz-patch-stack/s0119.patch b/third_party/libwebrtc/moz-patch-stack/s0119.patch
@@ -12,7 +12,7 @@ Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/19164e58323d59c1f
3 files changed, 7 insertions(+), 23 deletions(-)
diff --git a/call/call.cc b/call/call.cc
-index 91ec1a54bc..e41922dffa 100644
+index e500c02b29..08944d2932 100644
--- a/call/call.cc
+++ b/call/call.cc
@@ -513,19 +513,6 @@ class Call final : public webrtc::Call,
@@ -33,8 +33,8 @@ index 91ec1a54bc..e41922dffa 100644
-}
-
std::unique_ptr<Call> Call::Create(CallConfig config) {
- std::unique_ptr<RtpTransportControllerSendInterface> transport_send;
- if (config.rtp_transport_controller_send_factory != nullptr) {
+ auto transport_send = std::make_unique<RtpTransportControllerSend>(
+ config.ExtractTransportConfig());
diff --git a/call/call.h b/call/call.h
index b2146118ff..cda8733859 100644
--- a/call/call.h
diff --git a/third_party/libwebrtc/pc/peer_connection_factory.cc b/third_party/libwebrtc/pc/peer_connection_factory.cc
@@ -35,7 +35,6 @@
#include "api/transport/network_control.h"
#include "api/units/data_rate.h"
#include "call/call_config.h"
-#include "call/rtp_transport_controller_send_factory.h"
#include "media/base/codec.h"
#include "media/base/media_engine.h"
#include "p2p/base/basic_async_resolver_factory.h"
@@ -111,10 +110,6 @@ PeerConnectionFactory::PeerConnectionFactory(
injected_network_controller_factory_(
std::move(dependencies->network_controller_factory)),
neteq_factory_(std::move(dependencies->neteq_factory)),
- transport_controller_send_factory_(
- (dependencies->transport_controller_send_factory)
- ? std::move(dependencies->transport_controller_send_factory)
- : std::make_unique<RtpTransportControllerSendFactory>()),
decode_metronome_(std::move(dependencies->decode_metronome)),
encode_metronome_(std::move(dependencies->encode_metronome)) {}
@@ -384,9 +379,6 @@ std::unique_ptr<Call> PeerConnectionFactory::CreateCall_w(
} else {
RTC_LOG(LS_INFO) << "Using default network controller factory";
}
-
- call_config.rtp_transport_controller_send_factory =
- transport_controller_send_factory_.get();
call_config.decode_metronome = decode_metronome_.get();
call_config.encode_metronome = encode_metronome_.get();
call_config.pacer_burst_interval = configuration.pacer_burst_interval;
diff --git a/third_party/libwebrtc/pc/peer_connection_factory.h b/third_party/libwebrtc/pc/peer_connection_factory.h
@@ -37,7 +37,6 @@
#include "api/transport/network_control.h"
#include "api/transport/sctp_transport_factory_interface.h"
#include "call/call.h"
-#include "call/rtp_transport_controller_send_factory_interface.h"
#include "media/base/media_engine.h"
#include "pc/codec_vendor.h"
#include "pc/connection_context.h"
@@ -142,8 +141,6 @@ class PeerConnectionFactory : public PeerConnectionFactoryInterface {
std::unique_ptr<NetworkControllerFactoryInterface>
injected_network_controller_factory_;
std::unique_ptr<NetEqFactory> neteq_factory_;
- const std::unique_ptr<RtpTransportControllerSendFactoryInterface>
- transport_controller_send_factory_;
std::unique_ptr<Metronome> decode_metronome_ RTC_GUARDED_BY(worker_thread());
std::unique_ptr<Metronome> encode_metronome_ RTC_GUARDED_BY(worker_thread());
};