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 755469 - asfdemux: Non-flushing seeks don't work, broken segment seek handling and other seeking related issues
asfdemux: Non-flushing seeks don't work, broken segment seek handling and oth...
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-ugly
unspecified
Other All
: Normal blocker
: 1.7.91
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-09-23 14:33 UTC by Sebastian Dröge (slomo)
Modified: 2016-03-11 15:56 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
asfdemux: If pushing buffers returned EOS, go into the EOS and not failure code path (3.28 KB, patch)
2015-09-23 14:33 UTC, Sebastian Dröge (slomo)
committed Details | Review
asfdemux: Only push EOS event if we're not doing a segment seek (1.62 KB, patch)
2015-09-23 17:39 UTC, Sebastian Dröge (slomo)
none Details | Review
asfdemux: Only push EOS event if we're not doing a segment seek (1.63 KB, patch)
2015-09-23 17:41 UTC, Sebastian Dröge (slomo)
committed Details | Review
asfdemux: Update segment.position when pushing buffers (2.77 KB, patch)
2015-09-23 18:26 UTC, Sebastian Dröge (slomo)
committed Details | Review
asfdemux: Only change segment start to a keyframe for KEYUNIT seeks (5.07 KB, patch)
2015-09-23 18:31 UTC, Sebastian Dröge (slomo)
committed Details | Review
asfdemux: Don't push any data on pads after the segment.stop (1.96 KB, patch)
2015-09-23 18:46 UTC, Sebastian Dröge (slomo)
committed Details | Review
asfdemux: Don't modify segment values on accurate seeks (4.79 KB, patch)
2016-03-08 11:29 UTC, Edward Hervey
committed Details | Review

Description Sebastian Dröge (slomo) 2015-09-23 14:33:41 UTC
See commit message
Comment 1 Sebastian Dröge (slomo) 2015-09-23 14:33:47 UTC
Created attachment 311950 [details] [review]
asfdemux: If pushing buffers returned EOS, go into the EOS and not failure code path

We don't want to unconditionally send an EOS event downstream, but might want
to send a SEGMENT_DONE message/event instead if a segment seek was done
before.
Comment 2 Vivia Nikolaidou 2015-09-23 14:56:14 UTC
Seems to work. Cannot really test it though, because I hit bug #755471
Comment 3 Vivia Nikolaidou 2015-09-23 17:17:01 UTC
Test file:
http://ahiru.eu/~vivia/cats_video.asf
Comment 4 Sebastian Dröge (slomo) 2015-09-23 17:39:36 UTC
Created attachment 311964 [details] [review]
asfdemux: Only push EOS event if we're not doing a segment seek
Comment 5 Sebastian Dröge (slomo) 2015-09-23 17:41:18 UTC
Created attachment 311965 [details] [review]
asfdemux: Only push EOS event if we're not doing a segment seek
Comment 6 Sebastian Dröge (slomo) 2015-09-23 18:26:07 UTC
Created attachment 311972 [details] [review]
asfdemux: Update segment.position when pushing buffers

Without this, non-flushing seeks are not going to work well.
Comment 7 Sebastian Dröge (slomo) 2015-09-23 18:31:22 UTC
Created attachment 311973 [details] [review]
asfdemux: Only change segment start to a keyframe for KEYUNIT seeks

Not for accurate seeks, which should accurately start at the requested
position.
Comment 8 Sebastian Dröge (slomo) 2015-09-23 18:46:14 UTC
Created attachment 311975 [details] [review]
asfdemux: Don't push any data on pads after the segment.stop
Comment 9 Vivia Nikolaidou 2015-09-23 19:41:24 UTC
Yep, works. Thanks!
Comment 10 Sebastian Dröge (slomo) 2015-09-24 07:35:02 UTC
All this is not a regression, so for after 1.6.0
Comment 11 Sebastian Dröge (slomo) 2015-09-25 22:26:44 UTC
commit 738e48ef49d2d77f539e1d1f4a4cdc15e1b81949
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Wed Sep 23 20:45:34 2015 +0200

    asfdemux: Don't push any data on pads after the segment.stop
    
    https://bugzilla.gnome.org/show_bug.cgi?id=755469

commit 155c8fc6a6af05c6f08cde5133cff79350be8243
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Wed Sep 23 20:30:21 2015 +0200

    asfdemux: Only change segment start to a keyframe for KEYUNIT seeks
    
    Not for accurate seeks, which should accurately start at the requested
    position.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=755469

commit f501188191c63bc531437d6311f46a9a7d535f6b
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Wed Sep 23 20:23:40 2015 +0200

    asfdemux: Update segment.position when pushing buffers
    
    Without this, non-flushing seeks are not going to work well.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=755469

commit c526153ec9341183eef05da6918e7e94bcd2db29
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Wed Sep 23 19:37:43 2015 +0200

    asfdemux: Only push EOS event if we're not doing a segment seek
    
    https://bugzilla.gnome.org/show_bug.cgi?id=755469

commit 42d7aec41224a240f6b9646c834edad123a1b186
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Wed Sep 23 16:31:28 2015 +0200

    asfdemux: If pushing buffers returned EOS, go into the EOS and not failure code path
    
    We don't want to unconditionally send an EOS event downstream, but might want
    to send a SEGMENT_DONE message/event instead if a segment seek was done
    before.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=755469
Comment 12 Edward Hervey 2016-03-08 11:04:23 UTC
Review of attachment 311973 [details] [review]:

This commit seems to have broken accurate seeking on asfdemux.
Comment 13 Edward Hervey 2016-03-08 11:04:59 UTC
This introduced a regression with accurate seek handling.
Comment 14 Edward Hervey 2016-03-08 11:29:31 UTC
Created attachment 323382 [details] [review]
asfdemux: Don't modify segment values on accurate seeks

When dealing with accurate seeks, we want to return exactly the segment
that was requested by the seek event, and not adjust the values.
Comment 15 Edward Hervey 2016-03-08 14:13:54 UTC
commit dba14178ce6115b406ef86e356b1201463af5e2a
Author: Edward Hervey <edward@centricular.com>
Date:   Tue Mar 8 12:26:01 2016 +0100

    asfdemux: Don't modify segment values on accurate seeks
    
    When dealing with accurate seeks, we want to return exactly the segment
    that was requested by the seek event, and not adjust the values.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=755469