From ee35cba6e837d961224a20b75273e2743fd4696a Mon Sep 17 00:00:00 2001 From: Mathieu Duponchelle Date: Tue, 10 Aug 2021 23:23:39 +0200 Subject: [PATCH] launcher: don't start the pipeline before we're done updating it Since 70e3b8ae2a8d13b50f52305b71cfa4b590bb63f6 the CommandLineFormatter also emit "loaded" so we ended up doing this twice, once as before in `run_pipeline` and another time in the `project:loaded` callback. Part-of: --- tools/ges-launcher.c | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/tools/ges-launcher.c b/tools/ges-launcher.c index f4609b1ef6..43d17d978c 100644 --- a/tools/ges-launcher.c +++ b/tools/ges-launcher.c @@ -692,12 +692,16 @@ _project_loaded_cb (GESProject * project, GESTimeline * timeline, self->priv->seenerrors = TRUE; g_application_quit (G_APPLICATION (self)); } - _timeline_set_user_options (self, timeline, project_uri); - if (project_uri) { + + if (!_timeline_set_user_options (self, timeline, project_uri)) { + g_error ("Failed to set user options on timeline\n"); + } else if (project_uri) { if (!_set_rendering_details (self)) g_error ("Failed to setup rendering details\n"); } + print_timeline (self->priv->timeline); + g_free (project_uri); if (!self->priv->seenerrors && opts->needs_set_state && @@ -947,22 +951,12 @@ _run_pipeline (GESLauncher * self) g_error ("Failed to setup rendering details\n"); return FALSE; } - - print_timeline (self->priv->timeline); } bus = gst_pipeline_get_bus (GST_PIPELINE (self->priv->pipeline)); gst_bus_add_signal_watch (bus); g_signal_connect (bus, "message", G_CALLBACK (bus_message_cb), self); - if (!opts->load_path) { - if (opts->needs_set_state - && gst_element_set_state (GST_ELEMENT (self->priv->pipeline), - GST_STATE_PLAYING) == GST_STATE_CHANGE_FAILURE) { - g_error ("Failed to start the pipeline\n"); - return FALSE; - } - } g_application_hold (G_APPLICATION (self)); return TRUE; -- 2.34.1