diff --git a/pkg/sfu/rtpstats/rtpstats_base.go b/pkg/sfu/rtpstats/rtpstats_base.go index 7aa28adfd..bbf9aa262 100644 --- a/pkg/sfu/rtpstats/rtpstats_base.go +++ b/pkg/sfu/rtpstats/rtpstats_base.go @@ -240,10 +240,6 @@ func newRTPStatsBase(params RTPStatsParams) *rtpStatsBase { } func (r *rtpStatsBase) seed(from *rtpStatsBase) bool { - if from == nil || !from.initialized { - return false - } - if !r.rtpStatsBaseLite.seed(from.rtpStatsBaseLite) { return false } diff --git a/pkg/sfu/rtpstats/rtpstats_base_lite.go b/pkg/sfu/rtpstats/rtpstats_base_lite.go index 7bc179595..c54b3665d 100644 --- a/pkg/sfu/rtpstats/rtpstats_base_lite.go +++ b/pkg/sfu/rtpstats/rtpstats_base_lite.go @@ -141,7 +141,7 @@ func newRTPStatsBaseLite(params RTPStatsParams) *rtpStatsBaseLite { } func (r *rtpStatsBaseLite) seed(from *rtpStatsBaseLite) bool { - if from == nil || !from.initialized { + if from == nil || !from.initialized || r.initialized { return false } diff --git a/pkg/sfu/rtpstats/rtpstats_sender.go b/pkg/sfu/rtpstats/rtpstats_sender.go index 6db8ea410..648e80049 100644 --- a/pkg/sfu/rtpstats/rtpstats_sender.go +++ b/pkg/sfu/rtpstats/rtpstats_sender.go @@ -100,18 +100,11 @@ func (is *intervalStats) MarshalLogObject(e zapcore.ObjectEncoder) error { type wrappedReceptionReportsLogger struct { *senderSnapshot - useSkipped bool } func (w wrappedReceptionReportsLogger) MarshalLogObject(e zapcore.ObjectEncoder) error { - if w.useSkipped { - for i, rr := range w.senderSnapshot.skippedReceptionReports { - e.AddReflected(fmt.Sprintf("%d", i), rr) - } - } else { - for i, rr := range w.senderSnapshot.processedReceptionReports { - e.AddReflected(fmt.Sprintf("%d", i), rr) - } + for i, rr := range w.senderSnapshot.processedReceptionReports { + e.AddReflected(fmt.Sprintf("%d", i), rr) } return nil @@ -155,7 +148,6 @@ type senderSnapshot struct { extLastRRSN uint64 intervalStats intervalStats processedReceptionReports []rtcp.ReceptionReport - skippedReceptionReports []rtcp.ReceptionReport metadataCacheOverflowCount int } @@ -187,8 +179,7 @@ func (s *senderSnapshot) MarshalLogObject(e zapcore.ObjectEncoder) error { e.AddFloat64("maxJitter", s.maxJitter) e.AddUint64("extLastRRSN", s.extLastRRSN) e.AddObject("intervalStats", &s.intervalStats) - e.AddObject("processedReceptionReports", wrappedReceptionReportsLogger{s, false}) - e.AddObject("skippedReceptionReports", wrappedReceptionReportsLogger{s, true}) + e.AddObject("processedReceptionReports", wrappedReceptionReportsLogger{s}) e.AddInt("metadataCacheOverflowCount", s.metadataCacheOverflowCount) return nil } @@ -584,7 +575,7 @@ func (r *RTPStatsSender) UpdateFromReceiverReport(rr rtcp.ReceptionReport) (rtt "timeSinceLastRR", timeSinceLastRR(), "receivedRR", rr, "extHighestSNFromRR", extHighestSNFromRR, - "extReceivedRRSn", extReceivedRRSN, + "extReceivedRRSN", extReceivedRRSN, "rtpStats", lockedRTPStatsSenderLogEncoder{r}, ) for int64(r.extHighestSN-extReceivedRRSN) > (1 << 16) { @@ -597,7 +588,7 @@ func (r *RTPStatsSender) UpdateFromReceiverReport(rr rtcp.ReceptionReport) (rtt "timeSinceLastRR", timeSinceLastRR(), "receivedRR", rr, "extHighestSNFromRR", extHighestSNFromRR, - "extReceivedRRSn", extReceivedRRSN, + "extReceivedRRSN", extReceivedRRSN, "rtpStats", lockedRTPStatsSenderLogEncoder{r}, ) } @@ -609,6 +600,7 @@ func (r *RTPStatsSender) UpdateFromReceiverReport(rr rtcp.ReceptionReport) (rtt "timeSinceLastRR", timeSinceLastRR(), "receivedRR", rr, "extHighestSNFromRR", extHighestSNFromRR, + "extReceivedRRSN", extReceivedRRSN, "rtpStats", lockedRTPStatsSenderLogEncoder{r}, ) for r.extHighestSN < extReceivedRRSN { @@ -621,6 +613,7 @@ func (r *RTPStatsSender) UpdateFromReceiverReport(rr rtcp.ReceptionReport) (rtt "timeSinceLastRR", timeSinceLastRR(), "receivedRR", rr, "extHighestSNFromRR", extHighestSNFromRR, + "extReceivedRRSN", extReceivedRRSN, "rtpStats", lockedRTPStatsSenderLogEncoder{r}, ) } @@ -631,6 +624,7 @@ func (r *RTPStatsSender) UpdateFromReceiverReport(rr rtcp.ReceptionReport) (rtt "timeSinceLastRR", timeSinceLastRR(), "receivedRR", rr, "extHighestSNFromRR", extHighestSNFromRR, + "extReceivedRRSN", extReceivedRRSN, "rtpStats", lockedRTPStatsSenderLogEncoder{r}, ) return @@ -683,22 +677,6 @@ func (r *RTPStatsSender) UpdateFromReceiverReport(rr rtcp.ReceptionReport) (rtt s.maxJitter = r.jitterFromRR } - if int64(extReceivedRRSN-s.extLastRRSN) < 0 || (extReceivedRRSN-s.extLastRRSN) > (1<<15) { - r.logger.Infow( - "rr interval too big, skipping", - "senderSnapshotID", i+cFirstSnapshotID, - "senderSnapshot", s, - "timeSinceLastRR", timeSinceLastRR(), - "receivedRR", rr, - "extReceivedRRSN", extReceivedRRSN, - "packetsInInterval", extReceivedRRSN-s.extLastRRSN, - "rtpStats", lockedRTPStatsSenderLogEncoder{r}, - ) - s.extLastRRSN = extReceivedRRSN - s.skippedReceptionReports = append(s.skippedReceptionReports, rr) - continue - } - // on every RR, calculate delta since last RR using packet metadata cache is := r.getIntervalStats(s.extLastRRSN+1, extReceivedRRSN+1, r.extHighestSN) eis := &s.intervalStats