Check RTPSender is valid (#1953)

On a quick Bind + Unbind, the go routine to get parameters running late
could encounter a nil sender. Check for it.
This commit is contained in:
Raja Subramanian
2023-08-10 23:02:10 +05:30
committed by GitHub
parent 42a8ab232d
commit ae29d05ec9
+5 -3
View File
@@ -408,9 +408,11 @@ func (d *DownTrack) Bind(t webrtc.TrackLocalContext) (webrtc.RTPCodecParameters,
// Bind is called under RTPSender.mu lock, call the RTPSender.GetParameters in goroutine to avoid deadlock
go func() {
if tr := d.transceiver.Load(); tr != nil {
extensions := tr.Sender().GetParameters().HeaderExtensions
d.params.Logger.Debugw("negotiated downtrack extensions", "extensions", extensions)
d.SetRTPHeaderExtensions(extensions)
if sender := tr.Sender(); sender != nil {
extensions := sender.GetParameters().HeaderExtensions
d.params.Logger.Debugw("negotiated downtrack extensions", "extensions", extensions)
d.SetRTPHeaderExtensions(extensions)
}
}
}()