diff --git a/pkg/rtc/mediatrackreceiver.go b/pkg/rtc/mediatrackreceiver.go index 3c9db5616..d0818ceb1 100644 --- a/pkg/rtc/mediatrackreceiver.go +++ b/pkg/rtc/mediatrackreceiver.go @@ -590,6 +590,7 @@ func (t *MediaTrackReceiver) UpdateCodecCid(codecs []*livekit.SimulcastCodec) { } func (t *MediaTrackReceiver) UpdateTrackInfo(ti *livekit.TrackInfo) { + updateMute := false clonedInfo := proto.Clone(ti).(*livekit.TrackInfo) t.lock.Lock() @@ -622,9 +623,16 @@ func (t *MediaTrackReceiver) UpdateTrackInfo(ti *livekit.TrackInfo) { clonedInfo.Layers = ci.Layers } } + if t.trackInfo.Muted != clonedInfo.Muted { + updateMute = true + } t.trackInfo = clonedInfo t.lock.Unlock() + if updateMute { + t.SetMuted(clonedInfo.Muted) + } + t.updateTrackInfoOfReceivers() }