diff --git a/ChangeLog b/ChangeLog index b44de284e2..f98c3a219a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2005-09-30 Wim Taymans + + * gst/gstelement.c: (gst_element_set_state), + (gst_element_change_state): + Small tweak, element in ASYNC remains ASYNC. + 2005-09-30 Wim Taymans * gst/base/gstbasesink.c: (gst_base_sink_change_state): diff --git a/gst/gstelement.c b/gst/gstelement.c index 6a368ddfb6..aeeb6eb3d7 100644 --- a/gst/gstelement.c +++ b/gst/gstelement.c @@ -1854,6 +1854,10 @@ gst_element_set_state (GstElement * element, GstState state) * the STATE_LOCK */ gst_element_commit_state (element); gst_element_lost_state (element); + if (state == GST_STATE_PENDING (element)) { + GST_STATE_UNLOCK (element); + return GST_STATE_CHANGE_ASYNC; + } } /* start with the current state */ @@ -2094,7 +2098,6 @@ was_ok: else return GST_STATE_CHANGE_SUCCESS; } - } /**