Fix down stream packet loss reporting. (#3092)

* Fix down stream packet loss reporting.

* format
This commit is contained in:
Raja Subramanian
2024-10-14 11:08:10 +05:30
committed by GitHub
parent 2d6aa049c9
commit f154b236b5
3 changed files with 6 additions and 4 deletions

View File

@@ -261,13 +261,13 @@ func (cs *ConnectionStats) updateScoreFromReceiverReport(at time.Time) (float32,
// delta stat duration could be large due to not receiving receiver report for a long time (for example, due to mute),
// adjust to streaming start if necessary
agg := toAggregateDeltaInfo(streams)
if streamingStartedAt.After(cs.params.SenderProvider.GetLastReceiverReportTime()) {
// last receiver report was before streaming started, wait for next one
mos, _ := cs.scorer.GetMOSAndQuality()
return mos, streams
}
agg := toAggregateDeltaInfo(streams)
if streamingStartedAt.After(agg.StartTime) {
agg.StartTime = streamingStartedAt
}

View File

@@ -1769,10 +1769,11 @@ func (d *DownTrack) handleRTCP(bytes []byte) {
}
if len(rr.Reports) > 0 {
d.listenerLock.RLock()
for _, l := range d.receiverReportListeners {
rrListeners := d.receiverReportListeners
d.listenerLock.RUnlock()
for _, l := range rrListeners {
l(d, rr)
}
d.listenerLock.RUnlock()
}
case *rtcp.TransportLayerNack:

View File

@@ -881,8 +881,9 @@ func (r *RTPStatsSender) getSenderSnapshot(startTime time.Time, s *senderSnapsho
packetsDuplicate: r.packetsDuplicate,
bytesDuplicate: r.bytesDuplicate,
headerBytesDuplicate: r.headerBytesDuplicate,
packetsLostFeed: r.packetsLost,
packetsOutOfOrder: s.packetsOutOfOrder + s.intervalStats.packetsOutOfOrder,
packetsLostFeed: r.packetsLost,
packetsLost: r.packetsLostFromRR,
frames: s.frames + s.intervalStats.frames,
nacks: r.nacks,
plis: r.plis,