diff --git a/internal/webrtc/track.go b/internal/webrtc/track.go index 6f32282f..b62c4800 100644 --- a/internal/webrtc/track.go +++ b/internal/webrtc/track.go @@ -100,6 +100,11 @@ func (t *Track) SetStream(stream types.StreamSinkManager) error { t.streamMu.Lock() defer t.streamMu.Unlock() + // if we already listen to the stream, do nothing + if t.stream == stream { + return nil + } + var err error if t.stream != nil { err = t.stream.MoveListenerTo(&t.listener, stream)