5 We describe how the plugin system works.
10 plugins are basically shared libraries with a plugin_init
13 they provide the GStreamer core library with the following
23 element factories provide the core library with elements (duh)
25 an element factory has the following information:
27 - a unique name for the element factory
28 - strings describing the element (name, desciption, copyright,...)
29 - a description of the media types it accepts (as capabilities)
30 - a description of the media types it outputs (as capabilities)
36 has the following properties:
39 - file extensions that may provide a hint for this type
40 - a function to detect this type
41 - a string to detect this type (file(1) like)
47 The complete plugin tree will be exported into an XML description so
48 that the definitions of the factories can be obtained without having
49 to load and plugin_init the plugins.
54 at some point, the plugin will need to be read into memory before
55 any elements it provides can be used. the XML description of the
56 loaded plugin will need to be updated.
58 We will have the following methods for (implicitly) loading plugins:
62 remove the complete XML tree and read all the plugins in the
63 paths. The plugin_init method will be called and the XML tree
64 will be rebuild in memory.
66 gst_plugin_load (name)
68 The plugin will be located in the tree and if it already loaded, the
69 function returns. If it is not loaded, the XML entry is removed and
70 the plugin is loaded. The plugin_init is called so that the XML tree
73 gst_elementfactory_create (factory, name);
75 The plugin providing the element will be located, if the plugin is
76 already loaded, an element with the given name is created.
77 if the plugin is not loaded, gst_plugin_load is called.
78 the loaded factory is located again and the element is created.
80 The typefind function is called
82 When the plugin description is read from the XML file, the typefind
83 function is hooked up to a dummy typefind function. The dummy typefind
84 function will locate the plugin it belongs to and call gst_plugin_load.
85 after the loading of the plugin, the real typefind function is called.