mirror of
https://github.com/livekit/livekit.git
synced 2026-10-23 00:02:53 +00:00
Send mute event only on change (#3537)
This commit is contained in:
1 parent
7f4c4597f1
commit
13417c01c6
2 files changed
+11
-11
No files matched your search
@@ -2357,28 +2357,30 @@ func (p *ParticipantImpl) setTrackMuted(trackID livekit.TrackID, muted bool) *li
|
||||
p.supervisor.SetPublicationMute(trackID, muted)
|
||||
}
|
||||
|
||||
track := p.UpTrackManager.SetPublishedTrackMuted(trackID, muted)
|
||||
track, changed := p.UpTrackManager.SetPublishedTrackMuted(trackID, muted)
|
||||
var trackInfo *livekit.TrackInfo
|
||||
if track != nil {
|
||||
trackInfo = track.ToProto()
|
||||
}
|
||||
|
||||
isPending := false
|
||||
// update mute status in any pending/queued add track requests too
|
||||
p.pendingTracksLock.RLock()
|
||||
for _, pti := range p.pendingTracks {
|
||||
for i, ti := range pti.trackInfos {
|
||||
if livekit.TrackID(ti.Sid) == trackID {
|
||||
ti = utils.CloneProto(ti)
|
||||
changed = changed || ti.Muted != muted
|
||||
ti.Muted = muted
|
||||
pti.trackInfos[i] = ti
|
||||
isPending = true
|
||||
trackInfo = ti
|
||||
if trackInfo == nil {
|
||||
trackInfo = ti
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
p.pendingTracksLock.RUnlock()
|
||||
|
||||
if trackInfo != nil {
|
||||
if trackInfo != nil && changed {
|
||||
if muted {
|
||||
p.params.Telemetry.TrackMuted(context.Background(), p.ID(), trackInfo)
|
||||
} else {
|
||||
@@ -2386,10 +2388,6 @@ func (p *ParticipantImpl) setTrackMuted(trackID livekit.TrackID, muted bool) *li
|
||||
}
|
||||
}
|
||||
|
||||
if !isPending && track == nil {
|
||||
p.pubLogger.Debugw("could not locate track", "trackID", trackID)
|
||||
}
|
||||
|
||||
return trackInfo
|
||||
}
|
||||
|
||||
|
||||
@@ -116,13 +116,15 @@ func (u *UpTrackManager) OnPublishedTrackUpdated(f func(track types.MediaTrack))
|
||||
u.onTrackUpdated = f
|
||||
}
|
||||
|
||||
func (u *UpTrackManager) SetPublishedTrackMuted(trackID livekit.TrackID, muted bool) types.MediaTrack {
|
||||
func (u *UpTrackManager) SetPublishedTrackMuted(trackID livekit.TrackID, muted bool) (types.MediaTrack, bool) {
|
||||
changed := false
|
||||
track := u.GetPublishedTrack(trackID)
|
||||
if track != nil {
|
||||
currentMuted := track.IsMuted()
|
||||
track.SetMuted(muted)
|
||||
|
||||
if currentMuted != track.IsMuted() {
|
||||
changed = true
|
||||
u.params.Logger.Debugw("publisher mute status changed", "trackID", trackID, "muted", track.IsMuted())
|
||||
if u.onTrackUpdated != nil {
|
||||
u.onTrackUpdated(track)
|
||||
@@ -130,7 +132,7 @@ func (u *UpTrackManager) SetPublishedTrackMuted(trackID livekit.TrackID, muted b
|
||||
}
|
||||
}
|
||||
|
||||
return track
|
||||
return track, changed
|
||||
}
|
||||
|
||||
func (u *UpTrackManager) GetPublishedTrack(trackID livekit.TrackID) types.MediaTrack {
|
||||
|
||||
Reference in new issue
Block a user