[gst-cvs] gstreamer: collectpads: reliably go to eos. Fixes #574160

Stefan Kost ensonic at kemper.freedesktop.org
Fri Mar 6 12:01:19 PST 2009


Module: gstreamer
Branch: master
Commit: 436b0e72752e3bad45dd26f1d51b542d66334cc4
URL:    http://cgit.freedesktop.org/gstreamer/gstreamer/commit/?id=436b0e72752e3bad45dd26f1d51b542d66334cc4

Author: Stefan Kost <ensonic at users.sf.net>
Date:   Wed Mar  4 21:21:56 2009 +0200

collectpads: reliably go to eos. Fixes #574160

Update collectpads status when removing pads.

---

 libs/gst/base/gstcollectpads.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/libs/gst/base/gstcollectpads.c b/libs/gst/base/gstcollectpads.c
index a024abc..b6bf668 100644
--- a/libs/gst/base/gstcollectpads.c
+++ b/libs/gst/base/gstcollectpads.c
@@ -82,6 +82,7 @@ GST_BOILERPLATE (GstCollectPads, gst_collect_pads, GstObject, GST_TYPE_OBJECT);
 static void gst_collect_pads_clear (GstCollectPads * pads,
     GstCollectData * data);
 static GstFlowReturn gst_collect_pads_chain (GstPad * pad, GstBuffer * buffer);
+static GstFlowReturn gst_collect_pads_check_collected (GstCollectPads * pads);
 static gboolean gst_collect_pads_event (GstPad * pad, GstEvent * event);
 static void gst_collect_pads_finalize (GObject * object);
 static void gst_collect_pads_init (GstCollectPads * pads,
@@ -419,6 +420,11 @@ gst_collect_pads_remove_pad (GstCollectPads * pads, GstPad * pad)
 
   GST_COLLECT_PADS_PAD_UNLOCK (pads);
 
+  GST_OBJECT_LOCK (pad);
+  /* make sure we go to eos on last pad */
+  gst_collect_pads_check_collected (pads);
+  GST_OBJECT_UNLOCK (pad);
+
   return TRUE;
 
 unknown_pad:





More information about the Gstreamer-commits mailing list