Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  0042.patch   Sprache: unbekannt

 
From: "Byron Campen [:bwc]" <docfaraday@gmail.com>
Date: Fri, 12 Mar 2021 08:55:00 -0600
Subject: Bug 1654112 - libwebrtc modification: Surface video RTCP SR stats
 again. r=ng

libwebrtc has stopped surfacing these, and Chromium does not support
these stats at all.

Differential Revision: https://phabricator.services.mozilla.com/D108674
Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/edac9d01a9ac7594f4b22708a4690753638ca32c
---
 video/rtp_video_stream_receiver2.cc | 10 ++++++++++
 video/rtp_video_stream_receiver2.h  |  6 ++++++
 video/video_receive_stream2.cc      |  8 ++++++++
 3 files changed, 24 insertions(+)

diff --git a/video/rtp_video_stream_receiver2.cc b/video/rtp_video_stream_receiver2.cc
index a7c4ab60d6..de1aa5ab48 100644
--- a/video/rtp_video_stream_receiver2.cc
+++ b/video/rtp_video_stream_receiver2.cc
@@ -1073,6 +1073,16 @@ std::optional<int64_t> RtpVideoStreamReceiver2::LastReceivedKeyframePacketMs()
   return std::nullopt;
 }
 
+// Mozilla modification: VideoReceiveStream2 and friends do not surface RTCP
+// stats at all, and even on the most recent libwebrtc code there does not
+// seem to be any support for these stats right now. So, we hack this in.
+void RtpVideoStreamReceiver2::RemoteRTCPSenderInfo(
+    uint32_t* packet_count, uint32_t* octet_count,
+    int64_t* ntp_timestamp_ms) const {
+  RTC_DCHECK_RUN_ON(&worker_task_checker_);
+  rtp_rtcp_->RemoteRTCPSenderInfo(packet_count, octet_count, ntp_timestamp_ms);
+}
+
 std::optional<RtpRtcpInterface::SenderReportStats>
 RtpVideoStreamReceiver2::GetSenderReportStats() const {
   RTC_DCHECK_RUN_ON(&packet_sequence_checker_);
diff --git a/video/rtp_video_stream_receiver2.h b/video/rtp_video_stream_receiver2.h
index e996bb2cd7..8da628695d 100644
--- a/video/rtp_video_stream_receiver2.h
+++ b/video/rtp_video_stream_receiver2.h
@@ -213,6 +213,12 @@ class RtpVideoStreamReceiver2 : public LossNotificationSender,
   std::optional<RtpRtcpInterface::SenderReportStats> GetSenderReportStats()
       const;
 
+  // Mozilla modification: VideoReceiveStream2 and friends do not surface RTCP
+  // stats at all, and even on the most recent libwebrtc code there does not
+  // seem to be any support for these stats right now. So, we hack this in.
+  void RemoteRTCPSenderInfo(uint32_t* packet_count, uint32_t* octet_count,
+                            int64_t* ntp_timestamp_ms) const;
+
  private:
   // Implements RtpVideoFrameReceiver.
   void ManageFrame(std::unique_ptr<RtpFrameObject> frame) override;
diff --git a/video/video_receive_stream2.cc b/video/video_receive_stream2.cc
index 1a63c4cb51..9b9dc814e5 100644
--- a/video/video_receive_stream2.cc
+++ b/video/video_receive_stream2.cc
@@ -581,6 +581,14 @@ VideoReceiveStreamInterface::Stats VideoReceiveStream2::GetStats() const {
     stats.sender_reports_bytes_sent = rtcp_sr_stats->bytes_sent;
     stats.sender_reports_reports_count = rtcp_sr_stats->reports_count;
   }
+
+  // Mozilla modification: VideoReceiveStream2 and friends do not surface RTCP
+  // stats at all, and even on the most recent libwebrtc code there does not
+  // seem to be any support for these stats right now. So, we hack this in.
+  rtp_video_stream_receiver_.RemoteRTCPSenderInfo(
+      &stats.rtcp_sender_packets_sent, &stats.rtcp_sender_octets_sent,
+      &stats.rtcp_sender_ntp_timestamp_ms);
+
   return stats;
 }
 

[ Dauer der Verarbeitung: 0.2 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge