commit 47c07156b95b586ce852e42b2b910960ea1b9d04
parent 63817f7edcb82cc7d876563f693b26891d08369f
Author: Dan Baker <dbaker@mozilla.com>
Date: Fri, 24 Oct 2025 12:55:42 -0600
Bug 1995393 - Vendor libwebrtc from 468589eae6
Upstream commit: https://webrtc.googlesource.com/src/+/468589eae6dbd8085a18a8447cd11488135e6910
Cleanup RtcpReceiver from code for legacy RtpRtcp implementation
With legacy RtpRtcp removed, RtcpReceiver can remove constructor for it.
However api of the constructor is changed to match that legacy one because
unit tests use it to mock RtpRtcp implementation.
Bug: webrtc:42224904
Change-Id: I5e73ba30484de13e3bb866cb3a87ee8a266dfac9
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/405381
Reviewed-by: Åsa Persson <asapersson@webrtc.org>
Commit-Queue: Danil Chapovalov <danilchap@webrtc.org>
Cr-Commit-Position: refs/heads/main@{#45392}
Diffstat:
12 files changed, 49 insertions(+), 139 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-10-24T18:29:41.623893+00:00.
+libwebrtc updated from /Users/danielbaker/elm/.moz-fast-forward/moz-libwebrtc commit mozpatches on 2025-10-24T18:55:29.191740+00:00.
# base of lastest vendoring
-38bb331bda
+468589eae6
diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtcp_receiver.cc b/third_party/libwebrtc/modules/rtp_rtcp/source/rtcp_receiver.cc
@@ -59,7 +59,6 @@
#include "modules/rtp_rtcp/source/rtcp_packet/tmmbn.h"
#include "modules/rtp_rtcp/source/rtcp_packet/tmmbr.h"
#include "modules/rtp_rtcp/source/rtcp_packet/transport_feedback.h"
-#include "modules/rtp_rtcp/source/rtp_rtcp_impl2.h"
#include "modules/rtp_rtcp/source/rtp_rtcp_interface.h"
#include "modules/rtp_rtcp/source/tmmbr_help.h"
#include "rtc_base/checks.h"
@@ -107,9 +106,7 @@ bool ResetTimestampIfExpired(const Timestamp now,
} // namespace
RTCPReceiver::RegisteredSsrcs::RegisteredSsrcs(
- bool disable_sequence_checker,
- const RtpRtcpInterface::Configuration& config)
- : packet_sequence_checker_(disable_sequence_checker) {
+ const RtpRtcpInterface::Configuration& config) {
packet_sequence_checker_.Detach();
ssrcs_.push_back(config.local_media_ssrc);
if (config.rtx_send_ssrc) {
@@ -157,44 +154,13 @@ struct RTCPReceiver::PacketInformation {
RTCPReceiver::RTCPReceiver(const Environment& env,
const RtpRtcpInterface::Configuration& config,
- ModuleRtpRtcpImpl2* owner)
- : env_(env),
- receiver_only_(config.receiver_only),
- enable_congestion_controller_feedback_(env_.field_trials().IsEnabled(
- "WebRTC-RFC8888CongestionControlFeedback")),
- rtp_rtcp_(owner),
- registered_ssrcs_(false, config),
- network_link_rtcp_observer_(config.network_link_rtcp_observer),
- rtcp_event_observer_(config.rtcp_event_observer),
- rtcp_intra_frame_observer_(config.intra_frame_callback),
- rtcp_loss_notification_observer_(config.rtcp_loss_notification_observer),
- network_state_estimate_observer_(config.network_state_estimate_observer),
- bitrate_allocation_observer_(config.bitrate_allocation_observer),
- report_interval_(config.rtcp_report_interval_ms > 0
- ? TimeDelta::Millis(config.rtcp_report_interval_ms)
- : (config.audio ? kDefaultAudioReportInterval
- : kDefaultVideoReportInterval)),
- // TODO(bugs.webrtc.org/10774): Remove fallback.
- remote_ssrc_(0),
- xr_rrtr_status_(config.non_sender_rtt_measurement),
- oldest_tmmbr_info_(Timestamp::Zero()),
- cname_callback_(config.rtcp_cname_callback),
- report_block_data_observer_(config.report_block_data_observer),
- packet_type_counter_observer_(config.rtcp_packet_type_counter_observer),
- num_skipped_packets_(0),
- last_skipped_packets_warning_(env_.clock().CurrentTime()) {
- RTC_DCHECK(owner);
-}
-
-RTCPReceiver::RTCPReceiver(const Environment& env,
- const RtpRtcpInterface::Configuration& config,
ModuleRtpRtcp* owner)
: env_(env),
receiver_only_(config.receiver_only),
enable_congestion_controller_feedback_(env_.field_trials().IsEnabled(
"WebRTC-RFC8888CongestionControlFeedback")),
rtp_rtcp_(owner),
- registered_ssrcs_(true, config),
+ registered_ssrcs_(config),
network_link_rtcp_observer_(config.network_link_rtcp_observer),
rtcp_event_observer_(config.rtcp_event_observer),
rtcp_intra_frame_observer_(config.intra_frame_callback),
@@ -215,19 +181,6 @@ RTCPReceiver::RTCPReceiver(const Environment& env,
num_skipped_packets_(0),
last_skipped_packets_warning_(env_.clock().CurrentTime()) {
RTC_DCHECK(owner);
- // Dear reader - if you're here because of this log statement and are
- // wondering what this is about, chances are that you are using an instance
- // of RTCPReceiver without using the webrtc APIs. This creates a bit of a
- // problem for WebRTC because this class is a part of an internal
- // implementation that is constantly changing and being improved.
- // The intention of this log statement is to give a heads up that changes
- // are coming and encourage you to use the public APIs or be prepared that
- // things might break down the line as more changes land. A thing you could
- // try out for now is to replace the `CustomSequenceChecker` in the header
- // with a regular `SequenceChecker` and see if that triggers an
- // error in your code. If it does, chances are you have your own threading
- // model that is not the same as WebRTC internally has.
- RTC_LOG(LS_INFO) << "************** !!!DEPRECATION WARNING!! **************";
}
RTCPReceiver::~RTCPReceiver() {}
@@ -1259,7 +1212,8 @@ std::vector<rtcp::TmmbItem> RTCPReceiver::TmmbrReceived() {
}
bool RTCPReceiver::RtcpRrTimeoutLocked(Timestamp now) {
- bool result = ResetTimestampIfExpired(now, last_received_rb_, report_interval_);
+ bool result =
+ ResetTimestampIfExpired(now, last_received_rb_, report_interval_);
if (result && rtcp_event_observer_) {
rtcp_event_observer_->OnRtcpTimeout();
}
@@ -1268,7 +1222,7 @@ bool RTCPReceiver::RtcpRrTimeoutLocked(Timestamp now) {
bool RTCPReceiver::RtcpRrSequenceNumberTimeoutLocked(Timestamp now) {
bool result = ResetTimestampIfExpired(now, last_increased_sequence_number_,
- report_interval_);
+ report_interval_);
if (result && rtcp_event_observer_) {
rtcp_event_observer_->OnRtcpTimeout();
}
diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtcp_receiver.h b/third_party/libwebrtc/modules/rtp_rtcp/source/rtcp_receiver.h
@@ -32,7 +32,6 @@
#include "modules/rtp_rtcp/source/rtcp_packet/dlrr.h"
#include "modules/rtp_rtcp/source/rtcp_packet/tmmb_item.h"
#include "modules/rtp_rtcp/source/rtp_rtcp_interface.h"
-#include "rtc_base/checks.h"
#include "rtc_base/containers/flat_map.h"
#include "rtc_base/synchronization/mutex.h"
#include "rtc_base/system/no_unique_address.h"
@@ -40,7 +39,6 @@
namespace webrtc {
-class ModuleRtpRtcpImpl2;
class VideoBitrateAllocationObserver;
namespace rtcp {
@@ -99,10 +97,6 @@ class RTCPReceiver final {
const RtpRtcpInterface::Configuration& config,
ModuleRtpRtcp* owner);
- RTCPReceiver(const Environment& env,
- const RtpRtcpInterface::Configuration& config,
- ModuleRtpRtcpImpl2* owner);
-
~RTCPReceiver();
void IncomingPacket(ArrayView<const uint8_t> packet);
@@ -166,37 +160,13 @@ class RTCPReceiver final {
void NotifyTmmbrUpdated();
private:
-#if RTC_DCHECK_IS_ON
- class CustomSequenceChecker : public SequenceChecker {
- public:
- explicit CustomSequenceChecker(bool disable_checks)
- : disable_checks_(disable_checks) {}
- bool IsCurrent() const {
- if (disable_checks_)
- return true;
- return SequenceChecker::IsCurrent();
- }
-
- private:
- const bool disable_checks_;
- };
-#else
- class CustomSequenceChecker : public SequenceChecker {
- public:
- explicit CustomSequenceChecker(bool) {}
- };
-#endif
-
// A lightweight inlined set of local SSRCs.
class RegisteredSsrcs {
public:
static constexpr size_t kMediaSsrcIndex = 0;
// Initializes the set of registered local SSRCS by extracting them from the
- // provided `config`. The `disable_sequence_checker` flag is a workaround
- // to be able to use a sequence checker without breaking downstream
- // code that currently doesn't follow the same threading rules as webrtc.
- RegisteredSsrcs(bool disable_sequence_checker,
- const RtpRtcpInterface::Configuration& config);
+ // provided `config`.
+ explicit RegisteredSsrcs(const RtpRtcpInterface::Configuration& config);
// Indicates if `ssrc` is in the set of registered local SSRCs.
bool contains(uint32_t ssrc) const;
@@ -204,7 +174,7 @@ class RTCPReceiver final {
void set_media_ssrc(uint32_t ssrc);
private:
- RTC_NO_UNIQUE_ADDRESS CustomSequenceChecker packet_sequence_checker_;
+ RTC_NO_UNIQUE_ADDRESS SequenceChecker packet_sequence_checker_;
absl::InlinedVector<uint32_t, kMaxSimulcastStreams> ssrcs_
RTC_GUARDED_BY(packet_sequence_checker_);
};
diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_rtcp_interface.h b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_rtcp_interface.h
@@ -76,11 +76,6 @@ class RtpRtcpInterface : public RtcpFeedbackSenderInterface {
NetworkStateEstimateObserver* network_state_estimate_observer = nullptr;
- // DEPRECATED, transport_feedback_callback is no longer invoked by the RTP
- // module except from DEPRECATED_RtpSenderEgress.
- // TODO: bugs.webrtc.org/15368 - Delete once DEPRECATED_RtpSenderEgress is
- // deleted.
- TransportFeedbackObserver* transport_feedback_callback = nullptr;
VideoBitrateAllocationObserver* bitrate_allocation_observer = nullptr;
RtcpRttStats* rtt_stats = nullptr;
RtcpPacketTypeCounterObserver* rtcp_packet_type_counter_observer = nullptr;
diff --git a/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_egress.cc b/third_party/libwebrtc/modules/rtp_rtcp/source/rtp_sender_egress.cc
@@ -132,9 +132,6 @@ RtpSenderEgress::RtpSenderEgress(const Environment& env,
use_ntp_time_for_absolute_send_time_(!env_.field_trials().IsDisabled(
"WebRTC-UseNtpTimeAbsoluteSendTime")) {
RTC_DCHECK(worker_queue_);
- RTC_DCHECK(config.transport_feedback_callback == nullptr)
- << "transport_feedback_callback is no longer used and will soon be "
- "deleted.";
if (bitrate_callback_) {
update_task_ = RepeatingTaskHandle::DelayedStart(worker_queue_,
kUpdateInterval, [this]() {
diff --git a/third_party/libwebrtc/moz-patch-stack/s0003.patch b/third_party/libwebrtc/moz-patch-stack/s0003.patch
@@ -28,10 +28,10 @@ index b1a99c5519..c2f27ec5f3 100644
// single 'timing frame'.
std::optional<webrtc::TimingFrameInfo> timing_frame_info;
diff --git a/modules/rtp_rtcp/source/rtcp_receiver.cc b/modules/rtp_rtcp/source/rtcp_receiver.cc
-index d58823b4de..752bae3998 100644
+index 2bc9014a33..586c8730ad 100644
--- a/modules/rtp_rtcp/source/rtcp_receiver.cc
+++ b/modules/rtp_rtcp/source/rtcp_receiver.cc
-@@ -384,6 +384,13 @@ RTCPReceiver::ConsumeReceivedXrReferenceTimeInfo() {
+@@ -338,6 +338,13 @@ RTCPReceiver::ConsumeReceivedXrReferenceTimeInfo() {
return last_xr_rtis;
}
@@ -46,10 +46,10 @@ index d58823b4de..752bae3998 100644
std::vector<ReportBlockData> result;
MutexLock lock(&rtcp_receiver_lock_);
diff --git a/modules/rtp_rtcp/source/rtcp_receiver.h b/modules/rtp_rtcp/source/rtcp_receiver.h
-index 1dab65f7f6..c5a17b7763 100644
+index 555269ae24..c5e84e0368 100644
--- a/modules/rtp_rtcp/source/rtcp_receiver.h
+++ b/modules/rtp_rtcp/source/rtcp_receiver.h
-@@ -123,6 +123,10 @@ class RTCPReceiver final {
+@@ -117,6 +117,10 @@ class RTCPReceiver final {
std::vector<rtcp::ReceiveTimeInfo> ConsumeReceivedXrReferenceTimeInfo();
@@ -91,10 +91,10 @@ index d603c454f5..d36280b29f 100644
// interest to statistics. Used to implement RTCRemoteInboundRtpStreamStats.
// Within this list, the `ReportBlockData::source_ssrc()`, which is the SSRC
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_interface.h b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
-index ee577ea0eb..81f3f04c1b 100644
+index 5d5b44274e..5583c15e37 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_interface.h
+++ b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
-@@ -403,6 +403,10 @@ class RtpRtcpInterface : public RtcpFeedbackSenderInterface {
+@@ -398,6 +398,10 @@ class RtpRtcpInterface : public RtcpFeedbackSenderInterface {
StreamDataCounters* rtp_counters,
StreamDataCounters* rtx_counters) const = 0;
diff --git a/third_party/libwebrtc/moz-patch-stack/s0004.patch b/third_party/libwebrtc/moz-patch-stack/s0004.patch
@@ -31,10 +31,10 @@ index c2f27ec5f3..ae9951e6f9 100644
// Timing frame info: all important timestamps for a full lifetime of a
// single 'timing frame'.
diff --git a/modules/rtp_rtcp/source/rtcp_receiver.cc b/modules/rtp_rtcp/source/rtcp_receiver.cc
-index 752bae3998..82934e18d7 100644
+index 586c8730ad..318e7b0648 100644
--- a/modules/rtp_rtcp/source/rtcp_receiver.cc
+++ b/modules/rtp_rtcp/source/rtcp_receiver.cc
-@@ -385,10 +385,12 @@ RTCPReceiver::ConsumeReceivedXrReferenceTimeInfo() {
+@@ -339,10 +339,12 @@ RTCPReceiver::ConsumeReceivedXrReferenceTimeInfo() {
}
void RTCPReceiver::RemoteRTCPSenderInfo(uint32_t* packet_count,
@@ -49,10 +49,10 @@ index 752bae3998..82934e18d7 100644
std::vector<ReportBlockData> RTCPReceiver::GetLatestReportBlockData() const {
diff --git a/modules/rtp_rtcp/source/rtcp_receiver.h b/modules/rtp_rtcp/source/rtcp_receiver.h
-index c5a17b7763..8fc8ea4bf6 100644
+index c5e84e0368..3b0ca48f5b 100644
--- a/modules/rtp_rtcp/source/rtcp_receiver.h
+++ b/modules/rtp_rtcp/source/rtcp_receiver.h
-@@ -125,7 +125,8 @@ class RTCPReceiver final {
+@@ -119,7 +119,8 @@ class RTCPReceiver final {
// Get received sender packet and octet counts
void RemoteRTCPSenderInfo(uint32_t* packet_count,
@@ -94,10 +94,10 @@ index d36280b29f..fa9d16c48e 100644
// A snapshot of the most recent Report Block with additional data of
// interest to statistics. Used to implement RTCRemoteInboundRtpStreamStats.
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_interface.h b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
-index 81f3f04c1b..40836198de 100644
+index 5583c15e37..7a178ea664 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_interface.h
+++ b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
-@@ -404,9 +404,10 @@ class RtpRtcpInterface : public RtcpFeedbackSenderInterface {
+@@ -399,9 +399,10 @@ class RtpRtcpInterface : public RtcpFeedbackSenderInterface {
StreamDataCounters* rtx_counters) const = 0;
diff --git a/third_party/libwebrtc/moz-patch-stack/s0035.patch b/third_party/libwebrtc/moz-patch-stack/s0035.patch
@@ -13,11 +13,11 @@ Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/d0b311007c033e838
call/video_receive_stream.cc | 2 ++
call/video_receive_stream.h | 3 +++
modules/rtp_rtcp/include/rtp_rtcp_defines.h | 8 ++++++++
- modules/rtp_rtcp/source/rtcp_receiver.cc | 18 ++++++++++++++++--
+ modules/rtp_rtcp/source/rtcp_receiver.cc | 20 +++++++++++++++++---
modules/rtp_rtcp/source/rtcp_receiver.h | 1 +
modules/rtp_rtcp/source/rtp_rtcp_interface.h | 3 +++
video/rtp_video_stream_receiver2.cc | 7 +++++--
- 11 files changed, 55 insertions(+), 10 deletions(-)
+ 11 files changed, 56 insertions(+), 11 deletions(-)
diff --git a/audio/audio_receive_stream.cc b/audio/audio_receive_stream.cc
index 3a4ae1702a..84ea0c996b 100644
@@ -187,26 +187,18 @@ index cb4decc834..664600fd76 100644
static constexpr size_t kNumMediaTypes = 5;
enum class RtpPacketMediaType : size_t {
diff --git a/modules/rtp_rtcp/source/rtcp_receiver.cc b/modules/rtp_rtcp/source/rtcp_receiver.cc
-index 82934e18d7..db6130971c 100644
+index 318e7b0648..0f64466d55 100644
--- a/modules/rtp_rtcp/source/rtcp_receiver.cc
+++ b/modules/rtp_rtcp/source/rtcp_receiver.cc
-@@ -165,6 +165,7 @@ RTCPReceiver::RTCPReceiver(const Environment& env,
+@@ -162,6 +162,7 @@ RTCPReceiver::RTCPReceiver(const Environment& env,
rtp_rtcp_(owner),
- registered_ssrcs_(false, config),
+ registered_ssrcs_(config),
network_link_rtcp_observer_(config.network_link_rtcp_observer),
+ rtcp_event_observer_(config.rtcp_event_observer),
rtcp_intra_frame_observer_(config.intra_frame_callback),
rtcp_loss_notification_observer_(config.rtcp_loss_notification_observer),
network_state_estimate_observer_(config.network_state_estimate_observer),
-@@ -195,6 +196,7 @@ RTCPReceiver::RTCPReceiver(const Environment& env,
- rtp_rtcp_(owner),
- registered_ssrcs_(true, config),
- network_link_rtcp_observer_(config.network_link_rtcp_observer),
-+ rtcp_event_observer_(config.rtcp_event_observer),
- rtcp_intra_frame_observer_(config.intra_frame_callback),
- rtcp_loss_notification_observer_(config.rtcp_loss_notification_observer),
- network_state_estimate_observer_(config.network_state_estimate_observer),
-@@ -808,6 +810,10 @@ bool RTCPReceiver::HandleBye(const CommonHeader& rtcp_block) {
+@@ -762,6 +763,10 @@ bool RTCPReceiver::HandleBye(const CommonHeader& rtcp_block) {
return false;
}
@@ -217,12 +209,13 @@ index 82934e18d7..db6130971c 100644
// Clear our lists.
rtts_.erase(bye.sender_ssrc());
EraseIf(received_report_blocks_, [&](const auto& elem) {
-@@ -1251,12 +1257,20 @@ std::vector<rtcp::TmmbItem> RTCPReceiver::TmmbrReceived() {
+@@ -1205,12 +1210,21 @@ std::vector<rtcp::TmmbItem> RTCPReceiver::TmmbrReceived() {
}
bool RTCPReceiver::RtcpRrTimeoutLocked(Timestamp now) {
- return ResetTimestampIfExpired(now, last_received_rb_, report_interval_);
-+ bool result = ResetTimestampIfExpired(now, last_received_rb_, report_interval_);
++ bool result =
++ ResetTimestampIfExpired(now, last_received_rb_, report_interval_);
+ if (result && rtcp_event_observer_) {
+ rtcp_event_observer_->OnRtcpTimeout();
+ }
@@ -231,8 +224,9 @@ index 82934e18d7..db6130971c 100644
bool RTCPReceiver::RtcpRrSequenceNumberTimeoutLocked(Timestamp now) {
- return ResetTimestampIfExpired(now, last_increased_sequence_number_,
+- report_interval_);
+ bool result = ResetTimestampIfExpired(now, last_increased_sequence_number_,
- report_interval_);
++ report_interval_);
+ if (result && rtcp_event_observer_) {
+ rtcp_event_observer_->OnRtcpTimeout();
+ }
@@ -241,10 +235,10 @@ index 82934e18d7..db6130971c 100644
} // namespace webrtc
diff --git a/modules/rtp_rtcp/source/rtcp_receiver.h b/modules/rtp_rtcp/source/rtcp_receiver.h
-index 8fc8ea4bf6..9b9ddb4987 100644
+index 3b0ca48f5b..bb8c521514 100644
--- a/modules/rtp_rtcp/source/rtcp_receiver.h
+++ b/modules/rtp_rtcp/source/rtcp_receiver.h
-@@ -371,6 +371,7 @@ class RTCPReceiver final {
+@@ -341,6 +341,7 @@ class RTCPReceiver final {
RegisteredSsrcs registered_ssrcs_;
NetworkLinkRtcpObserver* const network_link_rtcp_observer_;
@@ -253,7 +247,7 @@ index 8fc8ea4bf6..9b9ddb4987 100644
RtcpLossNotificationObserver* const rtcp_loss_notification_observer_;
NetworkStateEstimateObserver* const network_state_estimate_observer_;
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_interface.h b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
-index 40836198de..d2304e87db 100644
+index 7a178ea664..41c3d608ad 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_interface.h
+++ b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
@@ -71,6 +71,9 @@ class RtpRtcpInterface : public RtcpFeedbackSenderInterface {
@@ -265,7 +259,7 @@ index 40836198de..d2304e87db 100644
+
NetworkStateEstimateObserver* network_state_estimate_observer = nullptr;
- // DEPRECATED, transport_feedback_callback is no longer invoked by the RTP
+ VideoBitrateAllocationObserver* bitrate_allocation_observer = nullptr;
diff --git a/video/rtp_video_stream_receiver2.cc b/video/rtp_video_stream_receiver2.cc
index ea6325087d..30a0d37d5a 100644
--- a/video/rtp_video_stream_receiver2.cc
diff --git a/third_party/libwebrtc/moz-patch-stack/s0042.patch b/third_party/libwebrtc/moz-patch-stack/s0042.patch
@@ -35,10 +35,10 @@ index 5800598b75..17c56bb2b1 100644
// Timing frame info: all important timestamps for a full lifetime of a
// single 'timing frame'.
diff --git a/modules/rtp_rtcp/source/rtcp_receiver.cc b/modules/rtp_rtcp/source/rtcp_receiver.cc
-index db6130971c..2ce0590671 100644
+index 0f64466d55..bb7f52be9d 100644
--- a/modules/rtp_rtcp/source/rtcp_receiver.cc
+++ b/modules/rtp_rtcp/source/rtcp_receiver.cc
-@@ -388,11 +388,13 @@ RTCPReceiver::ConsumeReceivedXrReferenceTimeInfo() {
+@@ -341,11 +341,13 @@ RTCPReceiver::ConsumeReceivedXrReferenceTimeInfo() {
void RTCPReceiver::RemoteRTCPSenderInfo(uint32_t* packet_count,
uint32_t* octet_count,
@@ -55,10 +55,10 @@ index db6130971c..2ce0590671 100644
std::vector<ReportBlockData> RTCPReceiver::GetLatestReportBlockData() const {
diff --git a/modules/rtp_rtcp/source/rtcp_receiver.h b/modules/rtp_rtcp/source/rtcp_receiver.h
-index 9b9ddb4987..05f7024d62 100644
+index bb8c521514..ec3f6e39d7 100644
--- a/modules/rtp_rtcp/source/rtcp_receiver.h
+++ b/modules/rtp_rtcp/source/rtcp_receiver.h
-@@ -126,7 +126,8 @@ class RTCPReceiver final {
+@@ -120,7 +120,8 @@ class RTCPReceiver final {
// Get received sender packet and octet counts
void RemoteRTCPSenderInfo(uint32_t* packet_count,
uint32_t* octet_count,
@@ -104,10 +104,10 @@ index fa9d16c48e..ec277a3a5d 100644
// A snapshot of the most recent Report Block with additional data of
// interest to statistics. Used to implement RTCRemoteInboundRtpStreamStats.
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_interface.h b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
-index d2304e87db..bbdb38864e 100644
+index 41c3d608ad..5c6a9fcb85 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_interface.h
+++ b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
-@@ -407,10 +407,11 @@ class RtpRtcpInterface : public RtcpFeedbackSenderInterface {
+@@ -402,10 +402,11 @@ class RtpRtcpInterface : public RtcpFeedbackSenderInterface {
StreamDataCounters* rtx_counters) const = 0;
diff --git a/third_party/libwebrtc/moz-patch-stack/s0066.patch b/third_party/libwebrtc/moz-patch-stack/s0066.patch
@@ -9,10 +9,10 @@ Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/154c9cdb386d0f50c
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/modules/rtp_rtcp/source/rtcp_receiver.cc b/modules/rtp_rtcp/source/rtcp_receiver.cc
-index 2ce0590671..9061eec513 100644
+index bb7f52be9d..c78494af8a 100644
--- a/modules/rtp_rtcp/source/rtcp_receiver.cc
+++ b/modules/rtp_rtcp/source/rtcp_receiver.cc
-@@ -391,10 +391,10 @@ void RTCPReceiver::RemoteRTCPSenderInfo(uint32_t* packet_count,
+@@ -344,10 +344,10 @@ void RTCPReceiver::RemoteRTCPSenderInfo(uint32_t* packet_count,
int64_t* ntp_timestamp_ms,
int64_t* remote_ntp_timestamp_ms) const {
MutexLock lock(&rtcp_receiver_lock_);
diff --git a/third_party/libwebrtc/moz-patch-stack/s0082.patch b/third_party/libwebrtc/moz-patch-stack/s0082.patch
@@ -80,10 +80,10 @@ index 4184f22e1b..0e8163ccf7 100644
TEST_F(RtcpSenderTest, SendFir) {
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_interface.h b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
-index bbdb38864e..be120a82da 100644
+index 5c6a9fcb85..13e7765cea 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_interface.h
+++ b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
-@@ -278,7 +278,7 @@ class RtpRtcpInterface : public RtcpFeedbackSenderInterface {
+@@ -273,7 +273,7 @@ class RtpRtcpInterface : public RtcpFeedbackSenderInterface {
// Returns the FlexFEC SSRC, if there is one.
virtual std::optional<uint32_t> FlexfecSsrc() const = 0;
diff --git a/third_party/libwebrtc/moz-patch-stack/s0106.patch b/third_party/libwebrtc/moz-patch-stack/s0106.patch
@@ -9,10 +9,10 @@ Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/6918cf2d9126fa3e3
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/modules/rtp_rtcp/source/rtcp_receiver.cc b/modules/rtp_rtcp/source/rtcp_receiver.cc
-index 9061eec513..cb3111127a 100644
+index c78494af8a..862bc3f5dc 100644
--- a/modules/rtp_rtcp/source/rtcp_receiver.cc
+++ b/modules/rtp_rtcp/source/rtcp_receiver.cc
-@@ -393,8 +393,8 @@ void RTCPReceiver::RemoteRTCPSenderInfo(uint32_t* packet_count,
+@@ -346,8 +346,8 @@ void RTCPReceiver::RemoteRTCPSenderInfo(uint32_t* packet_count,
MutexLock lock(&rtcp_receiver_lock_);
*packet_count = remote_sender_.packets_sent;
*octet_count = remote_sender_.bytes_sent;