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 595958 - Position not updated after a backwards gst_event_new_step()
Position not updated after a backwards gst_event_new_step()
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gstreamer (core)
git master
Other Linux
: Normal normal
: 0.10.29
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2009-09-22 13:57 UTC by Bastien Nocera
Modified: 2010-04-09 16:08 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
seek backwards debug patch (4.18 KB, patch)
2009-09-22 13:57 UTC, Bastien Nocera
none Details | Review
Add reverse-frame-stepping to the movie player (4.71 KB, patch)
2009-11-11 18:14 UTC, Bastien Nocera
committed Details | Review

Description Bastien Nocera 2009-09-22 13:57:36 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);
Comment 1 Bastien Nocera 2009-11-03 02:03:29 UTC
Disabling the videosink (and using fakesink) doesn't seem to work either.
Comment 2 Bastien Nocera 2009-11-11 18:14:15 UTC
Created attachment 147498 [details] [review]
Add reverse-frame-stepping to the movie player

** DEBUG version **
Comment 3 Bastien Nocera 2009-11-11 18:16:44 UTC
Still broken with the latest gstreamer and gst-plugins-base.
Comment 4 Bastien Nocera 2009-11-12 13:47:53 UTC
Comment on attachment 147498 [details] [review]
Add reverse-frame-stepping to the movie player

Committed to master, for testing.
Comment 5 Bastien Nocera 2009-11-13 15:10:53 UTC
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).
Comment 6 Bastien Nocera 2009-11-13 16:50:19 UTC
FYI, I updated the code in Totem so that the problem only shows up there when switching from reverse to forward position.
Comment 7 Wim Taymans 2009-11-16 10:53:17 UTC
What media file are you testing this with?
Comment 8 Wim Taymans 2009-11-16 15:01:00 UTC
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
Comment 9 Wim Taymans 2009-11-16 15:02:05 UTC
something else: when there is audio that does not support reverse playback, the position reporting will occasionally be wrong.
Comment 10 Wim Taymans 2010-04-09 16:08:43 UTC
Closing