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 730078 - rtpjitterbuffer: wrong packet insertion if events present in the jitter queue
rtpjitterbuffer: wrong packet insertion if events present in the jitter queue
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal normal
: 1.3.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-05-13 19:13 UTC by Aleix Conchillo Flaqué
Modified: 2014-05-14 08:30 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
keep looping when events found (2.34 KB, patch)
2014-05-13 19:43 UTC, Aleix Conchillo Flaqué
none Details | Review

Description Aleix Conchillo Flaqué 2014-05-13 19:13:30 UTC
This bug is to track down the issue mentioned in bug 730039 comment 2.

If events are already inserted in the jitter queue, rtp_jitter_buffer_insert() will stop looking for the right position and always insert the packet after the first event found.
Comment 1 Aleix Conchillo Flaqué 2014-05-13 19:43:23 UTC
Created attachment 276473 [details] [review]
keep looping when events found

This patch keeps looping through the list of items in the jitter queue until the right position is found.

- every time an event is found a reference is kept if not already set 
  (consecutive events).

- if a packet before an event has a greater seqnum, the event reference is reset 
  until a new event is found (if any).

At the end, if we still have a reference to an event we insert the packet after the event. Otherwise, it means we have found a position for the event.
Comment 2 Wim Taymans 2014-05-14 08:30:26 UTC
commit bcd469ff316086e0f6db0a5af2dc7cc3eea938fd
Author: Aleix Conchillo Flaqué <aleix@oblong.com>
Date:   Tue May 13 12:25:04 2014 -0700

    rtpjitterbuffer: don't stop looping if event found in the queue
    
    If we are inserting a packet into the jitter queue we need to keep
    looping through the items until the right position is found. Currently,
    the code stops as soon as an event is found in the queue.
    
    Regarding events, we should only move packets before an event if there
    is another packet before the event that has a larger seqnum.
    
    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=730078