bin: never skip a state change to PLAYING

Never skip the state change to playing, even if the element is already in the
right state. We need this because we also distribute the base_time while doing
the state change and skipping this step would leave some elements without a new
base_time.

Fixes #600313
This commit is contained in:
Wim Taymans 2009-12-11 16:26:00 +01:00
parent a3fdb45aa6
commit f44d8c31de

View file

@ -2073,7 +2073,7 @@ gst_bin_element_set_state (GstBin * bin, GstElement * element,
/* Try not to change the state of elements that are already in the state we're
* going to */
if (!(child_pending != GST_STATE_VOID_PENDING ||
if (!(next == GST_STATE_PLAYING || child_pending != GST_STATE_VOID_PENDING ||
(child_pending == GST_STATE_VOID_PENDING &&
((pending > child_current && next > child_current) ||
(pending < child_current && next < child_current)))))