services: Use 'packages->manifest' in 'packages->profile-entry'.
[jackhill/guix/guix.git] / gnu / packages / gstreamer.scm
CommitLineData
22885fb8 1;;; GNU Guix --- Functional package management for GNU
71a4b2ab 2;;; Copyright © 2013, 2015 Andreas Enge <andreas@enge.fr>
ce4a347f 3;;; Copyright © 2014 John Darrington <jmd@gnu.org>
195857b0 4;;; Copyright © 2015 Sou Bunnbu <iyzsong@gmail.com>
ce4a347f 5;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
22885fb8
AE
6;;;
7;;; This file is part of GNU Guix.
8;;;
9;;; GNU Guix is free software; you can redistribute it and/or modify it
10;;; under the terms of the GNU General Public License as published by
11;;; the Free Software Foundation; either version 3 of the License, or (at
12;;; your option) any later version.
13;;;
14;;; GNU Guix is distributed in the hope that it will be useful, but
15;;; WITHOUT ANY WARRANTY; without even the implied warranty of
16;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;;; GNU General Public License for more details.
18;;;
19;;; You should have received a copy of the GNU General Public License
20;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
21
22(define-module (gnu packages gstreamer)
1b922590 23 #:use-module ((guix licenses) #:select (lgpl2.0+ bsd-2 bsd-3 gpl2+))
22885fb8
AE
24 #:use-module (guix packages)
25 #:use-module (guix download)
26 #:use-module (guix build-system gnu)
f506ed92 27 #:use-module (gnu packages)
40f6f76e 28 #:use-module (gnu packages audio)
22885fb8 29 #:use-module (gnu packages bison)
e9a0b5e7 30 #:use-module (gnu packages cdrom)
db12dac0 31 #:use-module (gnu packages curl)
1fcf67f4 32 #:use-module (gnu packages compression)
22885fb8 33 #:use-module (gnu packages flex)
db12dac0
SB
34 #:use-module (gnu packages freedesktop)
35 #:use-module (gnu packages gl)
22885fb8 36 #:use-module (gnu packages glib)
40f6f76e 37 #:use-module (gnu packages gnome)
db12dac0
SB
38 #:use-module (gnu packages gnupg)
39 #:use-module (gnu packages graphics)
1fcf67f4 40 #:use-module (gnu packages gtk)
a4d89136 41 #:use-module (gnu packages image)
db12dac0 42 #:use-module (gnu packages libusb)
1fcf67f4 43 #:use-module (gnu packages linux)
40f6f76e 44 #:use-module (gnu packages mp3)
22885fb8 45 #:use-module (gnu packages perl)
a4d89136 46 #:use-module (gnu packages pulseaudio)
db12dac0
SB
47 #:use-module (gnu packages qt)
48 #:use-module (gnu packages rdf)
04a20db2 49 #:use-module (gnu packages video)
1fcf67f4
JD
50 #:use-module (gnu packages xorg)
51 #:use-module (gnu packages xiph)
22885fb8 52 #:use-module (gnu packages pkg-config)
f506ed92 53 #:use-module (gnu packages python)
db12dac0
SB
54 #:use-module (gnu packages ssh)
55 #:use-module (gnu packages telephony)
56 #:use-module (gnu packages tls)
57 #:use-module (gnu packages version-control)
1b922590 58 #:use-module (gnu packages yasm)
f506ed92 59 #:use-module (gnu packages xml))
22885fb8 60
195857b0
SB
61(define-public orc
62 (package
63 (name "orc")
71a4b2ab 64 (version "0.4.24")
195857b0
SB
65 (source (origin
66 (method url-fetch)
5cc3096c 67 (uri (string-append "https://gstreamer.freedesktop.org/data/src/"
195857b0
SB
68 "orc/orc-" version ".tar.xz"))
69 (sha256
70 (base32
71a4b2ab 71 "16ykgdrgxr6pfpy931p979cs68klvwmk3ii1k0a00wr4nn9x931k"))))
195857b0 72 (build-system gnu-build-system)
ce4a347f
MW
73 (arguments `(#:phases
74 (alist-cons-before
75 'check 'disable-faulty-test
76 (lambda _
77 ;; XXX Disable the 'test-limits' and 'exec_opcodes_sys'
78 ;; tests, which fail on some machines. See:
79 ;; https://bugzilla.gnome.org/show_bug.cgi?id=735273
80 (substitute* '("testsuite/test-limits.c"
81 "testsuite/exec_opcodes_sys.c")
82 (("if \\(error\\) return 1;")
83 "if (error) return 77;")))
84 %standard-phases)))
195857b0
SB
85 (home-page "http://code.entropywave.com/orc/")
86 (synopsis "Oil runtime compiler")
87 (description
88 "Orc is a just-in-time compiler implemented as a library and set of
89associated tools for compiling and executing simple programs that operate on
90arrays of data.")
91 ;; The source code implementing the Marsenne Twister algorithm is licensed
92 ;; under the 3-clause BSD license, the rest is under 2-clause BSD license.
93 (license (list bsd-2 bsd-3))))
94
22885fb8
AE
95(define-public gstreamer
96 (package
97 (name "gstreamer")
120469d2 98 (version "1.6.3")
22885fb8
AE
99 (source
100 (origin
101 (method url-fetch)
a124bbd2 102 (uri (string-append
5cc3096c 103 "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-"
a124bbd2 104 version ".tar.xz"))
22885fb8
AE
105 (sha256
106 (base32
120469d2 107 "093zldafh7xh3lrlwzm7j0vvjz6k9ca83wqil40gfz5qcy6mdy92"))))
22885fb8 108 (build-system gnu-build-system)
2fb016b8
SB
109 (outputs '("out" "doc"))
110 (arguments
31e021f8 111 `(#:configure-flags
2fb016b8
SB
112 (list (string-append "--with-html-dir="
113 (assoc-ref %outputs "doc")
114 "/share/gtk-doc/html"))))
e244dc6d 115 (propagated-inputs `(("glib" ,glib))) ; required by gstreamer-1.0.pc.
c4c4cc05 116 (native-inputs
22885fb8
AE
117 `(("bison" ,bison)
118 ("flex" ,flex)
426adbe8 119 ("glib" ,glib "bin")
0f998a14 120 ("gobject-introspection" ,gobject-introspection)
22885fb8
AE
121 ("perl" ,perl)
122 ("pkg-config" ,pkg-config)
144f9f25 123 ("python-wrapper" ,python-wrapper)))
96693d1d
SB
124 (native-search-paths
125 (list (search-path-specification
126 (variable "GST_PLUGIN_SYSTEM_PATH")
127 (files '("lib/gstreamer-1.0")))))
5cc3096c 128 (home-page "https://gstreamer.freedesktop.org/")
93bfe3e2 129 (synopsis "Multimedia library")
22885fb8
AE
130 (description
131 "GStreamer is a library for constructing graphs of media-handling
132components. The applications it supports range from simple Ogg/Vorbis
e881752c
AK
133playback, audio/video streaming to complex audio mixing and video
134non-linear editing.
22885fb8
AE
135
136Applications can take advantage of advances in codec and filter technology
137transparently. Developers can add new codecs and filters by writing a
138simple plugin with a clean, generic interface.
139
140This package provides the core library and elements.")
141 (license lgpl2.0+)))
477c91ce
AE
142
143(define-public gst-plugins-base
144 (package
145 (name "gst-plugins-base")
8cf39f7f 146 (version "1.6.3")
477c91ce
AE
147 (source
148 (origin
149 (method url-fetch)
8cf39f7f 150 (uri (string-append "https://gstreamer.freedesktop.org/src/" name "/"
a124bbd2 151 name "-" version ".tar.xz"))
477c91ce
AE
152 (sha256
153 (base32
8cf39f7f 154 "0xbskifk95rw7jd85sqjrmqh2kys1bpi0inrxyapx1x4vf7ly5dn"))))
477c91ce 155 (build-system gnu-build-system)
e9a82129 156 (outputs '("out" "doc"))
34ff76fd
SB
157 (propagated-inputs
158 `(("gstreamer" ,gstreamer))) ; required by gstreamer-plugins-base-1.0.pc
477c91ce 159 (inputs
e9a0b5e7
SB
160 `(("cdparanoia" ,cdparanoia)
161 ("orc" ,orc)
1fcf67f4
JD
162 ("pango" ,pango)
163 ("libogg" ,libogg)
164 ("libtheora" ,libtheora)
165 ("libvorbis" ,libvorbis)
166 ("libx11" ,libx11)
167 ("zlib" ,zlib)
168 ("libXext" ,libxext)
169 ("libxv" ,libxv)
34ff76fd 170 ("alsa-lib" ,alsa-lib)))
c4c4cc05
JD
171 (native-inputs
172 `(("pkg-config" ,pkg-config)
426adbe8 173 ("glib" ,glib "bin")
4ec48644 174 ("gobject-introspection" ,gobject-introspection)
c4c4cc05 175 ("python-wrapper" ,python-wrapper)))
477c91ce 176 (arguments
7bc36f8d
SB
177 `(#:parallel-tests? #f ; 'pipelines/tcp' fails in parallel
178 #:configure-flags
e9a82129
SB
179 (list (string-append "--with-html-dir="
180 (assoc-ref %outputs "doc")
181 "/share/gtk-doc/html"))
182 #:phases
cda6aaf0
EF
183 (modify-phases %standard-phases
184 (add-before 'configure 'patch
185 (lambda _
186 (substitute* "tests/check/libs/pbutils.c"
187 (("/bin/sh") (which "sh"))))))))
477c91ce
AE
188 (home-page "http://gstreamer.freedesktop.org/")
189 (synopsis
1fcf67f4
JD
190 "Plugins for the GStreamer multimedia library")
191 (description "This package provides an essential exemplary set of plug-ins
192for the GStreamer multimedia library.")
193 (license lgpl2.0+)))
477c91ce 194
477c91ce 195
1fcf67f4
JD
196(define-public gst-plugins-good
197 (package
198 (name "gst-plugins-good")
48caecb7 199 (version "1.6.3")
1fcf67f4
JD
200 (source
201 (origin
202 (method url-fetch)
e881752c 203 (uri (string-append
48caecb7
SB
204 "https://gstreamer.freedesktop.org/src/" name "/"
205 name "-" version ".tar.xz"))
1fcf67f4
JD
206 (sha256
207 (base32
48caecb7 208 "0xx16h0q63gs3pxlzdflnpyssba3vcrh1qnzplg4d0ra1fvrvc94"))))
1fcf67f4
JD
209 (build-system gnu-build-system)
210 (inputs
40f6f76e 211 `(("aalib" ,aalib)
a4d89136 212 ("cairo" ,cairo)
a4d89136 213 ("flac" ,flac)
40f6f76e
SB
214 ("gdk-pixbuf" ,gdk-pixbuf)
215 ("gst-plugins-base" ,gst-plugins-base)
0dc2e348 216 ("jack" ,jack-1)
40f6f76e
SB
217 ("libavc1394" ,libavc1394)
218 ("libcaca" ,libcaca)
219 ("libdv" ,libdv)
220 ("libiec61883" ,libiec61883)
a4d89136 221 ("libjpeg" ,libjpeg)
40f6f76e
SB
222 ("libpng" ,libpng)
223 ("libshout" ,libshout)
224 ("libsoup" ,libsoup)
225 ("libvpx" ,libvpx)
226 ("orc" ,orc)
a4d89136 227 ("pulseaudio" ,pulseaudio)
40f6f76e
SB
228 ("speex" ,speex)
229 ("taglib" ,taglib)
230 ("wavpack" ,wavpack)))
1fcf67f4 231 (native-inputs
40f6f76e
SB
232 `(("glib:bin" ,glib "bin")
233 ("pkg-config" ,pkg-config)
234 ("python-wrapper" ,python-wrapper)))
0ba652b2
MW
235 (arguments
236 `(#:phases
237 (modify-phases %standard-phases
238 (add-after
239 'unpack 'disable-failing-rtprtx-tests
240 (lambda _
241 ;; Disable rtprtx tests that frequently fail.
48caecb7 242 ;; XXX FIXME: Try removing this for version > 1.6.3.
0ba652b2
MW
243 (substitute* "tests/check/elements/rtprtx.c"
244 (("tcase_add_test \\(tc_chain,\
245 (test_rtxsender_max_size_packets|test_rtxreceive_data_reconstruction)\\);" all)
246 (string-append "/* " all " */")))
247 #t)))))
1fcf67f4
JD
248 (home-page "http://gstreamer.freedesktop.org/")
249 (synopsis
250 "Plugins for the GStreamer multimedia library")
251 (description "GStreamer Good Plug-ins is a set of plug-ins for the
252GStreamer multimedia library. This set contains those plug-ins which the
253developers consider to have good quality code and correct functionality.")
477c91ce 254 (license lgpl2.0+)))
4e9b38eb 255
db12dac0
SB
256(define-public gst-plugins-bad
257 (package
258 (name "gst-plugins-bad")
259 (version "1.6.3")
260 (source (origin
261 (method url-fetch)
262 (uri (string-append "https://gstreamer.freedesktop.org/src/"
263 name "/" name "-" version ".tar.xz"))
264 (sha256
265 (base32
266 "0q9s5da54819gwncmdi95l5qzx97l9vxk6adx4zmx73a3l82j6wp"))))
267 (outputs '("out" "doc"))
268 (build-system gnu-build-system)
269 (arguments
270 '(#:tests? #f ; XXX: 11 of 54 tests fail
271 #:configure-flags
272 (list (string-append "--with-html-dir="
273 (assoc-ref %outputs "doc")
274 "/share/gtk-doc/html"))))
275 (propagated-inputs
276 `(("gst-plugins-base" ,gst-plugins-base)))
277 (native-inputs
278 `(("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
279 ("gobject-introspection" ,gobject-introspection)
280 ("pkg-config" ,pkg-config)
281 ("python" ,python)))
282 (inputs
283 ;; XXX: The following dependencies are missing:
284 ;; vo-amrwbenc, vo-aacenc, bs2b, chromaprint, directfb, daala, libdts,
285 ;; faac, flite, libgsm, libde265, libmms, libmimic, mjpegtools,
286 ;; mpeg2enc, libofa, opencv, openh264, openni2, libtimemmgr, wildmidi,
287 ;; openspc, gme, sbc, schroedinger, zbar, librtmp, spandsp, x265
288 `(("bluez" ,bluez)
289 ("curl" ,curl)
290 ("faad2" ,faad2)
291 ("fluidsynth" ,fluidsynth)
292 ("gtk+" ,gtk+)
293 ("ladspa" ,ladspa)
294 ("libass" ,libass)
295 ("libdvdnav" ,libdvdnav)
296 ("libdvdread" ,libdvdread)
297 ("libgcrypt" ,libgcrypt)
298 ("libgudev" ,libgudev)
299 ("libkate" ,libkate)
300 ("libmodplug" ,libmodplug)
301 ("librsvg" ,librsvg)
302 ("libsndfile" ,libsndfile)
303 ("libsrtp" ,libsrtp)
304 ("libssh2" ,libssh2)
305 ("libusb" ,libusb)
306 ("libvdpau" ,libvdpau)
307 ("libwebp" ,libwebp)
308 ("libxml2" ,libxml2)
309 ("lrdf" ,lrdf)
310 ("mesa" ,mesa)
311 ("mpg123" ,mpg123)
312 ("neon" ,neon)
313 ("openal" ,openal)
314 ("openexr" ,openexr)
315 ("openjpeg" ,openjpeg)
316 ("openssl" ,openssl)
317 ("opus" ,opus)
318 ("orc" ,orc)
319 ("qt" ,qt)
320 ("soundtouch" ,soundtouch)
321 ("wayland" ,wayland)))
322 (home-page "http://gstreamer.freedesktop.org/")
323 (synopsis "Plugins for the GStreamer multimedia library")
324 (description
325 "GStreamer Bad Plug-ins is a set of plug-ins whose quality aren't up to
326par compared to the rest.")
327 (license lgpl2.0+)))
328
92f1b4a5
MW
329(define-public gst-plugins-ugly
330 (package
331 (name "gst-plugins-ugly")
30d34785 332 (version "1.6.3")
92f1b4a5
MW
333 (source
334 (origin
335 (method url-fetch)
5cc3096c 336 (uri (string-append "https://gstreamer.freedesktop.org/src/"
92f1b4a5
MW
337 name "/" name "-" version ".tar.xz"))
338 (sha256
339 (base32
30d34785 340 "0r6h3ys5n90jv3c06crxzcac561z07s4h04hy5i8ybw8qyvzgv1g"))))
92f1b4a5
MW
341 (build-system gnu-build-system)
342 (inputs
343 `(("gst-plugins-base" ,gst-plugins-base)
344 ("liba52" ,liba52)
345 ("libmad" ,libmad)
346 ("lame" ,lame)
347 ("libcdio" ,libcdio)
348 ("twolame" ,twolame)
349 ("libmpeg2" ,libmpeg2)
350 ("libdvdread" ,libdvdread)
351 ("libx264" ,libx264)
352 ;; TODO:
353 ;; * opencore-amr (for the AMR-NB decoder and encoder and the
354 ;; AMR-WB decoder) <http://sourceforge.net/projects/opencore-amr/>
355 ("orc" ,orc)))
356 (native-inputs
357 `(("glib:bin" ,glib "bin")
358 ("pkg-config" ,pkg-config)
359 ("python-wrapper" ,python-wrapper)))
360 (home-page "http://gstreamer.freedesktop.org/")
e881752c 361 (synopsis "GStreamer plugins from the \"ugly\" set")
92f1b4a5
MW
362 (description "GStreamer Ugly Plug-ins. This set contains those plug-ins
363which the developers consider to have good quality code but that might pose
364distribution problems in some jurisdictions, e.g. due to patent threats.")
365 (license lgpl2.0+)))
366
1b922590
SB
367(define-public gst-libav
368 (package
369 (name "gst-libav")
3673dace 370 (version "1.6.3")
1b922590
SB
371 (source (origin
372 (method url-fetch)
373 (uri (string-append
5cc3096c 374 "https://gstreamer.freedesktop.org/src/" name "/"
1b922590
SB
375 name "-" version ".tar.xz"))
376 (sha256
377 (base32
3673dace 378 "1aylbg1xnm68c3wc49mzx813qhsjfg23hqnjqqwdwdq31839qyw5"))))
1b922590
SB
379 (build-system gnu-build-system)
380 (arguments
933204e5
MW
381 '(#:configure-flags '("--with-system-libav")
382 #:phases
1b922590 383 (modify-phases %standard-phases
279a587d 384 (add-before 'configure 'patch-/bin/sh
1b922590
SB
385 (lambda _
386 (substitute* "gst-libs/ext/libav/configure"
387 (("#! /bin/sh")
388 (string-append "#! "(which "sh")))))))))
389 (native-inputs
390 `(("pkg-config" ,pkg-config)
04a20db2 391 ("python" ,python)))
1b922590
SB
392 (inputs
393 `(("gst-plugins-base" ,gst-plugins-base)
04a20db2 394 ("ffmpeg" ,ffmpeg)
1b922590
SB
395 ("orc" ,orc)
396 ("zlib" ,zlib)))
397 (home-page "http://gstreamer.freedesktop.org/")
398 (synopsis "Plugins for the GStreamer multimedia library")
399 (description
400 "This GStreamer plugin supports a large number of audio and video
401compression formats through the use of the libav library.")
402 (license gpl2+)))