
Disclaimer:  The GStreamer team makes a real effort to make sure that
the information in this file is as up-to-date and accurate as possible.
However, this file may contain errors and omissions.  Some dependant
libraries change their licensing from version-to-version and some of 
the libraries listed here as LGPL were under the GPL license in
older releases.  Distributions which include GStreamer are responsible
for ensuring that plugins are used in accordance with licensing terms
and other laws.

GStreamer is developed under the terms of the LGPL (see LICENSE file for details).
Some of our plugins 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 or derived plugins.  When using
GPL linked plugins GStreamer is for all practical reasons under the GPL itself. 

The plugins which use a GPL library are as follows:

a52dec           liba52           (http://liba52.sourceforge.net/)
aasink           aalib            (http://sourceforge.net/projects/aa-project/)
cdparanoia       libcdparanoia    (http://www.xiph.org/paranoia/)
dtsdec           libdts           (http://www.videolan.org/dtsdec.html)
dvdnavsrc        libdvdnav        (http://dvd.sourceforge.net/)
dxr3                              (http://dxr3.sourceforge.net/)
icecastsend      libshout         (http://www.icecast.org)
mad              libmad           (http://www.mars.org/home/rob/proj/mpeg/)
mpeg2dec         libmpeg2         (http://libmpeg2.sourceforge.net/)
mpeg2enc         libmpeg2enc      (http://mjpeg.sourceforge.net/)
mplex            libmplex         (http://mjpeg.sourceforge.net/)
siddec           libsidplay 1.36  (http://www.geocities.com/SiliconValley/Lakes/5147/sidplay/,
                                   http://sourceforge.net/projects/sidplay2/)
trm              libmusicbrainz   (http://www.musicbrainz.org/)
xine             libxine          (http://xinehq.de/)
xvid             libxvidcore      (http://www.xvid.org/)

Plugins derived from GPL code are as follows:

dvdreadsrc       libdvdread       (http://www.dtek.chalmers.se/groups/dvd/)
monoscope        None             (Algorithm by Ralph Loader, Joerg Walter,
                                   Richard Boulton, and Andy Lo A Foe)
rtjpeg           None             (Erik Walthinsen's algorithm)
rtp              None             (http://www.linphone.org/ortp/)
synaesthesia                      (http://www.logarithmic.net/pfh/synaesthesia)
system_encode    None             (Algorithm by Chrisoph Moar, Wim Tayman's and
                                   Erik Walthinsen)
vbidec           None             (Algorithm by Billy Biggs, Doug Bell, 
                                   Erik Walthinsen and David I. Lehn)

Plugins which use a LGPL library are as follows:

alsa             alsa             (http://alsa-project.org/)
artsdsink        aRts             (http://arts-project.org/)
cacasink         libcaca          (http://sam.zoy.org/projects/libcaca/)
colorspacelcs    libcolorspace    
dvdec            libdv            (http://libdv.sourceforge.net/)
esdmon,esdsink   libesd           (ftp.gnome.org/pub/GNOME/stable/sources/esound/)
faac             libfaac          (http://www.audiocoding.com/modules/mydownloads/)
fameenc          libfame          (http://fame.sourceforge.net/)
ffmpeg           ffmpeg           (http://ffmpeg.sourceforge.net/)
gdkpixbuf        GTK+             (http://www.gtk.org/)
gnomevfs         gnome-vfs        (ftp.gnome.org//pub/GNOME/stable/sources/gnome-vfs/)
gst_arts         aRts             (http://arts-project.org/)
gst1394          libraw1394       (http://www.linux1394.org/)
gstaf            libaudiofile     (http://www.68k.org/~michael/audiofile/)
gstsf            libsndfile       (http://www.mega-nerd.com/libsndfile/)
hermescolorspace Hermes           (http://www.clanlib.org/hermes/)
kio              KDE              (http://www.kde.org/)
ladspa                            (http://www.ladspa.org/)
lame             libmp3lame       (http://lame.sourceforge.net/)
libvisual        libvisual        (http://libvisual.sourceforge.net/)
matroska                          (http://www.matroska.org/)
mikmod           libmikmod        (http://mikmod.raphnet.net/)
ossaudio                          (http://www.opensound.com/)
qcamsrc
rfbenc           librfb
sdlvideosink     libsdl           (http://www.libsdl.org/)
shout2send       libshout2        (http://www.icecast.org)
smoothwave      
swfdec                            (http://swfdec.sourceforge.net/)
tarkin                            (http://svn.xiph.org/trunk/tarkin/)
textoverlay      pango            (http://www.pango.org/)
dirac                             (http://www.bbc.co.uk/rd/projects/dirac/)
effectv (Our ports was relicensed)(http://effectv.sourceforge.net/)
musepack 			  (http://www.musepack.net/)
kate             libtiger         (http://libtiger.googlecode.com/)
                                   Optional, only for the tiger element

Plugins which use a BSD covered library are as follows:

ogg              libogg/libvorbis (http://www.xiph.org/ogg/vorbis/)
vorbis           libogg/libvorbis (http://www.xiph.org/ogg/vorbis/)
gsttheora        libtheora        (http://www.theora.org/)
speex                             (http://www.speex.org/)
flac             libFLAC          (http://flac.sourceforge.net/)
kate             libkate          (http://libkate.googlecode.com/)

Plugins based on libraries with other free licenses:

ximagesink       libXv
xvimagesink      libXv            
 - license:      MIT X11 / X Consortium license

gsm              libgsm           
 - license       MIT license http://kbs.cs.tu-berlin.de/~jutta/toast.html

festival                          (http://www.cstr.ed.ac.uk/projects/festival/)
 - license:      http://www.cstr.ed.ac.uk/projects/festival/freecopyright.shtml

jpeg                              (http://www.ijg.org/)
 - license:      IJG license

nas                               (http://radscan.com/nas.html)
 - license:      NAS license

snapshot         libpng           (http://www.libpng.org/pub/png/)
 - license:      PNG license

mngdec/mngenc	libmng	    	(http://gjuyn.xs4all.nl/libmng)
 - license 	 PNG license

Plugins using non-free libraries:
divxdec, divxenc                        (http://www.divx.com/)
osxaudio                                (http://www.apple.com/macosx/)
sunaudiosink                            (http://www.sun.com/)

Unsure:

faad             libfaad          (http://www.audiocoding.com/)
faad's license depends on its major version :
  - for FAAD1 : it is LGPL
  - for FAAD2 : it is GPL
look at these pages for more information on licenses :
http://www.audiocoding.com/modules/wiki/?page=FAAD2
http://www.audiocoding.com/modules/wiki/?page=FAAC

by default, GStreamer faad plugin would compile against FAAD2 if available.
it falls back to FAAD1 if not.
