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.
Author: Wim Taymans <firstname.lastname@example.org>
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.
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