GNOME Bugzilla – Bug 680306
[segment] gst_segment_do_seek() does not properly handle flushing SEEK_NONE seeks
Last modified: 2013-06-10 11:59:25 UTC
In 1.0 gst_segment_do_seek() has a problem with flushing SEEK_NONE seeks. the resulting segment will be the same as before basically, but as the downstream running time is reset it will wait until the clock advanced to the current position. It should probably subtract the running time of the current position from base, but this would lead to negative base which is not allowed currently.
Can be reproduced with http://cgit.freedesktop.org/gstreamer-sdk/gst-sdk-tutorials/tree/gst-sdk/tutorials/basic-tutorial-13.c Just needs the file to be downloaded locally and the URI adjusted... and the seeks changed to SEEK_NONE.
Marking as blocker as Wim talked about not changing the base-time at all when flushing... or making it an unsigned variable. Both would be an API change.
commit c8840b8270a463caee18fc8c5fccf242345eeebf Author: Wim Taymans <wim.taymans@collabora.co.uk> Date: Fri Jul 27 17:09:45 2012 +0200 segment: add offset field Add an offset field that is used to track at what position the segment was updated. This is used to set the running time to 0 when we do a flushing seek that doesn't update the position. See https://bugzilla.gnome.org/show_bug.cgi?id=680306
Closing, there's another bug for matroskademux.
(In reply to comment #4) > Closing, there's another bug for matroskademux. Which I just encountered, in relation with the second (incorrect) patch mentioned here : https://bugzilla.gnome.org/show_bug.cgi?id=701385 Is there a report for it ? I noticed that this bug didn't happen with qtdemux for instance. I don't have much more information about it.
I think the matroskademux bug report is this one here: #679250