When releasing the request pad, first remove it from the element and then
deactivate it. If we do it the other way around, a gst_pad_push on the element
might return wrong-state before we had a chance to detect the removed pad in the
chain function.
}
GST_OBJECT_UNLOCK (tee);
- gst_pad_set_active (pad, FALSE);
-
+ gst_object_ref (pad);
gst_element_remove_pad (GST_ELEMENT_CAST (tee), pad);
+
+ gst_pad_set_active (pad, FALSE);
GST_TEE_DYN_UNLOCK (tee);
+ gst_object_unref (pad);
+
if (changed) {
gst_tee_notify_alloc_pad (tee);
}