gstreamer/gst/rtpmanager
Havard Graff 1a4393fb4d rtpjitterbuffer: fix timer-reuse bug
When doing rtx, the jitterbuffer will always add an rtx-timer for the next
sequence number.

In the case of the packet corresponding to that sequence number arriving,
that same timer will be reused, and simply moved on to wait for the
following sequence number etc.

Once an rtx-timer expires (after all retries), it will be rescheduled as
a lost-timer instead for the same sequence number.

Now, if this particular sequence-number now arrives (after the timer has
become a lost-timer), the reuse mechanism *should* now set a new
rtx-timer for the next sequence number, but the bug is that it does
not change the timer-type, and hence schedules a lost-timer for that
following sequence number, with the result that you will have a very
early lost-event for a packet that might still arrive, and you will
never be able to send any rtx for this packet.

Found by Erlend Graff - erlend@pexip.com

https://bugzilla.gnome.org/show_bug.cgi?id=773891
2016-11-04 16:56:56 +02:00
..
gstrtpbin.c rtpbin: introduce max-streams property 2016-08-26 11:57:06 -04:00
gstrtpbin.h rtpbin: introduce max-streams property 2016-08-26 11:57:06 -04:00
gstrtpdtmfmux.c good: use new gst_element_class_add_static_pad_template() 2016-03-24 14:32:20 +02:00
gstrtpdtmfmux.h rtpmux: Fix FSF address 2012-12-16 16:36:39 +00:00
gstrtpjitterbuffer.c rtpjitterbuffer: fix timer-reuse bug 2016-11-04 16:56:56 +02:00
gstrtpjitterbuffer.h rtpjitterbuffer: small optimizations 2014-04-29 16:21:44 +02:00
gstrtpmanager.c rtpmanager: add new rtprtxsend / rtprtxreceive elements 2014-01-03 20:47:59 +01:00
gstrtpmux.c Revert "rtpmux: fix PROP_TIMESTAMP_OFFSET range problems" 2016-08-26 12:06:51 -04:00
gstrtpmux.h Revert "rtpmux: fix PROP_TIMESTAMP_OFFSET range problems" 2016-08-26 12:06:51 -04:00
gstrtpptdemux.c good: use new gst_element_class_add_static_pad_template() 2016-03-24 14:32:20 +02:00
gstrtpptdemux.h Fix FSF address 2012-11-04 00:07:18 +00:00
gstrtprtxqueue.c good: use new gst_element_class_add_static_pad_template() 2016-03-24 14:32:20 +02:00
gstrtprtxqueue.h rtxqueue: add property to configure queue size 2013-08-23 15:47:25 +02:00
gstrtprtxreceive.c rtxreceive: Set buffer flag for retransmitted packets 2016-09-14 19:37:50 -04:00
gstrtprtxreceive.h rtprtxreceive: Wait until timeout to clear association requests 2014-05-04 22:36:59 -04:00
gstrtprtxsend.c good: use new gst_element_class_add_static_pad_template() 2016-03-24 14:32:20 +02:00
gstrtprtxsend.h rtprtxsend: run a new GstTask on the src pad 2014-01-21 14:54:01 +01:00
gstrtpsession.c rtpbin: pipeline gets an EOS when any rtpsources byes 2016-11-01 20:16:18 +02:00
gstrtpsession.h rtpmanager: add new on-new-sender-ssrc, on-sender-ssrc-active signals 2015-10-02 16:39:29 +03:00
gstrtpssrcdemux.c good: use new gst_element_class_add_static_pad_template() 2016-03-24 14:32:20 +02:00
gstrtpssrcdemux.h rtpssrcdemux: Remove unused GstSegment 2013-04-02 23:42:41 -04:00
Makefile.am rtpmanager: It's GST_LIBS, not GST_LIBS_LIBS 2016-04-11 10:44:56 +03:00
meson.build Add support for Meson as alternative/parallel build system 2016-08-20 11:21:12 +01:00
rtpjitterbuffer.c rtpjitterbuffer: fix lost-event using dts instead of pts 2016-11-04 16:51:20 +02:00
rtpjitterbuffer.h rtpjitterbuffer: fix lost-event using dts instead of pts 2016-11-04 16:51:20 +02:00
rtpsession.c rtpbin: avoid generating errors when rtcp messages are empty and check the queue is not empty 2016-11-01 20:17:20 +02:00
rtpsession.h rtpbin: pipeline gets an EOS when any rtpsources byes 2016-11-01 20:16:18 +02:00
rtpsource.c rtpsource: reordered packets are very normal, and should not be a warning 2016-08-26 11:53:22 -04:00
rtpsource.h rtpmanager: Take into account packet rate for max-dropout and max-misorder calculations 2015-10-07 12:07:18 +01:00
rtpstats.c rtpjitterbuffer: Actually calculate the packet rate for max-dropout and max-misorder calculations. 2016-08-10 19:49:27 +02:00
rtpstats.h rtpmanager: Take into account packet rate for max-dropout and max-misorder calculations 2015-10-07 12:07:18 +01:00