It's often not obvious to people that elements like e.g. uridecodebin
(or demuxers) automatically support the standard signals of the
GstElement class, so let's print the useful pad-related ones for
elements with sometimes pads.
Add a GstStructure to GstElementClass and GstElementFactory. Add setters/getter.
Handle it in the registry code. Print items in gst-inspect.
Fixes#396774.
API: gst_element_class_set_meta_data(), gst_element_factory_get_meta_data_detail()
This changes some APIs in compatible ways:
- Some functions now take "const char *" arguments, not "char *"
- Some structs now have "conts char *" members, not "char *"
The changes may cause warnings when compiling with the right warning
flags. You've been warned.
Also adds -Wwrite-strings as a warning flag in configure.ac.
https://bugzilla.gnome.org/show_bug.cgi?id=611692
g_setprgname is implicitly called by g_option_context_new() with a check
to see if it's been set already, so set it before g_option_context_new()
Move version printing back until after the options have been parsed,
otherwise it won't work, since it evaluates a flag set by the
option parser.
If no plugin is given, print the info for all plugins. This can be used as a
starting point to generate a profile about what the gstreamer installation can
potentialy handle (e.g. for MTP or DLNA).
Original commit message from CVS:
2008-11-17 Andy Wingo <wingo@pobox.com>
* tools/gst-inspect.c (print_all_uri_handlers): New function,
prints a summary of what URI schemes are supported by what
elements.
(main): Plumb in support for --uri-handlers or -u, and fix the
argc check for -a and -u.
Original commit message from CVS:
* configure.ac:
* docs/gst/gstreamer-sections.txt:
* docs/gst/gstreamer.types:
* docs/gst/gstreamer.types.in:
* gst/Makefile.am:
* gst/gst.c:
* gst/gstbin.c: (gst_bin_class_init), (gst_bin_set_index_func):
* gst/gstconfig.h.in:
* gst/gstelement.c: (gst_element_get_index):
* gst/gstregistrybinary.c: (gst_registry_binary_save_feature),
(gst_registry_binary_load_feature),
(gst_registry_binary_read_cache):
* gst/gstregistryxml.c: (load_feature),
(gst_registry_xml_read_cache), (gst_registry_xml_save_feature):
* plugins/Makefile.am:
* tools/gst-indent:
* tools/gst-inspect.c: (print_index_info), (print_element_list),
(print_plugin_features), (print_element_features):
* tools/gst-xmlinspect.c: (print_event_masks),
(print_element_info):
* win32/common/gstconfig.h:
Remove GST_DISABLE_(ENUMTYPES|INDEX|URI) everywhere.
Disabling the indexers and URI handler code will only reduce the
required amount of memory by a very small amount but on the other hand
requires much more maintaince work. Apart from that many places of
code are broken when disabling them.
Disabling the enum types doesn't reduce the required amount of memory
by more than a few bytes and makes it hard to fix bugs like #539772,
i.e. use the enums as GObject properties.
Original commit message from CVS:
* tools/gst-inspect.c: (print_element_properties_info):
If possible print the element type of GValueArray properties.
Original commit message from CVS:
* tools/gst-inspect.c: (n_print), (print_hierarchy),
(print_interfaces), (print_element_properties_info),
(print_signal_info):
Use "%s" as format string instead of printing strings directly.
Original commit message from CVS:
* tools/gst-inspect.c: (print_uri_handler_info),
(print_element_info):
Print the URI protocols and the URI type supported by the element.
Original commit message from CVS:
* gst/gstminiobject.c: (gst_value_dup_mini_object),
(gst_param_spec_mini_object):
* gst/gstminiobject.h:
* win32/common/libgstreamer.def:
* docs/gst/gstreamer-sections.txt:
API: Add GST_IS_PARAM_SPEC_MINI_OBJECT, GST_PARAM_SPEC_MINI_OBJECT
GST_TYPE_PARAM_MINI_OBJECT and gst_value_dup_mini_object. Also move
GstParamSpecMiniObject into a public header for this.
This make GstMiniObject a bit more consistent with GObject and makes
it possible to extend the param specs.
gst_value_dup_mini_object is mainly useful for set_property methods.
Fixes bug #523798.
* tools/gst-inspect.c: (print_element_properties_info):
Print something useful for GstMiniObject properties and not just
"unknown type".
Original commit message from CVS:
* tools/gst-inspect.c: (print_interfaces),
(print_element_properties_info), (print_pad_info),
(print_signal_info), (print_element_info):
Fix a few memory leaks.
Original commit message from CVS:
* tools/gst-inspect.c: (print_interfaces),
(print_element_properties_info), (print_pad_info),
(print_signal_info), (print_element_info):
Fix a few memory leaks.
Original commit message from CVS:
* gst/gstbuffer.c:
Update some comments.
* tools/gst-inspect.c: (print_element_properties_info):
Improve printing of flags.
Original commit message from CVS:
* tools/gst-inspect.c:
Save approx. 400 1 byte allocs when printing. Use API to acces element
details.
* tools/gst-run.c:
Avoid a strdup.
* tools/gst-xmlinspect.c:
Use API to acces element details.
Original commit message from CVS:
* tools/gst-inspect.c:
(print_plugin_automatic_install_info_codecs):
Now that we don't check for the 'Codec' keyword any longer in the
klass, we shouldn't spew a warning if the klass isn't a decoder or
encoder (since it might be a Source/Network, for example).
Original commit message from CVS:
* tools/gst-inspect.c:
(print_plugin_automatic_install_info_codecs):
Don't require decoder/demuxer/depayloader elements or
encoder/muxer/paylader elements to have 'Codec' as part of their
factory class string when introspecting a plugin's capabilities.
draft-klass.txt mentions that it might be removed in future, and
flump3dec doesn't have it as part of its class string, so chances
are others might also not have it.
Original commit message from CVS:
* tools/gst-inspect.c:
(print_plugin_automatic_install_info_codecs),
(print_plugin_automatic_install_info_protocols),
(print_plugin_automatic_install_info), (main):
Add --print-plugin-auto-install-info option to gst-inspect, so we can
introspect plugin files and get machine-parsable output that corresponds
to the last bit of the missing-plugin installer string (small gotcha:
doesn't take into account ranks).
Original commit message from CVS:
* tools/gst-inspect.c: (main):
* tools/gst-launch.c: (main):
* tools/gst-typefind.c: (main):
* tools/gst-xmlinspect.c: (main):
Call g_thread_init() really really early, before any other GLib
function (see #342564 and recent discussion on gtk-devel-list).
Original commit message from CVS:
* gst/gstelementfactory.c: (gst_element_factory_create):
* gst/gstpluginfeature.c: (gst_plugin_feature_load):
* gst/gsttypefindfactory.c: (gst_type_find_factory_call_function):
* tools/gst-inspect.c: (print_element_info):
Fix refcounting of gst_plugin_feature_load to match the docs.
Fixes: #380129
Original commit message from CVS:
* tools/gst-inspect.c: (print_element_properties_info):
Print a string instead of 'unknown type' for GValueArray properties
Original commit message from CVS:
* tools/gst-inspect.c: (print_element_properties_info),
(print_signal_info):
Fix printing of flags to match the look of enums.