manual: Fix buffer memory leak in appsrc example
authorSebastian Dröge <sebastian@centricular.com>
Wed, 27 Apr 2016 06:21:31 +0000 (09:21 +0300)
committerSebastian Dröge <sebastian@centricular.com>
Wed, 27 Apr 2016 06:22:27 +0000 (09:22 +0300)
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

index 4853f08..10f5d6b 100644 (file)
@@ -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 */