gst-rtsp-server: Fix leak in appsrc2 example
authorMichael Gruner <michael.gruner@ridgerun.com>
Thu, 20 Jan 2022 23:13:36 +0000 (17:13 -0600)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 24 Jan 2022 01:25:57 +0000 (01:25 +0000)
In the need-data appsrc callback, a buffer is pulled from the
appsink. This buffer is then copied so that metadata is writable.
The copy is pushed to the appsrc but it doesn't take ownership
of the buffer so we need to manually unref it. The original buffer
is finally unreffed when the sample is freed.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1548>

subprojects/gst-rtsp-server/examples/test-appsrc2.c

index da2513a..7f94712 100644 (file)
@@ -63,6 +63,7 @@ need_data (GstElement * appsrc, guint unused, MyContext * ctx)
       GST_BUFFER_PTS (buffer) = pts;
       GST_BUFFER_DTS (buffer) = dts;
       g_signal_emit_by_name (appsrc, "push-buffer", buffer, &ret);
+      gst_buffer_unref (buffer);
     }
 
     /* we don't need the appsink sample anymore */