GNOME Bugzilla – Bug 755469
asfdemux: Non-flushing seeks don't work, broken segment seek handling and other seeking related issues
Last modified: 2016-03-11 15:56:12 UTC
See commit message
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.
Seems to work. Cannot really test it though, because I hit bug #755471
Test file: http://ahiru.eu/~vivia/cats_video.asf
Created attachment 311964 [details] [review] asfdemux: Only push EOS event if we're not doing a segment seek
Created attachment 311965 [details] [review] asfdemux: Only push EOS event if we're not doing a segment seek
Created attachment 311972 [details] [review] asfdemux: Update segment.position when pushing buffers Without this, non-flushing seeks are not going to work well.
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.
Created attachment 311975 [details] [review] asfdemux: Don't push any data on pads after the segment.stop
Yep, works. Thanks!
All this is not a regression, so for after 1.6.0
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
Review of attachment 311973 [details] [review]: This commit seems to have broken accurate seeking on asfdemux.
This introduced a regression with accurate seek handling.
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.
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