gst/gstbin.c (gst_bin_change_state): Fix state changes if a bin has no sinks.

Original commit message from CVS:
2005-05-14  Andy Wingo  <wingo@pobox.com>

* gst/gstbin.c (gst_bin_change_state): Fix state changes if a bin
has no sinks.
This commit is contained in:
Andy Wingo 2005-05-14 15:54:49 +00:00
parent 79d4977020
commit c967174c17
3 changed files with 14 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2005-05-14 Andy Wingo <wingo@pobox.com>
* gst/gstbin.c (gst_bin_change_state): Fix state changes if a bin
has no sinks.
2005-05-13 Andy Wingo <wingo@pobox.com>
* gst/gstutils.c (gst_element_link_pads): Instead of calling

View file

@ -229,6 +229,7 @@ This enum defines the standard flags that an element may have.
@GST_ELEMENT_SCHEDULER_PRIVATE1:
@GST_ELEMENT_SCHEDULER_PRIVATE2:
@GST_ELEMENT_LOCKED_STATE:
@GST_ELEMENT_IS_SINK:
@GST_ELEMENT_FLAG_LAST:
<!-- ##### MACRO GST_ELEMENT_NAME ##### -->

View file

@ -899,6 +899,14 @@ restart:
}
GST_UNLOCK (bin);
/* can be the case for a bin like ( identity ) */
if (g_queue_is_empty (elem_queue) && !g_queue_is_empty (temp)) {
GQueue *q = elem_queue;
elem_queue = temp;
temp = q;
}
/* second step, change state of elements in the queue */
while (!g_queue_is_empty (elem_queue)) {
GstElement *qelement;