diff --git a/ChangeLog b/ChangeLog index e43cb172bd..fd513dee00 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-01-19 Edward Hervey + + * gst/gstelement.c: (gst_element_pads_activate): + When activating, do src pads first, then sink pads. + When de-activating, do sink pads first, then src pads. + 2006-01-19 Jan Schmidt * docs/gst/gstreamer-sections.txt: diff --git a/gst/gstelement.c b/gst/gstelement.c index c2ca06e119..95000c5f03 100644 --- a/gst/gstelement.c +++ b/gst/gstelement.c @@ -2279,7 +2279,10 @@ gst_element_pads_activate (GstElement * element, gboolean active) g_value_init (&ret, G_TYPE_BOOLEAN); g_value_set_boolean (&ret, TRUE); - iter = gst_element_iterate_src_pads (element); + if (active) + iter = gst_element_iterate_src_pads (element); + else + iter = gst_element_iterate_sink_pads (element); fold_ok = iterator_fold_with_resync (iter, (GstIteratorFoldFunction) activate_pads, &ret, &active); gst_iterator_free (iter); @@ -2288,7 +2291,10 @@ gst_element_pads_activate (GstElement * element, gboolean active) return FALSE; } - iter = gst_element_iterate_sink_pads (element); + if (active) + iter = gst_element_iterate_sink_pads (element); + else + iter = gst_element_iterate_src_pads (element); fold_ok = iterator_fold_with_resync (iter, (GstIteratorFoldFunction) activate_pads, &ret, &active); gst_iterator_free (iter);