diff --git a/pkg/service/wire_gen.go b/pkg/service/wire_gen.go index f1df2a8d9..1ef7867c1 100644 --- a/pkg/service/wire_gen.go +++ b/pkg/service/wire_gen.go @@ -89,23 +89,23 @@ func InitializeServer(conf *config.Config, currentNode routing.LocalNode) (*Live } rtcEgressLauncher := NewEgressLauncher(egressClient, ioInfoService) topicFormatter := rpc.NewTopicFormatter() - v, err := rpc.NewTypedRoomClient(clientParams) + roomClient, err := rpc.NewTypedRoomClient(clientParams) if err != nil { return nil, err } - v2, err := rpc.NewTypedParticipantClient(clientParams) + participantClient, err := rpc.NewTypedParticipantClient(clientParams) if err != nil { return nil, err } - roomService, err := NewRoomService(limitConfig, apiConfig, router, roomAllocator, objectStore, rtcEgressLauncher, topicFormatter, v, v2) + roomService, err := NewRoomService(limitConfig, apiConfig, router, roomAllocator, objectStore, rtcEgressLauncher, topicFormatter, roomClient, participantClient) if err != nil { return nil, err } - v3, err := rpc.NewTypedAgentDispatchInternalClient(clientParams) + agentDispatchInternalClient, err := rpc.NewTypedAgentDispatchInternalClient(clientParams) if err != nil { return nil, err } - agentDispatchService := NewAgentDispatchService(v3, topicFormatter, roomAllocator, router) + agentDispatchService := NewAgentDispatchService(agentDispatchInternalClient, topicFormatter, roomAllocator, router) egressService := NewEgressService(egressClient, rtcEgressLauncher, objectStore, ioInfoService, roomService) ingressConfig := getIngressConfig(conf) ingressClient, err := rpc.NewIngressClient(clientParams) diff --git a/pkg/sfu/connectionquality/connectionstats.go b/pkg/sfu/connectionquality/connectionstats.go index ea6ff8bcc..8015abe1d 100644 --- a/pkg/sfu/connectionquality/connectionstats.go +++ b/pkg/sfu/connectionquality/connectionstats.go @@ -330,6 +330,9 @@ func (cs *ConnectionStats) getStat() { analyticsStreams := make([]*livekit.AnalyticsStream, 0, len(streams)) for ssrc, stream := range streams { as := toAnalyticsStream(ssrc, stream.RTPStats, stream.RTPStatsRemoteView) + if as == nil { + continue + } // // add video layer if either @@ -348,11 +351,13 @@ func (cs *ConnectionStats) getStat() { analyticsStreams = append(analyticsStreams, as) } - cs.onStatsUpdate(cs, &livekit.AnalyticsStat{ - Score: score, - Streams: analyticsStreams, - Mime: cs.codecMimeType.Load().(mime.MimeType).String(), - }) + if len(analyticsStreams) != 0 { + cs.onStatsUpdate(cs, &livekit.AnalyticsStat{ + Score: score, + Streams: analyticsStreams, + Mime: cs.codecMimeType.Load().(mime.MimeType).String(), + }) + } } } @@ -440,6 +445,10 @@ func toAnalyticsStream( deltaStats *rtpstats.RTPDeltaInfo, deltaStatsRemoteView *rtpstats.RTPDeltaInfo, ) *livekit.AnalyticsStream { + if deltaStats == nil { + return nil + } + // discount the feed side loss when reporting forwarded track stats, packetsLost := deltaStats.PacketsLost if deltaStatsRemoteView != nil { @@ -472,6 +481,10 @@ func toAnalyticsStream( } func toAnalyticsVideoLayer(layer int32, layerStats *rtpstats.RTPDeltaInfo) *livekit.AnalyticsVideoLayer { + if layerStats == nil { + return nil + } + avl := &livekit.AnalyticsVideoLayer{ Layer: layer, Packets: layerStats.Packets + layerStats.PacketsDuplicate + layerStats.PacketsPadding,