summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Saunier <tsaunier@igalia.com>2021-01-15 15:26:36 -0300
committerThibault Saunier <tsaunier@igalia.com>2021-02-10 16:14:47 -0300
commit8094f8cd93ffa783c8902d08c9ec91850511237d (patch)
treee6addd9411b3cc58e7ff28e963f73f122162f0e4
parent410fd67045bc6f5d4e1f1c90fd702d858f23313e (diff)
validate: Handle passing timeline desc in .validatetest files
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-editing-services/-/merge_requests/227>
-rw-r--r--tools/ges-launcher.c12
-rw-r--r--tools/ges-validate.c2
-rw-r--r--tools/ges-validate.h1
-rw-r--r--tools/utils.c6
4 files changed, 21 insertions, 0 deletions
diff --git a/tools/ges-launcher.c b/tools/ges-launcher.c
index 72dda86c..acfd38eb 100644
--- a/tools/ges-launcher.c
+++ b/tools/ges-launcher.c
@@ -469,6 +469,7 @@ _set_rendering_details (GESLauncher * self)
GESLauncherParsedOptions *opts = &self->priv->parsed_options;
gboolean smart_profile = FALSE;
GESPipelineFlags cmode = ges_pipeline_get_mode (self->priv->pipeline);
+ GESProject *proj;
if (cmode & GES_PIPELINE_MODE_RENDER
|| cmode & GES_PIPELINE_MODE_SMART_RENDER) {
@@ -918,12 +919,23 @@ _run_pipeline (GESLauncher * self)
GESLauncherParsedOptions *opts = &self->priv->parsed_options;
if (!opts->load_path) {
+ g_clear_pointer (&opts->sanitized_timeline, &g_free);
if (ges_validate_activate (GST_PIPELINE (self->priv->pipeline),
self, opts) == FALSE) {
g_error ("Could not activate scenario %s", opts->scenario);
return FALSE;
}
+ if (opts->sanitized_timeline) {
+ GESProject *project = ges_project_new (opts->sanitized_timeline);
+
+ if (!ges_project_load (project, self->priv->timeline, NULL)) {
+ ges_printerr ("Could not load timeline: %s\n",
+ opts->sanitized_timeline);
+ return FALSE;
+ }
+ }
+
if (!_timeline_set_user_options (self, self->priv->timeline, NULL)) {
ges_printerr ("Could not properly set tracks\n");
return FALSE;
diff --git a/tools/ges-validate.c b/tools/ges-validate.c
index e07701cc..bde1c76f 100644
--- a/tools/ges-validate.c
+++ b/tools/ges-validate.c
@@ -183,6 +183,8 @@ ges_validate_activate (GstPipeline * pipeline, GESLauncher * launcher,
ges_launcher_parse_options (launcher, &ges_options_full, NULL, NULL,
NULL);
+ opts->sanitized_timeline =
+ sanitize_timeline_description (ges_options_full, opts);
g_strfreev (ges_options_full);
g_strfreev (ges_options);
}
diff --git a/tools/ges-validate.h b/tools/ges-validate.h
index 912f41d1..1bdc16aa 100644
--- a/tools/ges-validate.h
+++ b/tools/ges-validate.h
@@ -24,6 +24,7 @@
#include <gst/gst.h>
#include <ges/ges.h>
+#include "utils.h"
#include "ges-launcher.h"
G_BEGIN_DECLS
diff --git a/tools/utils.c b/tools/utils.c
index f9d08ecf..41710313 100644
--- a/tools/utils.c
+++ b/tools/utils.c
@@ -110,6 +110,12 @@ sanitize_timeline_description (gchar ** args, GESLauncherParsedOptions * opts)
prev_arg = args[i];
}
+ if (i == 1) {
+ g_free (string);
+
+ return NULL;
+ }
+
if (strstr (string, "+track")) {
gchar *res = g_strconcat ("ges:", string, NULL);
g_free (string);