gnu: pulseaudio: Update to 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>
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)
1fcf67f4 31 #:use-module (gnu packages compression)
22885fb8
AE
32 #:use-module (gnu packages flex)
33 #:use-module (gnu packages glib)
40f6f76e 34 #:use-module (gnu packages gnome)
1fcf67f4 35 #:use-module (gnu packages gtk)
a4d89136 36 #:use-module (gnu packages image)
1fcf67f4 37 #:use-module (gnu packages linux)
40f6f76e 38 #:use-module (gnu packages mp3)
22885fb8 39 #:use-module (gnu packages perl)
a4d89136 40 #:use-module (gnu packages pulseaudio)
04a20db2 41 #:use-module (gnu packages video)
1fcf67f4
JD
42 #:use-module (gnu packages xorg)
43 #:use-module (gnu packages xiph)
22885fb8 44 #:use-module (gnu packages pkg-config)
f506ed92 45 #:use-module (gnu packages python)
1b922590 46 #:use-module (gnu packages yasm)
f506ed92 47 #:use-module (gnu packages xml))
22885fb8 48
195857b0
SB
49(define-public orc
50 (package
51 (name "orc")
71a4b2ab 52 (version "0.4.24")
195857b0
SB
53 (source (origin
54 (method url-fetch)
5cc3096c 55 (uri (string-append "https://gstreamer.freedesktop.org/data/src/"
195857b0
SB
56 "orc/orc-" version ".tar.xz"))
57 (sha256
58 (base32
71a4b2ab 59 "16ykgdrgxr6pfpy931p979cs68klvwmk3ii1k0a00wr4nn9x931k"))))
195857b0 60 (build-system gnu-build-system)
ce4a347f
MW
61 (arguments `(#:phases
62 (alist-cons-before
63 'check 'disable-faulty-test
64 (lambda _
65 ;; XXX Disable the 'test-limits' and 'exec_opcodes_sys'
66 ;; tests, which fail on some machines. See:
67 ;; https://bugzilla.gnome.org/show_bug.cgi?id=735273
68 (substitute* '("testsuite/test-limits.c"
69 "testsuite/exec_opcodes_sys.c")
70 (("if \\(error\\) return 1;")
71 "if (error) return 77;")))
72 %standard-phases)))
195857b0
SB
73 (home-page "http://code.entropywave.com/orc/")
74 (synopsis "Oil runtime compiler")
75 (description
76 "Orc is a just-in-time compiler implemented as a library and set of
77associated tools for compiling and executing simple programs that operate on
78arrays of data.")
79 ;; The source code implementing the Marsenne Twister algorithm is licensed
80 ;; under the 3-clause BSD license, the rest is under 2-clause BSD license.
81 (license (list bsd-2 bsd-3))))
82
22885fb8
AE
83(define-public gstreamer
84 (package
85 (name "gstreamer")
31e021f8 86 (version "1.6.1")
22885fb8
AE
87 (source
88 (origin
89 (method url-fetch)
a124bbd2 90 (uri (string-append
5cc3096c 91 "https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-"
a124bbd2 92 version ".tar.xz"))
22885fb8
AE
93 (sha256
94 (base32
31e021f8 95 "172w1bpnkn6mm1wi37n03apdbb6cdkykhzjf1vfxchcd7hhkyflp"))))
22885fb8 96 (build-system gnu-build-system)
2fb016b8
SB
97 (outputs '("out" "doc"))
98 (arguments
31e021f8 99 `(#:configure-flags
2fb016b8
SB
100 (list (string-append "--with-html-dir="
101 (assoc-ref %outputs "doc")
102 "/share/gtk-doc/html"))))
e244dc6d 103 (propagated-inputs `(("glib" ,glib))) ; required by gstreamer-1.0.pc.
c4c4cc05 104 (native-inputs
22885fb8
AE
105 `(("bison" ,bison)
106 ("flex" ,flex)
426adbe8 107 ("glib" ,glib "bin")
0f998a14 108 ("gobject-introspection" ,gobject-introspection)
22885fb8
AE
109 ("perl" ,perl)
110 ("pkg-config" ,pkg-config)
144f9f25 111 ("python-wrapper" ,python-wrapper)))
96693d1d
SB
112 (native-search-paths
113 (list (search-path-specification
114 (variable "GST_PLUGIN_SYSTEM_PATH")
115 (files '("lib/gstreamer-1.0")))))
5cc3096c 116 (home-page "https://gstreamer.freedesktop.org/")
93bfe3e2 117 (synopsis "Multimedia library")
22885fb8
AE
118 (description
119 "GStreamer is a library for constructing graphs of media-handling
120components. The applications it supports range from simple Ogg/Vorbis
e881752c
AK
121playback, audio/video streaming to complex audio mixing and video
122non-linear editing.
22885fb8
AE
123
124Applications can take advantage of advances in codec and filter technology
125transparently. Developers can add new codecs and filters by writing a
126simple plugin with a clean, generic interface.
127
128This package provides the core library and elements.")
129 (license lgpl2.0+)))
477c91ce
AE
130
131(define-public gst-plugins-base
132 (package
133 (name "gst-plugins-base")
7bc36f8d 134 (version "1.6.1")
477c91ce
AE
135 (source
136 (origin
137 (method url-fetch)
a124bbd2
SB
138 (uri (string-append "http://gstreamer.freedesktop.org/src/" name "/"
139 name "-" version ".tar.xz"))
477c91ce
AE
140 (sha256
141 (base32
7bc36f8d 142 "18sbyjcp281zb3bsqji3pglsdsxi0s6ai7rx90sx8cpflkxdqcwm"))))
477c91ce 143 (build-system gnu-build-system)
e9a82129 144 (outputs '("out" "doc"))
34ff76fd
SB
145 (propagated-inputs
146 `(("gstreamer" ,gstreamer))) ; required by gstreamer-plugins-base-1.0.pc
477c91ce 147 (inputs
e9a0b5e7
SB
148 `(("cdparanoia" ,cdparanoia)
149 ("orc" ,orc)
1fcf67f4
JD
150 ("pango" ,pango)
151 ("libogg" ,libogg)
152 ("libtheora" ,libtheora)
153 ("libvorbis" ,libvorbis)
154 ("libx11" ,libx11)
155 ("zlib" ,zlib)
156 ("libXext" ,libxext)
157 ("libxv" ,libxv)
34ff76fd 158 ("alsa-lib" ,alsa-lib)))
c4c4cc05
JD
159 (native-inputs
160 `(("pkg-config" ,pkg-config)
426adbe8 161 ("glib" ,glib "bin")
4ec48644 162 ("gobject-introspection" ,gobject-introspection)
c4c4cc05 163 ("python-wrapper" ,python-wrapper)))
477c91ce 164 (arguments
7bc36f8d
SB
165 `(#:parallel-tests? #f ; 'pipelines/tcp' fails in parallel
166 #:configure-flags
e9a82129
SB
167 (list (string-append "--with-html-dir="
168 (assoc-ref %outputs "doc")
169 "/share/gtk-doc/html"))
170 #:phases
e9a0b5e7 171 (alist-cons-before
4ec48644 172 'configure 'patch
e9a0b5e7
SB
173 (lambda _
174 (substitute* "tests/check/libs/pbutils.c"
7bc36f8d 175 (("/bin/sh") (which "sh"))))
e9a0b5e7 176 %standard-phases)))
477c91ce
AE
177 (home-page "http://gstreamer.freedesktop.org/")
178 (synopsis
1fcf67f4
JD
179 "Plugins for the GStreamer multimedia library")
180 (description "This package provides an essential exemplary set of plug-ins
181for the GStreamer multimedia library.")
182 (license lgpl2.0+)))
477c91ce 183
477c91ce 184
1fcf67f4
JD
185(define-public gst-plugins-good
186 (package
187 (name "gst-plugins-good")
a64e5d45 188 (version "1.6.1")
1fcf67f4
JD
189 (source
190 (origin
191 (method url-fetch)
e881752c 192 (uri (string-append
5cc3096c 193 "https://gstreamer.freedesktop.org/src/gst-plugins-good/gst-plugins-good-"
a4d89136 194 version ".tar.xz"))
1fcf67f4
JD
195 (sha256
196 (base32
a64e5d45 197 "0darc3058kbnql3mnlpizl0sq0hhli7vkm0rpqb7nywz14abim46"))))
1fcf67f4
JD
198 (build-system gnu-build-system)
199 (inputs
40f6f76e 200 `(("aalib" ,aalib)
a4d89136 201 ("cairo" ,cairo)
a4d89136 202 ("flac" ,flac)
40f6f76e
SB
203 ("gdk-pixbuf" ,gdk-pixbuf)
204 ("gst-plugins-base" ,gst-plugins-base)
0dc2e348 205 ("jack" ,jack-1)
40f6f76e
SB
206 ("libavc1394" ,libavc1394)
207 ("libcaca" ,libcaca)
208 ("libdv" ,libdv)
209 ("libiec61883" ,libiec61883)
a4d89136 210 ("libjpeg" ,libjpeg)
40f6f76e
SB
211 ("libpng" ,libpng)
212 ("libshout" ,libshout)
213 ("libsoup" ,libsoup)
214 ("libvpx" ,libvpx)
215 ("orc" ,orc)
a4d89136 216 ("pulseaudio" ,pulseaudio)
40f6f76e
SB
217 ("speex" ,speex)
218 ("taglib" ,taglib)
219 ("wavpack" ,wavpack)))
1fcf67f4 220 (native-inputs
40f6f76e
SB
221 `(("glib:bin" ,glib "bin")
222 ("pkg-config" ,pkg-config)
223 ("python-wrapper" ,python-wrapper)))
0ba652b2
MW
224 (arguments
225 `(#:phases
226 (modify-phases %standard-phases
227 (add-after
228 'unpack 'disable-failing-rtprtx-tests
229 (lambda _
230 ;; Disable rtprtx tests that frequently fail.
a64e5d45 231 ;; XXX FIXME: Try removing this for version > 1.6.1.
0ba652b2
MW
232 (substitute* "tests/check/elements/rtprtx.c"
233 (("tcase_add_test \\(tc_chain,\
234 (test_rtxsender_max_size_packets|test_rtxreceive_data_reconstruction)\\);" all)
235 (string-append "/* " all " */")))
236 #t)))))
1fcf67f4
JD
237 (home-page "http://gstreamer.freedesktop.org/")
238 (synopsis
239 "Plugins for the GStreamer multimedia library")
240 (description "GStreamer Good Plug-ins is a set of plug-ins for the
241GStreamer multimedia library. This set contains those plug-ins which the
242developers consider to have good quality code and correct functionality.")
477c91ce 243 (license lgpl2.0+)))
4e9b38eb 244
92f1b4a5
MW
245(define-public gst-plugins-ugly
246 (package
247 (name "gst-plugins-ugly")
72131606 248 (version "1.6.1")
92f1b4a5
MW
249 (source
250 (origin
251 (method url-fetch)
5cc3096c 252 (uri (string-append "https://gstreamer.freedesktop.org/src/"
92f1b4a5
MW
253 name "/" name "-" version ".tar.xz"))
254 (sha256
255 (base32
72131606 256 "0mvasl1pwq70w2kmrkcrg77kggl5q7jqybi7fkvy3vr28c7gkhqc"))))
92f1b4a5
MW
257 (build-system gnu-build-system)
258 (inputs
259 `(("gst-plugins-base" ,gst-plugins-base)
260 ("liba52" ,liba52)
261 ("libmad" ,libmad)
262 ("lame" ,lame)
263 ("libcdio" ,libcdio)
264 ("twolame" ,twolame)
265 ("libmpeg2" ,libmpeg2)
266 ("libdvdread" ,libdvdread)
267 ("libx264" ,libx264)
268 ;; TODO:
269 ;; * opencore-amr (for the AMR-NB decoder and encoder and the
270 ;; AMR-WB decoder) <http://sourceforge.net/projects/opencore-amr/>
271 ("orc" ,orc)))
272 (native-inputs
273 `(("glib:bin" ,glib "bin")
274 ("pkg-config" ,pkg-config)
275 ("python-wrapper" ,python-wrapper)))
276 (home-page "http://gstreamer.freedesktop.org/")
e881752c 277 (synopsis "GStreamer plugins from the \"ugly\" set")
92f1b4a5
MW
278 (description "GStreamer Ugly Plug-ins. This set contains those plug-ins
279which the developers consider to have good quality code but that might pose
280distribution problems in some jurisdictions, e.g. due to patent threats.")
281 (license lgpl2.0+)))
282
1b922590
SB
283(define-public gst-libav
284 (package
285 (name "gst-libav")
c869eed1 286 (version "1.6.1")
1b922590
SB
287 (source (origin
288 (method url-fetch)
289 (uri (string-append
5cc3096c 290 "https://gstreamer.freedesktop.org/src/" name "/"
1b922590
SB
291 name "-" version ".tar.xz"))
292 (sha256
293 (base32
c869eed1 294 "1a9pc7zp5rg0cvpx8gqkr21w73i6p9xa505a34day9f8p3lfim94"))))
1b922590
SB
295 (build-system gnu-build-system)
296 (arguments
933204e5
MW
297 '(#:configure-flags '("--with-system-libav")
298 #:phases
1b922590 299 (modify-phases %standard-phases
279a587d 300 (add-before 'configure 'patch-/bin/sh
1b922590
SB
301 (lambda _
302 (substitute* "gst-libs/ext/libav/configure"
303 (("#! /bin/sh")
304 (string-append "#! "(which "sh")))))))))
305 (native-inputs
306 `(("pkg-config" ,pkg-config)
04a20db2 307 ("python" ,python)))
1b922590
SB
308 (inputs
309 `(("gst-plugins-base" ,gst-plugins-base)
04a20db2 310 ("ffmpeg" ,ffmpeg)
1b922590
SB
311 ("orc" ,orc)
312 ("zlib" ,zlib)))
313 (home-page "http://gstreamer.freedesktop.org/")
314 (synopsis "Plugins for the GStreamer multimedia library")
315 (description
316 "This GStreamer plugin supports a large number of audio and video
317compression formats through the use of the libav library.")
318 (license gpl2+)))