Table of Contents
In this chapter you will learn how to construct the bare minimum code for a new plugin. Starting from ground zero, you will see how to get the GStreamer template source. Then you will learn how to use a few basic tools to copy and modify a template plugin to create a new plugin. If you follow the examples here, then by the end of this chapter you will have a functional audio filter plugin that you can compile and use in GStreamer applications.
There are currently two ways to develop a new plugin for GStreamer: You can write the entire plugin by hand, or you can copy an existing plugin template and write the plugin code you need. The second method is by far the simpler of the two, so the first method will not even be described here. (Errm, that is, “it is left as an exercise to the reader.”)
The first step is to check out a copy of the
gst-template git module to get an important tool and
the source code template for a basic GStreamer plugin. To check out the
gst-template module, make sure you are connected to
the internet, and type the following commands at a command console:
git clone git://anongit.freedesktop.org/gstreamer/gst-template.gitInitialized empty Git repository in /some/path/gst-template/.git/ remote: Counting objects: 373, done. remote: Compressing objects: 100% (114/114), done. remote: Total 373 (delta 240), reused 373 (delta 240) Receiving objects: 100% (373/373), 75.16 KiB | 78 KiB/s, done. Resolving deltas: 100% (240/240), done.
This command will check out a series of files and directories into
gst-template. The template you
will be using is in the
directory. You should look over the files in that directory to get a
general idea of the structure of a source tree for a plugin.
If for some reason you can't access the git repository, you can also download a snapshot of the latest revision via the cgit web interface.