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