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 696899 - oggdemux: non flushing segment seek makes buffers late
oggdemux: non flushing segment seek makes buffers late
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
unspecified
Other Linux
: Normal normal
: 1.0.7
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-03-30 11:41 UTC by Nicolas Dufresne (ndufresne)
Modified: 2013-04-04 08:11 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Test application to demonstrate the bug (2.98 KB, application/octet-stream)
2013-03-30 11:41 UTC, Nicolas Dufresne (ndufresne)
  Details
[PATCH] segment: Fix seeking when position is slightly outside the segment (1.17 KB, patch)
2013-03-30 11:44 UTC, Nicolas Dufresne (ndufresne)
none Details | Review
[PATCH] oggdemux: Allow EOS on timestamp equal to stop/start (1.18 KB, patch)
2013-03-30 11:45 UTC, Nicolas Dufresne (ndufresne)
none Details | Review

Description Nicolas Dufresne (ndufresne) 2013-03-30 11:41:00 UTC
Created attachment 240163 [details]
Test application to demonstrate the bug

I wrote a small video looping test and found that looping with non-segment seek no longer work with oggdemux. The
bug was tracked down to GstSegement::base being set as NONE in gst_segment_do_seek() if position is outside the segement. After discussion with Wim, it's a normal that position is slightly outside the segment since being equal or outside is what most demuxer checks to determin EOS. Instead of clamping the value in every demuxer, we suggested doing the clamp in the gst_segment_do_seek() helper function. Path coming.
Comment 1 Nicolas Dufresne (ndufresne) 2013-03-30 11:44:05 UTC
Created attachment 240164 [details] [review]
[PATCH] segment: Fix seeking when position is slightly outside the segment


Very often, when the end of a segment is detected by demuxer, the position
is slightly outside the segment boundaries. Currently, if that is the case
the base will be set to NONE instead of normal accumulation. This would
break non-flushing seeks in oggdemux and most likely other demuxers.
---
 gst/gstsegment.c | 3 +++
 1 file changed, 3 insertions(+)
Comment 2 Nicolas Dufresne (ndufresne) 2013-03-30 11:45:04 UTC
Created attachment 240165 [details] [review]
[PATCH] oggdemux: Allow EOS on timestamp equal to stop/start


Changed the check to a current_time equal to the stop will produce
EOS instead of the next one. Also, segment.start can't be NONE, so removing
this check.
---
 ext/ogg/gstoggdemux.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
Comment 3 Nicolas Dufresne (ndufresne) 2013-03-30 11:46:21 UTC
Note, segment seek in push mode simply does not stop with oggdemux, different bug ?
Comment 4 Wim Taymans 2013-04-04 08:11:35 UTC
commit ab44e14c52555136738ff77aaad48b2eeea46ce6
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date:   Sat Mar 30 11:06:59 2013 +0000

    segment: Fix seeking when position is slightly outside the segment
    
    Very often, when the end of a segment is detected by demuxer, the position
    is slightly outside the segment boundaries. Currently, if that is the case
    the base will be set to NONE instead of normal accumulation. This would
    break non-flushing seeks in oggdemux and most likely other demuxers.
    
    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696899

commit e58f838ca3a69c5eb2efcb01dc033097e31b5d83
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date:   Sat Mar 30 11:00:35 2013 +0000

    oggdemux: Allow EOS on timestamp equal to stop/start
    
    Changed the check to a current_time equal to the stop will produce
    EOS instead of the next one. Also, segment.start can't be NONE, so removing
    this check.
    
    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=696899