Handle KeyboardInterrupt in the main program, not in the Player class
[vidi-player.git] / vidi / Timeline.py
index 48c6181..fe98677 100755 (executable)
@@ -43,17 +43,23 @@ class Timeline(object):
 
         self.layer = self.timeline.append_layer()
 
-    def add_clip(self, clip_uri, start_time, duration):
+        ges_pipeline = GES.Pipeline()
+        ges_pipeline.set_timeline(self.timeline)
+        self.player = Player(ges_pipeline)
+
+    def add_clip(self, clip_path, start_time, duration):
+        clip_uri = Gst.filename_to_uri(clip_path)
         asset = GES.UriClipAsset.request_sync(clip_uri)
         self.layer.add_asset(asset, start_time * Gst.SECOND, 0,
                              duration * Gst.SECOND, GES.TrackType.UNKNOWN)
 
     def play(self):
         self.timeline.commit()
+        self.player.play()
 
-        ges_pipeline = GES.Pipeline()
-        ges_pipeline.set_timeline(self.timeline)
-        Player(ges_pipeline).play()
+    def stop(self):
+        self.player.stop()
 
-    def save(self, uri):
+    def save(self, path):
+        uri = Gst.filename_to_uri(path)
         self.project.save(self.timeline, uri, None, False)