Unreference garbage in SampleBuilder buffer

SampleBuilder held reference to outdated packets when
the SequenceNumber is jumped.
This commit is contained in:
Atsushi Watanabe
2020-06-22 12:00:11 +09:00
parent f3a73ab13c
commit 06156ba2be
2 changed files with 21 additions and 1 deletions

View File

@@ -237,3 +237,18 @@ func TestSeqnumDistance(t *testing.T) {
}
}
}
func TestSampleBuilderCleanReference(t *testing.T) {
s := New(10, &fakeDepacketizer{})
s.Push(&rtp.Packet{Header: rtp.Header{SequenceNumber: 0, Timestamp: 0}, Payload: []byte{0x01}})
s.Push(&rtp.Packet{Header: rtp.Header{SequenceNumber: 1, Timestamp: 0}, Payload: []byte{0x02}})
s.Push(&rtp.Packet{Header: rtp.Header{SequenceNumber: 2, Timestamp: 0}, Payload: []byte{0x03}})
s.Push(&rtp.Packet{Header: rtp.Header{SequenceNumber: 13, Timestamp: 120}, Payload: []byte{0x04}})
for i := 0; i < 3; i++ {
if s.buffer[i] != nil {
t.Errorf("Old packet (%d) is not unreferenced (maxLate: 10, pushed: 12)", i)
}
}
}