pulsesink: Add null check to fix crash
[platform/upstream/gst-plugins-good.git] / REQUIREMENTS
index 7800add..ee00920 100644 (file)
 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
+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/.
 
+On Debian/Ubuntu, the easiest way to install most build requirements is:
+
+        sudo apt-get build-dep gst-plugins-good1.0
 
 Required tools:
 ===============
 
-An extra set of tools is required if you wish to build GStreamer out of
-CVS (using autogen.sh):
+An extra set of tools is required if you wish to build GStreamer
+from git (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/)
+autoconf  >= 2.68   https://www.gnu.org/software/autoconf/
+automake  >= 1.11   https://www.gnu.org/software/automake/
+gettext   >= 0.17   https://www.gnu.org/software/gettext/
+libtool   >= 2.2.6  https://www.gnu.org/software/libtool/
+pkgconfig >= 0.9.0  https://www.freedesktop.org/software/pkgconfig/
 
 Required libraries:
 ===================
 
-The core GStreamer libraries. See the gstreamer/ module in GStreamer cvs, or
-the version that corresponds to this plugin release.
+Package:        GStreamer
+Version:        1.x (same 1.x version as this package)
+Recommended:    Latest 1.x
+URL:            http://gstreamer.freedesktop.org/
+DebianPackage:  libgstreamer1.0-dev
+Notes:          The required version is updated frequently, so the version
+                listed in this file is often out of date. If you are compiling
+                from git master, you will usually need GStreamer core and
+                gst-plugins-base from git master as well.
+
+Package:        GStreamer Base Plugins
+Version:        1.x (same 1.x version as this package)
+Recommended:    Latest 1.x
+URL:            http://gstreamer.freedesktop.org/
+DebianPackage:  libgstreamer-plugins-base1.0-dev
+Notes:          The required version is updated frequently, so the version
+                listed in this file is often out of date. If you are compiling
+                from git master, you will usually need GStreamer core and
+                gst-plugins-base from git master as well.
+
 
 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)
