releasing 0.9.2
[glsdk/gst-plugins-ugly0-10.git] / README
diff --git a/README b/README
index 1bd0d623fc81d3121724d27092437fd1f41f52be..322a56abef07fdeb573da19a4dbce658deab809f 100644 (file)
--- a/README
+++ b/README
 WHAT IT IS
 ----------
-This is gst-plugins, a set of plug-ins for GStreamer.
+This is GStreamer Ugly Plug-ins.
+
+This package is in the 0.9.x series.  This means that this is a
+development series leading up to a stable 0.10.x series.
+You have been warned.
+
+GStreamer 0.9 development series - Hung by a Thread
+---------------------------------------------------
+
+Starring
+
+  GSTREAMER
+
+The core around which all other modules revolve.  Base functionality and
+libraries, some essential elements, documentation, and testing.
+
+  BASE
+
+A well-groomed and well-maintained collection of GStreamer plug-ins and
+elements, spanning the range of possible types of elements one would want
+to write for GStreamer.  
+
+And introducing, for the first time ever, on the development screen ...
+
+  THE GOOD
+
+ --- "Such ingratitude.  After all the times I've saved your life."
+
+A collection of plug-ins you'd want to have right next to you on the
+battlefield.  Shooting sharp and making no mistakes, these plug-ins have it
+all: good looks, good code, and good licensing.  Documented and dressed up
+in tests.  If you're looking for a role model to base your own plug-in on,
+here it is.
+
+If you find a plot hole or a badly lip-synced line of code in them,
+let us know - it is a matter of honour for us to ensure Blondie doesn't look
+like he's been walking 100 miles through the desert without water.
+
+  THE UGLY
+
+  --- "When you have to shoot, shoot.  Don't talk."
+
+There are times when the world needs a color between black and white.
+Quality code to match the good's, but two-timing, backstabbing and ready to
+sell your freedom down the river.  These plug-ins might have a patent noose
+around their neck, or a lock-up license, or any other problem that makes you
+think twice about shipping them.
+
+We don't call them ugly because we like them less.  Does a mother love her
+son less because he's not as pretty as the other ones ? No  - she commends
+him on his great personality.  These plug-ins are the life of the party.
+And we'll still step in and set them straight if you report any unacceptable
+behaviour - because there are two kinds of people in the world, my friend:
+those with a rope around their neck and the people who do the cutting.
+
+  THE BAD
+
+  --- "That an accusation?"
+
+No perfectly groomed moustache or any amount of fine clothing is going to
+cover up the truth - these plug-ins are Bad with a capital B. 
+They look fine on the outside, and might even appear to get the job done, but
+at the end of the day they're a black sheep. Without a golden-haired angel
+to watch over them, they'll probably land in an unmarked grave at the final
+showdown.
+
+Don't bug us about their quality - exercise your Free Software rights,
+patch up the offender and send us the patch on the fastest steed you can
+steal from the Confederates. Because you see, in this world, there's two
+kinds of people, my friend: those with loaded guns and those who dig.
+You dig.
+
+The Lowdown
+-----------
+
+  --- "I've never seen so many plug-ins wasted so badly."
+
+GStreamer Plug-ins has grown so big that it's hard to separate the wheat from
+the chaff.  Also, distributors have brought up issues about the legal status
+of some of the plug-ins we ship.  To remedy this, we've divided the previous
+set of available plug-ins into four modules:
+
+- gst-plugins-base: a small and fixed set of plug-ins, covering a wide range
+  of possible types of elements; these are continuously kept up-to-date
+  with any core changes during the development series.
+
+  - We believe distributors can safely ship these plug-ins.
+  - People writing elements should base their code on these elements.
+  - These elements come with examples, documentation, and regression tests.
+
+- gst-plugins-good: a set of plug-ins that we consider to have good quality
+  code, correct functionality, our preferred license (LGPL for the plug-in
+  code, LGPL or LGPL-compatible for the supporting library).
+
+  - We believe distributors can safely ship these plug-ins.
+  - People writing elements should base their code on these elements.
+- gst-plugins-ugly: a set of plug-ins that have good quality and correct
+  functionality, but distributing them might pose problems.  The license
+  on either the plug-ins or the supporting libraries might not be how we'd
+  like. The code might be widely known to present patent problems.
+
+  - Distributors should check if they want/can ship these plug-ins.
+  - People writing elements should base their code on these elements.
+
+- gst-plugins-bad: a set of plug-ins that aren't up to par compared to the
+  rest.  They might be close to being good quality, but they're missing
+  something - be it a good code review, some documentation, a set of tests,
+  a real live maintainer, or some actual wide use.
+  If the blanks are filled in they might be upgraded to become part of
+  either gst-plugins-good or gst-plugins-ugly, depending on the other factors.
+
+  - If the plug-ins break, you can't complain - instead, you can fix the
+    problem and send us a patch, or bribe someone into fixing them for you.
+  - New contributors can start here for things to work on.
+
+INSTALLING FROM PACKAGES
+------------------------
+You should always prefer installing from packages first.  GStreamer is
+well-maintained for a number of distributions, including Fedora, Debian,
+Ubuntu, Mandrake, Gentoo, ...
+
+Only in cases where you:
+- want to hack on GStreamer
+- want to verify that a bug has been fixed
+- do not have a sane distribution
+should you choose to build from source tarballs or CVS.
+
+Find more information about the various packages at
+http://gstreamer.freedesktop.org/download/
+
+COMPILING FROM SOURCE TARBALLS
+------------------------------
+- again, make sure that you really need to install from source !
+  If GStreamer is one of your first projects ever that you build from source,
+  consider taking on an easier project.
 
