GNOME Bugzilla – Bug 768272
oggdemux: Reverse keyframe seek doesn't work
Last modified: 2018-11-03 11:46:56 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).
This could be related to (or the same as) #706063
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).
Seems to pass here (except an avi file) with your command, and latest core and -base.
-- 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.