From d0343808f2b8239745c63eca8aa5e4951743a5a9 Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Mon, 18 Nov 2024 20:01:14 +0530 Subject: [PATCH] Add ResyncDownTracks API that can be used to resync all down tracks on (#3185) * Add ResyncDownTracks API that can be used to resync all down tracks on these receivers. * actually call the function --- pkg/sfu/redprimaryreceiver.go | 6 ++++++ pkg/sfu/redreceiver.go | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/pkg/sfu/redprimaryreceiver.go b/pkg/sfu/redprimaryreceiver.go index c6ded2a0e..db47a7e94 100644 --- a/pkg/sfu/redprimaryreceiver.go +++ b/pkg/sfu/redprimaryreceiver.go @@ -121,6 +121,12 @@ func (r *RedPrimaryReceiver) DeleteDownTrack(subscriberID livekit.ParticipantID) r.logger.Debugw("red primary receiver downtrack deleted", "subscriberID", subscriberID) } +func (r *RedPrimaryReceiver) ResyncDownTracks() { + r.downTrackSpreader.Broadcast(func(dt TrackSender) { + dt.Resync() + }) +} + func (r *RedPrimaryReceiver) IsClosed() bool { return r.closed.Load() } diff --git a/pkg/sfu/redreceiver.go b/pkg/sfu/redreceiver.go index 81121fb2e..e4afaa5ca 100644 --- a/pkg/sfu/redreceiver.go +++ b/pkg/sfu/redreceiver.go @@ -112,6 +112,12 @@ func (r *RedReceiver) DeleteDownTrack(subscriberID livekit.ParticipantID) { r.logger.Debugw("red receiver downtrack deleted", "subscriberID", subscriberID) } +func (r *RedReceiver) ResyncDownTracks() { + r.downTrackSpreader.Broadcast(func(dt TrackSender) { + dt.Resync() + }) +} + func (r *RedReceiver) CanClose() bool { return r.closed.Load() || r.downTrackSpreader.DownTrackCount() == 0 }