From 3def4a80f73ef16b670a945e424844eaeb825c8e Mon Sep 17 00:00:00 2001 From: Lukas Prediger Date: Wed, 10 Nov 2021 20:49:19 +0200 Subject: [PATCH 1/2] Ensuring that GstEnginePipeline decodebin is not dereferenced before its state is set to NULL. Fixes #7115 which resulted from previous commit. --- src/engines/gstelementdeleter.cpp | 1 + src/engines/gstenginepipeline.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/src/engines/gstelementdeleter.cpp b/src/engines/gstelementdeleter.cpp index 84dd516db..198d58a17 100644 --- a/src/engines/gstelementdeleter.cpp +++ b/src/engines/gstelementdeleter.cpp @@ -28,4 +28,5 @@ void GstElementDeleter::DeleteElementLater(GstElement* element) { void GstElementDeleter::DeleteElement(GstElement* element) { gst_element_set_state(element, GST_STATE_NULL); + gst_object_unref(element); } diff --git a/src/engines/gstenginepipeline.cpp b/src/engines/gstenginepipeline.cpp index b71592cb3..8237c73b1 100644 --- a/src/engines/gstenginepipeline.cpp +++ b/src/engines/gstenginepipeline.cpp @@ -1146,6 +1146,7 @@ void GstEnginePipeline::SourceSetupCallback(GstURIDecodeBin* bin, void GstEnginePipeline::TransitionToNext() { GstElement* old_decode_bin = uridecodebin_; + gst_object_ref(old_decode_bin); ignore_tags_ = true; From 14abde389ce0db756cdeaed693bdf402698f43d4 Mon Sep 17 00:00:00 2001 From: Lukas Prediger Date: Sat, 30 Oct 2021 15:03:43 +0300 Subject: [PATCH 2/2] Fix: GstEnginePipeline BusCallback erroneously returned false. --- src/engines/gstenginepipeline.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/engines/gstenginepipeline.cpp b/src/engines/gstenginepipeline.cpp index 8237c73b1..1eca9fdef 100644 --- a/src/engines/gstenginepipeline.cpp +++ b/src/engines/gstenginepipeline.cpp @@ -613,7 +613,7 @@ gboolean GstEnginePipeline::BusCallback(GstBus*, GstMessage* msg, break; } - return FALSE; + return TRUE; } GstBusSyncReply GstEnginePipeline::BusCallbackSync(GstBus*, GstMessage* msg,