diff options
author | Vivia Nikolaidou <vivia@ahiru.eu> | 2021-03-08 20:59:14 +0200 |
---|---|---|
committer | Tim-Philipp Müller <tim@centricular.com> | 2021-03-12 00:09:39 +0000 |
commit | 390beb1c2e54315e147a72b0705de39bd5a3447f (patch) | |
tree | 89c7c517da8fb3aa085f83f0460a0acaa1a1ea84 /gst | |
parent | ae67bd6501ddf31a9c58bab26962f7e259af0052 (diff) | |
download | gstreamer-plugins-bad-390beb1c2e54315e147a72b0705de39bd5a3447f.tar.gz |
interlace: Discard stored_frame on EOS and PAUSED_TO_READY
Would otherwise leak it.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2067>
Diffstat (limited to 'gst')
-rw-r--r-- | gst/interlace/gstinterlace.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gst/interlace/gstinterlace.c b/gst/interlace/gstinterlace.c index ca1359928..896cab9e7 100644 --- a/gst/interlace/gstinterlace.c +++ b/gst/interlace/gstinterlace.c @@ -653,6 +653,10 @@ gst_interlace_sink_event (GstPad * pad, GstObject * parent, GstEvent * event) } #endif + if (interlace->stored_frame) { + gst_buffer_unref (interlace->stored_frame); + interlace->stored_frame = NULL; + } ret = gst_pad_push_event (interlace->srcpad, event); break; case GST_EVENT_CAPS: @@ -1446,6 +1450,9 @@ gst_interlace_change_state (GstElement * element, GstStateChange transition) case GST_STATE_CHANGE_PAUSED_TO_READY: g_mutex_lock (&interlace->lock); interlace->src_fps_n = 0; + if (interlace->stored_frame) { + gst_buffer_unref (interlace->stored_frame); + } g_mutex_unlock (&interlace->lock); /* why? */ //gst_interlace_reset (interlace); |