<!-- ##### SECTION Title ##### --> GstPlugin <!-- ##### SECTION Short_Description ##### --> Dynamically loadable Elements <!-- ##### SECTION Long_Description ##### --> <para> GStreamer is extensible so <classname>GstElements</classname> can be loaded at runtime. A plugin system can provide one or more of the basic <application>GStreamer</application> #GstPluginFeature subclasses. </para> <para> A plugin should export a symbol plugin_desc that is a struct of type #GstPluginDesc. the plugin loader will check the version of the core library the plugin was linked against and will create a new #GstPlugin. It will then call the #GstPluginInitFunc function that was provided in the plugin_desc. </para> <para> Once you have a handle to a #GstPlugin, you can add any object that subclasses #GstPluginFeature. </para> <para> use gst_plugin_find(), gst_plugin_get_list() and gst_plugin_get_feature_list() to query the plugin repository. </para> <para> Usually plugins are always automaticlly loaded so you don't need to call gst_plugin_load() explicitly to bring it into memory. There are options to statically link plugins to an app or even use GStreamer without a plugin repository in which case gst_plugin_load() can be needed to bring the plugin into memory. </para> <!-- ##### SECTION See_Also ##### --> <para> #GstPluginFeature, #GstType, #GstAutoplug, #GstElementFactory </para> <!-- ##### STRUCT GstPlugin ##### --> <para> </para> @name: @longname: @filename: @features: @numfeatures: @module: <!-- ##### USER_FUNCTION GstPluginInitFunc ##### --> <para> A plugin should provide a pointer to a function of this type in the plugin_desc struct. It will be called by the loader at statup. </para> @module: The <classname>GModule</classname> it was loaded from @plugin: The plugin object that can be used to register stuff for this plugin. @Returns: A boolean indicating success or failure. <!-- ##### STRUCT GstPluginDesc ##### --> <para> A plugins should export a variable of this type called plugin_desc. This plugin loaded will use this variable to initialize the plugin. </para> @major_version: The minor version of the gstreamer library this plugin was created with @minor_version: The minor version of the gstreamer library this plugin was created with @name: The name of the plugin @plugin_init: The init function of this plugin. <!-- ##### MACRO GST_PLUGIN_DESC ##### --> <para> A handy macro to define a plugin description. This macro handles with all the issues involved with the different linking methods for this plugin. </para> @major: The major version of GStreamer this plugin was compiled against. @minor: The minor version of GStreamer this plugin was compiled against. @name: The name of the plugin. @init: The init function of this plugin. <!-- ##### MACRO GST_PLUGIN_DESC_DYNAMIC ##### --> <para> The macro used to define dynamically loaded plugins. </para> @major: The major version of GStreamer this plugin was compiled against. @minor: The minor version of GStreamer this plugin was compiled against. @name: The name of the plugin. @init: The init function of this plugin. <!-- ##### MACRO GST_PLUGIN_DESC_STATIC ##### --> <para> A macro used to define a statically linked plugin. </para> @major: The major version of GStreamer this plugin was compiled against. @minor: The minor version of GStreamer this plugin was compiled against. @name: The name of the plugin. @init: The init function of this plugin. <!-- ##### FUNCTION gst_plugin_set_name ##### --> <para> </para> @plugin: @name: <!-- ##### FUNCTION gst_plugin_get_name ##### --> <para> </para> @plugin: @Returns: <!-- ##### FUNCTION gst_plugin_get_longname ##### --> <para> </para> @plugin: @Returns: <!-- ##### FUNCTION gst_plugin_set_longname ##### --> <para> </para> @plugin: @longname: <!-- ##### FUNCTION gst_plugin_get_filename ##### --> <para> </para> @plugin: @Returns: <!-- ##### FUNCTION gst_plugin_is_loaded ##### --> <para> </para> @plugin: @Returns: <!-- ##### FUNCTION gst_plugin_load_all ##### --> <para> </para> <!-- ##### FUNCTION gst_plugin_load ##### --> <para> </para> @name: @Returns: <!-- ##### FUNCTION gst_plugin_load_absolute ##### --> <para> </para> @name: @Returns: <!-- ##### FUNCTION gst_plugin_add_path ##### --> <para> </para> @path: <!-- ##### FUNCTION gst_library_load ##### --> <para> </para> @name: @Returns: <!-- ##### FUNCTION gst_plugin_find ##### --> <para> </para> @name: @Returns: <!-- ##### FUNCTION gst_plugin_get_list ##### --> <para> </para> @Returns: <!-- ##### FUNCTION gst_plugin_load_thyself ##### --> <para> </para> @parent: <!-- ##### FUNCTION gst_plugin_save_thyself ##### --> <para> </para> @parent: @Returns: <!-- ##### FUNCTION gst_plugin_add_feature ##### --> <para> </para> @plugin: @feature: <!-- ##### FUNCTION gst_plugin_get_feature_list ##### --> <para> </para> @plugin: @Returns: <!-- ##### FUNCTION gst_plugin_load_plugin ##### --> <para> </para> @plugin: @Returns: <!-- ##### FUNCTION gst_plugin_unload_all ##### --> <para> </para>