Do not add empty video layers in stats. (#1685)

This commit is contained in:
Raja Subramanian
2023-05-05 08:59:08 +05:30
committed by GitHub
parent 15078eb9f4
commit 28a8a808f2

View File

@@ -226,7 +226,10 @@ func (cs *ConnectionStats) getStat(at time.Time) {
//
if (len(streams) > 1 || len(stream.Layers) > 1) && cs.isVideo.Load() {
for layer, layerStats := range stream.Layers {
as.VideoLayers = append(as.VideoLayers, toAnalyticsVideoLayer(layer, layerStats))
avl := toAnalyticsVideoLayer(layer, layerStats)
if avl != nil {
as.VideoLayers = append(as.VideoLayers, avl)
}
}
}
@@ -333,10 +336,15 @@ func toAnalyticsStream(ssrc uint32, deltaStats *buffer.RTPDeltaInfo) *livekit.An
}
func toAnalyticsVideoLayer(layer int32, layerStats *buffer.RTPDeltaInfo) *livekit.AnalyticsVideoLayer {
return &livekit.AnalyticsVideoLayer{
avl := &livekit.AnalyticsVideoLayer{
Layer: layer,
Packets: layerStats.Packets + layerStats.PacketsDuplicate + layerStats.PacketsPadding,
Bytes: layerStats.Bytes + layerStats.BytesDuplicate + layerStats.BytesPadding,
Frames: layerStats.Frames,
}
if avl.Packets == 0 || avl.Bytes == 0 || avl.Frames == 0 {
return nil
}
return avl
}