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 633088 - [rtspsrc] tweak default jitterbuffer buffer mode
[rtspsrc] tweak default jitterbuffer buffer mode
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-good
git master
Other Linux
: Normal normal
: 0.10.21
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-10-25 09:49 UTC by Mark Nauwelaerts
Modified: 2010-12-10 11:44 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
jitterbuffer slave mode output timestamps log (10.07 KB, application/x-gzip)
2010-10-25 09:49 UTC, Mark Nauwelaerts
  Details
rtspsrc: add and use auto buffering mode (3.11 KB, patch)
2010-10-25 09:58 UTC, Mark Nauwelaerts
none Details | Review
rtspsrc: add and use auto buffering mode (3.92 KB, patch)
2010-12-02 17:16 UTC, Mark Nauwelaerts
committed Details | Review

Description Mark Nauwelaerts 2010-10-25 09:49:47 UTC
Created attachment 173159 [details]
jitterbuffer slave mode output timestamps log

Default buffer mode passed down by rtspsrc is SLAVE, which works well for real-time low latency (i.e. live) streams.  However, BUFFER is otherwise suitable for (non-live) streaming mode.

In particular, when dealing with non-live streams (e.g. youtube stuff), clock slaving in jitterbuffer does not really make sense and leads to timestamps distortions in case of bursts.  Attached log shows some jitterbuffer output timestamps that result from repeatedly pausing/playing some stream; the effect is that at each play resuming, some amount of time is "lost", which causes the data to run out well before actual EOS.  In fact, also without repeated pause/play, the initial part is often lost, leading to shorter playback than actual duration.
Comment 1 Mark Nauwelaerts 2010-10-25 09:58:24 UTC
Created attachment 173160 [details] [review]
rtspsrc: add and use auto buffering mode

Patch adds an auto buffering mode which selects BUFFER when a duration for the stream is known (unlikely live in that case), and SLAVE otherwise.

Patch also changes default mode to the new auto mode, which might be argued to belong in a separate commit, or not to be done at all (being an API change, though it tends to Just Work this way ...)
Comment 2 Mark Nauwelaerts 2010-12-02 17:16:58 UTC
Created attachment 175721 [details] [review]
rtspsrc: add and use auto buffering mode

As before, but some additional tweaks that fall back to slave method buffering for cases (known or expected) that do not handle the buffer method approach well.
Comment 3 Mark Nauwelaerts 2010-12-10 11:44:38 UTC
commit 52b5929a2b7d4c0822ccd9611de28f7b7e2ffe9e
Author: Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>
Date:   Mon Oct 25 11:51:06 2010 +0200

    rtspsrc: add and use auto buffering mode
    
    ... which selects BUFFER for a non-live stream, and otherwise SLAVE.
    
    Fixes #633088.