Original commit message from CVS:
some object cleanup fixes
GST_DEBUG (GST_CAT_REFCOUNTING, "dispose\n");
+ if (gst_element_get_state (GST_ELEMENT (object)) == GST_STATE_PLAYING)
+ gst_element_set_state (GST_ELEMENT (object), GST_STATE_PAUSED);
+
if (bin->children) {
orig = children = g_list_copy (bin->children);
while (children) {
GST_DEBUG_ELEMENT (GST_CAT_REFCOUNTING, element, "dispose\n");
+ gst_element_set_state (element, GST_STATE_NULL);
+
/* first we break all our connections with the ouside */
if (element->pads) {
GList *orig;