add assets to layer and adjust position and duration (closes #45)
authorJens Göpfert <mail@jensgoepfert.de>
Thu, 29 Nov 2018 18:12:24 +0000 (19:12 +0100)
committerThibault Saunier <tsaunier@igalia.com>
Tue, 3 Mar 2020 12:27:33 +0000 (12:27 +0000)
examples/c/concatenate.c

index f84dea174d19e0e9bd50b8a1e4a997c0e463891a..3a0f54e510031293e97f5b30759f8acffeb74e0e 100644 (file)
@@ -27,7 +27,9 @@ bus_message_cb (GstBus * bus, GstMessage * message, GMainLoop * mainloop);
 
 static GstEncodingProfile *make_profile_from_info (GstDiscovererInfo * info);
 
+GESLayer *layer = NULL;
 GESPipeline *pipeline = NULL;
+GESTimeline *timeline = NULL;
 gchar *output_uri = NULL;
 guint assetsCount = 0;
 guint assetsLoaded = 0;
@@ -37,16 +39,23 @@ asset_loaded_cb (GObject * source_object, GAsyncResult * res,
     GMainLoop * mainloop)
 {
   GError *error = NULL;
+  guint64 duration = 0;
 
   GESUriClipAsset *mfs =
       GES_URI_CLIP_ASSET (ges_asset_request_finish (res, &error));
 
   if (error) {
-    GST_WARNING ("error creating asseti %s", error->message);
+    GST_WARNING ("error creating asset %s", error->message);
 
     return;
   }
 
+  duration = ges_uri_clip_asset_get_duration (mfs);
+  ges_layer_add_asset (layer,
+      GES_ASSET (source_object),
+      ges_timeline_get_duration (timeline),
+      0, duration, ges_clip_asset_get_supported_formats (GES_CLIP_ASSET (mfs)));
+
   assetsLoaded++;
   /*
    * Check if we have loaded last asset and trigger concatenating
@@ -71,7 +80,6 @@ main (int argc, char **argv)
 {
   GMainLoop *mainloop = NULL;
   GESTimeline *timeline;
-  GESLayer *layer = NULL;
   GstBus *bus = NULL;
   guint i;