diff options
author | Stian Selnes <stian@pexip.com> | 2015-12-08 18:49:40 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2016-02-18 09:39:01 +0200 |
commit | 3eeca9c7d20bac6f4da1e1100982836539a2daf7 (patch) | |
tree | bb4bc0ad9efe74670ce378645423ae3cecc8dbd0 | |
parent | d6685b247a86d9859a88c2a974f921ab7100a687 (diff) | |
download | gstreamer-plugins-good-3eeca9c7d20bac6f4da1e1100982836539a2daf7.tar.gz |
rtpjitterbuffer: Add test for big seqnum gap handling
Make sure that the packets queued when detecting a big gap are pushed
after reset (5 consective seqnums) and not dropped.
https://bugzilla.gnome.org/show_bug.cgi?id=762211
-rw-r--r-- | tests/check/elements/rtpjitterbuffer.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/check/elements/rtpjitterbuffer.c b/tests/check/elements/rtpjitterbuffer.c index efbe161aa..86ebd363a 100644 --- a/tests/check/elements/rtpjitterbuffer.c +++ b/tests/check/elements/rtpjitterbuffer.c @@ -1672,6 +1672,38 @@ GST_START_TEST (test_dts_gap_larger_than_latency) GST_END_TEST; +GST_START_TEST (test_push_big_gap) +{ + GstHarness *h = gst_harness_new ("rtpjitterbuffer"); + const gint num_consecutive = 5; + gint i; + + gst_harness_use_testclock (h); + gst_harness_set_src_caps (h, generate_caps ()); + + for (i = 0; i < num_consecutive; i++) + gst_harness_push (h, generate_test_buffer (1000 + i)); + gst_harness_crank_single_clock_wait (h); + for (i = 0; i < num_consecutive; i++) + gst_buffer_unref (gst_harness_pull (h)); + + /* Push more packets from a different sequence number domain + * to trigger "big gap" logic. */ + for (i = 0; i < num_consecutive; i++) + gst_harness_push (h, generate_test_buffer (20000 + i)); + gst_harness_crank_single_clock_wait (h); + for (i = 0; i < num_consecutive; i++) + gst_buffer_unref (gst_harness_pull (h)); + + /* Final buffer should be pushed straight through */ + gst_harness_push (h, generate_test_buffer (20000 + num_consecutive)); + gst_buffer_unref (gst_harness_pull (h)); + + gst_harness_teardown (h); +} + +GST_END_TEST; + static Suite * rtpjitterbuffer_suite (void) { @@ -1694,6 +1726,7 @@ rtpjitterbuffer_suite (void) tcase_add_test (tc_chain, test_gap_exceeds_latency); tcase_add_test (tc_chain, test_deadline_ts_offset); tcase_add_test (tc_chain, test_dts_gap_larger_than_latency); + tcase_add_test (tc_chain, test_push_big_gap); return s; } |