tee: First deactivate the pad and then remove it when releasing pads

This reverts a96002bb28, which is not
necessary anymore. If we release the pad after removing it then none of
the deactivation code will actually be called because the pad has no
parent anymore, and we require a parent on the pad for deactivation to
happen.

This can then, among other things, cause a streaming thread to be still
stuck in a pad probe because the pad was never flushed, and waiting
there forever because now the pad will actually never be flushed anymore.
This commit is contained in:
Sebastian Dröge 2019-10-25 01:41:27 +03:00 committed by Tim-Philipp Müller
parent dac5966da6
commit 44623cacd6

View file

@ -460,12 +460,8 @@ gst_tee_release_pad (GstElement * element, GstPad * pad)
}
GST_OBJECT_UNLOCK (tee);
gst_object_ref (pad);
gst_element_remove_pad (GST_ELEMENT_CAST (tee), pad);
gst_pad_set_active (pad, FALSE);
gst_object_unref (pad);
gst_element_remove_pad (GST_ELEMENT_CAST (tee), pad);
if (changed) {
gst_tee_notify_alloc_pad (tee);