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))