GNOME Bugzilla – Bug 610060
Timeline sticks to end of video after it is played through and stops automatically.
Last modified: 2010-06-19 10:56:48 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.
Indeed, the timeline "jumps" back as if it was still playing (but it's not, according to the playback buttons).
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()
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.
Created attachment 156819 [details] [review] quick fix Does this make sense?
This bug report has a patch that needs to be reviewed, so setting the milestone.
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
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