summary refs log tree commit diff
path: root/gnu/packages/xiph.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/xiph.scm')
-rw-r--r--gnu/packages/xiph.scm305
1 files changed, 305 insertions, 0 deletions
diff --git a/gnu/packages/xiph.scm b/gnu/packages/xiph.scm
new file mode 100644
index 0000000000..0e8cb5fafc
--- /dev/null
+++ b/gnu/packages/xiph.scm
@@ -0,0 +1,305 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2013 Andreas Enge <andreas@enge.fr>
+;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
+;;; Copyright © 2013 David Thompson <dthompson2@worcester.edu>
+;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages xiph)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages bison)
+  #:use-module (gnu packages compression)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages libpng)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages pulseaudio)
+  #:use-module ((guix licenses)
+                #:renamer (symbol-prefix-proc 'license:))
+  #:use-module (guix packages)
+  #:use-module (guix download)
+  #:use-module (guix build-system gnu)
+  #:export (libogg
+            libvorbis
+            libtheora
+            speex
+            ao
+            flac
+            libkate
+            vorbis-tools
+            opus))
+
+(define libogg
+  (package
+   (name "libogg")
+   (version "1.3.0")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "http://downloads.xiph.org/releases/ogg/libogg-"
+                                version ".tar.xz"))
+            (sha256
+             (base32
+              "0jy79ffkl34vycnwfsj4svqsdg1lwy2l1rr49y8r4d44kh12a5r3"))))
+   (build-system gnu-build-system)
+   (synopsis "libogg, a library for manipulating the ogg multimedia format")
+   (description
+    "The libogg library allows to manipulate the ogg multimedia container
+format, which encapsulates raw compressed data and allows the interleaving of
+audio and video data. In addition to encapsulation and interleaving of
+multiple data streams, ogg provides packet framing, error detection, and
+periodic timestamps for seeking.")
+   (license (license:bsd-style "file://COPYING"
+                               "See COPYING in the distribution."))
+   (home-page "http://xiph.org/ogg/")))
+
+(define libvorbis
+  (package
+   (name "libvorbis")
+   (version "1.3.3")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "http://downloads.xiph.org/releases/vorbis/libvorbis-"
+                                version ".tar.xz"))
+            (sha256
+             (base32
+              "1gby6hapz9njx4l9g0pndyk4q83z5fgrgc30mfwfgx7bllspsk43"))))
+   (build-system gnu-build-system)
+   (propagated-inputs `(("libogg" ,libogg)))
+   (arguments `(#:configure-flags '("LDFLAGS=-lm")))
+   (synopsis "libvorbis, a library implementing the vorbis audio format")
+   (description
+    "The libvorbis library implements the ogg vorbis audio format,
+a fully open, non-proprietary, patent-and-royalty-free, general-purpose
+compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit,
+polyphonic) audio and music at fixed and variable bitrates from 16 to
+128 kbps/channel.")
+   (license (license:bsd-style "file://COPYING"
+                               "See COPYING in the distribution."))
+   (home-page "http://xiph.org/vorbis/")))
+
+(define libtheora
+  (package
+    (name "libtheora")
+    (version "1.1.1")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "http://downloads.xiph.org/releases/theora/libtheora-"
+                                 version ".tar.xz"))
+             (sha256
+              (base32
+               "0q8wark9ribij57dciym5vdikg2464p8q2mgqvfb78ksjh4s8vgk"))
+             (patches (list (search-patch "libtheora-config-guess.patch")))))
+    (build-system gnu-build-system)
+    (inputs `(("libvorbis" ,libvorbis)))
+    ;; The .pc files refer to libogg.
+    (propagated-inputs `(("libogg" ,libogg)))
+    (synopsis "Library implementing the Theora video format")
+    (description
+     "The libtheora library implements the ogg theora video format,
+a fully open, non-proprietary, patent-and-royalty-free, general-purpose
+compressed video format.")
+    (license license:bsd-3)
+    (home-page "http://xiph.org/theora/")))
+
+(define speex
+  (package
+    (name "speex")
+    (version "1.2rc1")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "http://downloads.xiph.org/releases/speex/speex-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "19mpkhbz3s08snvndn0h1dk2j139max6b0rr86nnsjmxazf30brl"))))
+    (build-system gnu-build-system)
+    (inputs `(("libogg" ,libogg)))
+    (home-page "https://gnu.org/software/speex")
+    (synopsis "Library for patent-free audio compression format")
+    (description
+     "GNU Speex is a patent-free audio compression codec specially designed
+for speech.  It is well-adapted to internet applications, such as VoIP.  It
+features compression of different bands in the same bitstream, intensity
+stereo encoding, and voice activity detection.")
+    ;; 'src/getopt.c' is under LGPLv2+
+    (license (license:bsd-style "file://COPYING"
+                                "See COPYING in the distribution."))))
+
+(define ao
+  (package
+    (name "ao")
+    (version "1.1.0")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "http://downloads.xiph.org/releases/ao/libao-"
+                          version ".tar.gz"))
+      (sha256
+       (base32
+        "1m0v2y6bhr4iwsgdkc7b3y0qgpvpv1ifbxsy8n8ahsvjn6wmppi9"))))
+    (build-system gnu-build-system)
+    ;; FIXME: Add further backends, see the summary printed after configure.
+    ;; XXX: Should back-ends be pushed to different outputs?  For instance,
+    ;; "out" would include only the ALSA back-end, while "pulse" would
+    ;; contain 'lib/ao/plugins-4/libpulse.*'.
+    (inputs `(("pkg-config" ,pkg-config)
+              ("alsa-lib" ,alsa-lib)
+              ("pulseaudio" ,pulseaudio)))
+    (synopsis "Cross platform audio library")
+    (description
+     "Libao is a cross-platform audio library that allows programs to
+output audio using a simple API on a wide variety of platforms.
+It currently supports:
+Null output (handy for testing without a sound device),
+WAV files,
+AU files,
+RAW files,
+OSS (Open Sound System, used on Linux and FreeBSD),
+ALSA (Advanced Linux Sound Architecture),
+aRts (Analog RealTime Synth, used by KDE),
+PulseAudio (next generation GNOME sound server),
+esd (EsounD or Enlightened Sound Daemon),
+Mac OS X,
+Windows (98 and later),
+AIX,
+Sun/NetBSD/OpenBSD,
+IRIX,
+NAS (Network Audio Server),
+RoarAudio (Modern, multi-OS, networked Sound System),
+OpenBSD's sndio.")
+    (license license:gpl2+)
+    (home-page "http://www.xiph.org/ao/")))
+
+(define flac
+  (package
+   (name "flac")
+   (version "1.2.1")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "http://downloads.xiph.org/releases/flac/flac-"
+                                version ".tar.gz"))
+            (sha256
+             (base32
+              "1pry5lgzfg57pga1zbazzdd55fkgk3v5qy4axvrbny5lrr5s8dcn"))
+            (patches
+             (list (search-patch "flac-fix-memcmp-not-declared.patch")))))
+   (build-system gnu-build-system)
+   (arguments
+    `(#:parallel-tests? #f))
+   ;; FIXME: configure also looks for xmms, input could be added once it exists
+   (inputs `(("libogg" ,libogg)))
+   (synopsis "flac free lossless audio codec")
+   (description
+"FLAC stands for Free Lossless Audio Codec, an audio format that is lossless,
+meaning that audio is compressed in FLAC without any loss in quality.")
+   (license (license:bsd-style "file://COPYING"
+                               "See COPYING in the distribution.")) ; and LGPL and GPL
+   (home-page "http://xiph.org/flac/")))
+
+(define libkate
+  (package
+   (name "libkate")
+   (version "0.4.1")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "http://libkate.googlecode.com/files/libkate-"
+                                version ".tar.gz"))
+            (sha256
+             (base32
+              "0s3vr2nxfxlf1k75iqpp4l78yf4gil3f0v778kvlngbchvaq23n4"))))
+   (build-system gnu-build-system)
+   ;; FIXME: Add optional inputs doxygen (for documentation) and liboggz
+   (inputs `(("bison" ,bison)
+             ("libogg" ,libogg)
+             ("libpng" ,libpng)
+             ("pkg-config" ,pkg-config)
+             ("python" ,python-wrapper)
+             ("zlib" ,zlib)))
+   (synopsis "kate, a karaoke and text codec for embedding in ogg")
+   (description
+    "Kate is an overlay codec, originally designed for karaoke and text,
+that can be multiplixed in Ogg. Text and images can be carried by a Kate
+stream, and animated. Most of the time, this would be multiplexed with
+audio/video to carry subtitles, song lyrics (with or without karaoke data),
+etc., but doesn't have to be.
+
+Series of curves (splines, segments, etc.) may be attached to various
+properties (text position, font size, etc.) to create animated overlays.
+This allows scrolling or fading text to be defined. This can even be used
+to draw arbitrary shapes, so hand drawing can also be represented by a
+Kate stream.")
+   (license license:bsd-3)
+   (home-page "http://code.google.com/p/libkate/")))
+
+(define vorbis-tools
+  (package
+   (name "vorbis-tools")
+   (version "1.4.0")
+   (source (origin
+            (method url-fetch)
+            (uri (string-append "http://downloads.xiph.org/releases/vorbis/vorbis-tools-"
+                                version ".tar.gz"))
+            (sha256
+             (base32
+              "1g12bnh5ah08v529y72kfdz5lhvy75iaz7f9jskyby23m9dkk2d3"))))
+   (build-system gnu-build-system)
+   (inputs `(("ao" ,ao)
+             ("curl" ,curl)
+             ("flac" ,flac)
+             ("libkate" ,libkate)
+             ("libogg" ,libogg)
+             ("libvorbis" ,libvorbis)
+             ("pkg-config" ,pkg-config)
+             ("speex" ,speex)))
+   (synopsis "ogg vorbis tools")
+   (description
+    "Ogg vorbis is a non-proprietary, patent-and-royalty-free,
+general-purpose compressed audio format.
+
+The package vorbis-tools contains
+ogg123,  an ogg vorbis command line audio player;
+oggenc,  the ogg vorbis encoder;
+oggdec,  a simple, portable command line decoder (to wav and raw);
+ogginfo, to obtain information (tags, bitrate, length, etc.) about
+         an ogg vorbis file.")
+   (license license:gpl2)
+   (home-page "http://xiph.org/vorbis/")))
+
+(define opus
+  (package
+    (name "opus")
+    (version "1.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append
+                    "http://downloads.xiph.org/releases/opus/opus-" version
+                    ".tar.gz"))
+              (sha256
+               (base32
+                "158xprn2086arvdib3vbbygz7z6jqkw2nci7nlywzzwallap0wmr"))))
+    (build-system gnu-build-system)
+    (synopsis "highly versatile audio codec")
+    (description
+     "Opus is a totally open, royalty-free, highly versatile audio codec. Opus
+is unmatched for interactive speech and music transmission over the Internet,
+but is also intended for storage and streaming applications. It is
+standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which
+incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.")
+    (license license:bsd-3)
+    (home-page "http://www.opus-codec.org/")))