mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-27 02:30:35 +00:00
12bbbd5c1e
Original commit message from CVS: Lots of modifications to the plugin system. - Added a GstPluginfeature object that serves as a base class for all plugin contents. - changed the plugin API, everyhting is now added with gst_plugin_add_feature - typefactories are named now so that they can be located easily and filled in at plugin load. - mime types like "video/raw image/raw" are gone for now. - lots of plugin updates (style and API changes) - tested with an without registry. - updates to various tools. - added a little testsuite to test/show how you can load plugins (4 modes) Test this one, Almost everything has changed :-)
59 lines
1.8 KiB
Text
59 lines
1.8 KiB
Text
The following plugin modes are supported:
|
|
|
|
1) registry based
|
|
-----------------
|
|
|
|
All known plugins are listed in the registry file.
|
|
|
|
gst_plugin_find ("pluginname");
|
|
|
|
Works right after gst_init (), along with the elements in it.
|
|
dynamic loading of the plugin is performed when a feature inside
|
|
it is requested.
|
|
|
|
example: registry.c. (You might want to run gstreamer-register with
|
|
the --gst-plugin-path=. to added the test dir to the plugin path so
|
|
that the testplugins can be found)
|
|
|
|
|
|
2) non registry based, dynmic loading
|
|
-------------------------------------
|
|
|
|
Plugins are know after a gst_plugin_load ("pluginname"). This
|
|
function will scan de plugin paths, so you might want to perform
|
|
a gst_plugin_add_path ("path").
|
|
|
|
After the gst_plugin_load(), the features are available without any
|
|
further actions.
|
|
|
|
example: dynamic.c
|
|
|
|
|
|
3) non registry based, shared linking
|
|
-------------------------------------
|
|
|
|
You can add the plugin .so (or equivalent) file to the LDFLAGS at
|
|
compile time. The plugin will be known after the gst_init() without
|
|
any further actions.
|
|
|
|
example: linked.c
|
|
|
|
|
|
4) non registry based, static linking
|
|
-------------------------------------
|
|
|
|
Plugin compiled with the GST_PLUGIN_STATIC defined can be statically
|
|
linked to the executable. The plugin is available after gst_init ()
|
|
without any further actions.
|
|
|
|
example: static.c (plugins are statically linked from another file)
|
|
static2.c (plugins are included in the main file)
|
|
|
|
|
|
Any combination of the above is possible too, for example, you can use
|
|
a registry, have some plugins load dynamically and have another few
|
|
linked in as a shared lib.
|
|
|
|
You cannot statically link multiple plugins that are compiled without the
|
|
GST_PLUGIN_STATIC symbol defined (this will cause multiple defined at link
|
|
time for obvious reasons)
|