| 1 |
WHAT IT IS |
| 2 |
---------- |
| 3 |
This is GStreamer Bad Plug-ins. |
| 4 |
|
| 5 |
This package is in the 0.9.x series. This means that this is a |
| 6 |
development series leading up to a stable 0.10.x series. |
| 7 |
You have been warned. |
| 8 |
|
| 9 |
GStreamer 0.9 development series - Hung by a Thread |
| 10 |
--------------------------------------------------- |
| 11 |
|
| 12 |
Starring |
| 13 |
|
| 14 |
GSTREAMER |
| 15 |
|
| 16 |
The core around which all other modules revolve. Base functionality and |
| 17 |
libraries, some essential elements, documentation, and testing. |
| 18 |
|
| 19 |
BASE |
| 20 |
|
| 21 |
A well-groomed and well-maintained collection of GStreamer plug-ins and |
| 22 |
elements, spanning the range of possible types of elements one would want |
| 23 |
to write for GStreamer. |
| 24 |
|
| 25 |
And introducing, for the first time ever, on the development screen ... |
| 26 |
|
| 27 |
THE GOOD |
| 28 |
|
| 29 |
--- "Such ingratitude. After all the times I've saved your life." |
| 30 |
|
| 31 |
A collection of plug-ins you'd want to have right next to you on the |
| 32 |
battlefield. Shooting sharp and making no mistakes, these plug-ins have it |
| 33 |
all: good looks, good code, and good licensing. Documented and dressed up |
| 34 |
in tests. If you're looking for a role model to base your own plug-in on, |
| 35 |
here it is. |
| 36 |
|
| 37 |
If you find a plot hole or a badly lip-synced line of code in them, |
| 38 |
let us know - it is a matter of honour for us to ensure Blondie doesn't look |
| 39 |
like he's been walking 100 miles through the desert without water. |
| 40 |
|
| 41 |
THE UGLY |
| 42 |
|
| 43 |
--- "When you have to shoot, shoot. Don't talk." |
| 44 |
|
| 45 |
There are times when the world needs a color between black and white. |
| 46 |
Quality code to match the good's, but two-timing, backstabbing and ready to |
| 47 |
sell your freedom down the river. These plug-ins might have a patent noose |
| 48 |
around their neck, or a lock-up license, or any other problem that makes you |
| 49 |
think twice about shipping them. |
| 50 |
|
| 51 |
We don't call them ugly because we like them less. Does a mother love her |
| 52 |
son less because he's not as pretty as the other ones ? No - she commends |
| 53 |
him on his great personality. These plug-ins are the life of the party. |
| 54 |
And we'll still step in and set them straight if you report any unacceptable |
| 55 |
behaviour - because there are two kinds of people in the world, my friend: |
| 56 |
those with a rope around their neck and the people who do the cutting. |
| 57 |
|
| 58 |
THE BAD |
| 59 |
|
| 60 |
--- "That an accusation?" |
| 61 |
|
| 62 |
No perfectly groomed moustache or any amount of fine clothing is going to |
| 63 |
cover up the truth - these plug-ins are Bad with a capital B. |
| 64 |
They look fine on the outside, and might even appear to get the job done, but |
| 65 |
at the end of the day they're a black sheep. Without a golden-haired angel |
| 66 |
to watch over them, they'll probably land in an unmarked grave at the final |
| 67 |
showdown. |
| 68 |
|
| 69 |
Don't bug us about their quality - exercise your Free Software rights, |
| 70 |
patch up the offender and send us the patch on the fastest steed you can |
| 71 |
steal from the Confederates. Because you see, in this world, there's two |
| 72 |
kinds of people, my friend: those with loaded guns and those who dig. |
| 73 |
You dig. |
| 74 |
|
| 75 |
The Lowdown |
| 76 |
----------- |
| 77 |
|
| 78 |
--- "I've never seen so many plug-ins wasted so badly." |
| 79 |
|
| 80 |
GStreamer Plug-ins has grown so big that it's hard to separate the wheat from |
| 81 |
the chaff. Also, distributors have brought up issues about the legal status |
| 82 |
of some of the plug-ins we ship. To remedy this, we've divided the previous |
| 83 |
set of available plug-ins into four modules: |
| 84 |
|
| 85 |
- gst-plugins-base: a small and fixed set of plug-ins, covering a wide range |
| 86 |
of possible types of elements; these are continuously kept up-to-date |
| 87 |
with any core changes during the development series. |
| 88 |
|
| 89 |
- We believe distributors can safely ship these plug-ins. |
| 90 |
- People writing elements should base their code on these elements. |
| 91 |
- These elements come with examples, documentation, and regression tests. |
| 92 |
|
| 93 |
- gst-plugins-good: a set of plug-ins that we consider to have good quality |
| 94 |
code, correct functionality, our preferred license (LGPL for the plug-in |
| 95 |
code, LGPL or LGPL-compatible for the supporting library). |
| 96 |
|
| 97 |
- We believe distributors can safely ship these plug-ins. |
| 98 |
- People writing elements should base their code on these elements. |
| 99 |
|
| 100 |
- gst-plugins-ugly: a set of plug-ins that have good quality and correct |
| 101 |
functionality, but distributing them might pose problems. The license |
| 102 |
on either the plug-ins or the supporting libraries might not be how we'd |
| 103 |
like. The code might be widely known to present patent problems. |
| 104 |
|
| 105 |
- Distributors should check if they want/can ship these plug-ins. |
| 106 |
- People writing elements should base their code on these elements. |
| 107 |
|
| 108 |
- gst-plugins-bad: a set of plug-ins that aren't up to par compared to the |
| 109 |
rest. They might be close to being good quality, but they're missing |
| 110 |
something - be it a good code review, some documentation, a set of tests, |
| 111 |
a real live maintainer, or some actual wide use. |
| 112 |
If the blanks are filled in they might be upgraded to become part of |
| 113 |
either gst-plugins-good or gst-plugins-ugly, depending on the other factors. |
| 114 |
|
| 115 |
- If the plug-ins break, you can't complain - instead, you can fix the |
| 116 |
problem and send us a patch, or bribe someone into fixing them for you. |
| 117 |
- New contributors can start here for things to work on. |
| 118 |
|
| 119 |
INSTALLING FROM PACKAGES |
| 120 |
------------------------ |
| 121 |
You should always prefer installing from packages first. GStreamer is |
| 122 |
well-maintained for a number of distributions, including Fedora, Debian, |
| 123 |
Ubuntu, Mandrake, Gentoo, ... |
| 124 |
|
| 125 |
Only in cases where you: |
| 126 |
- want to hack on GStreamer |
| 127 |
- want to verify that a bug has been fixed |
| 128 |
- do not have a sane distribution |
| 129 |
should you choose to build from source tarballs or CVS. |
| 130 |
|
| 131 |
Find more information about the various packages at |
| 132 |
http://gstreamer.freedesktop.org/download/ |
| 133 |
|
| 134 |
COMPILING FROM SOURCE TARBALLS |
| 135 |
------------------------------ |
| 136 |
- again, make sure that you really need to install from source ! |
| 137 |
If GStreamer is one of your first projects ever that you build from source, |
| 138 |
consider taking on an easier project. |
| 139 |
|
| 140 |
- check output of ./configure --help to see if any options apply to you |
| 141 |
- run |
| 142 |
./configure |
| 143 |
make |
| 144 |
|
| 145 |
to build GStreamer. |
| 146 |
- if you want to install it (not required), run |
| 147 |
make install |
| 148 |
- You should create a registry for things to work. |
| 149 |
If you ran make install in the previous step, run |
| 150 |
gst-register |
| 151 |
as root. |
| 152 |
|
| 153 |
If you didn't install, run |
| 154 |
tools/gst-register |
| 155 |
as a normal user. |
| 156 |
|
| 157 |
- try out a simple test: |
| 158 |
gst-launch fakesrc num_buffers=5 ! fakesink |
| 159 |
(If you didn't install GStreamer, again prefix gst-launch with tools/) |
| 160 |
|
| 161 |
If it outputs a bunch of messages from fakesrc and fakesink, everything is |
| 162 |
ok. |
| 163 |
|
| 164 |
- After this, you're ready to install gst-plugins, which will provide the |
| 165 |
functionality you're probably looking for by now, so go on and read |
| 166 |
that README. |
| 167 |
|
| 168 |
COMPILING FROM CVS |
| 169 |
------------------ |
| 170 |
When building from CVS sources, you will need to run autogen.sh to generate |
| 171 |
the build system files. |
| 172 |
|
| 173 |
You will need a set of additional tools typical for building from CVS, |
| 174 |
including: |
| 175 |
- autoconf |
| 176 |
- automake |
| 177 |
- libtool |
| 178 |
|
| 179 |
autogen.sh will check for recent enough versions and complain if you don't have |
| 180 |
them. You can also specify specific versions of automake and autoconf with |
| 181 |
--with-automake and --with-autoconf |
| 182 |
|
| 183 |
Check autogen.sh options by running autogen.sh --help |
| 184 |
|
| 185 |
autogen.sh can pass on arguments to configure - you just need to separate them |
| 186 |
from autogen.sh with -- between the two. |
| 187 |
prefix has been added to autogen.sh but will be passed on to configure because |
| 188 |
some build scripts like that. |
| 189 |
|
| 190 |
When you have done this once, you can use autoregen.sh to re-autogen with |
| 191 |
the last passed options as a handy shortcut. Use it. |
| 192 |
|
| 193 |
After the autogen.sh stage, you can follow the directions listed in |
| 194 |
"COMPILING FROM SOURCE" |
| 195 |
|
| 196 |
You can also run your whole cvs stack uninstalled. The script in |
| 197 |
the gstreamer module /docs/faq/gst-uninstalled) is helpful in setting |
| 198 |
up your environment for this. |
| 199 |
|
| 200 |
PLUG-IN DEPENDENCIES AND LICENSES |
| 201 |
--------------------------------- |
| 202 |
GStreamer is developed under the terms of the LGPL (see LICENSE file for |
| 203 |
details). Some of our plug-ins however rely on libraries which are available |
| 204 |
under other licenses. This means that if you are using an application which |
| 205 |
has a non-GPL compatible license (for instance a closed-source application) |
| 206 |
with GStreamer, you have to make sure not to use GPL-linked plug-ins. |
| 207 |
When using GPL-linked plug-ins, GStreamer is for all practical reasons |
| 208 |
under the GPL itself. |
| 209 |
|
| 210 |
HISTORY |
| 211 |
------- |
| 212 |
The fundamental design comes from the video pipeline at Oregon Graduate |
| 213 |
Institute, as well as some ideas from DirectMedia. It's based on plug-ins that |
| 214 |
will provide the various codec and other functionality. The interface |
| 215 |
hopefully is generic enough for various companies (ahem, Apple) to release |
| 216 |
binary codecs for Linux, until such time as they get a clue and release the |
| 217 |
source. |