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 610060 - Timeline sticks to end of video after it is played through and stops automatically.
Timeline sticks to end of video after it is played through and stops automati...
Status: RESOLVED FIXED
Product: pitivi
Classification: Other
Component: Timeline
Git
Other Linux
: Normal minor
: 0.13.5
Assigned To: Pitivi maintainers
Pitivi maintainers
Depends on:
Blocks:
 
 
Reported: 2010-02-16 03:35 UTC by Matt Mets
Modified: 2010-06-19 10:56 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
quick fix (1.53 KB, patch)
2010-03-22 23:50 UTC, DELETED
committed Details | Review

Description Matt Mets 2010-02-16 03:35:13 UTC
This bug occurs after playing through video, when the video has been stopped at the end of the last clip.  Any attempts to scroll backwards through the project on the timeline cause the timeline view to snap back to the end again.

Workaround: Click on the timeline ruler to change the position to a different position, which releases whatever is holding the timeline at the end position.
Comment 1 Jean-François Fortin Tam 2010-02-16 03:55:49 UTC
Indeed, the timeline "jumps" back as if it was still playing (but it's not, according to the playback buttons).
Comment 2 DELETED 2010-03-22 18:00:55 UTC
After receiving the signal 'eos' from the pipeline the state of the pipeline doesn't get changed. I really lack insight but it seems there's like one line missing (no idea though if that's the right place to do that ...):

diff --git a/pitivi/pipeline.py b/pitivi/pipeline.py
index 00a8929..f54d1fc 100644
--- a/pitivi/pipeline.py
+++ b/pitivi/pipeline.py
@@ -775,6 +775,7 @@ class Pipeline(Signallable, Loggable):
 
     def _busMessageCb(self, unused_bus, message):
         if message.type == gst.MESSAGE_EOS:
+            self.pause()
             self.emit('eos')
         elif message.type == gst.MESSAGE_STATE_CHANGED:
             prev, new, pending = message.parse_state_changed()
Comment 3 DELETED 2010-03-22 23:44:51 UTC
Also see the related bug 613625, because just pausing doesn't update the timeline/playhead so that the playhead is no at the end of the project after pausing.
Comment 4 DELETED 2010-03-22 23:50:09 UTC
Created attachment 156819 [details] [review]
quick fix

Does this make sense?
Comment 5 Jean-François Fortin Tam 2010-06-17 14:49:08 UTC
This bug report has a patch that needs to be reviewed, so setting the milestone.
Comment 6 Edward Hervey 2010-06-17 14:58:56 UTC
Review of attachment 156819 [details] [review]:

::: pitivi/pipeline.py
@@ +299,3 @@
+        try:
+            self.emit("position", self.getPosition())
+        except PipelineError:

Why are you protecting that line with a try/except ?

@@ +786,3 @@
     def _busMessageCb(self, unused_bus, message):
         if message.type == gst.MESSAGE_EOS:
+            self.pause()

looks good to me
Comment 7 Edward Hervey 2010-06-19 10:56:35 UTC
commit c1f195ceaa311cf1469882ad1ad8b560d98e9fcb
Author: Volker Sobek <reklov@live.com>
Date:   Mon Mar 22 19:03:34 2010 +0100

    Pause pipeline when receiving the 'eos' signal
    
    Also emit the 'position' signal after setting the state of a
    pipeline to PAUSED, to update the UI.
    
    Fixes
    https://bugzilla.gnome.org/show_bug.cgi?id=610060
    https://bugzilla.gnome.org/show_bug.cgi?id=613625