basics-elements.xml 1.66 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

<!-- ############ 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 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.
  </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>