Quelle s0004.patch
Sprache: unbekannt
|
|
Spracherkennung für: .patch vermutete Sprache: Unknown {[0] [0] [0]} [Methode: Schwerpunktbildung, einfache Gewichte, sechs Dimensionen]
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 times tamp:
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_impl2.cc | 6 ++++--
modules/rtp_rtcp/source/rtp_rtcp_impl2.h | 3 ++-
modules/rtp_rtcp/source/rtp_rtcp_interface.h | 5 +++--
6 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/call/video_receive_stream.h b/call/video_receive_stream.h
index cd8c9b459e..ce8bcc6b84 100644
--- a/call/video_receive_stream.h
+++ b/call/video_receive_stream.h
@@ -173,6 +173,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 255fed7df9..983cd9ff65 100644
--- a/modules/rtp_rtcp/source/rtcp_receiver.cc
+++ b/modules/rtp_rtcp/source/rtcp_receiver.cc
@@ -339,10 +339,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 4f24d26b24..57ae638042 100644
--- a/modules/rtp_rtcp/source/rtcp_receiver.h
+++ b/modules/rtp_rtcp/source/rtcp_receiver.h
@@ -119,7 +119,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;
std::optional<TimeDelta> AverageRtt() const;
std::optional<TimeDelta> LastRtt() const;
diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc b/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc
index f7cf85e5b6..24f65485be 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc
+++ b/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc
@@ -542,8 +542,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 6c1f673644..7037658ee7 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_impl2.h
+++ b/modules/rtp_rtcp/source/rtp_rtcp_impl2.h
@@ -232,7 +232,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 0d5fcc05f6..c133f44597 100644
--- a/modules/rtp_rtcp/source/rtp_rtcp_interface.h
+++ b/modules/rtp_rtcp/source/rtp_rtcp_interface.h
@@ -399,9 +399,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
[Dauer der Verarbeitung: 0.89 Sekunden]
|
2026-08-25
|