From: Aleix Conchillo Flaque Date: Wed, 19 Jun 2013 19:52:52 +0000 (-0700) Subject: shmsink: unref buffer if no clients are connected X-Git-Tag: 1.19.3~507^2~13393 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=44807dcc1a4052f460d06f3b9b29e45c12e17113;p=platform%2Fupstream%2Fgstreamer.git 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 --- diff --git a/sys/shm/gstshmsink.c b/sys/shm/gstshmsink.c index 1310847..cbebdf5 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;