-COMPILING FROM SOURCE
----------------------
-- make sure you compiled and at least did a test-run of GStreamer (core)
 - check output of ./configure --help to see if any options apply to you
-- configure the source tree:
-  - if you installed GStreamer, then do:
-      ./configure
-    If configure complains about missing GStreamer, you should try the 
-    following command:
-    $export PKG_CONFIG_PATH=prefix/lib/pkgconfig
-    where prefix should be replaced by the prefix you used to configure
-    GStreamer. (Be mindful NOT to ADD a trailing / to that option !).
-    After that, rerun ./configure. If this doesn't fix it, you have other
-    issues ;)
-
-  - if you didn't install GStreamer, you can still compile the plug-ins.
-    Add the path to gstreamer-uninstalled.pc (which lives in the gstreamer
-    source tree) to PKG_CONFIG_PATH
-    or run configure --with-pkg-config-path=(path to gstreamer uninstalled)
-  
-  - the output of configure will give you a list of plug-ins with external
-    dependencies (ie, depending on other libs, see below).  By no means
-    should you try to get them all built on your first run.  This is hard
-    enough as it is ;)  Resist the urge to get the most features for now.
-    It doesn't list all of the non-depending plug-ins, which get built
-    regardless (unless you explicitly asked it not to).
-
-- build the tree:
+- run
+  ./configure
   make
