Seed down track state on re-use. (#2985)

With the new early negotiation, onBinding callback could happen later.
Reset reusingTransceiver only if not re-using it.
This commit is contained in:
Raja Subramanian authored and GitHub committed 2024-09-07 10:14:35 +05:30
1 parent 787b8450e9
commit cb235c123c
1 file changed
+2 -1
+2 -1
View File
@@ -187,6 +187,7 @@ func (t *MediaTrackSubscriptions) AddSubscriber(sub types.LocalParticipant, wr *
return
}
if reusingTransceiver.Load() {
sub.GetLogger().Debugw("seeding downtrack state", "trackID", trackID)
downTrack.SeedState(dtState)
}
if err = wr.AddDownTrack(downTrack); err != nil && err != sfu.ErrReceiverClosed {
@@ -265,9 +266,9 @@ func (t *MediaTrackSubscriptions) AddSubscriber(sub types.LocalParticipant, wr *
// will happen and that will notify remote of this stopped
// transceiver
existingTransceiver.Stop()
reusingTransceiver.Store(false)
}
}
reusingTransceiver.Store(false)
// if cannot replace, find an unused transceiver or add new one
if transceiver == nil {