After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 556520 - jitterbuffer seqnum gap detection is wrong
jitterbuffer seqnum gap detection is wrong
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal blocker
: 0.10.9
Assigned To: Wim Taymans
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-10-16 10:00 UTC by Wim Taymans
Modified: 2008-10-16 13:06 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
proposed patch (3.68 KB, patch)
2008-10-16 10:02 UTC, Wim Taymans
none Details | Review
improved patch (5.87 KB, patch)
2008-10-16 11:16 UTC, Wim Taymans
committed Details | Review

Description Wim Taymans 2008-10-16 10:00:14 UTC
The jitterbuffer use the wrong variable to detect gaps in the seqnum of input packets. 

The last_popped_seqnum variable is used to check for big gaps but since this variable controls the seqnums on the output pads it can't be used to check for seqnums on the input pad.

This causes the jitterbuffer to check for gaps with each received packet and could possibly erronously reset the jitterbuffer.
Comment 1 Wim Taymans 2008-10-16 10:02:49 UTC
Created attachment 120701 [details] [review]
proposed patch

This patch introduces a new variable to track seqnums on the input pad.
Comment 2 Wim Taymans 2008-10-16 11:16:05 UTC
Created attachment 120707 [details] [review]
improved patch

Improved patch that withstands serious seqnum discont abuse. Also flushes the jitterbuffer when a discont is found.
Comment 3 Wim Taymans 2008-10-16 13:06:13 UTC
        * gst/rtpmanager/gstrtpjitterbuffer.c:
        (gst_jitter_buffer_sink_parse_caps),
        (gst_rtp_jitter_buffer_flush_start),
        (gst_rtp_jitter_buffer_flush_stop), (gst_rtp_jitter_buffer_chain),
        (gst_rtp_jitter_buffer_loop):
        Fix problem with using the output seqnum counter to check for input
        seqnum discontinuities.
        Improve gap detection and recovery, reset and flush the jitterbuffer on
        seqnum restart. Fixes #556520.