-  If any plug-in causes a problem at this stage, you should re-configure
-  with --disable-(dependency)
-  and doublecheck if configure reports this plug-in as being disabled.
-  Then re-run make.
-
-- install:
-  - if you installed GStreamer, and want to install the plug-ins as well, run
-      make install
-    and, as root, run
-      gst-register
-  - if you installed GStreamer, but don't want to install the plug-ins, run
-      gst-register --gst-plugin-path=.
-  - if you didn't install GStreamer, then do
-      path/to/gstreamer/tools/gst-register --gst-plugin-path=.
-      (Replace path/to/gstreamer obviously)
-
-- test:
-  - run 
-     gst-launch sinesrc ! fakesink
-   and prefix gst-launch with the path to gstreamer/tools if you didn't install
-   GStreamer.
-   If this doesn't give any errors, you can abort it.  
-
-  - try replacing fakesink with your choice of 
-    osssink/esdsink/artsdsink/alsasink/jacksink (depending on what output
-    method you have available) and see if you hear a C tone.
-
-- After this, you should look into installing an application, like
-  gst-player, gst-editor or monkey-media with rhythmbox.
+
+  to build GStreamer.
+- if you want to install it (not required), run
+  make install
+- You should create a registry for things to work.
+  If you ran make install in the previous step, run
+  gst-register
+  as root.
+
+  If you didn't install, run
+  tools/gst-register
+  as a normal user.
+
+- try out a simple test:
+  gst-launch fakesrc num_buffers=5 ! fakesink
+  (If you didn't install GStreamer, again prefix gst-launch with tools/)
+
+  If it outputs a bunch of messages from fakesrc and fakesink, everything is
+  ok.
+
+- After this, you're ready to install gst-plugins, which will provide the
+  functionality you're probably looking for by now, so go on and read
+  that README.
 
 COMPILING FROM CVS
 ------------------
-When building from CVS sources, you will need to run autogen.sh to generate
+When building from CVS sources, you will need to run autogen.sh to generate 
 the build system files.
 
-GStreamer is cutting-edge stuff.  To be a CVS developer, you need
-what used to be considered cutting-edge tools.
-
-ATM, most of us have at least these versions :
-
-* autoconf      2.52    (NOT 2.52d)
-* automake      1.5     
-* gettext      0.11.5
-* libtool       1.4     (NOT Gentoo's genetic failure 1.4.2)
-* pkg-config    0.8.0
+You will need a set of additional tools typical for building from CVS,
+including:
+- autoconf
+- automake
+- libtool
 
-autogen.sh will check for these versions and complain if you don't have 
+autogen.sh will check for recent enough versions and complain if you don't have
 them.  You can also specify specific versions of automake and autoconf with
 --with-automake and --with-autoconf
 
@@ -87,8 +186,6 @@ autogen.sh can pass on arguments to configure - you just need to separate them
 from autogen.sh with -- between the two.
 prefix has been added to autogen.sh but will be passed on to configure because
 some build scripts like that.
-You will probably have to pass at least --with-pkg-config-path to autogen.sh
-to point to the CVS version of GStreamer.
 
 When you have done this once, you can use autoregen.sh to re-autogen with
 the last passed options as a handy shortcut.  Use it.
@@ -96,14 +193,25 @@ the last passed options as a handy shortcut.  Use it.
 After the autogen.sh stage, you can follow the directions listed in
 "COMPILING FROM SOURCE"
 
+You can also run your whole cvs stack uninstalled.  The script in
+the gstreamer module /docs/faq/gst-uninstalled) is helpful in setting
+up your environment for this.
+
 PLUG-IN DEPENDENCIES AND LICENSES
 ---------------------------------
-GStreamer is developed under the terms of the LGPL (see LICENSE file for 
-details). Some of our plug-ins however rely on libraries which are available 
-under other licenses. This means that if you are using an application which 
-has a non-GPL compatible license (for instance a closed-source application) 
+GStreamer is developed under the terms of the LGPL (see LICENSE file for
+details). Some of our plug-ins however rely on libraries which are available
+under other licenses. This means that if you are using an application which
+has a non-GPL compatible license (for instance a closed-source application)
 with GStreamer, you have to make sure not to use GPL-linked plug-ins.
-When using GPL-linked plug-ins, GStreamer is for all practical reasons 
-under the GPL itself. 
-
-There is a LICESENSE_readme file containing licensing information on the plugins
+When using GPL-linked plug-ins, GStreamer is for all practical reasons
+under the GPL itself.
+
+HISTORY
+-------
+The fundamental design comes from the video pipeline at Oregon Graduate
+Institute, as well as some ideas from DirectMedia.  It's based on plug-ins that
+will provide the various codec and other functionality.  The interface
+hopefully is generic enough for various companies (ahem, Apple) to release
+binary codecs for Linux, until such time as they get a clue and release the
+source.