doc: Fix Hydra URL.
[jackhill/guix/guix.git] / gnu / packages / xiph.scm
CommitLineData
6a06172b 1;;; GNU Guix --- Functional package management for GNU
707d3e24 2;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
1f5ec939 3;;; Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
15e82fb2 4;;; Copyright © 2013 David Thompson <dthompson2@worcester.edu>
a7f904fd 5;;; Copyright © 2014 Sree Harsha Totakura <sreeharsha@totakura.in>
c9a010db 6;;; Copyright © 2014 Mark H Weaver <mhw@netris.org>
6a06172b
AE
7;;;
8;;; This file is part of GNU Guix.
9;;;
10;;; GNU Guix is free software; you can redistribute it and/or modify it
11;;; under the terms of the GNU General Public License as published by
12;;; the Free Software Foundation; either version 3 of the License, or (at
13;;; your option) any later version.
14;;;
15;;; GNU Guix is distributed in the hope that it will be useful, but
16;;; WITHOUT ANY WARRANTY; without even the implied warranty of
17;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18;;; GNU General Public License for more details.
19;;;
20;;; You should have received a copy of the GNU General Public License
21;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
22
54ff0b7d 23(define-module (gnu packages xiph)
dc2e4b0e
AE
24 #:use-module (gnu packages)
25 #:use-module (gnu packages bison)
26 #:use-module (gnu packages compression)
1f73d3b4 27 #:use-module (gnu packages curl)
707d3e24 28 #:use-module (gnu packages doxygen)
e55354b8 29 #:use-module (gnu packages image)
76e38f0d 30 #:use-module (gnu packages pkg-config)
dc2e4b0e 31 #:use-module (gnu packages python)
ba04571a 32 #:use-module (gnu packages linux)
5ccca004 33 #:use-module (gnu packages pulseaudio)
b5b73a82 34 #:use-module ((guix licenses) #:prefix license:)
6a06172b
AE
35 #:use-module (guix packages)
36 #:use-module (guix download)
cfc8261c
LC
37 #:use-module (guix build-system gnu)
38 #:export (libogg
39 libvorbis
15e82fb2 40 libtheora
cfc8261c
LC
41 speex
42 ao
43 flac
44 libkate
a7f904fd
SHT
45 vorbis-tools
46 opus))
6a06172b 47
cfc8261c 48(define libogg
6a06172b
AE
49 (package
50 (name "libogg")
72fe9d0b 51 (version "1.3.2")
6a06172b
AE
52 (source (origin
53 (method url-fetch)
54 (uri (string-append "http://downloads.xiph.org/releases/ogg/libogg-"
55 version ".tar.xz"))
56 (sha256
57 (base32
72fe9d0b 58 "16z74q422jmprhyvy7c9x909li8cqzmvzyr8cgbm52xcsp6pqs1z"))))
6a06172b 59 (build-system gnu-build-system)
35b9e423 60 (synopsis "Library for manipulating the ogg multimedia format")
6a06172b
AE
61 (description
62 "The libogg library allows to manipulate the ogg multimedia container
63format, which encapsulates raw compressed data and allows the interleaving of
35b9e423 64audio and video data. In addition to encapsulation and interleaving of
6a06172b
AE
65multiple data streams, ogg provides packet framing, error detection, and
66periodic timestamps for seeking.")
dc2e4b0e
AE
67 (license (license:bsd-style "file://COPYING"
68 "See COPYING in the distribution."))
6a06172b
AE
69 (home-page "http://xiph.org/ogg/")))
70
cfc8261c 71(define libvorbis
6a06172b
AE
72 (package
73 (name "libvorbis")
2af4937e 74 (version "1.3.4")
6a06172b
AE
75 (source (origin
76 (method url-fetch)
35b9e423
EB
77 (uri (string-append "http://downloads.xiph.org/releases/vorbis/"
78 "libvorbis-" version ".tar.xz"))
6a06172b
AE
79 (sha256
80 (base32
2af4937e 81 "0wpk87jnhngcl3nc5i39flkycx1sjzilx8jjx4zc4p8r55ylj19g"))))
6a06172b 82 (build-system gnu-build-system)
bad312e3 83 (propagated-inputs `(("libogg" ,libogg)))
f0cfe3c4
EB
84 (arguments `(#:configure-flags '("LDFLAGS=-lm")
85 #:parallel-tests? #f))
35b9e423 86 (synopsis "Library implementing the vorbis audio format")
6a06172b
AE
87 (description
88 "The libvorbis library implements the ogg vorbis audio format,
89a fully open, non-proprietary, patent-and-royalty-free, general-purpose
90compressed audio format for mid to high quality (8kHz-48.0kHz, 16+ bit,
91polyphonic) audio and music at fixed and variable bitrates from 16 to
92128 kbps/channel.")
dc2e4b0e
AE
93 (license (license:bsd-style "file://COPYING"
94 "See COPYING in the distribution."))
6a06172b
AE
95 (home-page "http://xiph.org/vorbis/")))
96
15e82fb2
DT
97(define libtheora
98 (package
99 (name "libtheora")
100 (version "1.1.1")
101 (source (origin
102 (method url-fetch)
35b9e423
EB
103 (uri (string-append "http://downloads.xiph.org/releases/theora/"
104 "libtheora-" version ".tar.xz"))
15e82fb2
DT
105 (sha256
106 (base32
46acd054
MW
107 "0q8wark9ribij57dciym5vdikg2464p8q2mgqvfb78ksjh4s8vgk"))
108 (patches (list (search-patch "libtheora-config-guess.patch")))))
15e82fb2
DT
109 (build-system gnu-build-system)
110 (inputs `(("libvorbis" ,libvorbis)))
111 ;; The .pc files refer to libogg.
112 (propagated-inputs `(("libogg" ,libogg)))
113 (synopsis "Library implementing the Theora video format")
114 (description
115 "The libtheora library implements the ogg theora video format,
116a fully open, non-proprietary, patent-and-royalty-free, general-purpose
117compressed video format.")
118 (license license:bsd-3)
119 (home-page "http://xiph.org/theora/")))
120
cfc8261c 121(define speex
1f5ec939
NK
122 (package
123 (name "speex")
124 (version "1.2rc1")
125 (source
126 (origin
127 (method url-fetch)
128 (uri (string-append "http://downloads.xiph.org/releases/speex/speex-"
129 version ".tar.gz"))
130 (sha256
131 (base32
132 "19mpkhbz3s08snvndn0h1dk2j139max6b0rr86nnsjmxazf30brl"))))
133 (build-system gnu-build-system)
134 (inputs `(("libogg" ,libogg)))
135 (home-page "https://gnu.org/software/speex")
f50d2669 136 (synopsis "Library for patent-free audio compression format")
1f5ec939 137 (description
79c311b8
LC
138 "GNU Speex is a patent-free audio compression codec specially designed
139for speech. It is well-adapted to internet applications, such as VoIP. It
a22dc0c4
LC
140features compression of different bands in the same bitstream, intensity
141stereo encoding, and voice activity detection.")
1f5ec939 142 ;; 'src/getopt.c' is under LGPLv2+
dc2e4b0e
AE
143 (license (license:bsd-style "file://COPYING"
144 "See COPYING in the distribution."))))
1f5ec939 145
cfc8261c 146(define ao
76e38f0d
AE
147 (package
148 (name "ao")
149 (version "1.1.0")
150 (source
151 (origin
152 (method url-fetch)
153 (uri (string-append "http://downloads.xiph.org/releases/ao/libao-"
154 version ".tar.gz"))
155 (sha256
156 (base32
157 "1m0v2y6bhr4iwsgdkc7b3y0qgpvpv1ifbxsy8n8ahsvjn6wmppi9"))))
158 (build-system gnu-build-system)
159 ;; FIXME: Add further backends, see the summary printed after configure.
5ccca004
LC
160 ;; XXX: Should back-ends be pushed to different outputs? For instance,
161 ;; "out" would include only the ALSA back-end, while "pulse" would
54ff0b7d 162 ;; contain 'lib/ao/plugins-4/libpulse.*'.
ba04571a 163 (inputs `(("pkg-config" ,pkg-config)
5ccca004
LC
164 ("alsa-lib" ,alsa-lib)
165 ("pulseaudio" ,pulseaudio)))
ba04571a 166 (synopsis "Cross platform audio library")
76e38f0d
AE
167 (description
168 "Libao is a cross-platform audio library that allows programs to
169output audio using a simple API on a wide variety of platforms.
170It currently supports:
171Null output (handy for testing without a sound device),
172WAV files,
173AU files,
174RAW files,
175OSS (Open Sound System, used on Linux and FreeBSD),
176ALSA (Advanced Linux Sound Architecture),
177aRts (Analog RealTime Synth, used by KDE),
178PulseAudio (next generation GNOME sound server),
179esd (EsounD or Enlightened Sound Daemon),
180Mac OS X,
181Windows (98 and later),
182AIX,
183Sun/NetBSD/OpenBSD,
184IRIX,
185NAS (Network Audio Server),
186RoarAudio (Modern, multi-OS, networked Sound System),
187OpenBSD's sndio.")
dc2e4b0e 188 (license license:gpl2+)
76e38f0d
AE
189 (home-page "http://www.xiph.org/ao/")))
190
cfc8261c 191(define flac
9ae7865e
AE
192 (package
193 (name "flac")
399fdcf7 194 (version "1.3.0")
9ae7865e
AE
195 (source (origin
196 (method url-fetch)
197 (uri (string-append "http://downloads.xiph.org/releases/flac/flac-"
399fdcf7 198 version ".tar.xz"))
9ae7865e
AE
199 (sha256
200 (base32
399fdcf7 201 "1p0hh190kqvpkbk1bbajd81jfbmkyl4fn2i7pggk2zppq6m68bgs"))))
9ae7865e
AE
202 (build-system gnu-build-system)
203 (arguments
c9a010db
MW
204 `(#:parallel-tests? #f
205 ;; By default, man pages are put in PREFIX/man,
206 ;; but we want them in PREFIX/share/man.
207 #:configure-flags (list (string-append "--mandir="
208 (assoc-ref %outputs "out")
209 "/share/man"))))
9ae7865e 210 ;; FIXME: configure also looks for xmms, input could be added once it exists
01eafd38 211 (inputs `(("libogg" ,libogg)))
35b9e423 212 (synopsis "Free lossless audio codec")
9ae7865e
AE
213 (description
214"FLAC stands for Free Lossless Audio Codec, an audio format that is lossless,
215meaning that audio is compressed in FLAC without any loss in quality.")
dc2e4b0e
AE
216 (license (license:bsd-style "file://COPYING"
217 "See COPYING in the distribution.")) ; and LGPL and GPL
9ae7865e
AE
218 (home-page "http://xiph.org/flac/")))
219
cfc8261c 220(define libkate
dc2e4b0e
AE
221 (package
222 (name "libkate")
223 (version "0.4.1")
224 (source (origin
225 (method url-fetch)
226 (uri (string-append "http://libkate.googlecode.com/files/libkate-"
227 version ".tar.gz"))
228 (sha256
229 (base32
230 "0s3vr2nxfxlf1k75iqpp4l78yf4gil3f0v778kvlngbchvaq23n4"))))
231 (build-system gnu-build-system)
707d3e24
AE
232 (native-inputs `(("doxygen" ,doxygen)
233 ("pkg-config" ,pkg-config)))
234 ;; FIXME: Add optional input liboggz
dc2e4b0e
AE
235 (inputs `(("bison" ,bison)
236 ("libogg" ,libogg)
237 ("libpng" ,libpng)
707d3e24 238("python" ,python-wrapper)
dc2e4b0e 239 ("zlib" ,zlib)))
35b9e423 240 (synopsis "Karaoke and text codec for embedding in ogg")
dc2e4b0e
AE
241 (description
242 "Kate is an overlay codec, originally designed for karaoke and text,
35b9e423
EB
243that can be multiplixed in Ogg. Text and images can be carried by a Kate
244stream, and animated. Most of the time, this would be multiplexed with
dc2e4b0e
AE
245audio/video to carry subtitles, song lyrics (with or without karaoke data),
246etc., but doesn't have to be.
247
248Series of curves (splines, segments, etc.) may be attached to various
249properties (text position, font size, etc.) to create animated overlays.
35b9e423 250This allows scrolling or fading text to be defined. This can even be used
dc2e4b0e
AE
251to draw arbitrary shapes, so hand drawing can also be represented by a
252Kate stream.")
253 (license license:bsd-3)
254 (home-page "http://code.google.com/p/libkate/")))
255
cfc8261c 256(define vorbis-tools
6a06172b
AE
257 (package
258 (name "vorbis-tools")
259 (version "1.4.0")
260 (source (origin
261 (method url-fetch)
35b9e423
EB
262 (uri (string-append "http://downloads.xiph.org/releases/vorbis/"
263 "vorbis-tools-" version ".tar.gz"))
6a06172b
AE
264 (sha256
265 (base32
266 "1g12bnh5ah08v529y72kfdz5lhvy75iaz7f9jskyby23m9dkk2d3"))))
267 (build-system gnu-build-system)
1f73d3b4
AE
268 (inputs `(("ao" ,ao)
269 ("curl" ,curl)
dc2e4b0e
AE
270 ("flac" ,flac)
271 ("libkate" ,libkate)
1f73d3b4 272 ("libogg" ,libogg)
1f5ec939
NK
273 ("libvorbis" ,libvorbis)
274 ("speex" ,speex)))
41eb1198 275 (native-inputs `(("pkg-config" ,pkg-config)))
35b9e423 276 (synopsis "Ogg vorbis tools")
6a06172b
AE
277 (description
278 "Ogg vorbis is a non-proprietary, patent-and-royalty-free,
279general-purpose compressed audio format.
280
281The package vorbis-tools contains
282ogg123, an ogg vorbis command line audio player;
283oggenc, the ogg vorbis encoder;
284oggdec, a simple, portable command line decoder (to wav and raw);
285ogginfo, to obtain information (tags, bitrate, length, etc.) about
286 an ogg vorbis file.")
dc2e4b0e 287 (license license:gpl2)
6a06172b 288 (home-page "http://xiph.org/vorbis/")))
a7f904fd
SHT
289
290(define opus
291 (package
292 (name "opus")
293 (version "1.1")
294 (source (origin
295 (method url-fetch)
296 (uri (string-append
297 "http://downloads.xiph.org/releases/opus/opus-" version
298 ".tar.gz"))
299 (sha256
300 (base32
301 "158xprn2086arvdib3vbbygz7z6jqkw2nci7nlywzzwallap0wmr"))))
302 (build-system gnu-build-system)
35b9e423 303 (synopsis "Versatile audio codec")
a7f904fd 304 (description
35b9e423 305 "Opus is a totally open, royalty-free, highly versatile audio codec. Opus
a7f904fd 306is unmatched for interactive speech and music transmission over the Internet,
35b9e423 307but is also intended for storage and streaming applications. It is
a7f904fd
SHT
308standardized by the Internet Engineering Task Force (IETF) as RFC 6716 which
309incorporated technology from Skype's SILK codec and Xiph.Org's CELT codec.")
310 (license license:bsd-3)
311 (home-page "http://www.opus-codec.org/")))