From 2440e66ff166cefc1d60281ae16e471756fdb2f1 Mon Sep 17 00:00:00 2001 From: Milos Pesic Date: Mon, 25 Aug 2025 16:04:16 +0200 Subject: [PATCH] Fixing offset calculation Sender reports shouldn't overwrite the desired offset but update it. Also signal the correct diff in onSR callbacks, --- pkg/synchronizer/track.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/synchronizer/track.go b/pkg/synchronizer/track.go index 3f886543..3b2adc3f 100644 --- a/pkg/synchronizer/track.go +++ b/pkg/synchronizer/track.go @@ -164,14 +164,14 @@ func (t *TrackSynchronizer) onSenderReport(pkt *rtcp.SenderReport) { offset := mediatransportutil.NtpTime(pkt.NTPTime).Time().Sub(t.startTime.Add(pts)) if t.onSR != nil { - t.onSR(offset - t.desiredPTSOffset) + t.onSR(offset) } if !t.acceptable(offset) { return } - t.desiredPTSOffset = offset + t.desiredPTSOffset += offset t.lastSR = pkt.RTPTime }