From 56dcd0b025c10b4ac3b1d606aeed84ec170fda20 Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Mon, 4 Mar 2024 13:11:57 +0530 Subject: [PATCH] Process matching sender report only. (#2540) --- pkg/rtc/mediatrack.go | 5 +++-- pkg/rtc/transport.go | 3 +-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/rtc/mediatrack.go b/pkg/rtc/mediatrack.go index 870c8c15c..c28c563c3 100644 --- a/pkg/rtc/mediatrack.go +++ b/pkg/rtc/mediatrack.go @@ -206,9 +206,10 @@ func (t *MediaTrack) AddReceiver(receiver *webrtc.RTPReceiver, track *webrtc.Tra for _, pkt := range pkts { switch pkt := pkt.(type) { case *rtcp.SourceDescription: - // do nothing for now case *rtcp.SenderReport: - buff.SetSenderReportData(pkt.RTPTime, pkt.NTPTime) + if pkt.SSRC == uint32(track.SSRC()) { + buff.SetSenderReportData(pkt.RTPTime, pkt.NTPTime) + } case *rtcp.ExtendedReport: rttFromXR: for _, report := range pkt.Reports { diff --git a/pkg/rtc/transport.go b/pkg/rtc/transport.go index 77b8de20b..09e124bae 100644 --- a/pkg/rtc/transport.go +++ b/pkg/rtc/transport.go @@ -326,8 +326,7 @@ func newPeerConnection(params TransportParams, onBandwidthEstimator func(estimat } else { // sfu only use interceptor to send XR but don't read response from it (use buffer instead), // so use a empty callback here - ir.Add(lkinterceptor.NewRTTFromXRFactory(func(rtt uint32) { - })) + ir.Add(lkinterceptor.NewRTTFromXRFactory(func(rtt uint32) {})) } if len(params.SimTracks) > 0 { f, err := NewUnhandleSimulcastInterceptorFactory(UnhandleSimulcastTracks(params.SimTracks))