gstreamer/gst
Tim-Philipp Müller 9c6b87510e pluginloading: add support for whitelisting based on plugin or source module name and path
This feature is primarily intended for use in plugin modules' unit tests.

Consider the following situation: gst-plugins-good is built against an
installed GStreamer core. An older version of gst-plugins-good is also
installed in that prefix, along with random other plugin modules. Now,
when doing 'make check' in the just-built gst-plugins-good tree, we
want to only load plugins from GStreamer core, gst-plugins-base, and
gst-plugins-good, but not random other modules (we don't want any unit
tests to fail just because some module in gst-plugins-bad has a broken
plugin_init, for example). Also, we want to only load gst-plugins-good
modules from the locally-built source tree, but not any of the older
gst-plugins-good modules installed. This is usually assured by loading
the ones in the source tree first (by adding that path first to the
right environment variables), but it gets tricky when plugins are
moved, removed, merged, or renamed, or the plugin filename changes.

Note that 'make check' should really work right without doing
'make install' or uninstalling the old gst-plugins-good package (or
any other gst-plugins-foo package) first.

Enter GST_PLUGIN_LOADING_WHITELIST. This environment variable may
contain source-package@path-prefix pairs separated by the platform
search path separator (G_SEARCHPATH_SEPARATOR_S). The source package
and path prefix are separated by the '@' character. The path prefix is
entirely optional, as is the '@' separator if no path is given.

It is also possible to filter based on plugin names instead of the name
of the source-package by specifying one or more plugin names separated
by commas before the optional path prefix.

In short, the following match patterns are possible:

   plugin1,plugin2@pathprefix or
   plugin1,plugin2@* or just
   plugin1,plugin2 or
   source-package@pathprefix or
   source-package@* or just
   source-package

So for our gst-plugins-good unit test example above, we  would set the
environment variable on *nix to something like this (will likely be a
relative path in practice):
gstreamer:gst-plugins-base:gst-plugins-good@/path/to/src/gst-plugins-good

