1 <!-- ##### SECTION Title ##### -->
4 <!-- ##### SECTION Short_Description ##### -->
5 Dynamically loadable Elements
7 <!-- ##### SECTION Long_Description ##### -->
9 GStreamer is extensible so <classname>GstElements</classname> can be loaded at runtime. A plugin
10 system can provide one or more of the basic <application>GStreamer</application>
11 #GstPluginFeature subclasses.
14 A plugin should export a symbol plugin_desc that is a struct of type #GstPluginDesc.
15 the plugin loader will check the version of the core library the plugin was linked against
16 and will create a new #GstPlugin. It will then call the #GstPluginInitFunc function
17 that was provided in the plugin_desc.
20 Optionally a new plugin is created with gst_plugin_new(). this function will return a handle
21 to the GstPlugin or NULL if the plugin could not be created.
24 Once you have a handle to a #GstPlugin, you can add any object that subclasses #GstPluginFeature.
27 use gst_plugin_find(), gst_plugin_get_list() and gst_plugin_get_feature_list()
28 to query the plugin repository.
31 Plugins are always automaticlly loaded so you don't need to call gst_plugin_load() explicitly
32 to bring it into memory.
35 <!-- ##### SECTION See_Also ##### -->
37 #GstPluginFeature, #GstType, #GstAutoplug, #GstElementFactory
40 <!-- ##### STRUCT GstPlugin ##### -->
52 <!-- ##### USER_FUNCTION GstPluginInitFunc ##### -->
54 A plugin should provide a pointer to a function of this type in the plugin_desc struct.
55 It will be called by the loader at statup.
58 @module: The <classname>GModule</classname> it was loaded from
59 @plugin: The plugin object that can be used to register stuff for this plugin.
60 @Returns: A boolean indicating success or failure.
63 <!-- ##### STRUCT GstPluginDesc ##### -->
65 A plugins should export a variable of this type called plugin_desc. This plugin
66 loaded will use this variable to initialize the plugin.
69 @major_version: The minor version of the gstreamer library this plugin was created with
70 @minor_version: The minor version of the gstreamer library this plugin was created with
71 @name: The name of the plugin
72 @plugin_init: The init function of this plugin.
74 <!-- ##### MACRO GST_PLUGIN_DESC ##### -->
76 A handy macro to define a plugin description. This macro handles with all the issues
77 involved with the different linking methods for this plugin.
80 @major: The major version of GStreamer this plugin was compiled against.
81 @minor: The minor version of GStreamer this plugin was compiled against.
82 @name: The name of the plugin.
83 @init: The init function of this plugin.
86 <!-- ##### MACRO GST_PLUGIN_DESC_DYNAMIC ##### -->
88 The macro used to define dynamically loaded plugins.
91 @major: The major version of GStreamer this plugin was compiled against.
92 @minor: The minor version of GStreamer this plugin was compiled against.
93 @name: The name of the plugin.
94 @init: The init function of this plugin.
97 <!-- ##### MACRO GST_PLUGIN_DESC_STATIC ##### -->
99 A macro used to define a statically linked plugin.
102 @major: The major version of GStreamer this plugin was compiled against.
103 @minor: The minor version of GStreamer this plugin was compiled against.
104 @name: The name of the plugin.
105 @init: The init function of this plugin.
108 <!-- ##### FUNCTION gst_plugin_new ##### -->
119 <!-- ##### FUNCTION gst_plugin_set_name ##### -->
128 <!-- ##### FUNCTION gst_plugin_get_name ##### -->
137 <!-- ##### FUNCTION gst_plugin_get_longname ##### -->
146 <!-- ##### FUNCTION gst_plugin_set_longname ##### -->
155 <!-- ##### FUNCTION gst_plugin_get_filename ##### -->
164 <!-- ##### FUNCTION gst_plugin_is_loaded ##### -->
173 <!-- ##### FUNCTION gst_plugin_load_all ##### -->
180 <!-- ##### FUNCTION gst_plugin_load ##### -->
189 <!-- ##### FUNCTION gst_plugin_load_absolute ##### -->
198 <!-- ##### FUNCTION gst_plugin_add_path ##### -->
206 <!-- ##### FUNCTION gst_library_load ##### -->
215 <!-- ##### FUNCTION gst_plugin_find ##### -->
224 <!-- ##### FUNCTION gst_plugin_get_list ##### -->
232 <!-- ##### FUNCTION gst_plugin_load_thyself ##### -->
240 <!-- ##### FUNCTION gst_plugin_save_thyself ##### -->
249 <!-- ##### FUNCTION gst_plugin_add_feature ##### -->
258 <!-- ##### FUNCTION gst_plugin_get_feature_list ##### -->
267 <!-- ##### FUNCTION gst_plugin_load_plugin ##### -->
276 <!-- ##### FUNCTION gst_plugin_unload_all ##### -->