rtpreorder: do not freeze in case the stream timestamp resets

This commit is contained in:
aler9
2022-11-14 18:39:11 +01:00
parent 4d7abfc638
commit 34545becc3
2 changed files with 54 additions and 0 deletions

View File

@@ -220,3 +220,38 @@ func TestBufferIsFull(t *testing.T) {
require.Equal(t, expected, out)
}
func TestReset(t *testing.T) {
r := New()
sn := uint16(1234)
r.Process(&rtp.Packet{
Header: rtp.Header{
SequenceNumber: sn,
},
})
sn = 0xF234
for i := 0; i < 64; i++ {
out, missing := r.Process(&rtp.Packet{
Header: rtp.Header{
SequenceNumber: sn,
},
})
require.Equal(t, []*rtp.Packet(nil), out)
require.Equal(t, 0, missing)
sn++
}
out, missing := r.Process(&rtp.Packet{
Header: rtp.Header{
SequenceNumber: sn,
},
})
require.Equal(t, []*rtp.Packet{{
Header: rtp.Header{
SequenceNumber: sn,
},
}}, out)
require.Equal(t, 0, missing)
}