Check that collectpads exists before removing pad

The core now calls release pad from finalize, at which point
the collectpads might have already been freed.
This commit is contained in:
David Schleef 2011-02-20 23:57:19 -08:00
parent cad8a864ff
commit 6d8740476c
3 changed files with 10 additions and 3 deletions

View file

@ -588,7 +588,9 @@ mpegpsmux_release_pad (GstElement * element, GstPad * pad)
}
GST_OBJECT_UNLOCK (pad);
gst_collect_pads_remove_pad (mux->collect, pad);
if (mux->collect) {
gst_collect_pads_remove_pad (mux->collect, pad);
}
}
static gboolean

View file

@ -503,6 +503,7 @@ gst_qt_mux_finalize (GObject * object)
atoms_context_free (qtmux->context);
gst_object_unref (qtmux->collect);
qtmux->collect = NULL;
g_slist_free (qtmux->sinkpads);
@ -3165,7 +3166,9 @@ gst_qt_mux_release_pad (GstElement * element, GstPad * pad)
}
}
gst_collect_pads_remove_pad (mux->collect, pad);
if (mux->collect) {
gst_collect_pads_remove_pad (mux->collect, pad);
}
}
static GstPad *

View file

@ -1253,7 +1253,9 @@ gst_ssim_release_pad (GstElement * element, GstPad * pad)
GST_DEBUG_OBJECT (ssim, "release pad %s:%s", GST_DEBUG_PAD_NAME (pad));
gst_collect_pads_remove_pad (ssim->collect, pad);
if (ssim->collect) {
gst_collect_pads_remove_pad (ssim->collect, pad);
}
gst_element_remove_pad (element, pad);
}