Fix panic by CreateSenderReport before bind completed (#1397)

This commit is contained in:
cnderrauber
2023-02-08 17:02:19 +08:00
committed by boks1971
parent 929d6bc880
commit 8f8779b8fa
2 changed files with 7 additions and 7 deletions
+1 -1
View File
@@ -134,7 +134,7 @@ func (t *MediaTrackSubscriptions) AddSubscriber(sub types.LocalParticipant, wr *
// Bind callback can happen from replaceTrack, so set it up early
var reusingTransceiver atomic.Bool
var dtState sfu.DownTrackState
downTrack.OnBind(func() {
downTrack.OnBinding(func() {
wr.DetermineReceiver(downTrack.Codec())
if reusingTransceiver.Load() {
downTrack.SeedState(dtState)
+6 -6
View File
@@ -158,7 +158,7 @@ type DownTrack struct {
writeStream webrtc.TrackLocalWriter
rtcpReader *buffer.RTCPReader
onCloseHandler func(willBeResumed bool)
onBind func()
onBinding func()
receiverReportListeners []ReceiverReportListener
listenerLock sync.RWMutex
isClosed atomic.Bool
@@ -326,12 +326,12 @@ func (d *DownTrack) Bind(t webrtc.TrackLocalContext) (webrtc.RTPCodecParameters,
d.sequencer = newSequencer(d.maxTrack, maxPadding, d.logger)
}
d.bound.Store(true)
d.codec = codec.RTPCodecCapability
d.forwarder.DetermineCodec(d.codec)
if d.onBind != nil {
d.onBind()
if d.onBinding != nil {
d.onBinding()
}
d.bound.Store(true)
d.bindLock.Unlock()
d.logger.Debugw("downtrack bound")
@@ -827,8 +827,8 @@ func (d *DownTrack) OnCloseHandler(fn func(willBeResumed bool)) {
d.onCloseHandler = fn
}
func (d *DownTrack) OnBind(fn func()) {
d.onBind = fn
func (d *DownTrack) OnBinding(fn func()) {
d.onBinding = fn
}
func (d *DownTrack) OnREMB(fn func(dt *DownTrack, remb *rtcp.ReceiverEstimatedMaximumBitrate)) {