bin: Fix iterator resync'ing

When we get GST_ITERATOR_RESYNC, we need to call gst_iterator_resync()
otherwise we will always get GST_ITERATOR_RESYNC (and that loop would
run forever).
This commit is contained in:
Edward Hervey 2016-10-08 17:23:08 +02:00 committed by Edward Hervey
parent ace418d226
commit d02e1d7f7d

View file

@ -3109,10 +3109,13 @@ undo:
GST_DEBUG_OBJECT (element,
"Bin failed to change state, switching children back to %s",
gst_element_state_get_name (current));
do {
while (TRUE) {
ret =
gst_iterator_foreach (it, &reset_state, GINT_TO_POINTER (current));
} while (ret == GST_ITERATOR_RESYNC);
if (ret != GST_ITERATOR_RESYNC)
break;
gst_iterator_resync (it);
}
gst_iterator_free (it);
}
goto done;