diff --git a/subprojects/gstreamer/libs/gst/base/gstbasesrc.c b/subprojects/gstreamer/libs/gst/base/gstbasesrc.c index 46842e88e3..a840b4ac24 100644 --- a/subprojects/gstreamer/libs/gst/base/gstbasesrc.c +++ b/subprojects/gstreamer/libs/gst/base/gstbasesrc.c @@ -2637,7 +2637,8 @@ retry_create: /* no need keep old buffer while in pause */ if (ret == GST_FLOW_OK && own_res_buf) - gst_buffer_unref (res_buf); + gst_clear_buffer (&res_buf); + gst_clear_buffer_list (&src->priv->pending_bufferlist); wait_ret = gst_base_src_wait_playing_unlocked (src); if (wait_ret != GST_FLOW_OK) { @@ -2655,7 +2656,8 @@ retry_create: if (G_UNLIKELY (g_atomic_int_get (&src->priv->has_pending_eos))) { if (ret == GST_FLOW_OK) { if (own_res_buf) - gst_buffer_unref (res_buf); + gst_clear_buffer (&res_buf); + gst_clear_buffer_list (&src->priv->pending_bufferlist); } src->priv->forced_eos = TRUE; goto eos;