mirror of
https://github.com/jech/galene.git
synced 2024-11-10 02:35:58 +01:00
Don't honour NACKs if we're congested.
This commit is contained in:
parent
5a1ef1ddd7
commit
a74e4f68b5
1 changed files with 17 additions and 11 deletions
28
client.go
28
client.go
|
@ -608,7 +608,11 @@ func rtcpDownListener(g *group, conn *downConnection, track *downTrack, s *webrt
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
case *rtcp.TransportLayerNack:
|
case *rtcp.TransportLayerNack:
|
||||||
sendRecovery(p, track)
|
maxBitrate := track.maxBitrate.Get(msSinceEpoch())
|
||||||
|
bitrate := track.rate.Estimate()
|
||||||
|
if uint64(bitrate) < maxBitrate {
|
||||||
|
sendRecovery(p, track)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -720,17 +724,19 @@ func sendRecovery(p *rtcp.TransportLayerNack, track *downTrack) {
|
||||||
for _, nack := range p.Nacks {
|
for _, nack := range p.Nacks {
|
||||||
for _, seqno := range nack.PacketList() {
|
for _, seqno := range nack.PacketList() {
|
||||||
raw := track.remote.cache.Get(seqno)
|
raw := track.remote.cache.Get(seqno)
|
||||||
if raw != nil {
|
if raw == nil {
|
||||||
err := packet.Unmarshal(raw)
|
continue
|
||||||
if err != nil {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
err = track.track.WriteRTP(&packet)
|
|
||||||
if err != nil {
|
|
||||||
log.Printf("%v", err)
|
|
||||||
}
|
|
||||||
track.rate.Add(uint32(len(raw)))
|
|
||||||
}
|
}
|
||||||
|
err := packet.Unmarshal(raw)
|
||||||
|
if err != nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
err = track.track.WriteRTP(&packet)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("%v", err)
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
track.rate.Add(uint32(len(raw)))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue