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 768272 - oggdemux: Reverse keyframe seek doesn't work
oggdemux: Reverse keyframe seek doesn't work
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-07-01 09:21 UTC by Edward Hervey
Modified: 2018-11-03 11:46 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Edward Hervey 2016-07-01 09:21:37 UTC
How to reproduce :
USE_PLAYBIN3=1 gst-validate-launcher -S -m -t validate.file.playback.reverse_playback 

oggdemux will fail to find the appropriate previous keyframe for the requested seek position (10s).

This results in oggdemux pushing a lot of non-keyframe theora packets downstream, eventually causing multiqueue to deadlock downstream (theoradec drops everything, video stream never prerolls, audio stream blocks, boom).

Initial analysis seems to be that gst_ogg_demux_do_seek() should be using gst_ogg_demux_get_prev_page() instead of _next_page() when looking for the target granule (containing a keyframe).
Comment 1 Edward Hervey 2016-07-01 09:22:11 UTC
This could be related to (or the same as) #706063
Comment 2 Edward Hervey 2016-07-01 14:59:35 UTC
The file it's testing is 10s, and it's doing a reverse keyframe seek with a stop position of 10s.

The issue at hand doesn't happen when seeking before the end (i.e. where there is a keyframe just after).
Comment 3 Vincent Penquerc'h 2016-07-06 10:31:13 UTC
Seems to pass here (except an avi file) with your command, and latest core and -base.
Comment 4 GStreamer system administrator 2018-11-03 11:46:56 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/273.