From 44807dcc1a4052f460d06f3b9b29e45c12e17113 Mon Sep 17 00:00:00 2001 From: Aleix Conchillo Flaque Date: Wed, 19 Jun 2013 12:52:52 -0700 Subject: [PATCH] shmsink: unref buffer if no clients are connected If no client has received the command, unref the buffer. This will make sure that the shared memory area does not get filled with buffers no one knows about. https://bugzilla.gnome.org/show_bug.cgi?id=702684 --- sys/shm/gstshmsink.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sys/shm/gstshmsink.c b/sys/shm/gstshmsink.c index 1310847d54..cbebdf5efe 100644 --- a/sys/shm/gstshmsink.c +++ b/sys/shm/gstshmsink.c @@ -743,7 +743,10 @@ gst_shm_sink_render (GstBaseSink * bsink, GstBuffer * buf) GST_OBJECT_UNLOCK (self); - if (rv == -1) { + if (rv == 0) { + GST_DEBUG_OBJECT (self, "No clients connected, unreffing buffer"); + gst_buffer_unref (sendbuf); + } else if (rv == -1) { GST_ELEMENT_ERROR (self, STREAM, FAILED, ("Invalid allocated buffer"), ("The shmpipe library rejects our buffer, this is a bug")); ret = GST_FLOW_ERROR; -- 2.34.1