vidi/Timeline.py: add support for adding clips on their own layers
[vidi-player.git] / vidi / Timeline.py
index 43bb9c9..59c891a 100755 (executable)
@@ -43,18 +43,30 @@ class Timeline(object):
 
         self.layer = self.timeline.append_layer()
 
+        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 add_layer_clip(self, clip_path, start_time, duration):
+        """Add a clip on its own layer"""
+        clip_uri = Gst.filename_to_uri(clip_path)
+        asset = GES.UriClipAsset.request_sync(clip_uri)
+        new_layer = self.timeline.append_layer()
+        new_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, path):
         uri = Gst.filename_to_uri(path)