| |
| <!-- ############ chapter ############# --> |
| |
| <chapter id="cha-basics-elements"> |
| <title>Elements, Plugins, and Filters</title> |
| <para> |
| In the &GStreamer; framework, a <emphasis>plugin</emphasis> 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. |
| <emphasis>Filters</emphasis> are an |
| important subset of plugins that process data, as opposed to producing or |
| consuming data. (Producers and consumers of data are called |
| <emphasis>source</emphasis> and <emphasis>sink</emphasis> plugins, |
| respectively.) |
| </para> |
| <para> |
| Elements are at the core of &GStreamer;. Without elements, &GStreamer; is |
| just a bunch of pipe fittings with nothing to link. 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. |
| </para> |
| <para> |
| 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;. |
| </para> |
| <para> |
| 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. |
| </para> |
| </chapter> |
| |