mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-01-10 17:35:59 +00:00
gst/gstelement.c: We need to deactivate src pads first and then sink pads.
Original commit message from CVS: * gst/gstelement.c: (gst_element_pads_activate): We need to deactivate src pads first and then sink pads. The reason is the src pads might be blocking while holding the streaming lock, so we need to deactivate them first so that deactivating the sink pads doesn't block (since it will require the streaming lock).
This commit is contained in:
parent
201bdf7e27
commit
1f5a5c6bbe
2 changed files with 10 additions and 8 deletions
|
@ -1,3 +1,11 @@
|
|||
2006-06-22 Edward Hervey <edward@fluendo.com>
|
||||
|
||||
* gst/gstelement.c: (gst_element_pads_activate):
|
||||
We need to deactivate src pads first and then sink pads.
|
||||
The reason is the src pads might be blocking while holding the streaming
|
||||
lock, so we need to deactivate them first so that deactivating the sink
|
||||
pads doesn't block (since it will require the streaming lock).
|
||||
|
||||
2006-06-22 Wim Taymans <wim@fluendo.com>
|
||||
|
||||
* libs/gst/base/gstbasetransform.c:
|
||||
|
|
|
@ -2308,10 +2308,7 @@ gst_element_pads_activate (GstElement * element, gboolean active)
|
|||
g_value_init (&ret, G_TYPE_BOOLEAN);
|
||||
g_value_set_boolean (&ret, TRUE);
|
||||
|
||||
if (active)
|
||||
iter = gst_element_iterate_src_pads (element);
|
||||
else
|
||||
iter = gst_element_iterate_sink_pads (element);
|
||||
iter = gst_element_iterate_src_pads (element);
|
||||
fold_ok = iterator_fold_with_resync
|
||||
(iter, (GstIteratorFoldFunction) activate_pads, &ret, &active);
|
||||
gst_iterator_free (iter);
|
||||
|
@ -2320,10 +2317,7 @@ gst_element_pads_activate (GstElement * element, gboolean active)
|
|||
return FALSE;
|
||||
}
|
||||
|
||||
if (active)
|
||||
iter = gst_element_iterate_sink_pads (element);
|
||||
else
|
||||
iter = gst_element_iterate_src_pads (element);
|
||||
iter = gst_element_iterate_sink_pads (element);
|
||||
fold_ok = iterator_fold_with_resync
|
||||
(iter, (GstIteratorFoldFunction) activate_pads, &ret, &active);
|
||||
gst_iterator_free (iter);
|
||||
|
|
Loading…
Reference in a new issue