From 8094f8cd93ffa783c8902d08c9ec91850511237d Mon Sep 17 00:00:00 2001 From: Thibault Saunier Date: Fri, 15 Jan 2021 15:26:36 -0300 Subject: [PATCH] validate: Handle passing timeline desc in .validatetest files Part-of: --- tools/ges-launcher.c | 12 ++++++++++++ tools/ges-validate.c | 2 ++ tools/ges-validate.h | 1 + tools/utils.c | 6 ++++++ 4 files changed, 21 insertions(+) diff --git a/tools/ges-launcher.c b/tools/ges-launcher.c index 72dda86c57..acfd38eb71 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 e07701cc02..bde1c76f9f 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 912f41d18c..1bdc16aaab 100644 --- a/tools/ges-validate.h +++ b/tools/ges-validate.h @@ -24,6 +24,7 @@ #include #include +#include "utils.h" #include "ges-launcher.h" G_BEGIN_DECLS diff --git a/tools/utils.c b/tools/utils.c index f9d08ecf4f..4171031364 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);