libs/gst/base/gstbasesink.c: Don't send an async_start message during downwards state change if target state is less ...

Original commit message from CVS:
* libs/gst/base/gstbasesink.c:
Don't send an async_start message during downwards state change if target
state is less than READY
This commit is contained in:
Philippe Kalaf 2007-08-09 21:50:19 +00:00
parent 6473b0adc1
commit c99ddd944f
2 changed files with 16 additions and 6 deletions

View file

@ -1,3 +1,9 @@
2007-08-09 Philippe Kalaf <philippe.kalaf@collabora.co.uk>
* libs/gst/base/gstbasesink.c:
Don't send an async_start message during downwards state change if target
state is less than READY
2007-08-09 Thomas Vander Stichele <thomas at apestaart dot org>
translated by: Gabor Kelemen <kelemeng@gnome.hu>

View file

@ -2923,12 +2923,16 @@ gst_base_sink_change_state (GstElement * element, GstStateChange transition)
GST_DEBUG_OBJECT (basesink, "PLAYING to PAUSED, we are prerolled");
basesink->playing_async = FALSE;
} else {
GST_DEBUG_OBJECT (basesink, "PLAYING to PAUSED, need preroll");
basesink->playing_async = TRUE;
basesink->priv->commited = FALSE;
ret = GST_STATE_CHANGE_ASYNC;
gst_element_post_message (GST_ELEMENT_CAST (basesink),
gst_message_new_async_start (GST_OBJECT_CAST (basesink), FALSE));
if (GST_STATE_TARGET (GST_ELEMENT (basesink)) <= GST_STATE_READY) {
ret = GST_STATE_CHANGE_SUCCESS;
} else {
GST_DEBUG_OBJECT (basesink, "PLAYING to PAUSED, need preroll");
basesink->playing_async = TRUE;
basesink->priv->commited = FALSE;
ret = GST_STATE_CHANGE_ASYNC;
gst_element_post_message (GST_ELEMENT_CAST (basesink),
gst_message_new_async_start (GST_OBJECT_CAST (basesink), FALSE));
}
}
GST_DEBUG_OBJECT (basesink, "rendered: %" G_GUINT64_FORMAT
", dropped: %" G_GUINT64_FORMAT, basesink->priv->rendered,