
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/)
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/)
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/)
cacasink         libcaca          (http://sam.zoy.org/projects/libcaca/)
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/)
gst1394          libraw1394       (http://www.linux1394.org/)
gstaf            libaudiofile     (http://www.68k.org/~michael/audiofile/)
gstsf            libsndfile       (http://www.mega-nerd.com/libsndfile/)
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/)
smoothwave      
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:
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.
