|
- package aoiprxkit
-
- import "testing"
-
- func TestJitterBufferReordersAndReleases(t *testing.T) {
- jb := newJitterBuffer(8)
- p100 := RTPPacket{SequenceNumber: 100}
- p102 := RTPPacket{SequenceNumber: 102}
- p101 := RTPPacket{SequenceNumber: 101}
-
- ready, late, gap, reorder := jb.push(p100)
- if late || gap != 0 || reorder {
- t.Fatalf("unexpected state on first push")
- }
- if len(ready) != 1 || ready[0].SequenceNumber != 100 {
- t.Fatalf("unexpected ready on first push: %+v", ready)
- }
-
- ready, late, gap, reorder = jb.push(p102)
- if late || gap != 0 || !reorder {
- t.Fatalf("expected reorder on out-of-order push")
- }
- if len(ready) != 0 {
- t.Fatalf("unexpected ready before missing packet arrives: %+v", ready)
- }
-
- ready, late, gap, reorder = jb.push(p101)
- if late || gap != 0 {
- t.Fatalf("unexpected late/gap after completing sequence")
- }
- if len(ready) != 2 || ready[0].SequenceNumber != 101 || ready[1].SequenceNumber != 102 {
- t.Fatalf("unexpected ready after sequence repair: %+v", ready)
- }
- }
|