diff --git a/subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c b/subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c index 9ab1fa9fc0..7904211f67 100644 --- a/subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c +++ b/subprojects/gst-plugins-base/gst/playback/gstdecodebin3.c @@ -745,6 +745,8 @@ gst_decodebin3_dispose (GObject * object) } INPUT_UNLOCK (dbin); + gst_clear_caps (&dbin->caps); + G_OBJECT_CLASS (parent_class)->dispose (object); } diff --git a/subprojects/gst-plugins-base/gst/playback/gsturidecodebin3.c b/subprojects/gst-plugins-base/gst/playback/gsturidecodebin3.c index 54f5e6e98b..7a50551074 100644 --- a/subprojects/gst-plugins-base/gst/playback/gsturidecodebin3.c +++ b/subprojects/gst-plugins-base/gst/playback/gsturidecodebin3.c @@ -945,6 +945,8 @@ gst_uri_decode_bin3_dispose (GObject * obj) g_mutex_clear (&dec->play_items_lock); + gst_clear_caps (&dec->caps); + G_OBJECT_CLASS (parent_class)->dispose (obj); } @@ -1308,6 +1310,7 @@ uri_src_probe (GstPad * pad, GstPadProbeInfo * info, GstSourcePad * srcpad) stream); gst_object_replace ((GstObject **) & srcpad->stream, (GstObject *) stream); + gst_object_unref (stream); } /* Remember whether upstream is selectable or not */ diff --git a/subprojects/gst-plugins-base/gst/playback/gsturisourcebin.c b/subprojects/gst-plugins-base/gst/playback/gsturisourcebin.c index 40a73cfeaa..fcbd2a411a 100644 --- a/subprojects/gst-plugins-base/gst/playback/gsturisourcebin.c +++ b/subprojects/gst-plugins-base/gst/playback/gsturisourcebin.c @@ -844,6 +844,7 @@ new_demuxer_pad_added_cb (GstElement * element, GstPad * pad, if (stream) { slot = find_replacement_slot (info, stream); + gst_object_unref (stream); if (slot) { GST_DEBUG_OBJECT (pad, "Can re-use slot %s:%s", GST_DEBUG_PAD_NAME (slot->originating_pad));