From: Stefan Kost Date: Wed, 4 Mar 2009 19:21:56 +0000 (+0200) Subject: collectpads: reliably go to eos. Fixes #574160 X-Git-Tag: RELEASE-0.10.23~141 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=436b0e72752e3bad45dd26f1d51b542d66334cc4;p=platform%2Fupstream%2Fgstreamer.git collectpads: reliably go to eos. Fixes #574160 Update collectpads status when removing pads. --- diff --git a/libs/gst/base/gstcollectpads.c b/libs/gst/base/gstcollectpads.c index a024abc335..b6bf668635 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: