Commit 100f72e7 authored by Juliusz Chroboczek's avatar Juliusz Chroboczek

Don't count NACK recovery as properly received packets.

parent 78cf9d0d
......@@ -10,6 +10,7 @@ import (
"errors"
"io"
"log"
"math/bits"
"os"
"strings"
"sync"
......@@ -701,7 +702,11 @@ func sendREMB(pc *webrtc.PeerConnection, ssrc uint32, bitrate uint64) error {
}
func (up *upConnection) sendNACK(track *upTrack, first uint16, bitmap uint16) error {
return sendNACK(up.pc, track.track.SSRC(), first, bitmap)
err := sendNACK(up.pc, track.track.SSRC(), first, bitmap)
if err == nil {
track.cache.Expect(1 + bits.OnesCount16(bitmap))
}
return err
}
func sendNACK(pc *webrtc.PeerConnection, ssrc uint32, first uint16, bitmap uint16) error {
......
......@@ -114,6 +114,15 @@ func (cache *Cache) Store(seqno uint16, buf []byte) uint16 {
return cache.first
}
func (cache *Cache) Expect(n int) {
if n <= 0 {
return
}
cache.mu.Lock()
defer cache.mu.Unlock()
cache.expected += uint32(n)
}
func (cache *Cache) Get(seqno uint16) []byte {
cache.mu.Lock()
defer cache.mu.Unlock()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment