diff --git a/plugins/elements/gstfunnel.c b/plugins/elements/gstfunnel.c index a15a9e6fc6..fb4fafe366 100644 --- a/plugins/elements/gstfunnel.c +++ b/plugins/elements/gstfunnel.c @@ -229,16 +229,19 @@ gst_funnel_release_pad (GstElement * element, GstPad * pad) { GstFunnel *funnel = GST_FUNNEL (element); GstFunnelPad *fpad = GST_FUNNEL_PAD_CAST (pad); + gboolean got_eos; gboolean send_eos = FALSE; GST_DEBUG_OBJECT (funnel, "releasing pad"); gst_pad_set_active (pad, FALSE); + got_eos = fpad->got_eos; + gst_element_remove_pad (GST_ELEMENT_CAST (funnel), pad); GST_OBJECT_LOCK (funnel); - if (!fpad->got_eos && gst_funnel_all_sinkpads_eos_unlocked (funnel)) { + if (!got_eos && gst_funnel_all_sinkpads_eos_unlocked (funnel)) { GST_DEBUG_OBJECT (funnel, "Pad removed. All others are EOS. Sending EOS"); send_eos = TRUE; }