From 6500ce262dce4cfc9ca7713e773dd90f5d9cecf3 Mon Sep 17 00:00:00 2001 From: David Zhao Date: Thu, 11 Nov 2021 23:29:54 -0800 Subject: [PATCH] Fix publisher loss reporting (#186) --- pkg/rtc/mediatrack.go | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/pkg/rtc/mediatrack.go b/pkg/rtc/mediatrack.go index eb9d0e91c..1d89bd06f 100644 --- a/pkg/rtc/mediatrack.go +++ b/pkg/rtc/mediatrack.go @@ -506,20 +506,21 @@ func (t *MediaTrack) sendDownTrackBindingReports(sub types.Participant) { func (t *MediaTrack) handlePublisherFeedback(packets []rtcp.Packet) { var maxLost uint8 - var hasSenderReport bool + var hasReport bool for _, p := range packets { switch pkt := p.(type) { - case *rtcp.SenderReport: + // sfu.Buffer generates ReceiverReports for the publisher + case *rtcp.ReceiverReport: for _, rr := range pkt.Reports { if rr.FractionLost > maxLost { maxLost = rr.FractionLost } - hasSenderReport = true + hasReport = true } } } - if hasSenderReport { + if hasReport { t.fracLostLock.Lock() if maxLost > t.maxUpFracLost { t.maxUpFracLost = maxLost