From dd3344fd2e88f88c4c184f4c963e8bad1117039e Mon Sep 17 00:00:00 2001 From: Edward Hervey Date: Wed, 17 Apr 2024 10:23:29 +0200 Subject: [PATCH] ges-pipeline: Configure encodebin before linking Modifying the `avoid-reencoding` property of `encodebin` could potentially cause it to reconfigure itself, in which case the source pad will be removed and then re-added. Therefore set that property *before* attempting to link to that pad. Fixes smart-render Part-of: --- subprojects/gst-editing-services/ges/ges-pipeline.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/subprojects/gst-editing-services/ges/ges-pipeline.c b/subprojects/gst-editing-services/ges/ges-pipeline.c index b7fa5da232..38a823880c 100644 --- a/subprojects/gst-editing-services/ges/ges-pipeline.c +++ b/subprojects/gst-editing-services/ges/ges-pipeline.c @@ -1270,6 +1270,8 @@ ges_pipeline_set_mode (GESPipeline * pipeline, GESPipelineFlags mode) return FALSE; } + g_object_set (pipeline->priv->encodebin, "avoid-reencoding", + !(!(mode & GES_PIPELINE_MODE_SMART_RENDER)), NULL); if (!gst_bin_add (GST_BIN_CAST (pipeline), pipeline->priv->encodebin)) { GST_ERROR_OBJECT (pipeline, "Couldn't add encodebin"); return FALSE; @@ -1294,8 +1296,6 @@ ges_pipeline_set_mode (GESPipeline * pipeline, GESPipelineFlags mode) GST_INFO_OBJECT (pipeline, "Using an muxing sink, not adding any sink element"); } - g_object_set (pipeline->priv->encodebin, "avoid-reencoding", - !(!(mode & GES_PIPELINE_MODE_SMART_RENDER)), NULL); } if (pipeline->priv->timeline) {