diff --git a/pkg/rtc/participant.go b/pkg/rtc/participant.go index 2a18c70ae..f6dfd073a 100644 --- a/pkg/rtc/participant.go +++ b/pkg/rtc/participant.go @@ -1677,6 +1677,7 @@ func (p *ParticipantImpl) mediaTrackReceived(track *webrtc.TrackRemote, rtpRecei return nil, false } + ti.MimeType = track.Codec().MimeType mt = p.addMediaTrack(signalCid, track.ID(), ti) newTrack = true } diff --git a/pkg/sfu/connectionquality/connectionstats.go b/pkg/sfu/connectionquality/connectionstats.go index 2040013dd..b1f423faf 100644 --- a/pkg/sfu/connectionquality/connectionstats.go +++ b/pkg/sfu/connectionquality/connectionstats.go @@ -244,7 +244,7 @@ func (cs *ConnectionStats) updateScore(streams map[uint32]*buffer.StreamStatsWit } } - if cs.score < 4.5 { + if cs.score < 4.2 { if !cs.isLowQuality.Swap(true) { // changed from good to low quality, log cs.params.Logger.Infow("low connection quality", "score", cs.score, "params", params) diff --git a/pkg/sfu/streamallocator.go b/pkg/sfu/streamallocator.go index 529b9d5a4..dc9063be6 100644 --- a/pkg/sfu/streamallocator.go +++ b/pkg/sfu/streamallocator.go @@ -976,7 +976,13 @@ func (s *StreamAllocator) maybeSendUpdate(update *StreamStateUpdate) { return } - s.params.Logger.Debugw("streamed tracks changed", "update", update) + // logging individual changes to make it easier for logging systems + for _, streamState := range update.StreamStates { + s.params.Logger.Debugw("streamed tracks changed", + "trackID", streamState.TrackID, + "state", streamState.State, + ) + } if s.onStreamStateChange != nil { err := s.onStreamStateChange(update) if err != nil { @@ -1204,6 +1210,17 @@ const ( StreamStatePaused ) +func (s StreamState) String() string { + switch s { + case StreamStateActive: + return "active" + case StreamStatePaused: + return "paused" + default: + return "unknown" + } +} + type StreamStateInfo struct { ParticipantID livekit.ParticipantID TrackID livekit.TrackID