Do NACKs and reports always. (#2022)

* Do NACKs and reports always.

With padding packet drops, it is possible that a lot of packets
go by without RTCP RR.

Do NACKs and RTCP RR always.

* remove local variable
This commit is contained in:
Raja Subramanian
2023-08-31 12:41:25 +05:30
committed by GitHub
parent 790954bbe9
commit bc5b4d68af
+7 -6
View File
@@ -410,6 +410,12 @@ func (b *Buffer) SetRTT(rtt uint32) {
}
func (b *Buffer) calc(pkt []byte, arrivalTime time.Time) {
defer func() {
b.doNACKs()
b.doReports(arrivalTime)
}()
var rtpPacket rtp.Packet
if err := rtpPacket.Unmarshal(pkt); err != nil {
b.logger.Errorw("could not unmarshal RTP packet", err)
@@ -465,10 +471,6 @@ func (b *Buffer) calc(pkt []byte, arrivalTime time.Time) {
return
}
b.doNACKs()
b.doReports(arrivalTime)
ep := b.getExtPacket(&rtpPacket, arrivalTime, flowState)
if ep == nil {
return
@@ -661,8 +663,7 @@ func (b *Buffer) doNACKs() {
}
func (b *Buffer) doReports(arrivalTime time.Time) {
timeDiff := arrivalTime.Sub(b.lastReport)
if timeDiff < ReportDelta {
if time.Since(b.lastReport) < ReportDelta {
return
}