Do NACK updates as soon as flow state is processed. (#4221)

This commit is contained in:
Raja Subramanian
2026-01-06 11:59:21 +05:30
committed by GitHub
parent 4405afe24d
commit 80ba93fa18

View File

@@ -769,6 +769,12 @@ func (b *BufferBase) HandleIncomingPacketLocked(
return 0, fmt.Errorf("unhandled reason: %s", flowState.UnhandledReason.String())
}
if b.params.IsOOBSequenceNumber {
b.updateOOBNACKState(oobSequenceNumber, arrivalTime, len(rawPkt))
} else {
b.updateNACKState(rtpPacket.SequenceNumber, flowState)
}
if len(rtpPacket.Payload) == 0 && (!flowState.IsOutOfOrder || flowState.IsDuplicate) {
// drop padding only in-order or duplicate packet
if !flowState.IsOutOfOrder {
@@ -873,12 +879,6 @@ func (b *BufferBase) HandleIncomingPacketLocked(
b.maybeGrowBucket(arrivalTime)
if b.params.IsOOBSequenceNumber {
b.updateOOBNACKState(oobSequenceNumber, arrivalTime, len(rawPkt))
} else {
b.updateNACKState(rtpPacket.SequenceNumber, flowState)
}
return ep.ExtSequenceNumber, nil
}