aggregator: always store or unref the buffer on the _chain function
authorThiago Santos <ts.santos@sisa.samsung.com>
Sat, 28 Jun 2014 12:34:05 +0000 (09:34 -0300)
committerTim-Philipp Müller <tim@centricular.com>
Sat, 2 Dec 2017 15:10:25 +0000 (15:10 +0000)
Otherwise it leaks, and it is very common to go to flushing when the
pipeline is stopping, leaking a buffer.

libs/gst/base/gstaggregator.c

index 67ba269..fc949ea 100644 (file)
@@ -1158,12 +1158,14 @@ _chain (GstPad * pad, GstObject * object, GstBuffer * buffer)
 
 flushing:
 
+  gst_buffer_unref (buffer);
   GST_DEBUG_OBJECT (aggpad, "We are flushing");
 
   return GST_FLOW_FLUSHING;
 
 eos:
 
+  gst_buffer_unref (buffer);
   GST_DEBUG_OBJECT (pad, "We are EOS already...");
 
   return GST_FLOW_EOS;