Bug 1880804 [wpt PR 44645] - Implement constructor in RTCEncodedVideoFrame, a=testonly
[gecko.git] / third_party / libwebrtc / moz-patch-stack / 0069.patch
blob6b36a1a2b7a64ef148d01ff9e3960b38325e85c6
1 From: Andreas Pehrson <apehrson@mozilla.com>
2 Date: Thu, 6 Jan 2022 00:16:00 +0000
3 Subject: Bug 1748478 - Propagate calculated discarded packets to stats. r=bwc
5 Differential Revision: https://phabricator.services.mozilla.com/D135061
6 Mercurial Revision: https://hg.mozilla.org/mozilla-central/rev/56fbf0469e25fa0d589c51ca112ce534a7c0ab91
7 ---
8 video/receive_statistics_proxy.cc | 9 +++++++--
9 video/rtp_video_stream_receiver2.cc | 4 +++-
10 2 files changed, 10 insertions(+), 3 deletions(-)
12 diff --git a/video/receive_statistics_proxy.cc b/video/receive_statistics_proxy.cc
13 index 8ef4d553ad..a0f19999d8 100644
14 --- a/video/receive_statistics_proxy.cc
15 +++ b/video/receive_statistics_proxy.cc
16 @@ -800,8 +800,13 @@ void ReceiveStatisticsProxy::OnDroppedFrames(uint32_t frames_dropped) {
19 void ReceiveStatisticsProxy::OnDiscardedPackets(uint32_t packets_discarded) {
20 - RTC_DCHECK_RUN_ON(&main_thread_);
21 - stats_.packets_discarded += packets_discarded;
22 + // Can be called on either the decode queue or the worker thread
23 + // See FrameBuffer2 for more details.
24 + worker_thread_->PostTask(
25 + SafeTask(task_safety_.flag(), [packets_discarded, this]() {
26 + RTC_DCHECK_RUN_ON(&main_thread_);
27 + stats_.packets_discarded += packets_discarded;
28 + }));
31 void ReceiveStatisticsProxy::OnPreDecode(VideoCodecType codec_type, int qp) {
32 diff --git a/video/rtp_video_stream_receiver2.cc b/video/rtp_video_stream_receiver2.cc
33 index 0954327f1c..12e777c58f 100644
34 --- a/video/rtp_video_stream_receiver2.cc
35 +++ b/video/rtp_video_stream_receiver2.cc
36 @@ -1222,7 +1222,9 @@ void RtpVideoStreamReceiver2::FrameDecoded(int64_t picture_id) {
37 packet_infos_.erase(packet_infos_.begin(),
38 packet_infos_.upper_bound(unwrapped_rtp_seq_num));
39 uint32_t num_packets_cleared = packet_buffer_.ClearTo(seq_num);
40 - vcm_receive_statistics_->OnDiscardedPackets(num_packets_cleared);
41 + if (num_packets_cleared > 0) {
42 + vcm_receive_statistics_->OnDiscardedPackets(num_packets_cleared);
43 + }
44 reference_finder_->ClearTo(seq_num);