From 557fe7c9d3e722fe58eaacfe7d1f9e7ea4fb5d11 Mon Sep 17 00:00:00 2001 From: David Zhao Date: Thu, 13 Jul 2023 16:33:04 -0700 Subject: [PATCH] Mark room as dirty after track published changes (#1878) Ensure that we are recomputing NumPublished when needed --- pkg/rtc/room.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/rtc/room.go b/pkg/rtc/room.go index dcd5a6b1c..a90b90676 100644 --- a/pkg/rtc/room.go +++ b/pkg/rtc/room.go @@ -828,6 +828,7 @@ func (r *Room) createJoinResponseLocked(participant types.LocalParticipant, iceS func (r *Room) onTrackPublished(participant types.LocalParticipant, track types.MediaTrack) { // publish participant update, since track state is changed r.broadcastParticipantState(participant, broadcastOptions{skipSource: true}) + r.protoProxy.MarkDirty(false) r.lock.RLock() // subscribe all existing participants to this MediaTrack @@ -887,6 +888,7 @@ func (r *Room) onTrackUpdated(p types.LocalParticipant, _ types.MediaTrack) { func (r *Room) onTrackUnpublished(p types.LocalParticipant, track types.MediaTrack) { r.trackManager.RemoveTrack(track) + r.protoProxy.MarkDirty(false) if !p.IsClosed() { r.broadcastParticipantState(p, broadcastOptions{skipSource: true}) }