Fixes #619815 and #619717.
2010-06-23 17:56:51 +01:00
..
parse parse: fix more compiler warnings 2010-04-07 19:09:24 +01:00
.gitignore gstbase: Add gobject-introspection support 2009-09-05 10:28:46 +02:00
gettext.h gettext: build fixes: #if -> #ifdef 2010-03-22 17:10:06 +02:00
glib-compat-private.h configure.ac: Require GLib 2.12. 2008-04-01 13:55:20 +00:00
glib-compat.c gst/: remove GLib 2.6 compatibility code 2006-06-13 08:20:24 +00:00
glib-compat.h Remove some compatibility stuff for GLib < 2.14 2009-03-26 11:08:27 +01:00
gst-i18n-app.h i18n: define dummy ngettext if i18n is disabled. 2010-03-11 10:14:05 +02:00
gst-i18n-lib.h i18n: define dummy ngettext if i18n is disabled. 2010-03-11 10:14:05 +02:00
gst.c GstPad: Add new pad linking method with configurable checks. 2010-06-23 18:42:35 +02:00
gst.h bufferlist: add docs/build/debug/unittest 2009-05-12 15:18:52 +02:00
gst_private.h pluginloading: add support for whitelisting based on plugin or source module name and path 2010-06-23 17:56:51 +01:00
gstbin.c gstbin: unlock _get_state() on error 2010-05-25 19:17:44 +02:00
gstbin.h docs: explain ref ownership for handle_message implementations 2009-04-02 13:32:58 +02:00
gstbuffer.c buffer: only warn if metadata is not writable when it should be, don't return as well 2010-04-30 13:09:34 +01:00
gstbuffer.h docs: Move field specific Since markers at the same line 2010-01-14 10:44:16 +01:00
gstbufferlist.c docs: use informalfigure tag to not syntax highlight the content 2010-04-08 10:47:03 +03:00
gstbufferlist.h docs: add some more Since: markers to buffer list docs 2010-01-31 17:30:54 +00:00
gstbus.c docs: add links for GSource priorities 2010-05-19 16:24:54 +03:00
gstbus.h bus: whitespace fixes 2010-01-11 11:55:51 +01:00
gstcaps.c docs: add Since: tag for new gst_caps_steal_structure 2010-06-14 12:28:57 +01:00
gstcaps.h gstcaps: New gst_caps_steal_structure() method 2010-06-14 13:16:18 +02:00
gstchildproxy.c gst: use #if GLIB_CHECK_VERSION instead of #ifndef GLIBMACRO 2010-03-17 11:03:15 +00:00
gstchildproxy.h docs: fix gtk-doc /*< private >*/ marker 2009-07-02 01:18:57 +01:00
gstclock.c Make code safe for -Wredundant-decls 2010-03-10 20:45:33 +01:00
gstclock.h gstclock: Fix ABI breakage on 32 bit architectures 2009-05-17 10:46:39 +02:00
gstcompat.h docs/gst/gstreamer-sections.txt: ultral33t func10ns deserve to appear in the docs actualy 2005-08-30 08:17:48 +00:00
gstconfig.h.in gstconfig.h: add define to force printf format checking for debug messages 2009-11-05 21:23:22 +00:00
gstdebugutils.c debugutils: fix comment typo even more 2010-06-09 12:17:03 +03:00
gstdebugutils.h build: more some prototypes out if #ifndef GST_DISABLE_GST_DEBUG 2010-03-28 13:14:06 +03:00
gstelement.c Revert "GstPad: Add GST_PAD_NEGOTIABLE GstPadFlag" 2010-06-15 11:54:19 +02:00
gstelement.h element: Improve gst_element_get_name() docs 2010-06-15 18:49:41 +02:00
gstelementdetails.h Fixes for -Wmissing-declarations -Wmissing-prototypes 2010-03-11 10:59:57 +01:00
gstelementfactory.c elementfactory: Add an allow-none annotation 2010-06-16 19:03:21 +02:00
gstelementfactory.h elementfactory: Add FIXME 0.11 to remove GstElementDetails from the public API 2010-03-25 18:57:40 +01:00
gsterror.c gst: Use GError boxed type from GObject 2.25.2 instead of our own if possible 2010-04-29 18:18:37 +02:00
gsterror.h gst/gsterror.*: Add two new error codes for encrypted content. Fixes #524659. 2008-04-09 17:34:54 +00:00
gstevent.c event: Add out annotations 2010-06-16 19:03:21 +02:00
gstevent.h docs: add some more docs for the events 2010-04-29 10:26:14 +02:00
gstfilter.c docs: fix xrefs in docs 2009-11-25 16:59:50 +02:00
gstfilter.h docs/random/ensonic/media-device-daemon.txt: wild idea, can this be done? 2005-11-21 14:50:22 +00:00
gstformat.c gst: Use GSlice instead of normal g_malloc in more places 2010-03-28 19:48:45 +02:00
gstformat.h Fixes for -Wwrite-strings 2010-03-10 20:50:10 +01:00
gstghostpad.c gstghostpad: We don't need any checks when linking target pad 2010-06-23 18:42:40 +02:00
gstghostpad.h docs: fix gtk-doc /*< private >*/ marker 2009-07-02 01:18:57 +01:00
gstindex.c gst: Use GSlice instead of normal g_malloc in more places 2010-03-28 19:48:45 +02:00
gstindex.h gstindex: retab .h file 2010-01-21 16:19:44 +01:00
gstindexfactory.c Make code safe for -Wredundant-decls 2010-03-10 20:45:33 +01:00
gstindexfactory.h whitespace fixes 2005-10-15 15:30:24 +00:00
gstinfo.c info: add new TRACE log level and move refcounting there from LOG level 2010-06-05 12:53:15 +01:00
gstinfo.h info: add dummy TRACE log level macros for when debugging is disabled 2010-06-15 10:46:08 +01:00
gstinterface.c gst: Use G_DEFINE_TYPE and friends or at least g_once_init_* in the _get_type() functions 2009-04-04 10:20:36 +02:00
gstinterface.h Remove broken class to interface cast macros from GstUriHandler and GstImplementsInterface headers 2009-01-30 18:25:39 +00:00
gstiterator.c iterator: Add new FIXME for 0.11 and update gst_iterator_find_custom docs 2010-06-13 15:25:24 +02:00
gstiterator.h docs: it's its 2009-08-31 17:00:17 +01:00
gstmacros.h docs: remove gtkdoc header as these things don't come up on our docs even 2009-11-25 14:41:26 +02:00
gstmarshal.list check/Makefile.am: remove GstData checks 2005-05-16 20:21:55 +00:00
gstmessage.c message: Add out annotations 2010-06-16 19:03:20 +02:00
gstmessage.h message: add Since: markers 2010-04-07 16:06:22 +02:00
gstminiobject.c info: add new TRACE log level and move refcounting there from LOG level 2010-06-05 12:53:15 +01:00
gstminiobject.h miniobject: Add introspection annotations 2010-06-16 19:03:21 +02:00
gstobject.c gstobject: deprecate gst_object_{set|get}_name_prefix() 2010-06-22 18:53:15 +01:00
gstobject.h gstobject: deprecate gst_object_{set|get}_name_prefix() 2010-06-22 18:53:15 +01:00
gstpad.c GstPad: Add new pad linking method with configurable checks. 2010-06-23 18:42:35 +02:00
gstpad.h GstPad: Add new pad linking method with configurable checks. 2010-06-23 18:42:35 +02:00
gstpadtemplate.c docs: fix xrefs in docs 2009-11-25 16:59:50 +02:00
gstpadtemplate.h docs: fix xrefs in docs 2009-11-25 16:59:50 +02:00
gstparamspecs.c paramspecs: revert gst_param_spec_is_mutable() for release 2009-04-16 00:48:11 +01:00
gstparamspecs.h paramspecs: revert gst_param_spec_is_mutable() for release 2009-04-16 00:48:11 +01:00
gstparse.c Fixes for -Wmissing-declarations -Wmissing-prototypes 2010-03-11 10:59:57 +01:00
gstparse.h API: gst_parse_launch_full() 2008-05-24 15:33:53 +00:00
gstpipeline.c Fixes for -Wmissing-declarations -Wmissing-prototypes 2010-03-11 10:59:57 +01:00
gstpipeline.h pipeline: deprecate old methods, fix test 2009-05-29 12:21:36 +02:00
gstplugin.c pluginloading: add support for whitelisting based on plugin or source module name and path 2010-06-23 17:56:51 +01:00
gstplugin.h Add some 0.11 FIXMEs for GstPluginInitFunc 2010-03-13 11:05:33 +01:00
gstpluginfeature.c Remove GST_DEBUG_FUNCPTR where they're pointless 2009-10-28 00:44:24 +00:00
gstpluginfeature.h gstpluginfeature: API : new gst_plugin_feature_list_copy() method 2009-10-24 10:39:30 +02:00
gstpluginloader.c comments: add a few comments to the sparsely documented plugin loader 2010-06-09 12:15:52 +03:00
gstpluginloader.h Plugin loader phase 2 2009-10-06 19:51:42 +01:00
gstpoll.c gstpoll: don't pass non-objects as first argument to GST_DEBUG_OBJECT() 2010-03-04 18:40:50 +00:00
gstpoll.h GstPoll: add methods to use gstpoll for timeouts 2009-02-03 17:49:02 +01:00
gstpreset.c docs: clarify preset api docs 2009-10-15 12:16:05 +03:00
gstpreset.h gst/: Remove double interface from doc-string. 2008-08-12 06:27:35 +00:00
gstquark.c message: add QoS message to inform apps of lost data 2010-03-17 19:16:42 +01:00
gstquark.h message: add QoS message to inform apps of lost data 2010-03-17 19:16:42 +01:00
gstquery.c query: Add out annotations 2010-06-16 19:03:21 +02:00
gstquery.h Fixes for -Wwrite-strings 2010-03-10 20:50:10 +01:00
gstregistry.c registry: also skip .deps dirs when scanning for plugins 2010-06-19 13:06:45 +01:00
gstregistry.h registry: deprecate useless gst_registry_xml_{read|write}_cache() 2010-01-06 19:19:40 +00:00
gstregistrybinary.c gst: Use GSlice instead of normal g_malloc in more places 2010-03-28 19:48:45 +02:00
gstregistrybinary.h Make code safe for -Wredundant-decls 2010-03-10 20:45:33 +01:00
gstregistrychunks.c registrychunks: Initialize typefind/element factory registry chunks with zeroes 2010-04-09 13:08:13 +02:00
gstregistrychunks.h gst: Use GSlice instead of normal g_malloc in more places 2010-03-28 19:48:45 +02:00
gstsegment.c gstsegment: Actually start==stop==segment_start is inside the segment 2009-08-11 13:21:35 +02:00
gstsegment.h segment: add gst_segment_set_running_time 2009-06-04 12:53:20 +02:00
gststructure.c structure: API: Add gst_structure_fixate_field_string() 2010-05-22 10:01:44 +02:00
gststructure.h structure: API: Add gst_structure_fixate_field_string() 2010-05-22 10:01:44 +02:00
gstsystemclock.c Make code safe for -Wredundant-decls 2010-03-10 20:45:33 +01:00
gstsystemclock.h systemclock: fix indentation 2009-08-28 16:07:16 +02:00
gsttaglist.c tag: Adds GST_TAG_IMAGE_ORIENTATION tag 2010-06-23 11:57:20 -03:00
gsttaglist.h tag: Adds GST_TAG_IMAGE_ORIENTATION tag 2010-06-23 11:57:20 -03:00
gsttagsetter.c tagsetter: make sure only one thread creates the TagData 2010-05-24 19:08:29 +01:00
gsttagsetter.h tags: API: Add functions to add single tags to GstTagList or GstTagSetter 2009-05-12 09:02:44 +02:00
gsttask.c task: snprintf needs to include "stdio.h" 2010-03-16 09:56:41 +02:00
gsttask.h task: retab 2010-03-15 12:13:55 +01:00
gsttaskpool.c Make code safe for -Wredundant-decls 2010-03-10 20:45:33 +01:00
gsttaskpool.h docs: add Since markers to task pool docs and document task function 2010-01-06 19:18:53 +00:00
gsttrace.c gst: Use GSlice instead of normal g_malloc in more places 2010-03-28 19:48:45 +02:00
gsttrace.h Fixes for -Wwrite-strings 2010-03-10 20:50:10 +01:00
gsttypefind.c gsttypefind: avoid one more run-time type check 2009-11-02 08:50:04 +00:00
gsttypefind.h API: add gst_type_find_suggest_simple(), #533740. 2008-05-19 10:46:44 +00:00
gsttypefindfactory.c docs: fix xrefs in docs 2009-11-25 16:59:50 +02:00
gsttypefindfactory.h gst/: Fix memory leak in GstTypeFindFactory. 2005-11-29 23:56:20 +00:00
gsturi.c gsturi: Don't use g_signal_emit_by_name, use the signal ID directly 2009-12-07 09:51:03 +01:00
gsturi.h docs: Move field specific Since markers at the same line 2010-01-14 10:44:16 +01:00
gstutils.c gstutils: New gst_element_link_pads_full method 2010-06-23 18:42:40 +02:00
gstutils.h gstutils: New gst_element_link_pads_full method 2010-06-23 18:42:40 +02:00
gstvalue.c gstvalue: Add some more assertions and checks for valid input parameters 2010-06-14 15:45:11 +02:00
gstvalue.h docs: fix xrefs in docs 2009-11-25 16:59:50 +02:00
gstversion.h.in Replace some mentions of CVS by GIT 2009-02-08 10:28:59 +01:00
gstxml.c Make code safe for -Wredundant-decls 2010-03-10 20:45:33 +01:00
gstxml.h It's __GNUC__, not _GNUC_ 2009-08-22 15:49:12 -07:00
Makefile.am build: $(LIBM) belongs into LIBADD not LDFLAGS 2010-04-14 11:40:21 +01:00