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 1489a6d9a..4f2cb2ac6 100644 --- a/src/engines/gstenginepipeline.cpp +++ b/src/engines/gstenginepipeline.cpp @@ -565,7 +565,7 @@ gboolean GstEnginePipeline::BusCallback(GstBus*, GstMessage* msg, break; } - return FALSE; + return TRUE; } GstBusSyncReply GstEnginePipeline::BusCallbackSync(GstBus*, GstMessage* msg, @@ -1098,6 +1098,7 @@ void GstEnginePipeline::SourceSetupCallback(GstURIDecodeBin* bin, void GstEnginePipeline::TransitionToNext() { GstElement* old_decode_bin = uridecodebin_; + gst_object_ref(old_decode_bin); ignore_tags_ = true;