GStreamer uses a *large* array of tools and libraries, most of which are
optional.  We have attempted to make sure that any code that depends on
optional libraries doesn't get built unless you have those libraries.  If
you find this not to be the case, please, let us know by filing a bug
report at http://bugzilla.gnome.org/.


Required tools:
===============

An extra set of tools is required if you wish to build GStreamer out of
CVS (using autogen.sh):

autoconf 2.52 or better 
automake 1.5
gettext 0.11.5
libtool v1.4 or better
pkgconfig 0.9.0 or better (http://www.freedesktop.org/software/pkgconfig/)

Required libraries:
===================

Package:	GStreamer
Version:	0.10.11.2
Recommended:	0.10.latest
URL:		http://gstreamer.freedesktop.org/
DebianPackage:	libgstreamer0.10-dev
Notes:		The required version is updated frequently, so the version
	listed in this file is often wrong.  If you are compiling from CVS,
	the required version is often the latest GStreamer CVS.

Package:	GStreamer Base Plugins
Version:	0.10.11.2
Recommended:	0.10.latest
URL:		http://gstreamer.freedesktop.org/
DebianPackage:	libgstreamer-plugins-base0.10-dev
Notes:		The required version is updated frequently, so the version
	listed in this file is often wrong.  If you are compiling from CVS,
	the required version is often the latest GStreamer Base Plugins CVS.



Optional libraries:
===================

This file lists supporting libraries for which gst-plugins contains plugins,
as well as their minimum version.  You can find the corresponding plugins in
ext/(library)

Package:        Orc
Version:        >= 0.4.5
Recommended:    0.4.latest
URL:            http://code.entropywave.com/orc
DebianPackage:  liborc-0.4-dev
Notes:		Used by many plugins for accelerating processing

Package:	GTK+
Version:	>= 2.0
Recommended:	>= 2.2
URL:		http://www.gtk.org/
DebianPackage:	libgtk2.0-dev
Plugins:	gdkpixbuf (gdkpixbufdec, gdkpixbufscale)
Notes:		Also required by several examples.  Plugin require >= 2.2.

Package:	Check
DebianPackage:	check
URL:		http://check.sourceforge.net/

Package:	Xlib
Plugins:	ximagesrc, v4l2
DebianPackage:	libx11-dev libxv-dev libxt-dev

Package:	AALib
Plugins:	aasink
URL:		http://aa-project.sourceforge.net/aalib/

Package:	LibXML
Version:	>= 2.4.9
Plugins:	annodex (cmmlenc, cmmldec)
URL:		http://xmlsoft.org/

Package:	Cairo
Version:	>= 1.0
Plugins:	cairo (cairotextoverlay, cairotimeoverlay)
URL:		http://cairographics.org/

Package:	CDIO
Version:	>= 0.71
Plugins:	cdio (cdiocddasrc)
URL:		http://www.gnu.org/software/libcdio/

Package:	FLAC
Version:	== 1.1.2
Plugins:	flac (flacenc, flacdec)
URL:		http://flac.sourceforge.net/

Package:	HAL
Version:	>= 0.5.6
Plugins:	halelements (halaudiosink, halaudiosrc)
URL:		http://hal.freedesktop.org/

Package:	IJG JPEG library
Plugins:	jpeg (jpegenc, jpegdec, smokeenc, smokedec)
URL:		http://www.ijg.org/

Package:	LADSPA
Plugins:	ladspa
URL:		http://www.ladspa.org/

Package:	Libcaca
Plugins:	cacasink
URL:		http://libcaca.zoy.org/

Package:	Libdv
Version:	>= 0.100
Plugins:	dv (dvdec)
URL:		http://libdv.sourceforge.net/

Package:	Libpng
Version:	>= 1.2
Plugins:	png (pngenc, pngdec)
URL:		http://www.libpng.org/pub/png/libpng.html

Package:	libraw1394
Plugins:	dv1394
URL:		http://www.linux1394.org/

Package:	libiec61883
Plugins:	dv1394
URL:		http://www.linux1394.org/

Package:	libshout
Version:	>= 2.0
URL:		http://www.icecast.org/

Package:	speex
Version:	>= 1.0.4 or >= 1.1.5
Plugins:	speex (speexenc, speexdec)
URL:		http://www.speex.org/

Package:	taglib
Version:	>= 1.4
DebianPackage:	libtag1-dev
URL:		http://developer.kde.org/~wheeler/taglib.html

Package:	zlib
Plugins:	id3demux
URL:		http://www.zlib.net/


Optional (debian) packages:
===========================

gtk-doc-tools 1.6  -- needed to build documentation
python-xml  -- needed to build plugin documentation
