From 372ccb7943453080d05a7df9c765f17bd143c921 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Wed, 27 Apr 2016 09:21:31 +0300 Subject: [PATCH] manual: Fix buffer memory leak in appsrc example g_signal_emit_by_name() is not like gst_app_src_push_buffer() due to reference counting limitations of signals, it does *not* take ownership of the buffer. --- docs/manual/advanced-dataaccess.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/manual/advanced-dataaccess.xml b/docs/manual/advanced-dataaccess.xml index 4853f085e7..10f5d6befa 100644 --- a/docs/manual/advanced-dataaccess.xml +++ b/docs/manual/advanced-dataaccess.xml @@ -733,7 +733,7 @@ cb_need_data (GstElement *appsrc, /* this makes the image black/white */ gst_buffer_memset (buffer, 0, white ? 0xff : 0x0, size); - + white = !white; GST_BUFFER_PTS (buffer) = timestamp; @@ -742,6 +742,7 @@ cb_need_data (GstElement *appsrc, timestamp += GST_BUFFER_DURATION (buffer); g_signal_emit_by_name (appsrc, "push-buffer", buffer, &ret); + gst_buffer_unref (buffer); if (ret != GST_FLOW_OK) { /* something wrong, stop pushing */