gstreamer/gst/rtpmanager
Havard Graff 8ed7ab178b rtpjitterbuffer: don't try and calculate packet-rate if seqnum are jumping
Turns out that the "big-gap"-logic of the jitterbuffer has been horribly
broken.

For people using lost-events, an RTP-stream with a gap in sequencenumbers,
would produce exactly that many lost-events immediately.
So if your sequence-numbers jumped 20000, you would get 20000 lost-events
in your pipeline...

The test that looks after this logic "test_push_big_gap", basically
incremented the DTS of the buffer equal to the gap that was introduced,
so that in fact this would be more of a "large pause" test, than an
actual gap/discontinuity in the sequencenumbers.

Once the test was modified to not increment DTS (buffer arrival time) with
a similar gap, all sorts of crazy started happening, including adding
thousands of timers, and the logic that should have kicked in, the
"handle_big_gap_buffer"-logic, was not called at all, why?

Because the number max_dropout is calculated using the packet-rate, and
the packet-rate logic would, in this particular test, report that
the new packet rate was over 400000 packets per second!!!

I believe the right fix is to don't try and update the packet-rate if
there is any jumps in the sequence-numbers, and only do these calculations
for nice, sequential streams.
2019-06-12 11:39:31 +02:00
..
gstrtpbin.c rtpbin: Improve RTPStorage action signal documentation 2019-05-25 13:44:00 +02:00
gstrtpbin.h Revert "rtpbin: receive bundle support" 2018-12-20 13:25:10 +00:00
gstrtpdtmfmux.c docs: Port all docstring to gtk-doc markdown 2019-05-13 10:24:40 -04:00
gstrtpdtmfmux.h rtpmux: Fix FSF address 2012-12-16 16:36:39 +00:00
gstrtpfunnel.c rtpfunnel: Stop using G_DECLARE_FINAL_TYPE 2018-11-13 00:37:11 +01:00
gstrtpfunnel.h rtpfunnel: Stop using G_DECLARE_FINAL_TYPE 2018-11-13 00:37:11 +01:00
gstrtpjitterbuffer.c rtpjitterbuffer: Print GstClockTimeDiff as GST_STIME_FORMAT 2019-05-26 17:46:06 +03:00
gstrtpjitterbuffer.h rtpjitterbuffer: small optimizations 2014-04-29 16:21:44 +02:00
gstrtpmanager.c Initial commit of GstRtpFunnel 2018-10-15 14:20:58 +02:00
gstrtpmux.c docs: Port all docstring to gtk-doc markdown 2019-05-13 10:24:40 -04:00
gstrtpmux.h doc: Fix some docstrings 2019-05-13 17:00:00 -04:00
gstrtpptdemux.c doc: Port documentation to hotdoc 2019-05-13 11:34:56 -04:00
gstrtpptdemux.h docs: Port all docstring to gtk-doc markdown 2019-05-13 10:24:40 -04:00
gstrtprtxqueue.c doc: fix element section documentations 2019-05-25 16:57:31 +02:00
gstrtprtxqueue.h rtprtxqueue: implement handling of the max-size-time property 2017-04-11 09:44:33 +03:00
gstrtprtxreceive.c docs: Port all docstring to gtk-doc markdown 2019-05-13 10:24:40 -04:00
gstrtprtxreceive.h rtprtxreceive: Wait until timeout to clear association requests 2014-05-04 22:36:59 -04:00
gstrtprtxsend.c docs: Port all docstring to gtk-doc markdown 2019-05-13 10:24:40 -04:00
gstrtprtxsend.h rtprtxsend: run a new GstTask on the src pad 2014-01-21 14:54:01 +01:00
gstrtpsession.c doc: fix element section documentations 2019-05-25 16:57:31 +02:00
gstrtpsession.h rtpsession: use the correct segment seqnum 2019-02-04 13:14:37 +00:00
gstrtpssrcdemux.c rtpssrcdemux: Avoid taking streamlock out-of-band 2019-06-04 09:26:06 -04:00
gstrtpssrcdemux.h rtpssrcdemux: Remove unused GstSegment 2013-04-02 23:42:41 -04:00
Makefile.am Initial commit of GstRtpFunnel 2018-10-15 14:20:58 +02:00
meson.build doc: Port documentation to hotdoc 2019-05-13 11:34:56 -04:00
rtpjitterbuffer.c docs: fix typo s/incomming/incoming/ 2019-04-03 16:38:56 +02:00
rtpjitterbuffer.h rtpjitterbuffer: Limit size to 2^15 packets 2019-02-11 23:41:14 +00:00
rtpsession.c rtpsession: Always keep at least one NACK on early RTCP 2019-05-17 19:13:22 +00:00
rtpsession.h rtpsession: Allow overriding NACK packet creation 2019-04-05 18:36:36 -04:00
rtpsource.c rtpsource: Add more information to probation warning 2019-05-02 14:44:58 -04:00
rtpsource.h rtpsession: Send as many nack seqnum as possible 2019-04-05 14:53:09 +00:00
rtpstats.c rtpjitterbuffer: don't try and calculate packet-rate if seqnum are jumping 2019-06-12 11:39:31 +02:00
rtpstats.h rtpstats: fix some fields names in the RTPSourceStats documentation 2019-03-07 10:36:11 +01:00