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.
This commit is contained in:
Sebastian Dröge 2016-04-27 09:21:31 +03:00
parent 8daad351a4
commit a4db38ab05

View 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 */