return newpad;
}
+void
+gst_element_release_request_pad (GstElement *element, GstPad *pad)
+{
+ GstElementClass *oclass;
+
+ g_return_if_fail (GST_IS_ELEMENT (element));
+ g_return_if_fail (GST_IS_PAD (pad));
+
+ oclass = CLASS (element);
+ if (oclass->release_pad)
+ (oclass->release_pad) (element, pad);
+}
+
/**
* gst_element_set_name:
switch (return_val) {
case GST_STATE_FAILURE:
GST_DEBUG_ELEMENT (GST_CAT_STATES, element, "have failed change_state return");
- break;
+ goto exit;
case GST_STATE_ASYNC:
GST_DEBUG_ELEMENT (GST_CAT_STATES, element, "element will change state async");
- break;
+ goto exit;
case GST_STATE_SUCCESS:
/* Last thing we do is verify that a successful state change really
* did change the state... */
g_assert_not_reached ();
}
}
+exit:
return return_val;
}
GstElementStateReturn (*change_state) (GstElement *element);
/* request a new pad */
GstPad* (*request_new_pad) (GstElement *element, GstPadTemplate *templ, const gchar* name);
+ void (*release_pad) (GstElement *element, GstPad *pad);
};
void gst_element_class_add_pad_template (GstElementClass *klass, GstPadTemplate *templ);
GstPad* gst_element_get_pad (GstElement *element, const gchar *name);
GstPad* gst_element_get_static_pad (GstElement *element, const gchar *name);
GstPad* gst_element_get_request_pad (GstElement *element, const gchar *name);
+void gst_element_release_request_pad (GstElement *element, GstPad *pad);
GList* gst_element_get_pad_list (GstElement *element);
GstPad* gst_element_get_compatible_pad (GstElement *element, GstPad *pad);