videoaggregator: fix a refcount error when keeping the buffer
authorMatthew Waters <ystreet00@gmail.com>
Thu, 26 Jun 2014 14:09:08 +0000 (00:09 +1000)
committerMatthew Waters <ystreet00@gmail.com>
Thu, 26 Jun 2014 14:14:03 +0000 (00:14 +1000)
We take a ref on the pad's buffer at the beginning so we need to
unref when we are done in all cases.

gst-libs/gst/video/gstvideoaggregator.c

index 6010a52..2bc7e44 100644 (file)
@@ -806,6 +806,7 @@ gst_videoaggregator_reset (GstVideoAggregator * vagg)
     GstVideoAggregatorPad *p = l->data;
 
     gst_buffer_replace (&p->buffer, NULL);
+    gst_buffer_replace (&p->queued, NULL);
     p->start_time = -1;
     p->end_time = -1;
 
@@ -959,6 +960,7 @@ gst_videoaggregator_fill_queues (GstVideoAggregator * vagg,
       } else if (start_time >= output_end_time) {
         GST_DEBUG_OBJECT (pad, "Keeping buffer until %" GST_TIME_FORMAT,
             GST_TIME_ARGS (start_time));
+        gst_buffer_unref (buf);
         eos = FALSE;
       } else {
         GST_DEBUG_OBJECT (pad, "Too old buffer -- dropping");