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 662049 - oggdemux/oggmux in push mode cause preroll to wedge
oggdemux/oggmux in push mode cause preroll to wedge
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal blocker
: 0.10.36
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2011-10-17 23:17 UTC by Vincent Penquerc'h
Modified: 2011-11-07 18:31 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
oggdemux: survive skeleton finding length behind our backs in push mode (1.18 KB, patch)
2011-10-18 17:01 UTC, Vincent Penquerc'h
committed Details | Review

Description Vincent Penquerc'h 2011-10-17 23:17:23 UTC
Push mode issue, at first glance. Logging so I don't forget, unless someone beats me to it.

$ gst-launch filesrc location=test.ogg ! queue ! oggdemux ! 'audio/x-vorbis' ! oggmux ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
^CCaught interrupt -- handling interrupt.
Interrupt: Stopping pipeline ...
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...

$ gst-launch filesrc location=test.ogg ! oggdemux ! 'audio/x-vorbis' ! oggmux ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Got EOS from element "pipeline0".
Execution ended after 242682345 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
Comment 1 Vincent Penquerc'h 2011-10-18 17:01:30 UTC
Created attachment 199349 [details] [review]
oggdemux: survive skeleton finding length behind our backs in push mode

In push mode, we determine duration by doing a seek to the end of the
stream. However, a skeleton stream with an index will cause the duration
to be known already, and we end up never setting the push_time_duration
variable which we use to know duration has been determined.
Comment 2 Vincent Penquerc'h 2011-10-31 10:20:07 UTC
regression and simple fix, marking as blocker.
Comment 3 Vincent Penquerc'h 2011-11-07 12:21:56 UTC
commit 353153d07956a0fd44b63741a49a4ed035162f58
Author: Vincent Penquerc'h <vincent.penquerch@collabora.co.uk>
Date:   Tue Oct 18 17:58:49 2011 +0100

    oggdemux: survive skeleton finding length behind our backs in push mode
    
    In push mode, we determine duration by doing a seek to the end of the
    stream. However, a skeleton stream with an index will cause the duration
    to be known already, and we end up never setting the push_time_duration
    variable which we use to know duration has been determined.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=662049