Elements, Plugins, and Filters
In the &GStreamer; framework, a plugin is a specific
sort of code module that gets loaded when a program requests the
functionality that the plugin provides. A plugin is essentially a shared
code library.
Filters are an
important subset of plugins that process data, as opposed to producing or
consuming data. (Producers and consumers of data are called
source and sink plugins,
respectively.)
Elements are at the core of &GStreamer;. Without elements, &GStreamer; is
just a bunch of pipe fittings with nothing to connect. A large number of
elements (filters, sources, and sinks) ship with &GStreamer;, but extra
elements can also be written. The purpose of this guide is to help you
learn to create new elements.
An element may be constructed in several different ways, but all must
conform to the same basic rules. This guide presents one basic way to build
a filter elementA simple filter may be built with the
FilterFactory, where the only code that need be written is the actual filter
code. A more complex filter, or a source or sink, will need to be written
out fully for complete access to the features and performance possible with
&GStreamer;.
The implementation of a new element will be contained in a plugin: a single
plugin may contain the implementation of several elements, or just a single
one.