GNOME Bugzilla – Bug 595958
Position not updated after a backwards gst_event_new_step()
Last modified: 2010-04-09 16:08:43 UTC
Created attachment 143698 [details] [review] seek backwards debug patch Using the attached patch, seeking backwards will step one frame back, but as the position isn't updated, will step forward one frame too. The 2nd message should have a different time, as we are one frame back. ** Message: playback direction to reverse (816449783116) ** Message: playback direction to forward (816449783116) Disabling sound output (to avoid the MP3 decoder not supporting reverse playback) does not help: g_object_set (bvw->priv->play, "flags", 0x00000015, NULL);
Disabling the videosink (and using fakesink) doesn't seem to work either.
Created attachment 147498 [details] [review] Add reverse-frame-stepping to the movie player ** DEBUG version **
Still broken with the latest gstreamer and gst-plugins-base.
Comment on attachment 147498 [details] [review] Add reverse-frame-stepping to the movie player Committed to master, for testing.
I can reproduce this with seek: $ GDK_NATIVE_WINDOWS=1 ./seek 16 <uri> 1. Press "Play", then "Pause" 2. Seek to somewhere where you'd notice differences in frames 3. Set play rate to -1.0 with the keyboard 4. Click on "Step" button in the step options multiple times 5. Set the play rate to 1.0 with the keyboard and focus out the spin button In 5., the frame will change to a later one (ie, the position isn't updated).
FYI, I updated the code in Totem so that the problem only shows up there when switching from reverse to forward position.
What media file are you testing this with?
Fixed two problems, one in -core another in gst-ffmpeg. After those fixes seek.c seems to behave correctly. commit 59bc425174bc46b29b2af7fffe4d932feb14b3b8 Author: Wim Taymans <wim.taymans@collabora.co.uk> Date: Mon Nov 16 13:54:16 2009 +0100 ffdec: remove clipping hack Remove a hack that seems to produce wrong clipping values. commit 9da89ef4e1aa6ed11d0bcf335fc9f2b9fadb28e9 Author: Wim Taymans <wim.taymans@collabora.co.uk> Date: Mon Nov 16 14:02:07 2009 +0100 basesink: fix position reporting Only update the current stream time after we checked if we got a new step event. This improves the position reporting by the sink. See #595958
something else: when there is audio that does not support reverse playback, the position reporting will occasionally be wrong.
Closing