1
Fork 0

Improve error handling in sendPLI.

This commit is contained in:
Juliusz Chroboczek 2020-05-29 18:07:46 +02:00
parent 519cb2dbc6
commit 49195ef990
1 changed files with 5 additions and 2 deletions

View File

@ -886,14 +886,17 @@ func updateUpBitrate(up *upConnection, maxVideoRate uint64) {
} }
} }
var ErrUnsupportedFeedback = errors.New("unsupported feedback type")
var ErrRateLimited = errors.New("rate limited")
func (up *upConnection) sendPLI(track *upTrack) error { func (up *upConnection) sendPLI(track *upTrack) error {
if !track.hasRtcpFb("nack", "pli") { if !track.hasRtcpFb("nack", "pli") {
return nil return ErrUnsupportedFeedback
} }
last := atomic.LoadUint64(&track.lastPLI) last := atomic.LoadUint64(&track.lastPLI)
now := mono.Microseconds() now := mono.Microseconds()
if now >= last && now-last < 200000 { if now >= last && now-last < 200000 {
return nil return ErrRateLimited
} }
atomic.StoreUint64(&track.lastPLI, now) atomic.StoreUint64(&track.lastPLI, now)
return sendPLI(up.pc, track.track.SSRC()) return sendPLI(up.pc, track.track.SSRC())