diff options
Diffstat (limited to 'third_party/libwebrtc/moz-patch-stack/0006.patch')
-rw-r--r-- | third_party/libwebrtc/moz-patch-stack/0006.patch | 139 |
1 files changed, 139 insertions, 0 deletions
diff --git a/third_party/libwebrtc/moz-patch-stack/0006.patch b/third_party/libwebrtc/moz-patch-stack/0006.patch new file mode 100644 index 0000000000..70d4576a93 --- /dev/null +++ b/third_party/libwebrtc/moz-patch-stack/0006.patch @@ -0,0 +1,139 @@ +From: Dan Minor <dminor@mozilla.com> +Date: Wed, 7 Feb 2018 15:00:00 -0500 +Subject: Bug 1376873 - Fix GetRTCPSenderReport; r=ng + +Differential Revision: https://phabricator.services.mozilla.com/D7431 +Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/b55b0368d9f21849fa465fa9b3f028285c9ea6ae +--- + call/video_receive_stream.h | 3 +++ + modules/rtp_rtcp/source/rtcp_receiver.cc | 7 +++++++ + modules/rtp_rtcp/source/rtcp_receiver.h | 4 ++++ + modules/rtp_rtcp/source/rtp_rtcp_impl.cc | 5 +++++ + modules/rtp_rtcp/source/rtp_rtcp_impl.h | 3 +++ + modules/rtp_rtcp/source/rtp_rtcp_impl2.cc | 5 +++++ + modules/rtp_rtcp/source/rtp_rtcp_impl2.h | 3 +++ + modules/rtp_rtcp/source/rtp_rtcp_interface.h | 4 ++++ + 8 files changed, 34 insertions(+) + +diff --git a/call/video_receive_stream.h b/call/video_receive_stream.h +index 542067d30c..500ca1447f 100644 +--- a/call/video_receive_stream.h ++++ b/call/video_receive_stream.h +@@ -151,6 +151,9 @@ class VideoReceiveStreamInterface : public MediaReceiveStreamInterface { + RtcpPacketTypeCounter rtcp_packet_type_counts; + absl::optional<RtpReceiveStats> rtx_rtp_stats; + ++ uint32_t rtcp_sender_packets_sent; ++ uint32_t rtcp_sender_octets_sent; ++ + // Timing frame info: all important timestamps for a full lifetime of a + // single 'timing frame'. + absl::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 ba5b951f4d..61b88c89b8 100644 +--- a/modules/rtp_rtcp/source/rtcp_receiver.cc ++++ b/modules/rtp_rtcp/source/rtcp_receiver.cc +@@ -361,6 +361,13 @@ RTCPReceiver::ConsumeReceivedXrReferenceTimeInfo() { + return last_xr_rtis; + } + ++void RTCPReceiver::RemoteRTCPSenderInfo(uint32_t* packet_count, ++ uint32_t* octet_count) const { ++ MutexLock lock(&rtcp_receiver_lock_); ++ *packet_count = remote_sender_packet_count_; ++ *octet_count = remote_sender_octet_count_; ++} ++ + std::vector<ReportBlockData> RTCPReceiver::GetLatestReportBlockData() const { + 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 a6175d0774..59e0258df5 100644 +--- a/modules/rtp_rtcp/source/rtcp_receiver.h ++++ b/modules/rtp_rtcp/source/rtcp_receiver.h +@@ -117,6 +117,10 @@ class RTCPReceiver final { + + std::vector<rtcp::ReceiveTimeInfo> ConsumeReceivedXrReferenceTimeInfo(); + ++ // Get received sender packet and octet counts ++ void RemoteRTCPSenderInfo(uint32_t* packet_count, ++ uint32_t* octet_count) const; ++ + absl::optional<TimeDelta> AverageRtt() const; + absl::optional<TimeDelta> LastRtt() const; + +diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl.cc b/modules/rtp_rtcp/source/rtp_rtcp_impl.cc +index 20862e3c45..98c37c8d28 100644 +--- a/modules/rtp_rtcp/source/rtp_rtcp_impl.cc ++++ b/modules/rtp_rtcp/source/rtp_rtcp_impl.cc +@@ -499,6 +499,11 @@ 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); ++} ++ + std::vector<ReportBlockData> ModuleRtpRtcpImpl::GetLatestReportBlockData() + const { + return rtcp_receiver_.GetLatestReportBlockData(); +diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl.h b/modules/rtp_rtcp/source/rtp_rtcp_impl.h +index d298081432..dd706e569d 100644 +--- a/modules/rtp_rtcp/source/rtp_rtcp_impl.h ++++ b/modules/rtp_rtcp/source/rtp_rtcp_impl.h +@@ -182,6 +182,9 @@ class ABSL_DEPRECATED("") ModuleRtpRtcpImpl + StreamDataCounters* rtp_counters, + StreamDataCounters* rtx_counters) const override; + ++ void RemoteRTCPSenderInfo(uint32_t* packet_count, ++ uint32_t* octet_count) const override; ++ + // A snapshot of the most recent Report Block with additional data of + // 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_impl2.cc b/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc +index 800ec77d3e..0df8543497 100644 +--- a/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc ++++ b/modules/rtp_rtcp/source/rtp_rtcp_impl2.cc +@@ -503,6 +503,11 @@ 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); ++} ++ + std::vector<ReportBlockData> ModuleRtpRtcpImpl2::GetLatestReportBlockData() + const { + return rtcp_receiver_.GetLatestReportBlockData(); +diff --git a/modules/rtp_rtcp/source/rtp_rtcp_impl2.h b/modules/rtp_rtcp/source/rtp_rtcp_impl2.h +index 36e6deffba..663b28af3e 100644 +--- a/modules/rtp_rtcp/source/rtp_rtcp_impl2.h ++++ b/modules/rtp_rtcp/source/rtp_rtcp_impl2.h +@@ -194,6 +194,9 @@ class ModuleRtpRtcpImpl2 final : public RtpRtcpInterface, + StreamDataCounters* rtp_counters, + StreamDataCounters* rtx_counters) const override; + ++ void RemoteRTCPSenderInfo(uint32_t* packet_count, ++ uint32_t* octet_count) const override; ++ + // A snapshot of the most recent Report Block with additional data of + // 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 924c764ccd..8df810a95e 100644 +--- a/modules/rtp_rtcp/source/rtp_rtcp_interface.h ++++ b/modules/rtp_rtcp/source/rtp_rtcp_interface.h +@@ -387,6 +387,10 @@ class RtpRtcpInterface : public RtcpFeedbackSenderInterface { + StreamDataCounters* rtp_counters, + StreamDataCounters* rtx_counters) const = 0; + ++ ++ // Returns packet count and octet count from RTCP sender report. ++ virtual void RemoteRTCPSenderInfo(uint32_t* packet_count, ++ uint32_t* octet_count) 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 |