summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/moz-patch-stack/0033.patch
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-19 00:47:55 +0000
commit26a029d407be480d791972afb5975cf62c9360a6 (patch)
treef435a8308119effd964b339f76abb83a57c29483 /third_party/libwebrtc/moz-patch-stack/0033.patch
parentInitial commit. (diff)
downloadfirefox-26a029d407be480d791972afb5975cf62c9360a6.tar.xz
firefox-26a029d407be480d791972afb5975cf62c9360a6.zip
Adding upstream version 124.0.1.upstream/124.0.1
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'third_party/libwebrtc/moz-patch-stack/0033.patch')
-rw-r--r--third_party/libwebrtc/moz-patch-stack/0033.patch130
1 files changed, 130 insertions, 0 deletions
diff --git a/third_party/libwebrtc/moz-patch-stack/0033.patch b/third_party/libwebrtc/moz-patch-stack/0033.patch
new file mode 100644
index 0000000000..2742e376b0
--- /dev/null
+++ b/third_party/libwebrtc/moz-patch-stack/0033.patch
@@ -0,0 +1,130 @@
+From: Andreas Pehrson <apehrson@mozilla.com>
+Date: Mon, 18 Jan 2021 11:04:00 +0100
+Subject: Bug 1654112 - Include RtcpPacketTypeCounter in audio send stats, to
+ not regress nackCount. r=ng
+
+This is similar to how it's already included for video send.
+
+Differential Revision: https://phabricator.services.mozilla.com/D102273
+Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/d380a43d59f4f7cbc001f4eab9b63ee993b32cd8
+---
+ audio/audio_send_stream.cc | 1 +
+ audio/channel_send.cc | 31 +++++++++++++++++++++++++++++++
+ audio/channel_send.h | 1 +
+ call/audio_send_stream.h | 2 ++
+ 4 files changed, 35 insertions(+)
+
+diff --git a/audio/audio_send_stream.cc b/audio/audio_send_stream.cc
+index 0caf59a20e..bffb910832 100644
+--- a/audio/audio_send_stream.cc
++++ b/audio/audio_send_stream.cc
+@@ -431,6 +431,7 @@ webrtc::AudioSendStream::Stats AudioSendStream::GetStats(
+ stats.target_bitrate_bps = channel_send_->GetTargetBitrate();
+
+ webrtc::CallSendStatistics call_stats = channel_send_->GetRTCPStatistics();
++ stats.rtcp_packet_type_counts = call_stats.rtcp_packet_type_counts;
+ stats.payload_bytes_sent = call_stats.payload_bytes_sent;
+ stats.header_and_padding_bytes_sent =
+ call_stats.header_and_padding_bytes_sent;
+diff --git a/audio/channel_send.cc b/audio/channel_send.cc
+index 81d5c66652..ddc3323df9 100644
+--- a/audio/channel_send.cc
++++ b/audio/channel_send.cc
+@@ -55,6 +55,31 @@ constexpr int64_t kMinRetransmissionWindowMs = 30;
+ class RtpPacketSenderProxy;
+ class TransportSequenceNumberProxy;
+
++class RtcpCounterObserver : public RtcpPacketTypeCounterObserver {
++ public:
++ explicit RtcpCounterObserver(uint32_t ssrc) : ssrc_(ssrc) {}
++
++ void RtcpPacketTypesCounterUpdated(
++ uint32_t ssrc, const RtcpPacketTypeCounter& packet_counter) override {
++ if (ssrc_ != ssrc) {
++ return;
++ }
++
++ MutexLock lock(&mutex_);
++ packet_counter_ = packet_counter;
++ }
++
++ RtcpPacketTypeCounter GetCounts() {
++ MutexLock lock(&mutex_);
++ return packet_counter_;
++ }
++
++ private:
++ Mutex mutex_;
++ const uint32_t ssrc_;
++ RtcpPacketTypeCounter packet_counter_;
++};
++
+ class ChannelSend : public ChannelSendInterface,
+ public AudioPacketizationCallback, // receive encoded
+ // packets from the ACM
+@@ -207,6 +232,8 @@ class ChannelSend : public ChannelSendInterface,
+ bool input_mute_ RTC_GUARDED_BY(volume_settings_mutex_) = false;
+ bool previous_frame_muted_ RTC_GUARDED_BY(encoder_queue_) = false;
+
++ const std::unique_ptr<RtcpCounterObserver> rtcp_counter_observer_;
++
+ PacketRouter* packet_router_ RTC_GUARDED_BY(&worker_thread_checker_) =
+ nullptr;
+ const std::unique_ptr<RtpPacketSenderProxy> rtp_packet_pacer_proxy_;
+@@ -387,6 +414,7 @@ ChannelSend::ChannelSend(
+ const FieldTrialsView& field_trials)
+ : ssrc_(ssrc),
+ event_log_(rtc_event_log),
++ rtcp_counter_observer_(new RtcpCounterObserver(ssrc)),
+ rtp_packet_pacer_proxy_(new RtpPacketSenderProxy()),
+ retransmission_rate_limiter_(
+ new RateLimiter(clock, kMaxRetransmissionWindowMs)),
+@@ -411,6 +439,8 @@ ChannelSend::ChannelSend(
+
+ configuration.event_log = event_log_;
+ configuration.rtt_stats = rtcp_rtt_stats;
++ configuration.rtcp_packet_type_counter_observer =
++ rtcp_counter_observer_.get();
+ if (field_trials.IsDisabled("WebRTC-DisableRtxRateLimiter")) {
+ configuration.retransmission_rate_limiter =
+ retransmission_rate_limiter_.get();
+@@ -673,6 +703,7 @@ CallSendStatistics ChannelSend::GetRTCPStatistics() const {
+ RTC_DCHECK_RUN_ON(&worker_thread_checker_);
+ CallSendStatistics stats = {0};
+ stats.rttMs = GetRTT();
++ stats.rtcp_packet_type_counts = rtcp_counter_observer_->GetCounts();
+
+ StreamDataCounters rtp_stats;
+ StreamDataCounters rtx_stats;
+diff --git a/audio/channel_send.h b/audio/channel_send.h
+index 00d954c952..f0c9232296 100644
+--- a/audio/channel_send.h
++++ b/audio/channel_send.h
+@@ -43,6 +43,7 @@ struct CallSendStatistics {
+ TimeDelta total_packet_send_delay = TimeDelta::Zero();
+ // https://w3c.github.io/webrtc-stats/#dom-rtcoutboundrtpstreamstats-retransmittedpacketssent
+ uint64_t retransmitted_packets_sent;
++ RtcpPacketTypeCounter rtcp_packet_type_counts;
+ // A snapshot of Report Blocks with additional data of interest to statistics.
+ // Within this list, the sender-source SSRC pair is unique and per-pair the
+ // ReportBlockData represents the latest Report Block that was received for
+diff --git a/call/audio_send_stream.h b/call/audio_send_stream.h
+index f9e49db574..5f4f871bf0 100644
+--- a/call/audio_send_stream.h
++++ b/call/audio_send_stream.h
+@@ -31,6 +31,7 @@
+ #include "call/rtp_config.h"
+ #include "modules/audio_processing/include/audio_processing_statistics.h"
+ #include "modules/rtp_rtcp/include/report_block_data.h"
++#include "modules/rtp_rtcp/include/rtcp_statistics.h"
+
+ namespace webrtc {
+
+@@ -65,6 +66,7 @@ class AudioSendStream : public AudioSender {
+
+ ANAStats ana_statistics;
+ AudioProcessingStats apm_statistics;
++ RtcpPacketTypeCounter rtcp_packet_type_counts;
+
+ int64_t target_bitrate_bps = 0;
+ // A snapshot of Report Blocks with additional data of interest to