gstreamer/docs/manual/plugins.sgml
Wim Taymans 3d34ce7b95 Updated the manual and the docs.
Original commit message from CVS:
Updated the manual and the docs.
Removed the esdsink in gst/elements/ we have a real one not in the
plugins dir.
Added more APIs to query the plugins, types and caps. more fields now
have a getter and a setter. This is needed to make gstreamer wrapper
fiendly.
Added gst_element_disconnect beacuse we also have a gst_element_connect
2001-01-06 02:35:17 +00:00

64 lines
1.7 KiB
Plaintext

<chapter id="cha-plugins">
<title>What are Plugins</title>
<para>
A plugin is a shared library that contains at least one of the following items:
</para>
<itemizedlist>
<listitem>
<para>
one or more elementfactories
</para>
</listitem>
<listitem>
<para>
one or more typedefinitions
</para>
</listitem>
</itemizedlist>
<para>
The plugins have one simple method: plugin_init () where all the elementfactories are
created and the typedefinitions are registered.
</para>
<para>
the plugins are maintained in the plugin system. Optionally, the typedefinitions and
the elementfactories can be saved into an XML representation so that the plugin system
does not have to load all available plugins in order to know their definition.
</para>
<para>
The basic plugin structure has the following fields:
</para>
<programlisting>
struct _GstPlugin {
gchar *name; /* name of the plugin */
gchar *longname; /* long name of plugin */
gchar *filename; /* filename it came from */
GList *types; /* list of types provided */
gint numtypes;
GList *elements; /* list of elements provided */
gint numelements;
gboolean loaded; /* if the plugin is in memory */
};
</programlisting>
<para>
You can query a GList of available plugins with:
</para>
<programlisting>
GList *plugins;
plugins = gst_plugin_get_list ();
while (plugins) {
GstPlugin *plugin = (GstPlugin *)plugins-&gt;data;
g_print ("plugin: %s\n", gst_plugin_get_name (plugin));
plugins = g_list_next (plugins);
}
</programlisting>
</chapter>