From: Wim Taymans Date: Mon, 6 Dec 2010 18:18:31 +0000 (+0100) Subject: remove deprecated symbols and methods X-Git-Tag: RELEASE-0.11.0~610 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=993eda50045e3b6f86a5439f8fe82bd447ac4b69;p=platform%2Fupstream%2Fgstreamer.git remove deprecated symbols and methods --- diff --git a/docs/gst/gstreamer-sections.txt b/docs/gst/gstreamer-sections.txt index 6aab4f7..03e135c 100644 --- a/docs/gst/gstreamer-sections.txt +++ b/docs/gst/gstreamer-sections.txt @@ -65,7 +65,6 @@ gst_bin_recalculate_latency gst_bin_add_many gst_bin_remove_many gst_bin_find_unlinked_pad -gst_bin_find_unconnected_pad GstBinFlags @@ -191,7 +190,6 @@ gst_buffer_create_sub gst_buffer_is_span_fast gst_buffer_span -gst_buffer_stamp gst_buffer_join gst_buffer_merge @@ -275,7 +273,6 @@ GST_CAPS_REFCOUNT_VALUE GST_STATIC_CAPS_ANY GST_STATIC_CAPS_NONE GST_CAPS_IS_SIMPLE -GST_DEBUG_CAPS GST_STATIC_CAPS gst_caps_new_empty @@ -309,8 +306,6 @@ gst_caps_intersect gst_caps_union gst_caps_normalize gst_caps_do_simplify -gst_caps_save_thyself -gst_caps_load_thyself gst_caps_replace gst_caps_to_string gst_caps_from_string @@ -510,14 +505,12 @@ gst_element_class_add_pad_template gst_element_class_get_pad_template gst_element_class_get_pad_template_list gst_element_class_install_std_props -gst_element_class_set_details gst_element_class_set_details_simple gst_element_class_set_documentation_uri gst_element_class_set_icon_name gst_element_add_pad -gst_element_get_pad gst_element_create_all_pads gst_element_get_compatible_pad gst_element_get_compatible_pad_template @@ -1351,14 +1344,10 @@ gst_object_get_name gst_object_set_parent gst_object_get_parent gst_object_unparent -gst_object_get_name_prefix -gst_object_set_name_prefix gst_object_default_deep_notify gst_object_default_error gst_object_check_uniqueness gst_object_has_ancestor -gst_object_save_thyself -gst_object_restore_thyself gst_object_ref gst_object_unref gst_object_ref_sink @@ -1366,7 +1355,6 @@ gst_object_sink gst_object_replace gst_object_get_path_string gst_class_signal_connect -gst_class_signal_emit_by_name GST_OBJECT GST_IS_OBJECT @@ -1380,7 +1368,6 @@ GST_OBJECT_CLASS_CAST gst_object_get_type gst_object_flags_get_type -GstXmlNodePtr @@ -1532,13 +1519,6 @@ GstPadIterIntLinkFunction gst_pad_iterate_internal_links gst_pad_iterate_internal_links_default -gst_pad_set_internal_link_function -GstPadIntLinkFunction -gst_pad_get_internal_links -gst_pad_get_internal_links_default - -gst_pad_load_and_link - gst_pad_dispatcher GstPadDispatcherFunction @@ -1564,9 +1544,6 @@ GST_PAD_STREAM_TRYLOCK GST_PAD_STREAM_UNLOCK GST_PAD_STREAM_UNLOCK_FULL -GST_FLOW_IS_FATAL -GST_FLOW_IS_SUCCESS - GstPadClass GstPadPrivate @@ -1631,7 +1608,6 @@ GST_PAD_EVENTFUNC GST_PAD_FIXATECAPSFUNC GST_PAD_GETCAPSFUNC GST_PAD_GETRANGEFUNC -GST_PAD_INTLINKFUNC GST_PAD_ITERINTLINKFUNC GST_PAD_IS_FLUSHING GST_PAD_LINKFUNC @@ -1757,9 +1733,6 @@ gst_pipeline_get_clock gst_pipeline_use_clock gst_pipeline_auto_clock -gst_pipeline_set_new_stream_time -gst_pipeline_get_last_stream_time - gst_pipeline_set_auto_flush_bus gst_pipeline_get_auto_flush_bus @@ -2064,8 +2037,6 @@ GST_MAGIC_BINARY_VERSION_STR GST_MAGIC_BINARY_VERSION_LEN gst_registry_get_type GstRegistryPrivate -gst_registry_xml_read_cache -gst_registry_xml_write_cache @@ -2614,7 +2585,6 @@ GST_ROUND_DOWN_16 GST_ROUND_DOWN_32 GST_ROUND_DOWN_64 -gst_atomic_int_set gst_flow_get_name gst_flow_to_quark gst_print_element_args @@ -2823,29 +2793,3 @@ GST_VERSION_NANO GST_CHECK_VERSION - -
-gstxml -GstXML -GstXML - -gst_xml_write -gst_xml_write_file -gst_xml_new -gst_xml_parse_doc -gst_xml_parse_file -gst_xml_parse_memory -gst_xml_get_element -gst_xml_get_topelements -gst_xml_make_element - -GstXMLClass -GST_XML -GST_IS_XML -GST_XML_CLASS -GST_IS_XML_CLASS -GST_XML_GET_CLASS -GST_TYPE_XML - -gst_xml_get_type -
diff --git a/docs/gst/gstreamer.types.in b/docs/gst/gstreamer.types.in index 2bcd498..3ac4043 100644 --- a/docs/gst/gstreamer.types.in +++ b/docs/gst/gstreamer.types.in @@ -30,7 +30,6 @@ gst_tag_setter_get_type gst_task_get_type gst_type_find_factory_get_type gst_uri_handler_get_type -@GST_LOADSAVE_DOC_TYPES@gst_xml_get_type % these are not GObject derived types % this works with gtk-doc 1.10 at least diff --git a/docs/plugins/gstreamer-plugins.args b/docs/plugins/gstreamer-plugins.args index 3b0e6f1..6bc594b 100644 --- a/docs/plugins/gstreamer-plugins.args +++ b/docs/plugins/gstreamer-plugins.args @@ -894,7 +894,7 @@ [0,100] rw High percent -High threshold for buffering to finish. +High threshold for buffering to finish. Only used if use-buffering is True. 99 @@ -904,7 +904,7 @@ [0,100] rw Low percent -Low threshold for buffering to start. +Low threshold for buffering to start. Only used if use-buffering is True. 10 diff --git a/gst/Makefile.am b/gst/Makefile.am index 92ae4e4..9d0c752 100644 --- a/gst/Makefile.am +++ b/gst/Makefile.am @@ -1,11 +1,5 @@ lib_LTLIBRARIES = libgstreamer-@GST_MAJORMINOR@.la -if GST_DISABLE_LOADSAVE -GST_LOADSAVE_SRC = -else -GST_LOADSAVE_SRC = gstxml.c -endif - if GST_DISABLE_REGISTRY GST_REGISTRY_SRC = else @@ -44,7 +38,7 @@ built_header_make = gstenumtypes.h gstmarshal.h built_source_make = gstenumtypes.c gstmarshal.c EXTRA_libgstreamer_@GST_MAJORMINOR@_la_SOURCES = \ - gstmarshal.list gsttrace.c gstxml.c \ + gstmarshal.list gsttrace.c \ gstregistrybinary.c @@ -104,8 +98,7 @@ libgstreamer_@GST_MAJORMINOR@_la_SOURCES = \ gstutils.c \ gstvalue.c \ gstparse.c \ - $(GST_REGISTRY_SRC) \ - $(GST_LOADSAVE_SRC) + $(GST_REGISTRY_SRC) # do not put files in the distribution that are generated nodist_libgstreamer_@GST_MAJORMINOR@_la_SOURCES = $(built_source_make) @@ -193,8 +186,7 @@ gst_headers = \ gstutils.h \ gstvalue.h \ gstregistry.h \ - gstparse.h \ - gstxml.h + gstparse.h libgstreamer_@GST_MAJORMINOR@include_HEADERS = $(gst_headers) math-compat.h @@ -263,13 +255,11 @@ Gst-@GST_MAJORMINOR@.gir: $(INTROSPECTION_SCANNER) libgstreamer-@GST_MAJORMINOR@ --include=GLib-2.0 \ --include=GObject-2.0 \ --include=GModule-2.0 \ - --include=libxml2-2.0 \ --libtool="$(top_builddir)/libtool" \ --pkg glib-2.0 \ --pkg gobject-2.0 \ --pkg gmodule-no-export-2.0 \ --pkg gthread-2.0 \ - --pkg libxml-2.0 \ --pkg-export gstreamer-0.11 \ --output $@ \ $(gir_headers) \ diff --git a/gst/gst.h b/gst/gst.h index 6238dcf..9f91ca9 100644 --- a/gst/gst.h +++ b/gst/gst.h @@ -73,7 +73,6 @@ #include #include #include -#include #include diff --git a/gst/gstbin.c b/gst/gstbin.c index bb549a5..c6a8b13 100644 --- a/gst/gstbin.c +++ b/gst/gstbin.c @@ -162,7 +162,6 @@ #include "gstevent.h" #include "gstbin.h" #include "gstmarshal.h" -#include "gstxml.h" #include "gstinfo.h" #include "gsterror.h" @@ -171,18 +170,6 @@ #include "gstutils.h" #include "gstchildproxy.h" -#ifdef GST_DISABLE_DEPRECATED -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -#undef GstXmlNodePtr -#define GstXmlNodePtr xmlNodePtr -#include -GstXmlNodePtr gst_object_save_thyself (GstObject * object, - GstXmlNodePtr parent); -void gst_object_restore_thyself (GstObject * object, GstXmlNodePtr parent); -GstElement *gst_xml_make_element (xmlNodePtr cur, GstObject * parent); -#endif -#endif - /* enable for DURATION caching. * FIXME currently too many elements don't update * their duration when it changes so we return inaccurate values. */ @@ -262,11 +249,6 @@ static gboolean gst_bin_query (GstElement * element, GstQuery * query); static gboolean gst_bin_do_latency_func (GstBin * bin); -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -static xmlNodePtr gst_bin_save_thyself (GstObject * object, xmlNodePtr parent); -static void gst_bin_restore_thyself (GstObject * object, xmlNodePtr self); -#endif - static void bin_remove_messages (GstBin * bin, GstObject * src, GstMessageType types); static void gst_bin_continue_func (BinContinueData * data); @@ -491,15 +473,6 @@ gst_bin_class_init (GstBinClass * klass) gobject_class->dispose = gst_bin_dispose; -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) - gstobject_class->save_thyself = - ((gpointer (*)(GstObject * object, - gpointer self)) * GST_DEBUG_FUNCPTR (gst_bin_save_thyself)); - gstobject_class->restore_thyself = - ((void (*)(GstObject * object, - gpointer self)) *GST_DEBUG_FUNCPTR (gst_bin_restore_thyself)); -#endif - gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_bin_change_state_func); gstelement_class->get_state = GST_DEBUG_FUNCPTR (gst_bin_get_state_func); @@ -3831,58 +3804,3 @@ gst_bin_iterate_all_by_interface (GstBin * bin, GType iface) return result; } - -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -static xmlNodePtr -gst_bin_save_thyself (GstObject * object, xmlNodePtr parent) -{ - GstBin *bin = GST_BIN_CAST (object); - xmlNodePtr childlist, elementnode; - GList *children; - GstElement *child; - - if (GST_OBJECT_CLASS (parent_class)->save_thyself) - GST_OBJECT_CLASS (parent_class)->save_thyself (GST_OBJECT (bin), parent); - - childlist = xmlNewChild (parent, NULL, (xmlChar *) "children", NULL); - - GST_CAT_INFO (GST_CAT_XML, "[%s]: saving %d children", - GST_ELEMENT_NAME (bin), bin->numchildren); - - children = g_list_last (bin->children); - while (children) { - child = GST_ELEMENT_CAST (children->data); - elementnode = xmlNewChild (childlist, NULL, (xmlChar *) "element", NULL); - gst_object_save_thyself (GST_OBJECT (child), elementnode); - children = g_list_previous (children); - } - return childlist; -} - -static void -gst_bin_restore_thyself (GstObject * object, xmlNodePtr self) -{ - GstBin *bin = GST_BIN_CAST (object); - xmlNodePtr field = self->xmlChildrenNode; - xmlNodePtr childlist; - - while (field) { - if (!strcmp ((char *) field->name, "children")) { - GST_CAT_INFO (GST_CAT_XML, "[%s]: loading children", - GST_ELEMENT_NAME (object)); - childlist = field->xmlChildrenNode; - while (childlist) { - if (!strcmp ((char *) childlist->name, "element")) { - /* gst_xml_make_element will gst_bin_add() the element to ourself */ - gst_xml_make_element (childlist, GST_OBJECT (bin)); - } - childlist = childlist->next; - } - } - - field = field->next; - } - if (GST_OBJECT_CLASS (parent_class)->restore_thyself) - (GST_OBJECT_CLASS (parent_class)->restore_thyself) (object, self); -} -#endif /* GST_DISABLE_LOADSAVE */ diff --git a/gst/gstcaps.c b/gst/gstcaps.c index 822a6b0..0e01263 100644 --- a/gst/gstcaps.c +++ b/gst/gstcaps.c @@ -73,14 +73,6 @@ #include #include -#ifdef GST_DISABLE_DEPRECATED -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -#include -xmlNodePtr gst_caps_save_thyself (const GstCaps * caps, xmlNodePtr parent); -GstCaps *gst_caps_load_thyself (xmlNodePtr parent); -#endif -#endif - #define DEBUG_REFCOUNT #define CAPS_POISON(caps) G_STMT_START{ \ @@ -1960,47 +1952,6 @@ gst_caps_do_simplify (GstCaps * caps) return TRUE; } -/* persistence */ - -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -/** - * gst_caps_save_thyself: - * @caps: a #GstCaps structure - * @parent: a XML parent node - * - * Serializes a #GstCaps to XML and adds it as a child node of @parent. - * - * Returns: a XML node pointer - */ -xmlNodePtr -gst_caps_save_thyself (const GstCaps * caps, xmlNodePtr parent) -{ - char *s = gst_caps_to_string (caps); - - xmlNewChild (parent, NULL, (xmlChar *) "caps", (xmlChar *) s); - g_free (s); - return parent; -} - -/** - * gst_caps_load_thyself: - * @parent: a XML node - * - * Creates a #GstCaps from its XML serialization. - * - * Returns: a new #GstCaps structure - */ -GstCaps * -gst_caps_load_thyself (xmlNodePtr parent) -{ - if (strcmp ("caps", (char *) parent->name) == 0) { - return gst_caps_from_string ((gchar *) xmlNodeGetContent (parent)); - } - - return NULL; -} -#endif - /* utility */ /** diff --git a/gst/gstcaps.h b/gst/gstcaps.h index 47d1032..5c6fd1e 100644 --- a/gst/gstcaps.h +++ b/gst/gstcaps.h @@ -82,21 +82,6 @@ typedef enum { */ #define GST_CAPS_IS_SIMPLE(caps) (gst_caps_get_size(caps) == 1) -#ifndef GST_DISABLE_DEPRECATED -/** - * GST_DEBUG_CAPS: - * @string: a string that should be prepended to the caps data. - * @caps: the #GstCaps instance to print - * - * Convenience macro for printing out the contents of caps with GST_DEBUG(). - * - * Deprecated: do not use anymore - */ -#define GST_DEBUG_CAPS(string, caps) \ - GST_DEBUG ( string "%s: " GST_PTR_FORMAT, caps) - -#endif /* GST_DISABLE_DEPRECATED */ - /** * GST_STATIC_CAPS: * @string: the string describing the caps @@ -244,12 +229,6 @@ GstCaps * gst_caps_union (const GstCaps *caps1, GstCaps * gst_caps_normalize (const GstCaps *caps); gboolean gst_caps_do_simplify (GstCaps *caps); -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_DISABLE_DEPRECATED) -xmlNodePtr gst_caps_save_thyself (const GstCaps *caps, - xmlNodePtr parent); -GstCaps * gst_caps_load_thyself (xmlNodePtr parent); -#endif - /* utility */ void gst_caps_replace (GstCaps **caps, GstCaps *newcaps); diff --git a/gst/gstconfig.h.in b/gst/gstconfig.h.in index e23ea03..5137a30 100644 --- a/gst/gstconfig.h.in +++ b/gst/gstconfig.h.in @@ -194,9 +194,6 @@ /* FIXME: move include to where we need it */ /*#if (! (defined(GST_DISABLE_LOADSAVE) && defined(GST_DISABLE_REGISTRY)) )*/ #ifndef GST_DISABLE_XML -#ifndef GST_DISABLE_DEPRECATED -# include -#endif #else /* FIXME: 0.11 (replace by GST_DISABLE_XML) */ # define GST_DISABLE_LOADSAVE_REGISTRY diff --git a/gst/gstelement.c b/gst/gstelement.c index 49e8b0b..4e894c5 100644 --- a/gst/gstelement.c +++ b/gst/gstelement.c @@ -109,16 +109,6 @@ enum /* FILL ME */ }; -#ifdef GST_DISABLE_DEPRECATED -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -#include -xmlNodePtr gst_object_save_thyself (const GstObject * object, - xmlNodePtr parent); -GstObject *gst_object_load_thyself (xmlNodePtr parent); -void gst_pad_load_and_link (xmlNodePtr self, GstObject * parent); -#endif -#endif - static void gst_element_class_init (GstElementClass * klass); static void gst_element_init (GstElement * element); static void gst_element_base_class_init (gpointer g_class); @@ -144,12 +134,6 @@ static GstPadTemplate * gst_element_class_get_request_pad_template (GstElementClass * element_class, const gchar * name); -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -static xmlNodePtr gst_element_save_thyself (GstObject * object, - xmlNodePtr parent); -static void gst_element_restore_thyself (GstObject * parent, xmlNodePtr self); -#endif - static GstObjectClass *parent_class = NULL; static guint gst_element_signals[LAST_SIGNAL] = { 0 }; @@ -233,15 +217,6 @@ gst_element_class_init (GstElementClass * klass) gobject_class->dispose = gst_element_dispose; gobject_class->finalize = gst_element_finalize; -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) - gstobject_class->save_thyself = - ((gpointer (*)(GstObject * object, - gpointer self)) * GST_DEBUG_FUNCPTR (gst_element_save_thyself)); - gstobject_class->restore_thyself = - ((void (*)(GstObject * object, - gpointer self)) *GST_DEBUG_FUNCPTR (gst_element_restore_thyself)); -#endif - klass->change_state = GST_DEBUG_FUNCPTR (gst_element_change_state_func); klass->set_state = GST_DEBUG_FUNCPTR (gst_element_set_state_func); klass->get_state = GST_DEBUG_FUNCPTR (gst_element_get_state_func); @@ -1072,42 +1047,6 @@ gst_element_get_request_pad (GstElement * element, const gchar * name) return pad; } -/** - * gst_element_get_pad: - * @element: a #GstElement. - * @name: the name of the pad to retrieve. - * - * Retrieves a pad from @element by name. Tries gst_element_get_static_pad() - * first, then gst_element_get_request_pad(). - * - * Deprecated: This function is deprecated as it's unclear if the reference - * to the result pad should be released with gst_object_unref() in case of a static pad - * or gst_element_release_request_pad() in case of a request pad. - * Use gst_element_get_static_pad() or gst_element_get_request_pad() instead. - * - * Returns: the #GstPad if found, otherwise %NULL. Unref or Release after usage, - * depending on the type of the pad. - */ -#ifndef GST_REMOVE_DEPRECATED -#ifdef GST_DISABLE_DEPRECATED -GstPad *gst_element_get_pad (GstElement * element, const gchar * name); -#endif -GstPad * -gst_element_get_pad (GstElement * element, const gchar * name) -{ - GstPad *pad; - - g_return_val_if_fail (GST_IS_ELEMENT (element), NULL); - g_return_val_if_fail (name != NULL, NULL); - - pad = gst_element_get_static_pad (element, name); - if (!pad) - pad = gst_element_get_request_pad (element, name); - - return pad; -} -#endif /* GST_REMOVE_DEPRECATED */ - static GstIteratorItem iterate_pad (GstIterator * it, GstPad * pad) { @@ -1270,36 +1209,6 @@ gst_element_class_set_icon_name (GstElementClass * klass, const gchar * name) gst_element_class_add_meta_data (klass, "icon-name", name); } -/* FIXME-0.11: deprecate and remove gst_element_class_set_details*() */ -/** - * gst_element_class_set_details: - * @klass: class to set details for - * @details: details to set - * - * Sets the detailed information for a #GstElementClass. - * This function is for use in _base_init functions only. - * - * The @details are copied. - * - * Deprecated: Use gst_element_class_set_details_simple() instead. - */ -#ifndef GST_REMOVE_DEPRECATED -#ifdef GST_DISABLE_DEPRECATED -void -gst_element_class_set_details (GstElementClass * klass, - const GstElementDetails * details); -#endif -void -gst_element_class_set_details (GstElementClass * klass, - const GstElementDetails * details) -{ - g_return_if_fail (GST_IS_ELEMENT_CLASS (klass)); - g_return_if_fail (GST_IS_ELEMENT_DETAILS (details)); - - __gst_element_details_copy (&klass->details, details); -} -#endif - /** * gst_element_class_set_details_simple: * @klass: class to set details for @@ -2977,148 +2886,6 @@ gst_element_finalize (GObject * object) G_OBJECT_CLASS (parent_class)->finalize (object); } -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -/** - * gst_element_save_thyself: - * @element: a #GstElement to save. - * @parent: the xml parent node. - * - * Saves the element as part of the given XML structure. - * - * Returns: the new #xmlNodePtr. - */ -static xmlNodePtr -gst_element_save_thyself (GstObject * object, xmlNodePtr parent) -{ - GList *pads; - GstElementClass *oclass; - GParamSpec **specs, *spec; - guint nspecs; - guint i; - GValue value = { 0, }; - GstElement *element; - - g_return_val_if_fail (GST_IS_ELEMENT (object), parent); - - element = GST_ELEMENT_CAST (object); - - oclass = GST_ELEMENT_GET_CLASS (element); - - xmlNewChild (parent, NULL, (xmlChar *) "name", - (xmlChar *) GST_ELEMENT_NAME (element)); - - if (oclass->elementfactory != NULL) { - GstElementFactory *factory = (GstElementFactory *) oclass->elementfactory; - - xmlNewChild (parent, NULL, (xmlChar *) "type", - (xmlChar *) GST_PLUGIN_FEATURE (factory)->name); - } - - /* params */ - specs = g_object_class_list_properties (G_OBJECT_GET_CLASS (object), &nspecs); - - for (i = 0; i < nspecs; i++) { - spec = specs[i]; - if (spec->flags & G_PARAM_READABLE) { - xmlNodePtr param; - char *contents; - - g_value_init (&value, spec->value_type); - - g_object_get_property (G_OBJECT (element), spec->name, &value); - param = xmlNewChild (parent, NULL, (xmlChar *) "param", NULL); - xmlNewChild (param, NULL, (xmlChar *) "name", (xmlChar *) spec->name); - - if (G_IS_PARAM_SPEC_STRING (spec)) - contents = g_value_dup_string (&value); - else if (G_IS_PARAM_SPEC_ENUM (spec)) - contents = g_strdup_printf ("%d", g_value_get_enum (&value)); - else if (G_IS_PARAM_SPEC_INT64 (spec)) - contents = g_strdup_printf ("%" G_GINT64_FORMAT, - g_value_get_int64 (&value)); - else if (GST_VALUE_HOLDS_STRUCTURE (&value)) { - if (g_value_get_boxed (&value) != NULL) { - contents = g_strdup_value_contents (&value); - } else { - contents = g_strdup ("NULL"); - } - } else - contents = g_strdup_value_contents (&value); - - xmlNewChild (param, NULL, (xmlChar *) "value", (xmlChar *) contents); - g_free (contents); - - g_value_unset (&value); - } - } - - g_free (specs); - - pads = g_list_last (GST_ELEMENT_PADS (element)); - - while (pads) { - GstPad *pad = GST_PAD_CAST (pads->data); - - /* figure out if it's a direct pad or a ghostpad */ - if (GST_ELEMENT_CAST (GST_OBJECT_PARENT (pad)) == element) { - xmlNodePtr padtag = xmlNewChild (parent, NULL, (xmlChar *) "pad", NULL); - - gst_object_save_thyself (GST_OBJECT_CAST (pad), padtag); - } - pads = g_list_previous (pads); - } - - return parent; -} - -static void -gst_element_restore_thyself (GstObject * object, xmlNodePtr self) -{ - xmlNodePtr children; - GstElement *element; - gchar *name = NULL; - gchar *value = NULL; - - element = GST_ELEMENT_CAST (object); - g_return_if_fail (element != NULL); - - /* parameters */ - children = self->xmlChildrenNode; - while (children) { - if (!strcmp ((char *) children->name, "param")) { - xmlNodePtr child = children->xmlChildrenNode; - - while (child) { - if (!strcmp ((char *) child->name, "name")) { - name = (gchar *) xmlNodeGetContent (child); - } else if (!strcmp ((char *) child->name, "value")) { - value = (gchar *) xmlNodeGetContent (child); - } - child = child->next; - } - /* FIXME: can this just be g_object_set ? */ - gst_util_set_object_arg (G_OBJECT (element), name, value); - /* g_object_set (G_OBJECT (element), name, value, NULL); */ - g_free (name); - g_free (value); - } - children = children->next; - } - - /* pads */ - children = self->xmlChildrenNode; - while (children) { - if (!strcmp ((char *) children->name, "pad")) { - gst_pad_load_and_link (children, GST_OBJECT_CAST (element)); - } - children = children->next; - } - - if (GST_OBJECT_CLASS (parent_class)->restore_thyself) - (GST_OBJECT_CLASS (parent_class)->restore_thyself) (object, self); -} -#endif /* GST_DISABLE_LOADSAVE */ - static void gst_element_set_bus_func (GstElement * element, GstBus * bus) { diff --git a/gst/gstelement.h b/gst/gstelement.h index 440350c..867a638 100644 --- a/gst/gstelement.h +++ b/gst/gstelement.h @@ -673,9 +673,6 @@ GList* gst_element_class_get_pad_template_list (GstElementClass /* element class meta data */ void gst_element_class_set_documentation_uri (GstElementClass * klass, const gchar *uri); void gst_element_class_set_icon_name (GstElementClass * klass, const gchar *name); -#ifndef GST_DISABLE_DEPRECATED -void gst_element_class_set_details (GstElementClass *klass, const GstElementDetails *details); -#endif void gst_element_class_set_details_simple (GstElementClass *klass, const gchar *longname, const gchar *classification, @@ -752,9 +749,6 @@ gboolean gst_element_add_pad (GstElement *element, Gs gboolean gst_element_remove_pad (GstElement *element, GstPad *pad); void gst_element_no_more_pads (GstElement *element); -#ifndef GST_DISABLE_DEPRECATED -GstPad* gst_element_get_pad (GstElement *element, const gchar *name); -#endif /* GST_DISABLE_DEPRECATED */ 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); diff --git a/gst/gstghostpad.c b/gst/gstghostpad.c index a126f7c..83d468c 100644 --- a/gst/gstghostpad.c +++ b/gst/gstghostpad.c @@ -77,14 +77,6 @@ static GstPad *gst_proxy_pad_get_target (GstPad * pad); static void gst_proxy_pad_dispose (GObject * object); static void gst_proxy_pad_finalize (GObject * object); -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -#ifdef GST_DISABLE_DEPRECATED -#include -#endif -static xmlNodePtr gst_proxy_pad_save_thyself (GstObject * object, - xmlNodePtr parent); -#endif - static void on_src_target_notify (GstPad * target, GParamSpec * unused, gpointer user_data); @@ -384,16 +376,6 @@ gst_proxy_pad_class_init (GstProxyPadClass * klass) gobject_class->dispose = gst_proxy_pad_dispose; gobject_class->finalize = gst_proxy_pad_finalize; -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) - { - GstObjectClass *gstobject_class = (GstObjectClass *) klass; - - gstobject_class->save_thyself = - ((gpointer (*)(GstObject * object, - gpointer self)) * - GST_DEBUG_FUNCPTR (gst_proxy_pad_save_thyself)); - } -#endif /* Register common function pointer descriptions */ GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_do_query_type); GST_DEBUG_REGISTER_FUNCPTR (gst_proxy_pad_do_event); @@ -462,60 +444,6 @@ gst_proxy_pad_init (GstProxyPad * ppad) gst_pad_set_unlink_function (pad, gst_proxy_pad_do_unlink); } -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -/** - * gst_proxy_pad_save_thyself: - * @pad: a ghost #GstPad to save. - * @parent: the parent #xmlNodePtr to save the description in. - * - * Saves the ghost pad into an xml representation. - * - * Returns: the #xmlNodePtr representation of the pad. - */ -static xmlNodePtr -gst_proxy_pad_save_thyself (GstObject * object, xmlNodePtr parent) -{ - xmlNodePtr self; - GstProxyPad *proxypad; - GstPad *pad; - GstPad *peer; - - g_return_val_if_fail (GST_IS_PROXY_PAD (object), NULL); - - self = xmlNewChild (parent, NULL, (xmlChar *) "ghostpad", NULL); - xmlNewChild (self, NULL, (xmlChar *) "name", - (xmlChar *) GST_OBJECT_NAME (object)); - xmlNewChild (self, NULL, (xmlChar *) "parent", - (xmlChar *) GST_OBJECT_NAME (GST_OBJECT_PARENT (object))); - - proxypad = GST_PROXY_PAD_CAST (object); - pad = GST_PAD_CAST (proxypad); - peer = GST_PAD_CAST (pad->peer); - - if (GST_IS_PAD (pad)) { - if (GST_PAD_IS_SRC (pad)) - xmlNewChild (self, NULL, (xmlChar *) "direction", (xmlChar *) "source"); - else if (GST_PAD_IS_SINK (pad)) - xmlNewChild (self, NULL, (xmlChar *) "direction", (xmlChar *) "sink"); - else - xmlNewChild (self, NULL, (xmlChar *) "direction", (xmlChar *) "unknown"); - } else { - xmlNewChild (self, NULL, (xmlChar *) "direction", (xmlChar *) "unknown"); - } - if (GST_IS_PAD (peer)) { - gchar *content = g_strdup_printf ("%s.%s", - GST_OBJECT_NAME (GST_PAD_PARENT (peer)), GST_PAD_NAME (peer)); - - xmlNewChild (self, NULL, (xmlChar *) "peer", (xmlChar *) content); - g_free (content); - } else { - xmlNewChild (self, NULL, (xmlChar *) "peer", NULL); - } - - return self; -} -#endif /* GST_DISABLE_LOADSAVE */ - /*********************************************************************** * Ghost pads, implemented as a pair of proxy pads (sort of) diff --git a/gst/gstobject.c b/gst/gstobject.c index 86948a6..da41cb0 100644 --- a/gst/gstobject.c +++ b/gst/gstobject.c @@ -104,9 +104,6 @@ enum { PARENT_SET, PARENT_UNSET, -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) - OBJECT_SAVED, -#endif DEEP_NOTIFY, LAST_SIGNAL }; @@ -134,10 +131,6 @@ typedef struct _GstSignalObjectClass GstSignalObjectClass; static GType gst_signal_object_get_type (void); -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -static guint gst_signal_object_signals[SO_LAST_SIGNAL] = { 0 }; -#endif - static void gst_object_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec); static void gst_object_get_property (GObject * object, guint prop_id, @@ -150,24 +143,6 @@ static void gst_object_finalize (GObject * object); static gboolean gst_object_set_name_default (GstObject * object); -#ifdef GST_DISABLE_DEPRECATED -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -#undef GstXmlNodePtr -#define GstXmlNodePtr xmlNodePtr -#include -GstXmlNodePtr gst_object_save_thyself (GstObject * object, - GstXmlNodePtr parent); -void gst_object_restore_thyself (GstObject * object, GstXmlNodePtr parent); -void gst_class_signal_emit_by_name (GstObject * object, const gchar * name, - GstXmlNodePtr self); -#endif -#endif - -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -static void gst_object_real_restore_thyself (GstObject * object, - GstXmlNodePtr self); -#endif - static GObjectClass *parent_class = NULL; static guint gst_object_signals[LAST_SIGNAL] = { 0 }; @@ -216,28 +191,6 @@ gst_object_class_init (GstObjectClass * klass) G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstObjectClass, parent_unset), NULL, NULL, g_cclosure_marshal_VOID__OBJECT, G_TYPE_NONE, 1, GST_TYPE_OBJECT); -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) - /** - * GstObject::object-saved: - * @gstobject: a #GstObject - * @xml_node: the xmlNodePtr of the parent node - * - * Trigered whenever a new object is saved to XML. You can connect to this - * signal to insert custom XML tags into the core XML. - */ - /* FIXME This should be the GType of xmlNodePtr instead of G_TYPE_POINTER - * (if libxml would use GObject) - */ - gst_object_signals[OBJECT_SAVED] = - g_signal_new ("object-saved", G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstObjectClass, object_saved), NULL, - NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); - - klass->restore_thyself = - ((void (*)(GstObject * object, - gpointer self)) *gst_object_real_restore_thyself); -#endif - /** * GstObject::deep-notify: * @gstobject: a #GstObject @@ -746,71 +699,6 @@ gst_object_get_name (GstObject * object) } /** - * gst_object_set_name_prefix: - * @object: a #GstObject - * @name_prefix: new name prefix of @object - * - * Sets the name prefix of @object to @name_prefix. - * This function makes a copy of the provided name prefix, so the caller - * retains ownership of the name prefix it sent. - * - * MT safe. This function grabs and releases @object's LOCK. - * - * Deprecated: deprecated because the name prefix has never actually been used - * for anything. - */ -#ifndef GST_REMOVE_DEPRECATED -#ifdef GST_DISABLE_DEPRECATED -void gst_object_set_name_prefix (GstObject * object, const gchar * name_prefix); -#endif -void -gst_object_set_name_prefix (GstObject * object, const gchar * name_prefix) -{ - g_return_if_fail (GST_IS_OBJECT (object)); - - GST_OBJECT_LOCK (object); - g_free (object->name_prefix); - object->name_prefix = g_strdup (name_prefix); /* NULL gives NULL */ - GST_OBJECT_UNLOCK (object); -} -#endif /* GST_REMOVE_DEPRECATED */ - -/** - * gst_object_get_name_prefix: - * @object: a #GstObject - * - * Returns a copy of the name prefix of @object. - * Caller should g_free() the return value after usage. - * For a prefixless object, this returns NULL, which you can safely g_free() - * as well. - * - * Returns: the name prefix of @object. g_free() after usage. - * - * MT safe. This function grabs and releases @object's LOCK. - * - * Deprecated: deprecated because the name prefix has never actually been used - * for anything. - */ -#ifndef GST_REMOVE_DEPRECATED -#ifdef GST_DISABLE_DEPRECATED -gchar *gst_object_get_name_prefix (GstObject * object); -#endif -gchar * -gst_object_get_name_prefix (GstObject * object) -{ - gchar *result = NULL; - - g_return_val_if_fail (GST_IS_OBJECT (object), NULL); - - GST_OBJECT_LOCK (object); - result = g_strdup (object->name_prefix); - GST_OBJECT_UNLOCK (object); - - return result; -} -#endif /* GST_REMOVE_DEPRECATED */ - -/** * gst_object_set_parent: * @object: a #GstObject * @parent: new parent of object @@ -1005,65 +893,6 @@ gst_object_check_uniqueness (GList * list, const gchar * name) } -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -/** - * gst_object_save_thyself: - * @object: a #GstObject to save - * @parent: The parent XML node to save @object into - * - * Saves @object into the parent XML node. - * - * Returns: the new xmlNodePtr with the saved object - */ -GstXmlNodePtr -gst_object_save_thyself (GstObject * object, GstXmlNodePtr parent) -{ - GstObjectClass *oclass; - - g_return_val_if_fail (GST_IS_OBJECT (object), parent); - g_return_val_if_fail (parent != NULL, parent); - - oclass = GST_OBJECT_GET_CLASS (object); - - if (oclass->save_thyself) - oclass->save_thyself (object, parent); - - g_signal_emit (object, gst_object_signals[OBJECT_SAVED], 0, parent); - - return parent; -} - -/** - * gst_object_restore_thyself: - * @object: a #GstObject to load into - * @self: The XML node to load @object from - * - * Restores @object with the data from the parent XML node. - */ -void -gst_object_restore_thyself (GstObject * object, GstXmlNodePtr self) -{ - GstObjectClass *oclass; - - g_return_if_fail (GST_IS_OBJECT (object)); - g_return_if_fail (self != NULL); - - oclass = GST_OBJECT_GET_CLASS (object); - - if (oclass->restore_thyself) - oclass->restore_thyself (object, self); -} - -static void -gst_object_real_restore_thyself (GstObject * object, GstXmlNodePtr self) -{ - g_return_if_fail (GST_IS_OBJECT (object)); - g_return_if_fail (self != NULL); - - gst_class_signal_emit_by_name (object, "object_loaded", self); -} -#endif /* GST_DISABLE_LOADSAVE */ - static void gst_object_set_property (GObject * object, guint prop_id, const GValue * value, GParamSpec * pspec) @@ -1194,11 +1023,6 @@ struct _GstSignalObjectClass { GObjectClass parent_class; - /* signals */ -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) - void (*object_loaded) (GstSignalObject * object, GstObject * new, - GstXmlNodePtr self); -#endif }; G_DEFINE_TYPE (GstSignalObject, gst_signal_object, G_TYPE_OBJECT); @@ -1208,13 +1032,6 @@ gst_signal_object_class_init (GstSignalObjectClass * klass) { parent_class = g_type_class_peek_parent (klass); -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) - gst_signal_object_signals[SO_OBJECT_LOADED] = - g_signal_new ("object-loaded", G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstSignalObjectClass, object_loaded), - NULL, NULL, gst_marshal_VOID__OBJECT_POINTER, G_TYPE_NONE, 2, - G_TYPE_OBJECT, G_TYPE_POINTER); -#endif } static void @@ -1242,25 +1059,3 @@ gst_class_signal_connect (GstObjectClass * klass, return g_signal_connect (klass->signal_object, name, G_CALLBACK (func), func_data); } - -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -/** - * gst_class_signal_emit_by_name: - * @object: a #GstObject that emits the signal - * @name: the name of the signal to emit - * @self: data for the signal - * - * emits the named class signal. - */ -void -gst_class_signal_emit_by_name (GstObject * object, - const gchar * name, GstXmlNodePtr self) -{ - GstObjectClass *oclass; - - oclass = GST_OBJECT_GET_CLASS (object); - - g_signal_emit_by_name (oclass->signal_object, name, object, self); -} - -#endif /* GST_DISABLE_LOADSAVE */ diff --git a/gst/gstobject.h b/gst/gstobject.h index b9c5206..4a7b96e 100644 --- a/gst/gstobject.h +++ b/gst/gstobject.h @@ -39,14 +39,6 @@ G_BEGIN_DECLS #define GST_OBJECT_CAST(obj) ((GstObject*)(obj)) #define GST_OBJECT_CLASS_CAST(klass) ((GstObjectClass*)(klass)) -/* make sure we don't change the object size but still make it compile - * without libxml */ -#if defined(GST_DISABLE_LOADSAVE) || defined(GST_DISABLE_DEPRECATED) -#define GstXmlNodePtr gpointer -#else -#define GstXmlNodePtr xmlNodePtr -#endif - /** * GstObjectFlags: * @GST_OBJECT_DISPOSING: the object is been destroyed, don't use it anymore @@ -247,10 +239,7 @@ struct _GstObject { * @lock: class lock to be used with GST_CLASS_GET_LOCK(), GST_CLASS_LOCK(), GST_CLASS_UNLOCK() and others. * @parent_set: default signal handler * @parent_unset: default signal handler - * @object_saved: default signal handler * @deep_notify: default signal handler - * @save_thyself: xml serialisation - * @restore_thyself: xml de-serialisation * * GStreamer base object class. */ @@ -267,15 +256,10 @@ struct _GstObjectClass { /* FIXME-0.11: remove, and pass NULL in g_signal_new(), we never used them */ void (*parent_set) (GstObject * object, GstObject * parent); void (*parent_unset) (GstObject * object, GstObject * parent); - /* FIXME 0.11: Remove this, it's deprecated */ - void (*object_saved) (GstObject * object, GstXmlNodePtr parent); void (*deep_notify) (GstObject * object, GstObject * orig, GParamSpec * pspec); /*< public >*/ /* virtual methods for subclasses */ - /* FIXME 0.11: Remove this, it's deprecated */ - GstXmlNodePtr (*save_thyself) (GstObject * object, GstXmlNodePtr parent); - void (*restore_thyself) (GstObject * object, GstXmlNodePtr self); /*< private >*/ gpointer _gst_reserved[GST_PADDING]; @@ -288,11 +272,6 @@ GType gst_object_get_type (void); gboolean gst_object_set_name (GstObject *object, const gchar *name); gchar* gst_object_get_name (GstObject *object); -#ifndef GST_DISABLE_DEPRECATED -void gst_object_set_name_prefix (GstObject *object, const gchar *name_prefix); -gchar* gst_object_get_name_prefix (GstObject *object); -#endif - /* parentage routines */ gboolean gst_object_set_parent (GstObject *object, GstObject *parent); GstObject* gst_object_get_parent (GstObject *object); @@ -317,37 +296,12 @@ gchar * gst_object_get_path_string (GstObject *object); /* misc utils */ gboolean gst_object_check_uniqueness (GList *list, const gchar *name); -/* load/save */ -#ifndef GST_DISABLE_DEPRECATED -#ifndef GST_DISABLE_LOADSAVE -GstXmlNodePtr gst_object_save_thyself (GstObject *object, GstXmlNodePtr parent); -void gst_object_restore_thyself (GstObject *object, GstXmlNodePtr self); -#else -#if defined __GNUC__ && __GNUC__ >= 3 -#pragma GCC poison gst_object_save_thyself -#pragma GCC poison gst_object_restore_thyself -#endif -#endif -#endif - /* class signal stuff */ guint gst_class_signal_connect (GstObjectClass *klass, const gchar *name, gpointer func, gpointer func_data); -#ifndef GST_DISABLE_DEPRECATED -#ifndef GST_DISABLE_LOADSAVE -void gst_class_signal_emit_by_name (GstObject * object, - const gchar * name, - GstXmlNodePtr self); -#else -#if defined __GNUC__ && __GNUC__ >= 3 -#pragma GCC poison gst_class_signal_emit_by_name -#endif -#endif -#endif - G_END_DECLS #endif /* __GST_OBJECT_H__ */ diff --git a/gst/gstpad.c b/gst/gstpad.c index cb9f8e0..ec43e17 100644 --- a/gst/gstpad.c +++ b/gst/gstpad.c @@ -132,23 +132,6 @@ static void gst_pad_set_pad_template (GstPad * pad, GstPadTemplate * templ); static gboolean gst_pad_activate_default (GstPad * pad); static gboolean gst_pad_acceptcaps_default (GstPad * pad, GstCaps * caps); -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -#ifdef GST_DISABLE_DEPRECATED -#include -#endif -static xmlNodePtr gst_pad_save_thyself (GstObject * object, xmlNodePtr parent); -void gst_pad_load_and_link (xmlNodePtr self, GstObject * parent); -#endif - -/* Some deprecated stuff that we need inside here for - * backwards compatibility */ -#ifdef GST_DISABLE_DEPRECATED -#ifndef GST_REMOVE_DEPRECATED -#define GST_PAD_INTLINKFUNC(pad) (GST_PAD_CAST(pad)->intlinkfunc) -GList *gst_pad_get_internal_links_default (GstPad * pad); -#endif -#endif - static GstObjectClass *parent_class = NULL; static guint gst_pad_signals[LAST_SIGNAL] = { 0 }; @@ -344,11 +327,6 @@ gst_pad_class_init (GstPadClass * klass) "The GstPadTemplate of this pad", GST_TYPE_PAD_TEMPLATE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) - gstobject_class->save_thyself = - ((gpointer (*)(GstObject * object, - gpointer self)) * GST_DEBUG_FUNCPTR (gst_pad_save_thyself)); -#endif gstobject_class->path_string_separator = "."; /* Register common function pointer descriptions */ @@ -356,9 +334,6 @@ gst_pad_class_init (GstPadClass * klass) GST_DEBUG_REGISTER_FUNCPTR (gst_pad_event_default); GST_DEBUG_REGISTER_FUNCPTR (gst_pad_get_query_types_default); GST_DEBUG_REGISTER_FUNCPTR (gst_pad_query_default); -#ifndef GST_REMOVE_DEPRECATED - GST_DEBUG_REGISTER_FUNCPTR (gst_pad_get_internal_links_default); -#endif GST_DEBUG_REGISTER_FUNCPTR (gst_pad_iterate_internal_links_default); GST_DEBUG_REGISTER_FUNCPTR (gst_pad_acceptcaps_default); @@ -384,9 +359,6 @@ gst_pad_init (GstPad * pad) GST_PAD_EVENTFUNC (pad) = gst_pad_event_default; GST_PAD_QUERYTYPEFUNC (pad) = gst_pad_get_query_types_default; GST_PAD_QUERYFUNC (pad) = gst_pad_query_default; -#ifndef GST_REMOVE_DEPRECATED - GST_PAD_INTLINKFUNC (pad) = gst_pad_get_internal_links_default; -#endif GST_PAD_ITERINTLINKFUNC (pad) = gst_pad_iterate_internal_links_default; GST_PAD_ACCEPTCAPSFUNC (pad) = gst_pad_acceptcaps_default; @@ -1491,32 +1463,6 @@ gst_pad_set_iterate_internal_links_function (GstPad * pad, } /** - * gst_pad_set_internal_link_function: - * @pad: a #GstPad of either direction. - * @intlink: the #GstPadIntLinkFunction to set. - * - * Sets the given internal link function for the pad. - * - * Deprecated: Use the thread-safe gst_pad_set_iterate_internal_links_function() - */ -#ifndef GST_REMOVE_DEPRECATED -#ifdef GST_DISABLE_DEPRECATED -void -gst_pad_set_internal_link_function (GstPad * pad, - GstPadIntLinkFunction intlink); -#endif -void -gst_pad_set_internal_link_function (GstPad * pad, GstPadIntLinkFunction intlink) -{ - g_return_if_fail (GST_IS_PAD (pad)); - - GST_PAD_INTLINKFUNC (pad) = intlink; - GST_CAT_DEBUG_OBJECT (GST_CAT_PADS, pad, "internal link set to %s", - GST_DEBUG_FUNCPTR_NAME (intlink)); -} -#endif /* GST_REMOVE_DEPRECATED */ - -/** * gst_pad_set_link_function: * @pad: a #GstPad. * @link: the #GstPadLinkFunction to set. @@ -3200,21 +3146,6 @@ gst_pad_alloc_buffer_and_set_caps (GstPad * pad, guint64 offset, gint size, } -#ifndef GST_REMOVE_DEPRECATED -typedef struct -{ - GList *list; - guint32 cookie; -} IntLinkIterData; - -static void -int_link_iter_data_free (IntLinkIterData * data) -{ - g_list_free (data->list); - g_slice_free (IntLinkIterData, data); -} -#endif - static GstIteratorItem iterate_pad (GstIterator * it, GstPad * pad) { @@ -3250,35 +3181,6 @@ gst_pad_iterate_internal_links_default (GstPad * pad) g_return_val_if_fail (GST_IS_PAD (pad), NULL); -#ifndef GST_REMOVE_DEPRECATED - /* when we get here, the default handler for the iterate links is called, - * which means that the user has not installed a custom one. We first check if - * there is maybe a custom legacy function we can call. */ - if (GST_PAD_INTLINKFUNC (pad) && - GST_PAD_INTLINKFUNC (pad) != gst_pad_get_internal_links_default) { - IntLinkIterData *data; - - /* make an iterator for the list. We can't protect the list with a - * cookie. If we would take the cookie of the parent element, we need to - * have a parent, which is not required for GST_PAD_INTLINKFUNC(). We could - * cache the per-pad list and invalidate the list when a new call to - * INTLINKFUNC() returned a different list but then this would only work if - * two concurrent iterators were used and the last iterator would still be - * thread-unsafe. Just don't use this method anymore. */ - data = g_slice_new (IntLinkIterData); - data->list = GST_PAD_INTLINKFUNC (pad) (pad); - data->cookie = 0; - - GST_WARNING_OBJECT (pad, "Making unsafe iterator"); - - cookie = &data->cookie; - padlist = &data->list; - owner = data; - dispose = (GstIteratorDisposeFunction) int_link_iter_data_free; - /* reuse the pad lock, it's all we have here */ - lock = GST_OBJECT_GET_LOCK (pad); - } else -#endif { GstElement *parent; @@ -3346,151 +3248,6 @@ gst_pad_iterate_internal_links (GstPad * pad) return res; } -#ifndef GST_REMOVE_DEPRECATED -static void -add_unref_pad_to_list (GstPad * pad, GList ** list) -{ - *list = g_list_prepend (*list, pad); - gst_object_unref (pad); -} -#endif - -/** - * gst_pad_get_internal_links_default: - * @pad: the #GstPad to get the internal links of. - * - * Gets a list of pads to which the given pad is linked to - * inside of the parent element. - * This is the default handler, and thus returns a list of all of the - * pads inside the parent element with opposite direction. - * - * The caller must free this list after use with g_list_free(). - * - * Returns: a newly allocated #GList of pads, or NULL if the pad has no parent. - * - * Not MT safe. - * - * Deprecated: This function does not ref the pads in the list so that they - * could become invalid by the time the application accesses them. It's also - * possible that the list changes while handling the pads, which the caller of - * this function is unable to know. Use the thread-safe - * gst_pad_iterate_internal_links_default() instead. - */ -#ifndef GST_REMOVE_DEPRECATED -GList * -gst_pad_get_internal_links_default (GstPad * pad) -{ - GList *res = NULL; - GstElement *parent; - - g_return_val_if_fail (GST_IS_PAD (pad), NULL); - - GST_WARNING_OBJECT (pad, "Unsafe internal links used"); - - /* when we get here, the default handler for get_internal_links is called, - * which means that the user has not installed a custom one. We first check if - * there is maybe a custom iterate function we can call. */ - if (GST_PAD_ITERINTLINKFUNC (pad) && - GST_PAD_ITERINTLINKFUNC (pad) != gst_pad_iterate_internal_links_default) { - GstIterator *it; - GstIteratorResult ires; - gboolean done = FALSE; - - it = gst_pad_iterate_internal_links (pad); - /* loop over the iterator and put all elements into a list, we also - * immediatly unref them, which is bad. */ - do { - ires = gst_iterator_foreach (it, (GFunc) add_unref_pad_to_list, &res); - switch (ires) { - case GST_ITERATOR_OK: - case GST_ITERATOR_DONE: - case GST_ITERATOR_ERROR: - done = TRUE; - break; - case GST_ITERATOR_RESYNC: - /* restart, discard previous list */ - gst_iterator_resync (it); - g_list_free (res); - res = NULL; - break; - } - } while (!done); - - gst_iterator_free (it); - } else { - /* lock pad, check and ref parent */ - GST_OBJECT_LOCK (pad); - parent = GST_PAD_PARENT (pad); - if (!parent || !GST_IS_ELEMENT (parent)) - goto no_parent; - - parent = gst_object_ref (parent); - GST_OBJECT_UNLOCK (pad); - - /* now lock the parent while we copy the pads */ - GST_OBJECT_LOCK (parent); - if (pad->direction == GST_PAD_SRC) - res = g_list_copy (parent->sinkpads); - else - res = g_list_copy (parent->srcpads); - GST_OBJECT_UNLOCK (parent); - - gst_object_unref (parent); - } - - /* At this point pads can be changed and unreffed. Nothing we can do about it - * because for compatibility reasons this function cannot ref the pads or - * notify the app that the list changed. */ - - return res; - -no_parent: - { - GST_DEBUG_OBJECT (pad, "no parent"); - GST_OBJECT_UNLOCK (pad); - return NULL; - } -} -#endif /* GST_REMOVE_DEPRECATED */ - -/** - * gst_pad_get_internal_links: - * @pad: the #GstPad to get the internal links of. - * - * Gets a list of pads to which the given pad is linked to - * inside of the parent element. - * The caller must free this list after use. - * - * Not MT safe. - * - * Returns: a newly allocated #GList of pads, free with g_list_free(). - * - * Deprecated: This function does not ref the pads in the list so that they - * could become invalid by the time the application accesses them. It's also - * possible that the list changes while handling the pads, which the caller of - * this function is unable to know. Use the thread-safe - * gst_pad_iterate_internal_links() instead. - */ -#ifndef GST_REMOVE_DEPRECATED -#ifdef GST_DISABLE_DEPRECATED -GList *gst_pad_get_internal_links (GstPad * pad); -#endif -GList * -gst_pad_get_internal_links (GstPad * pad) -{ - GList *res = NULL; - - g_return_val_if_fail (GST_IS_PAD (pad), NULL); - - GST_WARNING_OBJECT (pad, "Calling unsafe internal links"); - - if (GST_PAD_INTLINKFUNC (pad)) - res = GST_PAD_INTLINKFUNC (pad) (pad); - - return res; -} -#endif /* GST_REMOVE_DEPRECATED */ - static gboolean gst_pad_event_default_dispatch (GstPad * pad, GstEvent * event) { @@ -3802,161 +3559,6 @@ gst_pad_query_default (GstPad * pad, GstQuery * query) } } -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -/* FIXME: why isn't this on a GstElement ? */ -/** - * gst_pad_load_and_link: - * @self: an #xmlNodePtr to read the description from. - * @parent: the #GstObject element that owns the pad. - * - * Reads the pad definition from the XML node and links the given pad - * in the element to a pad of an element up in the hierarchy. - */ -void -gst_pad_load_and_link (xmlNodePtr self, GstObject * parent) -{ - xmlNodePtr field = self->xmlChildrenNode; - GstPad *pad = NULL, *targetpad; - GstPadTemplate *tmpl; - gchar *peer = NULL; - gchar **split; - GstElement *target; - GstObject *grandparent; - gchar *name = NULL; - - while (field) { - if (!strcmp ((char *) field->name, "name")) { - name = (gchar *) xmlNodeGetContent (field); - pad = gst_element_get_static_pad (GST_ELEMENT (parent), name); - if ((!pad) || ((tmpl = gst_pad_get_pad_template (pad)) - && (GST_PAD_REQUEST == GST_PAD_TEMPLATE_PRESENCE (tmpl)))) - pad = gst_element_get_request_pad (GST_ELEMENT (parent), name); - g_free (name); - } else if (!strcmp ((char *) field->name, "peer")) { - peer = (gchar *) xmlNodeGetContent (field); - } - field = field->next; - } - g_return_if_fail (pad != NULL); - - if (peer == NULL) - return; - - split = g_strsplit (peer, ".", 2); - - if (split[0] == NULL || split[1] == NULL) { - GST_CAT_DEBUG_OBJECT (GST_CAT_XML, pad, - "Could not parse peer '%s', leaving unlinked", peer); - - g_free (peer); - return; - } - g_free (peer); - - g_return_if_fail (split[0] != NULL); - g_return_if_fail (split[1] != NULL); - - grandparent = gst_object_get_parent (parent); - - if (grandparent && GST_IS_BIN (grandparent)) { - target = gst_bin_get_by_name_recurse_up (GST_BIN (grandparent), split[0]); - } else - goto cleanup; - - if (target == NULL) - goto cleanup; - - targetpad = gst_element_get_static_pad (target, split[1]); - if (!targetpad) - targetpad = gst_element_get_request_pad (target, split[1]); - - if (targetpad == NULL) - goto cleanup; - - if (gst_pad_get_direction (pad) == GST_PAD_SRC) - gst_pad_link (pad, targetpad); - else - gst_pad_link (targetpad, pad); - -cleanup: - g_strfreev (split); -} - -/** - * gst_pad_save_thyself: - * @pad: a #GstPad to save. - * @parent: the parent #xmlNodePtr to save the description in. - * - * Saves the pad into an xml representation. - * - * Returns: the #xmlNodePtr representation of the pad. - */ -static xmlNodePtr -gst_pad_save_thyself (GstObject * object, xmlNodePtr parent) -{ - GstPad *pad; - GstPad *peer; - - g_return_val_if_fail (GST_IS_PAD (object), NULL); - - pad = GST_PAD_CAST (object); - - xmlNewChild (parent, NULL, (xmlChar *) "name", - (xmlChar *) GST_PAD_NAME (pad)); - - if (GST_PAD_IS_SRC (pad)) { - xmlNewChild (parent, NULL, (xmlChar *) "direction", (xmlChar *) "source"); - } else if (GST_PAD_IS_SINK (pad)) { - xmlNewChild (parent, NULL, (xmlChar *) "direction", (xmlChar *) "sink"); - } else { - xmlNewChild (parent, NULL, (xmlChar *) "direction", (xmlChar *) "unknown"); - } - - if (GST_PAD_PEER (pad) != NULL) { - gchar *content; - - peer = GST_PAD_PEER (pad); - /* first check to see if the peer's parent's parent is the same */ - /* we just save it off */ - content = g_strdup_printf ("%s.%s", - GST_OBJECT_NAME (GST_PAD_PARENT (peer)), GST_PAD_NAME (peer)); - xmlNewChild (parent, NULL, (xmlChar *) "peer", (xmlChar *) content); - g_free (content); - } else - xmlNewChild (parent, NULL, (xmlChar *) "peer", NULL); - - return parent; -} - -#if 0 -/** - * gst_ghost_pad_save_thyself: - * @pad: a ghost #GstPad to save. - * @parent: the parent #xmlNodePtr to save the description in. - * - * Saves the ghost pad into an xml representation. - * - * Returns: the #xmlNodePtr representation of the pad. - */ -xmlNodePtr -gst_ghost_pad_save_thyself (GstPad * pad, xmlNodePtr parent) -{ - xmlNodePtr self; - - g_return_val_if_fail (GST_IS_GHOST_PAD (pad), NULL); - - self = xmlNewChild (parent, NULL, (xmlChar *) "ghostpad", NULL); - xmlNewChild (self, NULL, (xmlChar *) "name", (xmlChar *) GST_PAD_NAME (pad)); - xmlNewChild (self, NULL, (xmlChar *) "parent", - (xmlChar *) GST_OBJECT_NAME (GST_PAD_PARENT (pad))); - - /* FIXME FIXME FIXME! */ - - return self; -} -#endif /* 0 */ -#endif /* GST_DISABLE_LOADSAVE */ - /* * should be called with pad OBJECT_LOCK and STREAM_LOCK held. * GST_PAD_IS_BLOCKED (pad) == TRUE when this function is diff --git a/gst/gstpad.h b/gst/gstpad.h index 10cb206..650c780 100644 --- a/gst/gstpad.h +++ b/gst/gstpad.h @@ -149,41 +149,6 @@ typedef enum { GST_FLOW_CUSTOM_ERROR_2 = -102 } GstFlowReturn; -/** - * GST_FLOW_IS_FATAL: - * @ret: a #GstFlowReturn value - * - * Macro to test if the given #GstFlowReturn value indicates a fatal - * error. This macro is mainly used in elements driving the pipeline to decide - * whether an error message should be posted on the bus. Note that such - * elements may also need to post an error message in the #GST_FLOW_NOT_LINKED - * case which is not caught by this macro. - * - * Deprecated: This macro is badly named and can't be used in any real - * scenarios without additional checks. - */ -#ifndef GST_DISABLE_DEPRECATED -#define GST_FLOW_IS_FATAL(ret) ((ret) <= GST_FLOW_UNEXPECTED) -#endif - -/** - * GST_FLOW_IS_SUCCESS: - * @ret: a #GstFlowReturn value - * - * Macro to test if the given #GstFlowReturn value indicates a - * successfull result - * This macro is mainly used in elements to decide if the processing - * of a buffer was successfull. - * - * Since: 0.10.7 - * - * Deprecated: This macro is badly named and can't be used in any real - * scenarios without additional checks. - */ -#ifndef GST_DISABLE_DEPRECATED -#define GST_FLOW_IS_SUCCESS(ret) ((ret) >= GST_FLOW_OK) -#endif - G_CONST_RETURN gchar* gst_flow_get_name (GstFlowReturn ret); GQuark gst_flow_to_quark (GstFlowReturn ret); @@ -767,9 +732,6 @@ struct _GstPadClass { #define GST_PAD_EVENTFUNC(pad) (GST_PAD_CAST(pad)->eventfunc) #define GST_PAD_QUERYTYPEFUNC(pad) (GST_PAD_CAST(pad)->querytypefunc) #define GST_PAD_QUERYFUNC(pad) (GST_PAD_CAST(pad)->queryfunc) -#ifndef GST_DISABLE_DEPRECATED -#define GST_PAD_INTLINKFUNC(pad) (GST_PAD_CAST(pad)->intlinkfunc) -#endif #define GST_PAD_ITERINTLINKFUNC(pad) (GST_PAD_CAST(pad)->iterintlinkfunc) #define GST_PAD_PEER(pad) (GST_PAD_CAST(pad)->peer) @@ -997,12 +959,6 @@ gboolean gst_pad_pause_task (GstPad *pad); gboolean gst_pad_stop_task (GstPad *pad); /* internal links */ -#ifndef GST_DISABLE_DEPRECATED -void gst_pad_set_internal_link_function (GstPad *pad, GstPadIntLinkFunction intlink); -GList* gst_pad_get_internal_links (GstPad *pad); -GList* gst_pad_get_internal_links_default (GstPad *pad); -#endif - void gst_pad_set_iterate_internal_links_function (GstPad * pad, GstPadIterIntLinkFunction iterintlink); GstIterator * gst_pad_iterate_internal_links (GstPad * pad); @@ -1025,10 +981,6 @@ gboolean gst_pad_query_default (GstPad *pad, GstQuery *query); gboolean gst_pad_dispatcher (GstPad *pad, GstPadDispatcherFunction dispatch, gpointer data); -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_DISABLE_DEPRECATED) -void gst_pad_load_and_link (xmlNodePtr self, GstObject *parent); -#endif - G_END_DECLS #endif /* __GST_PAD_H__ */ diff --git a/gst/gstpipeline.c b/gst/gstpipeline.c index 1458bca..3e0bfe6 100644 --- a/gst/gstpipeline.c +++ b/gst/gstpipeline.c @@ -604,80 +604,6 @@ gst_pipeline_get_bus (GstPipeline * pipeline) return gst_element_get_bus (GST_ELEMENT_CAST (pipeline)); } -/** - * gst_pipeline_set_new_stream_time: - * @pipeline: a #GstPipeline - * @time: the new running time to set - * - * Set the new start time of @pipeline to @time. The start time is used to - * set the base time on the elements (see gst_element_set_base_time()) - * in the PAUSED->PLAYING state transition. - * - * Setting @time to #GST_CLOCK_TIME_NONE will disable the pipeline's management - * of element base time. The application will then be responsible for - * performing base time distribution. This is sometimes useful if you want to - * synchronize capture from multiple pipelines, and you can also ensure that the - * pipelines have the same clock. - * - * MT safe. - * - * Deprecated: This function has the wrong name and is equivalent to - * gst_element_set_start_time(). - */ -#ifndef GST_REMOVE_DEPRECATED -#ifdef GST_DISABLE_DEPRECATED -void -gst_pipeline_set_new_stream_time (GstPipeline * pipeline, GstClockTime time); -#endif -void -gst_pipeline_set_new_stream_time (GstPipeline * pipeline, GstClockTime time) -{ - g_return_if_fail (GST_IS_PIPELINE (pipeline)); - - gst_element_set_start_time (GST_ELEMENT_CAST (pipeline), time); - - if (time == GST_CLOCK_TIME_NONE) - GST_DEBUG_OBJECT (pipeline, "told not to adjust base_time"); -} -#endif /* GST_REMOVE_DEPRECATED */ - -/** - * gst_pipeline_get_last_stream_time: - * @pipeline: a #GstPipeline - * - * Gets the last running time of @pipeline. If the pipeline is PLAYING, - * the returned time is the running time used to configure the element's - * base time in the PAUSED->PLAYING state. If the pipeline is PAUSED, the - * returned time is the running time when the pipeline was paused. - * - * This function returns #GST_CLOCK_TIME_NONE if the pipeline was - * configured to not handle the management of the element's base time - * (see gst_pipeline_set_new_stream_time()). - * - * MT safe. - * - * Returns: a #GstClockTime. - * - * Deprecated: This function has the wrong name and is equivalent to - * gst_element_get_start_time(). - */ -#ifndef GST_REMOVE_DEPRECATED -#ifdef GST_DISABLE_DEPRECATED -GstClockTime gst_pipeline_get_last_stream_time (GstPipeline * pipeline); -#endif -GstClockTime -gst_pipeline_get_last_stream_time (GstPipeline * pipeline) -{ - GstClockTime result; - - g_return_val_if_fail (GST_IS_PIPELINE (pipeline), GST_CLOCK_TIME_NONE); - - result = gst_element_get_start_time (GST_ELEMENT_CAST (pipeline)); - - return result; -} -#endif /* GST_REMOVE_DEPRECATED */ - static GstClock * gst_pipeline_provide_clock_func (GstElement * element) { diff --git a/gst/gstpipeline.h b/gst/gstpipeline.h index 6180c16..7dbf96f 100644 --- a/gst/gstpipeline.h +++ b/gst/gstpipeline.h @@ -93,11 +93,6 @@ GstElement* gst_pipeline_new (const gchar *name); GstBus* gst_pipeline_get_bus (GstPipeline *pipeline); -#ifndef GST_DISABLE_DEPRECATED -void gst_pipeline_set_new_stream_time (GstPipeline *pipeline, GstClockTime time); -GstClockTime gst_pipeline_get_last_stream_time (GstPipeline *pipeline); -#endif - void gst_pipeline_use_clock (GstPipeline *pipeline, GstClock *clock); gboolean gst_pipeline_set_clock (GstPipeline *pipeline, GstClock *clock); GstClock* gst_pipeline_get_clock (GstPipeline *pipeline); diff --git a/gst/gstplugin.c b/gst/gstplugin.c index 9ecce3c..7799dfa 100644 --- a/gst/gstplugin.c +++ b/gst/gstplugin.c @@ -164,38 +164,6 @@ gst_plugin_error_quark (void) return quark; } -#ifndef GST_REMOVE_DEPRECATED -#ifdef GST_DISABLE_DEPRECATED -void _gst_plugin_register_static (GstPluginDesc * desc); -#endif -/* this function can be called in the GCC constructor extension, before - * the _gst_plugin_initialize() was called. In that case, we store the - * plugin description in a list to initialize it when we open the main - * module later on. - * When the main module is known, we can register the plugin right away. - */ -void -_gst_plugin_register_static (GstPluginDesc * desc) -{ - g_return_if_fail (desc != NULL); - - if (!_gst_plugin_inited) { - /* We can't use any GLib functions here, since g_thread_init hasn't been - * called yet, and we can't call it here either, or programs that don't - * guard their g_thread_init calls in main() will just abort */ - ++_num_static_plugins; - _static_plugins = - realloc (_static_plugins, _num_static_plugins * sizeof (GstPluginDesc)); - /* assume strings in the GstPluginDesc are static const or live forever */ - _static_plugins[_num_static_plugins - 1] = *desc; - } else { - gst_plugin_register_static (desc->major_version, desc->minor_version, - desc->name, desc->description, desc->plugin_init, desc->version, - desc->license, desc->source, desc->package, desc->origin); - } -} -#endif - /** * gst_plugin_register_static: * @major_version: the major version number of the GStreamer core that the @@ -1568,7 +1536,7 @@ gst_plugin_ext_dep_scan_dir_and_match_names (GstPlugin * plugin, GDir *dir; guint hash = 0; - recurse_dirs = ! !(flags & GST_PLUGIN_DEPENDENCY_FLAG_RECURSE); + recurse_dirs = !!(flags & GST_PLUGIN_DEPENDENCY_FLAG_RECURSE); dir = g_dir_open (path, 0, &err); if (dir == NULL) { @@ -1630,8 +1598,8 @@ gst_plugin_ext_dep_scan_path_with_filenames (GstPlugin * plugin, if (filenames == NULL || *filenames == NULL) filenames = empty_filenames; - recurse_into_dirs = ! !(flags & GST_PLUGIN_DEPENDENCY_FLAG_RECURSE); - partial_names = ! !(flags & GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX); + recurse_into_dirs = !!(flags & GST_PLUGIN_DEPENDENCY_FLAG_RECURSE); + partial_names = !!(flags & GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX); /* if we can construct the exact paths to check with the data we have, just * stat them one by one; this is more efficient than opening the directory diff --git a/gst/gstplugin.h b/gst/gstplugin.h index c4f9c44..5de80c8 100644 --- a/gst/gstplugin.h +++ b/gst/gstplugin.h @@ -344,10 +344,6 @@ typedef gboolean (*GstPluginFilter) (GstPlugin *plugin, GType gst_plugin_get_type (void); -#ifndef GST_DISABLE_DEPRECATED -void _gst_plugin_register_static (GstPluginDesc *desc); -#endif - gboolean gst_plugin_register_static (gint major_version, gint minor_version, const gchar *name, diff --git a/gst/gstregistry.h b/gst/gstregistry.h index 2f38dcd..33301be 100644 --- a/gst/gstregistry.h +++ b/gst/gstregistry.h @@ -115,14 +115,6 @@ GstPluginFeature* gst_registry_find_feature (GstRegistry *registry, const gchar GstPlugin * gst_registry_lookup (GstRegistry *registry, const char *filename); GstPluginFeature * gst_registry_lookup_feature (GstRegistry *registry, const char *name); -/* These are only here because at some point they were in a public header - * (even though they should have been private) and we can't really remove - * them now (FIXME: 0.11). They don't do anything other than return FALSE. */ -#ifndef GST_DISABLE_DEPRECATED -gboolean gst_registry_xml_read_cache (GstRegistry * registry, const char *location); -gboolean gst_registry_xml_write_cache (GstRegistry * registry, const char *location); -#endif - /* convinience defines for the default registry */ /** diff --git a/gst/gstregistrybinary.c b/gst/gstregistrybinary.c index 54f9abb..54511a1 100644 --- a/gst/gstregistrybinary.c +++ b/gst/gstregistrybinary.c @@ -630,27 +630,3 @@ Error: } return res; } - -#ifndef GST_REMOVE_DEPRECATED -#ifdef GST_DISABLE_DEPRECATED -gboolean -gst_registry_xml_read_cache (GstRegistry * registry, const char *location); -#endif -/* FIXME 0.11: these symbols are here for backwards compatibility and should - * be removed or made private */ -gboolean -gst_registry_xml_read_cache (GstRegistry * registry, const char *location) -{ - return FALSE; -} - -#ifdef GST_DISABLE_DEPRECATED -gboolean -gst_registry_xml_write_cache (GstRegistry * registry, const char *location); -#endif -gboolean -gst_registry_xml_write_cache (GstRegistry * registry, const char *location) -{ - return FALSE; -} -#endif /* GST_REMOVE_DEPRECATED */ diff --git a/gst/gstutils.c b/gst/gstutils.c index 5116635..7d75e93 100644 --- a/gst/gstutils.c +++ b/gst/gstutils.c @@ -2673,31 +2673,6 @@ gst_buffer_join (GstBuffer * buf1, GstBuffer * buf2) } -/** - * gst_buffer_stamp: - * @dest: buffer to stamp - * @src: buffer to stamp from - * - * Copies additional information (the timestamp, duration, and offset start - * and end) from one buffer to the other. - * - * This function does not copy any buffer flags or caps and is equivalent to - * gst_buffer_copy_metadata(@dest, @src, GST_BUFFER_COPY_TIMESTAMPS). - * - * Deprecated: use gst_buffer_copy_metadata() instead, it provides more - * control. - */ -#ifndef GST_REMOVE_DEPRECATED -#ifdef GST_DISABLE_DEPRECATED -void gst_buffer_stamp (GstBuffer * dest, const GstBuffer * src); -#endif -void -gst_buffer_stamp (GstBuffer * dest, const GstBuffer * src) -{ - gst_buffer_copy_metadata (dest, src, GST_BUFFER_COPY_TIMESTAMPS); -} -#endif /* GST_REMOVE_DEPRECATED */ - static gboolean getcaps_fold_func (GstPad * pad, GValue * ret, GstPad * orig) { @@ -3122,27 +3097,6 @@ gst_pad_query_peer_convert (GstPad * pad, GstFormat src_format, gint64 src_val, } /** - * gst_atomic_int_set: - * @atomic_int: pointer to an atomic integer - * @value: value to set - * - * Unconditionally sets the atomic integer to @value. - * - * Deprecated: Use g_atomic_int_set(). - * - */ -#ifndef GST_REMOVE_DEPRECATED -#ifdef GST_DISABLE_DEPRECATED -void gst_atomic_int_set (gint * atomic_int, gint value); -#endif -void -gst_atomic_int_set (gint * atomic_int, gint value) -{ - g_atomic_int_set (atomic_int, value); -} -#endif - -/** * gst_pad_add_data_probe: * @pad: pad to add the data probe handler to * @handler: function to call when data is passed over pad @@ -3603,34 +3557,6 @@ gst_bin_find_unlinked_pad (GstBin * bin, GstPadDirection direction) } /** - * gst_bin_find_unconnected_pad: - * @bin: bin in which to look for elements with unlinked pads - * @direction: whether to look for an unlinked source or sink pad - * - * Recursively looks for elements with an unlinked pad of the given - * direction within the specified bin and returns an unlinked pad - * if one is found, or NULL otherwise. If a pad is found, the caller - * owns a reference to it and should use gst_object_unref() on the - * pad when it is not needed any longer. - * - * Returns: unlinked pad of the given direction, or NULL. - * - * Since: 0.10.3 - * - * Deprecated: use gst_bin_find_unlinked_pad() instead. - */ -#ifndef GST_REMOVE_DEPRECATED -#ifdef GST_DISABLE_DEPRECATED -GstPad *gst_bin_find_unconnected_pad (GstBin * bin, GstPadDirection direction); -#endif -GstPad * -gst_bin_find_unconnected_pad (GstBin * bin, GstPadDirection direction) -{ - return gst_bin_find_unlinked_pad (bin, direction); -} -#endif - -/** * gst_parse_bin_from_description: * @bin_description: command line describing the bin * @ghost_unlinked_pads: whether to automatically create ghost pads diff --git a/gst/gstutils.h b/gst/gstutils.h index 14d0f8a..7a44acb 100644 --- a/gst/gstutils.h +++ b/gst/gstutils.h @@ -1075,21 +1075,10 @@ gboolean gst_pad_query_peer_convert (GstPad *pad, GstFormat void gst_bin_add_many (GstBin *bin, GstElement *element_1, ...) G_GNUC_NULL_TERMINATED; void gst_bin_remove_many (GstBin *bin, GstElement *element_1, ...) G_GNUC_NULL_TERMINATED; GstPad * gst_bin_find_unlinked_pad (GstBin *bin, GstPadDirection direction); -#ifndef GST_DISABLE_DEPRECATED -GstPad * gst_bin_find_unconnected_pad (GstBin *bin, GstPadDirection direction); -#endif /* buffer functions */ GstBuffer * gst_buffer_merge (GstBuffer * buf1, GstBuffer * buf2); GstBuffer * gst_buffer_join (GstBuffer * buf1, GstBuffer * buf2); -#ifndef GST_DISABLE_DEPRECATED -void gst_buffer_stamp (GstBuffer * dest, const GstBuffer * src); -#endif /* GST_DISABLE_DEPRECATED */ - -/* atomic functions */ -#ifndef GST_DISABLE_DEPRECATED -void gst_atomic_int_set (gint * atomic_int, gint value); -#endif /* probes */ gulong gst_pad_add_data_probe (GstPad * pad, diff --git a/gst/gstxml.c b/gst/gstxml.c deleted file mode 100644 index b37a4e2..0000000 --- a/gst/gstxml.c +++ /dev/null @@ -1,541 +0,0 @@ -/* GStreamer - * Copyright (C) 1999,2000 Erik Walthinsen - * 2000 Wim Taymans - * - * gstxml.c: XML save/restore of pipelines - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/** - * SECTION:gstxml - * @short_description: XML save/restore operations of pipelines - * - * GStreamer pipelines can be saved to xml files using gst_xml_write_file(). - * They can be loaded back using gst_xml_parse_doc() / gst_xml_parse_file() / - * gst_xml_parse_memory(). - * Additionally one can load saved pipelines into the gst-editor to inspect the - * graph. - * - * #GstElement implementations need to override the #GstObjectClass.save_thyself() - * and #GstObjectClass.restore_thyself() virtual functions of #GstObject. - * - * Deprecated: This feature is deprecated pipeline serialization to XML is - * broken for all but the most simple pipelines. It will most likely be - * removed in future. Don't use it. - */ - -#include "gst_private.h" - -#include "gstxml.h" -#include "gstmarshal.h" -#include "gstinfo.h" -#include "gstbin.h" - -#ifdef GST_DISABLE_DEPRECATED -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -#include -xmlNodePtr gst_object_save_thyself (const GstObject * object, - xmlNodePtr parent); -GstObject *gst_object_load_thyself (xmlNodePtr parent); -void gst_object_restore_thyself (GstObject * object, GstXmlNodePtr self); - -#define GST_TYPE_XML (gst_xml_get_type ()) -#define GST_XML(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_XML, GstXML)) -#define GST_IS_XML(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_XML)) -#define GST_XML_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_XML, GstXMLClass)) -#define GST_IS_XML_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_XML)) -#define GST_XML_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_XML, GstXMLClass)) - -typedef struct _GstXML GstXML; -typedef struct _GstXMLClass GstXMLClass; - -struct _GstXML -{ - GstObject object; - - /*< public > */ - GList *topelements; - - xmlNsPtr ns; - - /*< private > */ - gpointer _gst_reserved[GST_PADDING]; -}; - -struct _GstXMLClass -{ - GstObjectClass parent_class; - - /* signal callbacks */ - void (*object_loaded) (GstXML * xml, GstObject * object, xmlNodePtr self); - void (*object_saved) (GstXML * xml, GstObject * object, xmlNodePtr self); - - gpointer _gst_reserved[GST_PADDING]; -}; - -GType gst_xml_get_type (void); -xmlDocPtr gst_xml_write (GstElement * element); -gint gst_xml_write_file (GstElement * element, FILE * out); -GstXML *gst_xml_new (void); -gboolean gst_xml_parse_doc (GstXML * xml, xmlDocPtr doc, const guchar * root); -gboolean gst_xml_parse_file (GstXML * xml, const guchar * fname, - const guchar * root); -gboolean gst_xml_parse_memory (GstXML * xml, guchar * buffer, guint size, - const gchar * root); -GstElement *gst_xml_get_element (GstXML * xml, const guchar * name); -GList *gst_xml_get_topelements (GstXML * xml); -GstElement *gst_xml_make_element (xmlNodePtr cur, GstObject * parent); -#endif -#endif - -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) - -enum -{ - OBJECT_LOADED, - LAST_SIGNAL -}; - -static void gst_xml_dispose (GObject * object); - -static void gst_xml_object_loaded (GstObject * private, GstObject * object, - xmlNodePtr self, gpointer data); - -static GstObjectClass *parent_class = NULL; -static guint gst_xml_signals[LAST_SIGNAL] = { 0 }; - -G_DEFINE_TYPE (GstXML, gst_xml, GST_TYPE_OBJECT); - -static void -gst_xml_class_init (GstXMLClass * klass) -{ - GObjectClass *gobject_class = (GObjectClass *) klass; - - parent_class = g_type_class_peek_parent (klass); - - gobject_class->dispose = gst_xml_dispose; - - /* FIXME G_TYPE_POINTER should be GType of xmlNodePtr - * (ensonic) can't be fixed, as libxml does not use GObject (unfortunately) - */ - /** - * GstXML::object-loaded: - * @xml: the xml persistence instance - * @object: the object that has been loaded - * @xml_node: the related xml_node pointer to the document tree - * - * Signals that a new object has been deserialized. - */ - gst_xml_signals[OBJECT_LOADED] = - g_signal_new ("object-loaded", G_TYPE_FROM_CLASS (klass), - G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstXMLClass, object_loaded), NULL, - NULL, gst_marshal_VOID__OBJECT_POINTER, G_TYPE_NONE, 2, GST_TYPE_OBJECT, - G_TYPE_POINTER); - -} - -static void -gst_xml_init (GstXML * xml) -{ - xml->topelements = NULL; -} - -static void -gst_xml_dispose (GObject * object) -{ - GstXML *xml = GST_XML (object); - - g_list_foreach (xml->topelements, (GFunc) gst_object_unref, NULL); - g_list_free (xml->topelements); - xml->topelements = NULL; - - G_OBJECT_CLASS (parent_class)->dispose (object); -} - -/** - * gst_xml_new: - * - * Create a new GstXML parser object. - * - * Returns: a pointer to a new GstXML object. - */ -GstXML * -gst_xml_new (void) -{ - return GST_XML (g_object_newv (GST_TYPE_XML, 0, NULL)); -} - -/** - * gst_xml_write: - * @element: The element to write out - * - * Converts the given element into an XML presentation. - * - * Returns: a pointer to an XML document - */ -xmlDocPtr -gst_xml_write (GstElement * element) -{ - xmlDocPtr doc; - xmlNodePtr elementnode; - xmlNsPtr gst_ns; - - doc = xmlNewDoc ((xmlChar *) "1.0"); - - doc->xmlRootNode = xmlNewDocNode (doc, NULL, (xmlChar *) "gstreamer", NULL); - - gst_ns = - xmlNewNs (doc->xmlRootNode, - (xmlChar *) "http://gstreamer.net/gst-core/1.0/", (xmlChar *) "gst"); - - elementnode = xmlNewChild (doc->xmlRootNode, gst_ns, (xmlChar *) "element", - NULL); - - gst_object_save_thyself (GST_OBJECT (element), elementnode); - - return doc; -} - -/** - * gst_xml_write_file: - * @element: The element to write out - * @out: an open file, like stdout - * - * Converts the given element into XML and writes the formatted XML to an open - * file. - * - * Returns: number of bytes written on success, -1 otherwise. - */ -gint -gst_xml_write_file (GstElement * element, FILE * out) -{ - xmlDocPtr cur; - -#ifdef HAVE_LIBXML2 - xmlOutputBufferPtr buf; -#endif - const char *encoding; - xmlCharEncodingHandlerPtr handler = NULL; - int indent; - gboolean ret; - - cur = gst_xml_write (element); - if (!cur) - return -1; - -#ifdef HAVE_LIBXML2 - encoding = (const char *) cur->encoding; - - if (encoding != NULL) { - xmlCharEncoding enc; - - enc = xmlParseCharEncoding (encoding); - - if (cur->charset != XML_CHAR_ENCODING_UTF8) { - xmlGenericError (xmlGenericErrorContext, - "xmlDocDump: document not in UTF8\n"); - return -1; - } - if (enc != XML_CHAR_ENCODING_UTF8) { - handler = xmlFindCharEncodingHandler (encoding); - if (handler == NULL) { - xmlFree ((char *) cur->encoding); - cur->encoding = NULL; - } - } - } - - buf = xmlOutputBufferCreateFile (out, handler); - - indent = xmlIndentTreeOutput; - xmlIndentTreeOutput = 1; - ret = xmlSaveFormatFileTo (buf, cur, NULL, 1); - xmlIndentTreeOutput = indent; -#else - /* apparently this doesn't return anything in libxml1 */ - xmlDocDump (out, cur); - ret = 1; -#endif - - return ret; -} - -/** - * gst_xml_parse_doc: - * @xml: a pointer to a GstXML object - * @doc: a pointer to an xml document to parse - * @root: The name of the root object to build - * - * Fills the GstXML object with the elements from the - * xmlDocPtr. - * - * Returns: TRUE on success, FALSE otherwise - */ -gboolean -gst_xml_parse_doc (GstXML * xml, xmlDocPtr doc, const guchar * root) -{ - xmlNodePtr field, cur; - xmlNsPtr ns; - - cur = xmlDocGetRootElement (doc); - if (cur == NULL) { - g_warning ("gstxml: empty document\n"); - return FALSE; - } - ns = xmlSearchNsByHref (doc, cur, - (xmlChar *) "http://gstreamer.net/gst-core/1.0/"); - if (ns == NULL) { - g_warning ("gstxml: document of wrong type, core namespace not found\n"); - return FALSE; - } - if (strcmp ((char *) cur->name, "gstreamer")) { - g_warning ("gstxml: XML file is in wrong format\n"); - return FALSE; - } - - gst_class_signal_connect (GST_OBJECT_CLASS (G_OBJECT_GET_CLASS (xml)), - "object_loaded", (gpointer) gst_xml_object_loaded, xml); - - xml->ns = ns; - - field = cur->xmlChildrenNode; - - while (field) { - if (!strcmp ((char *) field->name, "element") && (field->ns == xml->ns)) { - GstElement *element; - - element = gst_xml_make_element (field, NULL); - - xml->topelements = g_list_prepend (xml->topelements, element); - } - field = field->next; - } - - xml->topelements = g_list_reverse (xml->topelements); - - return TRUE; -} - -/* FIXME 0.9: Why guchar*? */ -/** - * gst_xml_parse_file: - * @xml: a pointer to a GstXML object - * @fname: The filename with the xml description - * @root: The name of the root object to build - * - * Fills the GstXML object with the corresponding elements from - * the XML file fname. Optionally it will only build the element from - * the element node root (if it is not NULL). This feature is useful - * if you only want to build a specific element from an XML file - * but not the pipeline it is embedded in. - * - * Pass "-" as fname to read from stdin. You can also pass a URI - * of any format that libxml supports, including http. - * - * Returns: TRUE on success, FALSE otherwise - */ -gboolean -gst_xml_parse_file (GstXML * xml, const guchar * fname, const guchar * root) -{ - xmlDocPtr doc; - gboolean ret; - - g_return_val_if_fail (fname != NULL, FALSE); - - doc = xmlParseFile ((char *) fname); - - if (!doc) { - g_warning ("gstxml: XML file \"%s\" could not be read\n", fname); - return FALSE; - } - - ret = gst_xml_parse_doc (xml, doc, root); - - xmlFreeDoc (doc); - return ret; -} - -/* FIXME 0.9: guchar* */ -/** - * gst_xml_parse_memory: - * @xml: a pointer to a GstXML object - * @buffer: a pointer to the in memory XML buffer - * @size: the size of the buffer - * @root: the name of the root objects to build - * - * Fills the GstXML object with the corresponding elements from - * an in memory XML buffer. - * - * Returns: TRUE on success - */ -gboolean -gst_xml_parse_memory (GstXML * xml, guchar * buffer, guint size, - const gchar * root) -{ - xmlDocPtr doc; - gboolean ret; - - g_return_val_if_fail (buffer != NULL, FALSE); - - doc = xmlParseMemory ((char *) buffer, size); - - ret = gst_xml_parse_doc (xml, doc, (const xmlChar *) root); - - xmlFreeDoc (doc); - return ret; -} - -static void -gst_xml_object_loaded (GstObject * private, GstObject * object, xmlNodePtr self, - gpointer data) -{ - GstXML *xml = GST_XML (data); - - /* FIXME check that this element was created from the same xmlDocPtr... */ - g_signal_emit (xml, gst_xml_signals[OBJECT_LOADED], 0, object, self); -} - -/** - * gst_xml_get_topelements: - * @xml: The GstXML to get the elements from - * - * Retrieve a list of toplevel elements. - * - * Returns: a GList of top-level elements. The caller does not own a copy - * of the list and must not free or modify the list. The caller also does not - * own a reference to any of the elements in the list and should obtain its own - * reference using gst_object_ref() if necessary. - */ -GList * -gst_xml_get_topelements (GstXML * xml) -{ - g_return_val_if_fail (xml != NULL, NULL); - - return xml->topelements; -} - -/* FIXME 0.11: why is the arg guchar* instead of gchar*? */ -/** - * gst_xml_get_element: - * @xml: The GstXML to get the element from - * @name: The name of element to retrieve - * - * This function is used to get a pointer to the GstElement corresponding - * to name in the pipeline description. You would use this if you have - * to do anything to the element after loading. - * - * Returns: a pointer to a new GstElement, caller owns returned reference. - */ -GstElement * -gst_xml_get_element (GstXML * xml, const guchar * name) -{ - GstElement *element; - GList *topelements; - - g_return_val_if_fail (xml != NULL, NULL); - g_return_val_if_fail (name != NULL, NULL); - - GST_DEBUG ("gstxml: getting element \"%s\"", name); - - topelements = gst_xml_get_topelements (xml); - - while (topelements) { - GstElement *top = GST_ELEMENT (topelements->data); - - GST_DEBUG ("gstxml: getting element \"%s\"", name); - if (!strcmp (GST_ELEMENT_NAME (top), (char *) name)) { - return GST_ELEMENT_CAST (gst_object_ref (top)); - } else { - if (GST_IS_BIN (top)) { - element = gst_bin_get_by_name (GST_BIN (top), (gchar *) name); - - if (element) - return element; - } - } - topelements = g_list_next (topelements); - } - return NULL; -} - -/** - * gst_xml_make_element: - * @cur: the xml node - * @parent: the parent of this object when it's loaded - * - * Load the element from the XML description - * - * Returns: the new element - */ -GstElement * -gst_xml_make_element (xmlNodePtr cur, GstObject * parent) -{ - xmlNodePtr children = cur->xmlChildrenNode; - GstElement *element; - gchar *name = NULL; - gchar *type = NULL; - - /* first get the needed tags to construct the element */ - while (children) { - if (!strcmp ((char *) children->name, "name")) { - name = (gchar *) xmlNodeGetContent (children); - } else if (!strcmp ((char *) children->name, "type")) { - type = (gchar *) xmlNodeGetContent (children); - } - children = children->next; - } - g_return_val_if_fail (name != NULL, NULL); - g_return_val_if_fail (type != NULL, NULL); - - GST_CAT_INFO (GST_CAT_XML, "loading \"%s\" of type \"%s\"", name, type); - - element = gst_element_factory_make (type, name); - - g_return_val_if_fail (element != NULL, NULL); - - g_free (type); - g_free (name); - - /* ne need to set the parent on this object bacause the pads */ - /* will go through the hierarchy to link to their peers */ - if (parent) { - if (GST_IS_BIN (parent)) { - gst_bin_add (GST_BIN (parent), element); - } else { - gst_object_set_parent (GST_OBJECT (element), parent); - } - } - - gst_object_restore_thyself (GST_OBJECT (element), cur); - - return element; -} - -#else - -/* FIXME: keep this dummy _get_type function around for now, so - * gobject-introspection doesn't fail in the GST_REMOVE_DEPRECATED and - * GST_DISABLE_LOADSAVE case */ -GType gst_xml_get_type (void); - -GType -gst_xml_get_type (void) -{ - return g_pointer_type_register_static ("GstXML"); -} - -#endif diff --git a/gst/gstxml.h b/gst/gstxml.h deleted file mode 100644 index 4f61a82..0000000 --- a/gst/gstxml.h +++ /dev/null @@ -1,113 +0,0 @@ -/* GStreamer - * Copyright (C) 1999,2000 Erik Walthinsen - * 2000 Wim Taymans - * - * gstxml.h: Header for XML save/restore operations of pipelines - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __GST_XML_H__ -#define __GST_XML_H__ - -#include - -#ifndef GST_DISABLE_DEPRECATED -#ifndef GST_DISABLE_LOADSAVE - -#include - -G_BEGIN_DECLS - -#define GST_TYPE_XML (gst_xml_get_type ()) -#define GST_XML(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_XML, GstXML)) -#define GST_IS_XML(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_XML)) -#define GST_XML_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_XML, GstXMLClass)) -#define GST_IS_XML_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_XML)) -#define GST_XML_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_XML, GstXMLClass)) - -typedef struct _GstXML GstXML; -typedef struct _GstXMLClass GstXMLClass; - -/** - * GstXML: - * @topelements: list of element nodes - * @ns: name space - * - * XML parser object - */ -struct _GstXML { - GstObject object; - - /*< public >*/ - GList *topelements; - - xmlNsPtr ns; - - /*< private >*/ - gpointer _gst_reserved[GST_PADDING]; -}; - -struct _GstXMLClass { - GstObjectClass parent_class; - - /* signal callbacks */ - void (*object_loaded) (GstXML *xml, GstObject *object, xmlNodePtr self); - void (*object_saved) (GstXML *xml, GstObject *object, xmlNodePtr self); - - gpointer _gst_reserved[GST_PADDING]; -}; - -GType gst_xml_get_type (void); - - -/* create an XML document out of a pipeline */ -xmlDocPtr gst_xml_write (GstElement *element); - -/* write a formatted representation of a pipeline to an open file */ -gint gst_xml_write_file (GstElement *element, FILE *out); - -GstXML* gst_xml_new (void); - -gboolean gst_xml_parse_doc (GstXML *xml, xmlDocPtr doc, const guchar *root); -gboolean gst_xml_parse_file (GstXML *xml, const guchar *fname, const guchar *root); -gboolean gst_xml_parse_memory (GstXML *xml, guchar *buffer, guint size, const gchar *root); - - -GstElement* gst_xml_get_element (GstXML *xml, const guchar *name); -GList* gst_xml_get_topelements (GstXML *xml); - -GstElement* gst_xml_make_element (xmlNodePtr cur, GstObject *parent); - -G_END_DECLS - -#else /* GST_DISABLE_LOADSAVE */ - -#if defined __GNUC__ && __GNUC__ >= 3 -#pragma GCC poison gst_xml_write -#pragma GCC poison gst_xml_new -#pragma GCC poison gst_xml_parse_doc -#pragma GCC poison gst_xml_parse_file -#pragma GCC poison gst_xml_parse_memory -#pragma GCC poison gst_xml_get_element -#pragma GCC poison gst_xml_get_topelements -#endif - -#endif /* GST_DISABLE_LOADSAVE */ - -#endif - -#endif /* __GST_XML_H__ */ diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c index a43e8ac..75d39c0 100644 --- a/tools/gst-inspect.c +++ b/tools/gst-inspect.c @@ -709,12 +709,6 @@ print_implementation_info (GstElement * element) n_print (" Has change_state() function: %s\n", GST_DEBUG_FUNCPTR_NAME (gstelement_class->change_state)); -#ifndef GST_DISABLE_LOADSAVE - n_print (" Has custom save_thyself() function: %s\n", - GST_DEBUG_FUNCPTR_NAME (gstobject_class->save_thyself)); - n_print (" Has custom restore_thyself() function: %s\n", - GST_DEBUG_FUNCPTR_NAME (gstobject_class->restore_thyself)); -#endif } static void diff --git a/tools/gst-launch.c b/tools/gst-launch.c index 10b7fae..517dc18 100644 --- a/tools/gst-launch.c +++ b/tools/gst-launch.c @@ -76,79 +76,6 @@ static gboolean waiting_eos = FALSE; /* convenience macro so we don't have to litter the code with if(!quiet) */ #define PRINT if(!quiet)g_print -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) -static GstElement * -xmllaunch_parse_cmdline (const gchar ** argv) -{ - GstElement *pipeline = NULL, *e; - GstXML *xml; - gboolean err; - const gchar *arg; - gchar *element, *property, *value; - GList *l; - gint i = 0; - - if (!(arg = argv[0])) { - g_printerr ("%s", - _("Usage: gst-xmllaunch [ element.property=value ... ]\n")); - exit (1); - } - - xml = gst_xml_new (); - /* FIXME guchar from gstxml.c */ - err = gst_xml_parse_file (xml, (guchar *) arg, NULL); - - if (err != TRUE) { - g_printerr (_("ERROR: parse of xml file '%s' failed.\n"), arg); - exit (1); - } - - l = gst_xml_get_topelements (xml); - if (!l) { - g_printerr (_("ERROR: no toplevel pipeline element in file '%s'.\n"), arg); - exit (1); - } - - if (l->next) { - g_printerr ("%s", - _("WARNING: only one toplevel element is supported at this time.\n")); - } - - pipeline = GST_ELEMENT (l->data); - - while ((arg = argv[++i])) { - element = g_strdup (arg); - property = strchr (element, '.'); - value = strchr (element, '='); - - if (!(element < property && property < value)) { - g_printerr (_("ERROR: could not parse command line argument %d: %s.\n"), - i, element); - g_free (element); - exit (1); - } - - *property++ = '\0'; - *value++ = '\0'; - - e = gst_bin_get_by_name (GST_BIN (pipeline), element); - if (!e) { - g_printerr (_("WARNING: element named '%s' not found.\n"), element); - } else { - gst_util_set_object_arg (G_OBJECT (e), property, value); - } - g_free (element); - } - - if (!l) - return NULL; - - gst_object_ref (pipeline); - gst_object_unref (xml); - return pipeline; -} -#endif - #ifndef DISABLE_FAULT_HANDLER #ifndef USE_SIGINFO static void @@ -730,10 +657,6 @@ main (int argc, char *argv[]) N_("Output messages"), NULL}, {"exclude", 'X', 0, G_OPTION_ARG_NONE, &exclude_args, N_("Do not output status information of TYPE"), N_("TYPE1,TYPE2,...")}, -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) - {"output", 'o', 0, G_OPTION_ARG_STRING, &savefile, - N_("Save xml representation of pipeline to FILE and exit"), N_("FILE")}, -#endif {"no-fault", 'f', 0, G_OPTION_ARG_NONE, &no_fault, N_("Do not install a fault handler"), NULL}, {"no-sigusr-handler", '\0', 0, G_OPTION_ARG_NONE, &no_sigusr_handler, @@ -804,15 +727,6 @@ main (int argc, char *argv[]) /* make a null-terminated version of argv */ argvn = g_new0 (char *, argc); memcpy (argvn, argv + 1, sizeof (char *) * (argc - 1)); -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) - if (strstr (argv[0], "gst-xmllaunch")) { - /* FIXME 0.11: remove xmllaunch entirely */ - g_warning ("gst-xmllaunch is deprecated and broken for all but the most " - "simple pipelines. It will most likely be removed in future. Don't " - "use it.\n"); - pipeline = xmllaunch_parse_cmdline ((const gchar **) argvn); - } else -#endif { pipeline = (GstElement *) gst_parse_launchv ((const gchar **) argvn, &error); @@ -841,15 +755,6 @@ main (int argc, char *argv[]) g_signal_connect (pipeline, "deep-notify", G_CALLBACK (gst_object_default_deep_notify), exclude_list); } -#if !defined(GST_DISABLE_LOADSAVE) && !defined(GST_REMOVE_DEPRECATED) - if (savefile) { - g_warning ("Pipeline serialization to XML is deprecated and broken for " - "all but the most simple pipelines. It will most likely be removed " - "in future. Don't use it.\n"); - - gst_xml_write_file (GST_ELEMENT (pipeline), fopen (savefile, "w")); - } -#endif if (!savefile) { GstState state, pending; diff --git a/tools/gst-xmlinspect.c b/tools/gst-xmlinspect.c index 4e60807..81a3faf 100644 --- a/tools/gst-xmlinspect.c +++ b/tools/gst-xmlinspect.c @@ -516,12 +516,6 @@ print_element_info (GstElementFactory * factory) PUT_STRING (2, "", GST_DEBUG_FUNCPTR_NAME (gstelement_class->change_state)); -#ifndef GST_DISABLE_LOADSAVE - PUT_STRING (2, "", - GST_DEBUG_FUNCPTR_NAME (gstobject_class->save_thyself)); - PUT_STRING (2, "", - GST_DEBUG_FUNCPTR_NAME (gstobject_class->restore_thyself)); -#endif PUT_END_TAG (1, "element-implementation"); PUT_START_TAG (1, "clocking-interaction");