1
Fork 0
mirror of https://github.com/jech/galene.git synced 2024-11-26 02:25:58 +01:00

Handle sender reports for down tracks.

In principle, we should be receiving receiver reports only, but let's
be robust.
This commit is contained in:
Juliusz Chroboczek 2020-06-01 00:35:37 +02:00
parent 8fda40b544
commit 303d15539c

View file

@ -866,16 +866,13 @@ func rtcpDownListener(conn *rtpDownConnection, track *rtpDownTrack, s *webrtc.RT
case *rtcp.ReceiverReport: case *rtcp.ReceiverReport:
for _, r := range p.Reports { for _, r := range p.Reports {
if r.SSRC == track.track.SSRC() { if r.SSRC == track.track.SSRC() {
now := mono.Microseconds() handleReport(track, r)
track.stats.Set( }
r.FractionLost, }
r.Jitter, case *rtcp.SenderReport:
now, for _, r := range p.Reports {
) if r.SSRC == track.track.SSRC() {
track.updateRate( handleReport(track, r)
r.FractionLost,
now,
)
} }
} }
case *rtcp.TransportLayerNack: case *rtcp.TransportLayerNack:
@ -891,6 +888,12 @@ func rtcpDownListener(conn *rtpDownConnection, track *rtpDownTrack, s *webrtc.RT
} }
} }
func handleReport(track *rtpDownTrack, report rtcp.ReceptionReport) {
now := mono.Microseconds()
track.stats.Set(report.FractionLost, report.Jitter, now)
track.updateRate(report.FractionLost, now)
}
func trackKinds(down *rtpDownConnection) (audio bool, video bool) { func trackKinds(down *rtpDownConnection) (audio bool, video bool) {
if down.pc == nil { if down.pc == nil {
return return