GstPlugin

GStreamer is extensible, so #GstElement instances can be loaded at runtime. A plugin system can provide one or more of the basic GStreamer #GstPluginFeature subclasses.

A plugin should export a symbol gst_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 gst_plugin_desc.

Once you have a handle to a #GstPlugin (e.g. from the #GstRegistry), you can add any object that subclasses #GstPluginFeature.

Usually plugins are always automatically loaded so you don't need to call gst.plugin.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.Plugin.load can be needed to bring the plugin into memory.

struct GstPlugin