Commit 4d4a60f6 authored by Wim Taymans's avatar Wim Taymans

check/gst/gstbin.c: Enable check that works now.

Original commit message from CVS:
* check/gst/gstbin.c: (GST_START_TEST):
Enable check that works now.

* gst/gstbin.c: (add_to_queue), (clear_queue), (reset_outdegree),
(update_outdegree), (find_element), (gst_bin_sort_iterator_next),
(gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free),
(gst_bin_iterate_sorted), (gst_bin_element_set_state),
(gst_bin_change_state):
* gst/gstbin.h:
Redid the state change algorithm using a topological sort algo.
Handles all cases correctly.
Exposed iterator for state change order.

* gst/gstelement.h:
Temp storage for state changes. Need to get rid of this soon.
parent 590a0cfb
2005-09-27 Wim Taymans <wim@fluendo.com>
* check/gst/gstbin.c: (GST_START_TEST):
Enable check that works now.
* gst/gstbin.c: (add_to_queue), (clear_queue), (reset_outdegree),
(update_outdegree), (find_element), (gst_bin_sort_iterator_next),
(gst_bin_sort_iterator_resync), (gst_bin_sort_iterator_free),
(gst_bin_iterate_sorted), (gst_bin_element_set_state),
(gst_bin_change_state):
* gst/gstbin.h:
Redid the state change algorithm using a topological sort algo.
Handles all cases correctly.
Exposed iterator for state change order.
* gst/gstelement.h:
Temp storage for state changes. Need to get rid of this soon.
2005-09-27 Wim Taymans <wim@fluendo.com>
* gst/elements/gsttee.c: (gst_tee_init), (gst_tee_do_push):
......
......@@ -630,8 +630,6 @@ GST_END_TEST;
GST_START_TEST (test_children_state_change_order_two_sink)
{
/* current algorithm does not handle these state changes correct */
#if 0
GstElement *src, *tee, *identity, *sink1, *sink2, *pipeline;
GstStateChangeReturn ret;
GstBus *bus;
......@@ -721,7 +719,6 @@ GST_START_TEST (test_children_state_change_order_two_sink)
ASSERT_OBJECT_REFCOUNT (pipeline, "pipeline", 1);
gst_object_unref (pipeline);
#endif
}
GST_END_TEST;
......
This diff is collapsed.
......@@ -127,6 +127,7 @@ GstElement* gst_bin_get_by_interface (GstBin *bin, GType interface);
/* retrieve multiple children */
GstIterator* gst_bin_iterate_elements (GstBin *bin);
GstIterator* gst_bin_iterate_sorted (GstBin *bin);
GstIterator* gst_bin_iterate_recurse (GstBin *bin);
GstIterator* gst_bin_iterate_sinks (GstBin *bin);
......
......@@ -304,6 +304,10 @@ struct _GstElement
GList *sinkpads;
guint32 pads_cookie;
/* used in bin state change to calculate number of connections
* on the srcpad */
gint outdegree;
/*< private >*/
gpointer _gst_reserved[GST_PADDING];
};
......
......@@ -630,8 +630,6 @@ GST_END_TEST;
GST_START_TEST (test_children_state_change_order_two_sink)
{
/* current algorithm does not handle these state changes correct */
#if 0
GstElement *src, *tee, *identity, *sink1, *sink2, *pipeline;
GstStateChangeReturn ret;
GstBus *bus;
......@@ -721,7 +719,6 @@ GST_START_TEST (test_children_state_change_order_two_sink)
ASSERT_OBJECT_REFCOUNT (pipeline, "pipeline", 1);
gst_object_unref (pipeline);
#endif
}
GST_END_TEST;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment