summaryrefslogtreecommitdiffstats
path: root/third_party/libwebrtc/moz-patch-stack/0008.patch
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/libwebrtc/moz-patch-stack/0008.patch')
-rw-r--r--third_party/libwebrtc/moz-patch-stack/0008.patch148
1 files changed, 148 insertions, 0 deletions
diff --git a/third_party/libwebrtc/moz-patch-stack/0008.patch b/third_party/libwebrtc/moz-patch-stack/0008.patch
new file mode 100644
index 0000000000..ba1a816d30
--- /dev/null
+++ b/third_party/libwebrtc/moz-patch-stack/0008.patch
@@ -0,0 +1,148 @@
+From: Nico Grunbaum <na-g@nostrum.com>
+Date: Fri, 5 Jun 2020 11:41:00 +0000
+Subject: Bug 1615191 - P0 - implement remoteTimestamp for
+ RTCRemoteOutboundRtpStreamStats in libwebrtc;r=dminor
+
+Differential Revision: https://phabricator.services.mozilla.com/D78004
+Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/cd901e96d23e004e4bee19b96c8c2f1ca3b42830
+
+This patch also absorbs two additional patches that collapse into using ms for the remote timestamp:
+Bug 1654112 - Plumb RemoteRTCPSenderInfo through also for audio and change unit to ms. r=ng
+Bug 1654112 - Replace custom upstream code for remote received audio stats with cherry-pick. r=ng
+---
+ call/video_receive_stream.h | 1 +
+ modules/rtp_rtcp/source/rtcp_receiver.cc | 4 +++-
+ modules/rtp_rtcp/source/rtcp_receiver.h | 3 ++-
+ modules/rtp_rtcp/source/rtp_rtcp_impl.cc | 6 ++++--
+ modules/rtp_rtcp/source/rtp_rtcp_impl.h | 3 ++-
+ modules/rtp_rtcp/source/rtp_rtcp_impl2.cc | 6 ++++--
+ modules/rtp_rtcp/source/rtp_rtcp_impl2.h | 3 ++-
+ modules/rtp_rtcp/source/rtp_rtcp_interface.h | 5 +++--
+ 8 files changed, 21 insertions(+), 10 deletions(-)
+
+diff --git a/call/video_receive_stream.h b/call/video_receive_stream.h
+index a7e82665c3..3125993d4b 100644
+--- a/call/video_receive_stream.h
++++ b/call/video_receive_stream.h
+@@ -146,6 +146,7 @@ class VideoReceiveStreamInterface : public MediaReceiveStreamInterface {
+
+ uint32_t rtcp_sender_packets_sent;
+ uint32_t rtcp_sender_octets_sent;
++ int64_t rtcp_sender_ntp_timestamp_ms;
+
+ // 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 7dfe4f0b5d..68171d1c2a 100644
+--- a/modules/rtp_rtcp/source/rtcp_receiver.cc
++++ b/modules/rtp_rtcp/source/rtcp_receiver.cc
+@@ -429,10 +429,12 @@ RTCPReceiver::ConsumeReceivedXrReferenceTimeInfo() {
+ }
+
+ void RTCPReceiver::RemoteRTCPSenderInfo(uint32_t* packet_count,
+- uint32_t* octet_count) const {
++ uint32_t* octet_count,
++ int64_t* ntp_timestamp_ms) const {
+ MutexLock lock(&rtcp_receiver_lock_);
+ *packet_count = remote_sender_packet_count_;
+ *octet_count = remote_sender_octet_count_;
++ *ntp_timestamp_ms = remote_sender_ntp_time_.ToMs();
+ }
+
+ 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 f68e57479b..6912912cfc 100644
+--- a/modules/rtp_rtcp/source/rtcp_receiver.h
++++ b/modules/rtp_rtcp/source/rtcp_receiver.h
+@@ -134,7 +134,8 @@ class RTCPReceiver final {
+
+ // Get received sender packet and octet counts
+ void RemoteRTCPSenderInfo(uint32_t* packet_count,
+- uint32_t* octet_count) const;
++ uint32_t* octet_count,
++ int64_t* ntp_timestamp_ms) const;
+
+ // Get rtt.
+ int32_t RTT(uint32_t remote_ssrc,
+diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
+index 54fb82c2a1..bf9e2b3bf9 100644
+--- a/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
++++ b/modules/rtp_rtcp/source/rtp_rtcp_impl.cc
+@@ -528,8 +528,10 @@ void ModuleRtpRtcpImpl::GetSendStreamDataCounters(
+
+ // Received RTCP report.
+ void ModuleRtpRtcpImpl::RemoteRTCPSenderInfo(uint32_t* packet_count,
+- uint32_t* octet_count) const {
+- return rtcp_receiver_.RemoteRTCPSenderInfo(packet_count, octet_count);
++ uint32_t* octet_count,
++ int64_t* ntp_timestamp_ms) const {
++ return rtcp_receiver_.RemoteRTCPSenderInfo(packet_count, octet_count,
++ ntp_timestamp_ms);
+ }
+
+ std::vector<ReportBlockData> ModuleRtpRtcpImpl::GetLatestReportBlockData()
+diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl.h b/modules/rtp_rtcp/source/rtp_rtcp_impl.h
+index dd916fbe40..5cf558717e 100644
+--- a/modules/rtp_rtcp/source/rtp_rtcp_impl.h
++++ b/modules/rtp_rtcp/source/rtp_rtcp_impl.h
+@@ -193,7 +193,8 @@ class ABSL_DEPRECATED("") ModuleRtpRtcpImpl
+ StreamDataCounters* rtx_counters) const override;
+
+ void RemoteRTCPSenderInfo(uint32_t* packet_count,
+- uint32_t* octet_count) const override;
++ uint32_t* octet_count,
++ int64_t* ntp_timestamp_ms) const override;
+
+ // 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_impl2.cc b/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc
+index d0f9c8ed1a..8378a76133 100644
+--- a/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc
++++ b/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc
+@@ -509,8 +509,10 @@ void ModuleRtpRtcpImpl2::GetSendStreamDataCounters(
+
+ // Received RTCP report.
+ void ModuleRtpRtcpImpl2::RemoteRTCPSenderInfo(uint32_t* packet_count,
+- uint32_t* octet_count) const {
+- return rtcp_receiver_.RemoteRTCPSenderInfo(packet_count, octet_count);
++ uint32_t* octet_count,
++ int64_t* ntp_timestamp_ms) const {
++ return rtcp_receiver_.RemoteRTCPSenderInfo(packet_count, octet_count,
++ ntp_timestamp_ms);
+ }
+
+ std::vector<ReportBlockData> ModuleRtpRtcpImpl2::GetLatestReportBlockData()
+diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl2.h b/modules/rtp_rtcp/source/rtp_rtcp_impl2.h
+index 3ef76ab66a..4ef67d4647 100644
+--- a/modules/rtp_rtcp/source/rtp_rtcp_impl2.h
++++ b/modules/rtp_rtcp/source/rtp_rtcp_impl2.h
+@@ -205,7 +205,8 @@ class ModuleRtpRtcpImpl2 final : public RtpRtcpInterface,
+ StreamDataCounters* rtx_counters) const override;
+
+ void RemoteRTCPSenderInfo(uint32_t* packet_count,
+- uint32_t* octet_count) const override;
++ uint32_t* octet_count,
++ int64_t* ntp_timestamp_ms) const override;
+
+ // 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 f23d4d0758..c6854937cb 100644
+--- a/modules/rtp_rtcp/source/rtp_rtcp_interface.h
++++ b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
+@@ -400,9 +400,10 @@ class RtpRtcpInterface : public RtcpFeedbackSenderInterface {
+ StreamDataCounters* rtx_counters) const = 0;
+
+
+- // Returns packet count and octet count from RTCP sender report.
++ // Returns packet count, octet count, and timestamp from RTCP sender report.
+ virtual void RemoteRTCPSenderInfo(uint32_t* packet_count,
+- uint32_t* octet_count) const = 0;
++ uint32_t* octet_count,
++ int64_t* ntp_timestamp_ms) const = 0;
+ // 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
+--
+2.34.1
+