From 616ccc6fdeff671024f519472315c1dd7c8f196a Mon Sep 17 00:00:00 2001 From: Jim Broadus Date: Fri, 25 Dec 2020 23:49:39 -0800 Subject: [PATCH] gstengine: Remove extra unref on element creation failure GstEngine::CreateElement unrefs the supplied bin if an error occurs. In all current cases, that bin is referenced by a pipeline. --- src/engines/gstengine.cpp | 1 - src/engines/gstenginepipeline.cpp | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engines/gstengine.cpp b/src/engines/gstengine.cpp index 932115978..ed5e1e8ea 100644 --- a/src/engines/gstengine.cpp +++ b/src/engines/gstengine.cpp @@ -763,7 +763,6 @@ GstElement* GstEngine::CreateElement(const QString& factoryName, "Please make sure that you have installed all necessary " "GStreamer plugins (e.g. OGG and MP3)") .arg(factoryName)); - if (bin) gst_object_unref(GST_OBJECT(bin)); return nullptr; } diff --git a/src/engines/gstenginepipeline.cpp b/src/engines/gstenginepipeline.cpp index 471da8217..6f36ce681 100644 --- a/src/engines/gstenginepipeline.cpp +++ b/src/engines/gstenginepipeline.cpp @@ -267,6 +267,7 @@ bool GstEnginePipeline::Init() { // Audio bin audiobin_ = gst_bin_new("audiobin"); + // Floating reference is transferred to pipeline gst_bin_add(GST_BIN(pipeline_), audiobin_); // Create the sink