mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-20 23:36:38 +00:00
Revert "element: Call ->release_pad() to clean up pad"
This commit changes the request pad behaviour for plugins and applications.
Reopens Bug #402562
The proper fix for that bug is to keep track of created request pads.
This reverts commit a5e44ffffa
.
This commit is contained in:
parent
2a60eea4c4
commit
b39ccb5ac3
1 changed files with 1 additions and 13 deletions
|
@ -335,8 +335,6 @@ gst_element_release_request_pad (GstElement * element, GstPad * pad)
|
||||||
|
|
||||||
g_return_if_fail (GST_IS_ELEMENT (element));
|
g_return_if_fail (GST_IS_ELEMENT (element));
|
||||||
g_return_if_fail (GST_IS_PAD (pad));
|
g_return_if_fail (GST_IS_PAD (pad));
|
||||||
g_return_if_fail (GST_PAD_TEMPLATE_PRESENCE (GST_PAD_PAD_TEMPLATE (pad))
|
|
||||||
== GST_PAD_REQUEST);
|
|
||||||
|
|
||||||
oclass = GST_ELEMENT_GET_CLASS (element);
|
oclass = GST_ELEMENT_GET_CLASS (element);
|
||||||
|
|
||||||
|
@ -2960,9 +2958,6 @@ gst_element_dispose (GObject * object)
|
||||||
GstElement *element = GST_ELEMENT_CAST (object);
|
GstElement *element = GST_ELEMENT_CAST (object);
|
||||||
GstClock **clock_p;
|
GstClock **clock_p;
|
||||||
GstBus **bus_p;
|
GstBus **bus_p;
|
||||||
GstElementClass *oclass;
|
|
||||||
|
|
||||||
oclass = GST_ELEMENT_GET_CLASS (element);
|
|
||||||
|
|
||||||
GST_CAT_INFO_OBJECT (GST_CAT_REFCOUNTING, element, "dispose");
|
GST_CAT_INFO_OBJECT (GST_CAT_REFCOUNTING, element, "dispose");
|
||||||
|
|
||||||
|
@ -2973,14 +2968,7 @@ gst_element_dispose (GObject * object)
|
||||||
"removing %d pads", g_list_length (element->pads));
|
"removing %d pads", g_list_length (element->pads));
|
||||||
/* first we break all our links with the outside */
|
/* first we break all our links with the outside */
|
||||||
while (element->pads && element->pads->data) {
|
while (element->pads && element->pads->data) {
|
||||||
GstPad *pad = GST_PAD_CAST (element->pads->data);
|
|
||||||
|
|
||||||
/* don't call _remove_pad with NULL */
|
/* don't call _remove_pad with NULL */
|
||||||
if (oclass->release_pad && GST_PAD_PAD_TEMPLATE (pad) &&
|
|
||||||
GST_PAD_TEMPLATE_PRESENCE (GST_PAD_PAD_TEMPLATE (pad))
|
|
||||||
== GST_PAD_REQUEST)
|
|
||||||
(oclass->release_pad) (element, GST_PAD_CAST (element->pads->data));
|
|
||||||
else
|
|
||||||
gst_element_remove_pad (element, GST_PAD_CAST (element->pads->data));
|
gst_element_remove_pad (element, GST_PAD_CAST (element->pads->data));
|
||||||
}
|
}
|
||||||
if (G_UNLIKELY (element->pads != NULL)) {
|
if (G_UNLIKELY (element->pads != NULL)) {
|
||||||
|
|
Loading…
Reference in a new issue