[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