gstreamer/tests/check/elements
Havard Graff 981d0c02de rtpjitterbuffer: don't use RTX packets in rate-calc and reset-logic
The problem was this:

Due to the highly irregular arrival of RTX-packet the max-misorder variable
could be pushed very low. (-10).

If you then at some point get a big in the sequence-numbers (62 in the
test) you end up sending RTX-requests for some of those packets, and then
if the sender answers those requests, you are going to get a bunch of
RTX-packets arriving. (-13 and then 5 more packets in the test)

Now, if max-misorder is pushed very low at this point, these RTX-packets
will trigger the handle_big_gap_buffer() logic, and because they arriving
so neatly in order, (as they would, since they have been requested like
that), the gst_rtp_jitter_buffer_reset() will be called, and two things
will happen:
1. priv->next_seqnum will be set to the first RTX packet
2. the 5 RTX-packet will be pushed into the chain() function

However, at this point, these RTX-packets are no longer valid, the
jitterbuffer has already pushed lost-events for these, so they will now
be dropped on the floor, and never make it to the waiting loop-function.

And, since we now have a priv->next_seqnum that will never arrive
in the loop-function, the jitterbuffer is now stalled forever, and will
not push out another buffer.

The proposed fixes:
1. Don't use RTX in calculation of the packet-rate.
2. Don't use RTX in large-gap logic, as they are likely to be dropped.
2020-04-16 17:06:31 +02:00
..
aacparse.c tests: aacparser: Test that short raw frames don't get concatenated 2018-01-18 19:09:25 +00:00
ac3parse.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
alpha.c tests: add test suite for alpha 2015-04-10 10:20:03 +01:00
alphacolor.c tests: Fix some more unit tests 2013-05-10 13:34:16 +02:00
amrparse.c check: Remove dead code 2017-01-02 15:06:33 +01:00
apev2mux.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
aspectratiocrop.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
audioamplify.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
audiochebband.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
audiocheblimit.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
audiodynamic.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
audioecho.c tests: Fix some more unit tests 2013-05-10 13:34:16 +02:00
audiofirfilter.c tests: fix bus leaks 2016-07-18 10:53:19 +01:00
audioiirfilter.c tests: fix bus leaks 2016-07-18 10:53:19 +01:00
audioinvert.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
audiopanorama.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
audiowsincband.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
audiowsinclimit.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
autodetect.c meson: add options to set package name and origin 2017-05-20 14:53:42 +01:00
avimux.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
avisubtitle.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
capssetter.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
deinterlace.c deinterlace: Added unit tests for field=auto 2016-03-24 14:34:11 +02:00
deinterleave.c deinterleave: fix leaks 2016-06-21 10:51:08 +03:00
dtmf.c rtpdtmfsrc: clock-base and seqnum-base -> timestamp-offset and seqnum-offset 2014-10-10 18:12:32 -04:00
equalizer.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
flacparse.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
flvdemux.c tests: flvdemux: Add new test for channel detect using aac codec-data 2018-10-12 14:35:37 -04:00
flvmux.c tests: flvmux: Instead of using the testclock, just send eos event for drain 2020-03-02 01:37:27 +09:00
gdkpixbufoverlay.c tests: gdkpixbufoverlay: add minimal unit test 2015-09-29 11:15:35 +01:00
gdkpixbufsink.c Fix FSF address 2012-11-04 00:07:18 +00:00
icydemux.c icydemux: reset tags on empty value 2017-02-14 12:24:13 +02:00
id3demux.c Fix FSF address 2012-11-04 00:07:18 +00:00
id3v2mux.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
imagefreeze.c test: imagefreeze: add test for the num-buffers property 2019-03-14 09:12:28 +01:00
interleave.c interleave: fix message leaks in test 2016-06-21 10:51:08 +03:00
jpegdec.c documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
jpegenc.c fix buffer leaks in tests 2016-06-21 10:51:08 +03:00
level.c documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
matroskademux.c matroska: fix memory leaks due to toc related updates 2017-12-15 16:14:43 +02:00
matroskamux.c tests: matroskamux avoid -Wmaybe-uninitialized 2019-01-18 13:53:18 +00:00
matroskaparse.c tests: matroskaparse: fail on errors and disable pull mode test 2014-06-28 17:40:45 +01:00
mpegaudioparse.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
mpg123audiodec.c tests: fix mpg123audiodec test for big-endian architectures 2016-02-16 10:40:39 +00:00
mulawdec.c tests: fix mulawdec/mulawenc test for big endian systems 2014-10-25 11:09:57 +01:00
mulawenc.c tests: fix mulawdec/mulawenc test for big endian systems 2014-10-25 11:09:57 +01:00
multifile.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
packets.h rtp: Implement ULPFEC (RFC 5109) 2018-02-21 14:15:22 +01:00
parser.c tests: Fix parser tests 2013-05-10 13:10:29 +02:00
parser.h Fix FSF address 2012-11-04 00:07:18 +00:00
qtdemux.c tests: qtdemux: Add checking exposed segment event 2018-06-06 11:19:25 -04:00
qtdemux.h tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
qtmux.c qtmux: port to GstAggregator 2019-12-16 14:17:38 +00:00
rganalysis.c rganalysis: Fix compiler warnings in the unit test 2016-01-08 15:32:47 +02:00
rglimiter.c tests: Add missing LDADD for libm in tests using math.h 2017-03-08 22:55:09 -05:00
rgvolume.c documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
rtp-payloading.c tests: rtp-payloading: add minimal vp8/vp9 rtp payloading/depayloading test 2020-03-12 16:55:44 +00:00
rtpbin.c Fix usage of C99 2020-03-23 21:32:04 -04:00
rtpbin_buffer_list.c test: rtpbin_buffer_list: add a test for invalid packets in buffer list 2019-08-07 15:32:30 -04:00
rtpcollision.c tests: rtpcollision: use alawenc/dec in these tests instead of Speex 2014-12-30 17:19:59 +00:00
rtpfunnel.c rtpfunnel: various cleanups 2020-02-14 10:08:05 +00:00
rtph261.c rtph261depay: Fix check of valid payload length 2016-08-26 11:53:22 -04:00
rtph263.c rtph263ppay: Fix caps leak 2016-11-01 20:20:47 +02:00
rtph264.c rtph26x: Use gst_memory_map() instead of gst_buffer_map() in avc mode 2020-03-06 10:44:16 +00:00
rtph265.c rtph265pay: TID for NALU type 48 was always set to 7 2020-01-13 15:41:30 +01:00
rtpjitterbuffer.c rtpjitterbuffer: don't use RTX packets in rate-calc and reset-logic 2020-04-16 17:06:31 +02:00
rtpjpeg.c rtpjpeg: Use gst_memory_map() instead of gst_buffer_map() 2020-04-03 17:01:24 +02:00
rtpmux.c Run gst-indent through the files 2018-11-28 05:52:16 +02:00
rtpopus.c rtpopuspay: make depay ! pay work 2020-04-03 09:04:32 +00:00
rtpptdemux.c rtpptdemux: set payload to caps inside gst_rtp_pt_demux_get_caps 2020-02-11 18:39:22 +00:00
rtpred.c documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
rtprtx.c rtprtxsend: allow generic input caps 2020-01-28 15:44:13 +00:00
rtpsession.c Fix usage of C99 2020-03-23 21:32:04 -04:00
rtpssrcdemux.c rtpssrcdemux: Handle RTCP APP packets 2020-02-11 15:12:07 +01:00
rtpstorage.c documentation: fix a number of typos 2019-10-05 22:38:11 +00:00
rtptimerqueue.c rtptimerqueue: remove ->num from the timer 2020-03-20 13:17:20 +00:00
rtpulpfec.c tests: rtpulpfec: fix buffer leak in unit test 2019-03-06 19:40:10 +00:00
rtpvp9.c tests: fix indentation 2016-09-15 09:53:07 +01:00
shapewipe.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
souphttpsrc.c souphttpsrc test: free g_get_current_dir return 2018-04-13 20:35:24 +02:00
spectrum.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
splitmuxsink.c tests: Split splitmux test case 2020-04-03 17:08:51 +09:00
splitmuxsrc.c tests: Split splitmux test case 2020-04-03 17:08:51 +09:00
udpsink.c tests: udpsink: add check that sets QoS on IPv4/6 sockets 2017-12-23 12:45:11 +01:00
udpsrc.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
videobox.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
videocrop.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
videofilter.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
videomixer.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
vp8dec.c tests: vp8dec: add test for caps renegotiation 2014-09-02 01:01:43 -03:00
vp8enc.c vp8enc-test: Send inital events 2013-05-10 09:24:47 +02:00
vp9enc.c gst: Don't declare variables inside the for loop header 2016-12-13 22:32:46 +02:00
wavpackdec.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
wavpackenc.c check: Use GST_CHECK_MAIN () macro everywhere 2015-06-02 16:27:24 +02:00
wavpackparse.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00
wavparse.c tests: wavparse: add test for processing an actual .wav file 2016-11-03 15:42:29 +02:00
y4menc.c tests: Remove pointless unistd.h include 2018-12-30 21:54:44 +09:00