-
-dirac          (Dirac video codec)
-                       http://www.bbc.co.uk/rd/projects/dirac/index.shtml
-libaudiofile    (for afsrc/afsink
-                       http://oss.sgi.com/projects/audiofile/
-libmad          (for the mad mp3 decoder plugin)
-                       http://www.mars.org/home/rob/proj/mpeg/
-libjpeg         (for jpegenc/jpegdec)
-                       http://www.ijg.org/
-libopenquicktime (for the QT plugin)
-                       http://sourceforge.net/projects/openquicktime/
-libXv          (for videosink)
-libxaudio      (for xa mp3 decoder)
-                       http://www.xaudio.com/
-libvorbis      (for vorbisenc, vorbisdec)
-                       http://www.xiph.org/ogg/vorbis/index.html
-libcdparanoia  (for cdparanoia ripper)
-                       http://www.xiph.org/paranoia/index.html
-liblame                (for lame mp3 encoder)
-                       http://www.mp3dev.org/mp3/
-libshout       (for the shoutcast plugin)
-                       http://www.icecast.org
-libasound      (for the alsa src/sink plugin)
-                       http://alsa-project.org/
-librtp         (for the rtp sink plugin)
-                       http://www.linphone.org/ortp/
-aalib          (for the aa sink plugin)
-                       http://aa-project.sourceforge.net/aalib/
-libcaca                (for the color aa sink plugin)
-                       http://sam.zoy.org/projects/libcaca/
-aRts           (for the arts plugin wrapper, and the artsd sink)
-                       http://www.arts-project.org
-raw1394/linux1394      (for the dv plugin)
-                       http://linux1394.sourceforge.net
-libdvdread     (for the dvdsrc)
-                       http://www.dtek.chalmers.se/groups/dvd/
-                       (optional: libcss for encrypted DVDs)
-libdvdnav      (for the dvdnavsrc)
-                       http://dvd.sourceforge.net/
-                       (optional: libcss for encrypted DVDs)
-               >= 0.1.9
-libesound      (for the esd sink 
-                       ftp.gnome.org/pub/GNOME/stable/sources/esound)
-gnome-vfs      (for the gnome-vfs src)
-               >= 2.4.0
-libgsm         (for the gsm plugin)
-                       http://kbs.cs.tu-berlin.de/~jutta/toast.html
-sdl            (for the sdl sink)
-                       http://www.libsdl.org
-xmms           (for the xmms plugins wrapper)
-                       http://www.xmms.org
-mpeg2dec/a52dec        (for mpeg2 related plugins and dvd playback)
-                       http://libmpeg2.sourceforge.net/
-                       and http://liba52.sourceforge.net/
-               >=      v0.3.1/v0.7.2
-swfdec         (for the swfdec (flash) plugin)
-                       http://www.schleef.org/swfdec/
-liboil         (for the liboil optimization library)
-                       http://www.schleef.org/liboil/
-               >=      0.2.0
-flac           (for the FLAC lossless audio format)
-                       http://flac.sourceforge.net
-                >= 1.0.3 preferred, 1.0.2 should work
-gtk            (for the gdk_pixbuf plugin)
-                       http://www.gtk.org/
-               >= 2.2.1 preferred, 2.0 ok
-pango          (for the textoverlay plugins)
-                       http://www.pango.org/
-libHermes       (for colorspace conversion;most use ffcolorspace instead)
-                        http://www.clanlib.org/hermes/
-librfb         (for capturing of VNC output into a videostream)
-                       http://www.schleef.org/
-libHermes       (for colorspace conversions (should not be needed anymore))
-                        http://www.clanlib.org/hermes/
-dtsdec         (for DTS audio decoding)
-                       http://www.videolan.org/libdca.html
-divx           (for divx decoding)
-                       http://www.divx.com/divx/linux/
-libmng         (for mng animated image format encoding/decoding)
-                       http://gjuyn.xs4all.nl/libmng
-libvisual      (for audio visualisations)
-                       http://libvisual.sourceforge.net/v2/
-musepack       (for musepack audio codec/format)
-                       (http://www.musepack.net/)
-nas            (for the NAS sound server sink)
-                       (http://radscan.com/nas.html)
-libtheora      (for Ogg Theora video support)
-                       (http://www.theora.org)
-libmms         (for MMS protocol support)
-                       (http://www.sf.net/projects/libmms)
-
-
-Optional debian packages:
-=========================
-
-gtk-doc-tools 0.4-0.2  -- needed to build documentation
+This file lists supporting libraries for which gst-plugins-good contains
+plugins, as well as their minimum required version. You can find the
+corresponding plugins in ext/(library)
+
+Package:        Orc
+Version:        >= 0.4.17
+Recommended:    Latest 0.4.x
+URL:            http://gstreamer.freedesktop.org/data/src/orc/
+DebianPackage:  liborc-0.4-dev
+Notes:         Used by many plugins for accelerating SIMD processing using
+                run-time generated assembly. Not a hard requirement, but
+                highly recommended. Packagers, please hard-depend on liborc.
+                The git repository is http://cgit.freedesktop.org/gstreamer/orc/
+                (all versions on entropywave.com are outdated)
+
+Package:        gdk-pixbuf Library
+Version:        >= 2.8.0
+Recommended:    Latest 2.x
+URL:            http://www.gtk.org/
+DebianPackage:  libgdk-pixbuf2.0-dev
+Plugins:        gdkpixbuf (gdkpixbufdec, gdkpixbufoverlay)
+Notes:          This library does not depend on Gtk+ or Gdk or any window system
+
+Package:        GTK+
+Version:        >= 3.0
+Recommended:    Latest 3.x
+URL:            http://www.gtk.org/
+DebianPackage:  libgtk-3-dev
+Plugins:        None
+Notes:         Only needed by some of the examples, not by any plugins.
+
+Package:        Xlib
+Plugins:        ximagesrc
+DebianPackage:  libx11-dev libxv-dev libxt-dev
+
+Package:        AALib
+Plugins:        aasink
+URL:            http://aa-project.sourceforge.net/aalib/
+
+Package:        Cairo
+Version:        >= 1.10
+DebianPackage:  libcairo2-dev
+Plugins:        cairo (cairooverlay)
+URL:            http://cairographics.org/
+
+Package:        FLAC
+Version:        >= 1.1.4
+DebianPackage:  libflac-dev
+Plugins:        flac (flacenc, flacdec)
+URL:            http://flac.sourceforge.net/
+
+Package:        gudev
+Version:        >= 147
+DebianPackage:  libgudev-1.0-dev
+Plugins:        v4l2 (v4l2src)
+URL:            http://www.freedesktop.org/software/systemd/
+Notes:          This dependency is entirely optional, the video4linux plugin
+                will work just fine without it. gudev is only required for
+                the device probing and monitoring functionality to detect
+                video4linux devices appearing/disappearing at run-time.
+
+Package:        JPEG library
+Plugins:        jpeg (jpegenc, jpegdec, smokeenc, smokedec)
+DebianPackage:  libjpeg62-turbo-dev
+URL:            http://www.libjpeg-turbo.org/
+                or http://www.ijg.org/ for the IJG version
+
+Package:        Libcaca
+Plugins:        cacasink
+DebianPackage:  libcaca-dev
+URL:            http://libcaca.zoy.org/
+
+Package:        Libdv
+Version:        >= 0.100
+DebianPackage:  libdv4-dev
+Plugins:        dv (dvdec)
+URL:            http://libdv.sourceforge.net/
+
+Package:       liblame
+Version:       >= 3.98
+DebianPackage: libmp3lame-dev
+Plugins:       lame (lamemp3enc)
+URL:           http://www.mp3dev.org/mp3/
+
+Package:       libmpg123
+Version:        >= 1.3
+DebianPackage:  libpng12-dev
+Plugins:        mpg123 (mpg123audiodec)
+URL:           https://www.mpg123.de/api/
+
+Package:        Libpng
+Version:        >= 1.2
+DebianPackage:  libpng12-dev
+Plugins:        png (pngenc, pngdec)
+URL:            http://www.libpng.org/pub/png/libpng.html
+
+Package:        libraw1394
+Plugins:        dv1394
+URL:            http://www.linux1394.org/
+
+Package:        libshout
+Version:        >= 2.0
+DebianPackage:  libshout3-dev
+plugins:        shout2 (shout2send)
+URL:            http://www.icecast.org/
+
+Package:        speex
+Version:        >= 1.1.6
+Plugins:        speex (speexenc, speexdec)
+URL:            http://www.speex.org/
+
+Package:        taglib
+Version:        >= 1.5
+DebianPackage:  libtag1-dev
+Plugins:        taglib (id3v2mux)
+URL:            http://taglib.github.io/
+
+Package:       twolame
+Version:       >= 0.3.13
+DebianPackage: libtwolame-dev
+Plugins:       twolame (twolamemp2enc)
+URL:           http://www.twolame.org
+
+Package:        zlib
+DebianPackage:  zlib1g-dev
+Plugins:        isomp4 (qtdemux), matroska (matroskademux)
+URL:            http://www.zlib.net/
+
+Optional (debian) packages:
+===========================
+
+gtk-doc-tools >= 1.12  -- needed to build documentation
+python-xml  -- needed to build plugin documentation