gnu: diamond: Update to 0.9.0.
[jackhill/guix/guix.git] / gnu / packages / video.scm
CommitLineData
39efcc9b 1;;; GNU Guix --- Functional package management for GNU
71ee51a0 2;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr>
945d985a 3;;; Copyright © 2014, 2015, 2016 David Thompson <davet@gnu.org>
ca3f9952 4;;; Copyright © 2014, 2015, 2016 Mark H Weaver <mhw@netris.org>
cda163cd 5;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
68b3627c 6;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
12f92e38 7;;; Copyright © 2015 Andy Patterson <ajpatter@uwaterloo.ca>
307ad140 8;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
8824da4c 9;;; Copyright © 2015, 2016 Alex Vong <alexvong1995@gmail.com>
2b841707 10;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
d8841cc5 11;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
ed6ba9cc 12;;; Copyright © 2016 Dmitry Nikolaev <cameltheman@gmail.com>
4df07622 13;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
3a44c7bb 14;;; Copyright © 2016, 2017 ng0 <contact.ng0@cryptolab.net>
fe047e13 15;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
590abe01 16;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
72fa6667 17;;; Copyright © 2017 Feng Shu <tumashu@163.com>
b8a31908 18;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
794223bc 19;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com>
b5b20bda 20;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
39efcc9b
AE
21;;;
22;;; This file is part of GNU Guix.
23;;;
24;;; GNU Guix is free software; you can redistribute it and/or modify it
25;;; under the terms of the GNU General Public License as published by
26;;; the Free Software Foundation; either version 3 of the License, or (at
27;;; your option) any later version.
28;;;
29;;; GNU Guix is distributed in the hope that it will be useful, but
30;;; WITHOUT ANY WARRANTY; without even the implied warranty of
31;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32;;; GNU General Public License for more details.
33;;;
34;;; You should have received a copy of the GNU General Public License
35;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
36
37(define-module (gnu packages video)
fe138965 38 #:use-module (ice-9 match)
08858812 39 #:use-module (srfi srfi-1)
ae0bdd81 40 #:use-module ((guix licenses) #:prefix license:)
e930c2a3 41 #:use-module (guix utils)
39efcc9b
AE
42 #:use-module (guix packages)
43 #:use-module (guix download)
38829eac 44 #:use-module (guix git-download)
d8841cc5 45 #:use-module (guix svn-download)
44726031 46 #:use-module (guix build-system cmake)
39efcc9b 47 #:use-module (guix build-system gnu)
0e74bb5b 48 #:use-module (guix build-system glib-or-gtk)
615215a5 49 #:use-module (guix build-system python)
1c1178cd 50 #:use-module (guix build-system waf)
3b02429c 51 #:use-module (gnu packages)
39efcc9b 52 #:use-module (gnu packages algebra)
72bfebf5 53 #:use-module (gnu packages audio)
f1044010 54 #:use-module (gnu packages autotools)
d5a748e8 55 #:use-module (gnu packages avahi)
38829eac 56 #:use-module (gnu packages base)
8dd6fc51 57 #:use-module (gnu packages bison)
d5a748e8 58 #:use-module (gnu packages cdrom)
fe047e13 59 #:use-module (gnu packages cmake)
39efcc9b 60 #:use-module (gnu packages compression)
f464016d 61 #:use-module (gnu packages curl)
44726031 62 #:use-module (gnu packages databases)
3a44c7bb 63 #:use-module (gnu packages dejagnu)
f22e0e26 64 #:use-module (gnu packages elf)
8dd6fc51 65 #:use-module (gnu packages flex)
39efcc9b 66 #:use-module (gnu packages fontutils)
c161c22a 67 #:use-module (gnu packages freedesktop)
44726031
AE
68 #:use-module (gnu packages fribidi)
69 #:use-module (gnu packages gettext)
38829eac 70 #:use-module (gnu packages ghostscript)
d5a748e8
AE
71 #:use-module (gnu packages gl)
72 #:use-module (gnu packages glib)
2cd85cf9 73 #:use-module (gnu packages guile)
fe047e13 74 #:use-module (gnu packages gnome)
d5a748e8 75 #:use-module (gnu packages gnupg)
fe047e13 76 #:use-module (gnu packages gstreamer)
44726031 77 #:use-module (gnu packages gtk)
e55354b8 78 #:use-module (gnu packages image)
b5b20bda 79 #:use-module (gnu packages imagemagick)
d5a748e8
AE
80 #:use-module (gnu packages linux)
81 #:use-module (gnu packages lua)
fe047e13 82 #:use-module (gnu packages m4)
3a44c7bb 83 #:use-module (gnu packages man)
d5a748e8 84 #:use-module (gnu packages mp3)
4d94b93c 85 #:use-module (gnu packages ncurses)
6f6c8b65 86 #:use-module (gnu packages ocr)
39efcc9b
AE
87 #:use-module (gnu packages perl)
88 #:use-module (gnu packages pkg-config)
a7d94b54 89 #:use-module (gnu packages popt)
d5a748e8 90 #:use-module (gnu packages pulseaudio)
39efcc9b 91 #:use-module (gnu packages python)
d5a748e8
AE
92 #:use-module (gnu packages qt)
93 #:use-module (gnu packages sdl)
94 #:use-module (gnu packages ssh)
6b2c6be0 95 #:use-module (gnu packages texinfo)
c426e61e 96 #:use-module (gnu packages textutils)
a7fd7b68 97 #:use-module (gnu packages tls)
d5a748e8 98 #:use-module (gnu packages version-control)
bb470bd3 99 #:use-module (gnu packages web)
fe047e13 100 #:use-module (gnu packages webkit)
794223bc 101 #:use-module (gnu packages wxwidgets)
ee3b55ea 102 #:use-module (gnu packages xdisorg)
54ff0b7d 103 #:use-module (gnu packages xiph)
d5a748e8
AE
104 #:use-module (gnu packages xml)
105 #:use-module (gnu packages xorg)
01497dfe 106 #:use-module (gnu packages assembly)
44726031 107 #:use-module (gnu packages zip))
39efcc9b 108
6b2c6be0
SB
109(define-public aalib
110 (package
111 (name "aalib")
112 (version "1.4rc5")
113 (source (origin
114 (method url-fetch)
de67e922
LF
115 (uri (string-append "mirror://sourceforge/aa-project/aa-lib/"
116 version "/" name "-" version ".tar.gz"))
6b2c6be0
SB
117 (sha256
118 (base32
119 "1vkh19gb76agvh4h87ysbrgy82hrw88lnsvhynjf4vng629dmpgv"))))
120 (build-system gnu-build-system)
121 (native-inputs
122 `(("makeinfo" ,texinfo)))
123 (inputs
124 `(("ncurses" ,ncurses)))
125 (arguments
c437922a 126 `(#:phases
6b2c6be0 127 (modify-phases %standard-phases
3a4de6b2 128 (replace 'configure
014cbde6 129 (lambda* (#:key build inputs outputs #:allow-other-keys)
6b2c6be0
SB
130 ;; This old `configure' script doesn't support
131 ;; variables passed as arguments.
132 (let ((out (assoc-ref outputs "out"))
133 (ncurses (assoc-ref inputs "ncurses")))
134 (setenv "CONFIG_SHELL" (which "bash"))
135 (zero? (system* "./configure"
136 (string-append "--prefix=" out)
014cbde6 137 (string-append "--build=" build)
c437922a
MW
138 ;; The ancient config.guess is unable to
139 ;; guess the host triplet on mips64el.
140 ,@(if (string=? "mips64el-linux"
141 (%current-system))
142 '("--host=mips64el-unknown-linux-gnu")
143 '())
64465558
EF
144 ;; The same is also true with aarch64.
145 ,@(if (string=? "aarch64-linux"
146 (%current-system))
147 '("--host=aarch64-unknown-linux-gnu")
148 '())
6b2c6be0
SB
149 (string-append "--with-ncurses="
150 ncurses)))))))))
151 (home-page "http://aa-project.sourceforge.net/aalib/")
152 (synopsis "ASCII-art library")
153 (description
154 "AA-lib is a low level gfx library which does not require graphics device.
155In fact, there is no graphical output possible. AA-lib replaces those
156old-fashioned output methods with powerful ascii-art renderer.")
157 (license license:lgpl2.0+)))
158
cda163cd
TUBK
159(define-public liba52
160 (package
161 (name "liba52")
162 (version "0.7.4")
163 (source (origin
164 (method url-fetch)
8c056935
TUBK
165 (uri (string-append
166 ;; A mirror://sourceforge URI doesn't work, presumably
167 ;; because the SourceForge project is misconfigured.
168 "http://liba52.sourceforge.net/files/a52dec-" version
169 ".tar.gz"))
cda163cd
TUBK
170 (sha256
171 (base32
23da88f6 172 "0czccp4fcpf2ykp16xcrzdfmnircz1ynhls334q374xknd5747d2"))
fc1adab1
AK
173 (patches (search-patches "liba52-enable-pic.patch"
174 "liba52-set-soname.patch"
175 "liba52-use-mtune-not-mcpu.patch"
176 "liba52-link-with-libm.patch"))))
cda163cd 177 (build-system gnu-build-system)
23da88f6
MW
178 ;; XXX We need to run ./bootstrap because of the build system fixes above.
179 (native-inputs
180 `(("autoconf" ,autoconf)
181 ("automake" ,automake)
182 ("libtool" ,libtool)))
412a2422 183 (arguments `(#:configure-flags '("--enable-shared")
23da88f6
MW
184 #:phases
185 (modify-phases %standard-phases
186 ;; XXX We need to run ./bootstrap because of the build
187 ;; system fixes above.
188 (add-after
189 'unpack 'bootstrap
190 (lambda _ (zero? (system* "sh" "bootstrap")))))))
cda163cd
TUBK
191 (home-page "http://liba52.sourceforge.net/")
192 (synopsis "ATSC A/52 stream decoder")
193 (description "liba52 is a library for decoding ATSC A/52 streams. The
194A/52 standard is used in a variety of applications, including digital
195television and DVD. It is also known as AC-3.")
ae0bdd81 196 (license license:gpl2+)))
cda163cd 197
e0884109
MW
198(define-public libmpeg2
199 (package
200 (name "libmpeg2")
201 (version "0.5.1")
202 (source (origin
203 (method url-fetch)
204 ;; A mirror://sourceforge URI doesn't work, presumably
205 ;; because the SourceForge project is misconfigured.
206 (uri (string-append "http://libmpeg2.sourceforge.net/files/"
207 name "-" version ".tar.gz"))
208 (sha256
209 (base32
210 "1m3i322n2fwgrvbs1yck7g5md1dbg22bhq5xdqmjpz5m7j4jxqny"))))
211 (inputs
212 `(("libx11" ,libx11)
213 ("libxext" ,libxext)
214 ("libxv" ,libxv)
215 ("libsm" ,libsm)
216 ("libice" ,libice)
217 ("sdl" ,sdl)))
218 (build-system gnu-build-system)
219 (home-page "http://libmpeg2.sourceforge.net/")
220 (synopsis "MPEG1 and MPEG2 video decoder library")
221 (description
222 "libmpeg2 is a library which can decode MPEG1 and MPEG2 video streams.")
223 (license license:gpl2+)))
224
82712597
MW
225(define-public libx264
226 (package
227 (name "libx264")
715dd13d 228 (version "20170316-2245")
82712597
MW
229 (source (origin
230 (method url-fetch)
4ff71cac 231 (uri (string-append "https://download.videolan.org/pub/x264/snapshots/"
82712597
MW
232 "x264-snapshot-" version ".tar.bz2"))
233 (sha256
234 (base32
715dd13d 235 "1s1nnvl3axz38sv4g09skijl6k9mbbngbb1nsh26w4dr2w2gyzad"))))
82712597
MW
236 (build-system gnu-build-system)
237 (native-inputs
238 `(("pkg-config" ,pkg-config)
239 ("yasm" ,yasm)))
240 ;; TODO: Add gpac input
241 (arguments
242 `(#:tests? #f ;no check target
243 #:configure-flags '("--enable-shared"
244 ;; Don't build the command-line program. If we
245 ;; want it later, we should do so in a different
246 ;; package to avoid a circular dependency (the x264
247 ;; program depends on ffmpeg and ffmpeg depends on
248 ;; libx264).
cb50d0c2
MW
249 "--disable-cli"
250
251 ;; On MIPS, we must pass "--disable-asm" or else
252 ;; configure fails after printing: "You specified a
253 ;; pre-MSA CPU in your CFLAGS. If you really want
254 ;; to run on such a CPU, configure with
255 ;; --disable-asm."
256 ,@(if (string-prefix? "mips"
257 (or (%current-target-system)
258 (%current-system)))
259 '("--disable-asm")
260 '()))))
4ff71cac 261 (home-page "https://www.videolan.org/developers/x264.html")
82712597
MW
262 (synopsis "H.264 video coding library")
263 (description "libx264 is an advanced encoding library for creating
264H.264 (MPEG-4 AVC) video streams.")
265 (license (list license:gpl2+ ;most files
266 license:isc ;common/x86/x86inc.asm
267 license:lgpl2.1+ ;extras/getopt.c
268 license:bsd-3 ;extras/inttypes.h
269 (license:non-copyleft ;extras/cl*.h
270 "file://extras/cl.h"
271 "See extras/cl.h in the distribution.")))))
272
7bc7ffc2
EF
273(define-public x265
274 (package
275 (name "x265")
49ed5de3 276 (version "2.3")
7bc7ffc2
EF
277 (source
278 (origin
279 (method url-fetch)
280 (uri (string-append "https://download.videolan.org/videolan/x265/"
281 "x265_" version ".tar.gz"))
282 (sha256
283 (base32
49ed5de3 284 "07z4ydxg0lk6j43h0wlh2xddb91cy4y4mny2ln71d4278b1hllj7"))
7bc7ffc2
EF
285 (modules '((guix build utils)))
286 (snippet
287 '(delete-file-recursively "source/compat/getopt"))))
288 (build-system cmake-build-system)
289 (arguments
290 `(#:tests? #f ; tests are skipped if cpu-optimized code isn't built
a160778c
EF
291 ;; Currently the source code doesn't check for aarch64
292 ,@(if (string-prefix? "aarch64" (or (%current-target-system) (%current-system)))
293 '(#:configure-flags '("-DENABLE_PIC=TRUE"))
294 '())
7bc7ffc2
EF
295 #:phases
296 (modify-phases %standard-phases
297 (add-before 'configure 'prepare-build
298 (lambda _
299 (delete-file-recursively "build")
300 (chdir "source")
301 #t)))))
302 (home-page "http://x265.org/")
303 (synopsis "Library for encoding h.265/HEVC video streams")
304 (description "x265 is a H.265 / HEVC video encoder application library,
305designed to encode video or images into an H.265 / HEVC encoded bitstream.")
306 (license license:gpl2+)))
307
c426e61e
TUBK
308(define-public libass
309 (package
310 (name "libass")
7031b9a7 311 (version "0.13.6")
c426e61e
TUBK
312 (source (origin
313 (method url-fetch)
314 (uri (string-append
315 "https://github.com/libass/libass/releases/download/"
316 version "/libass-" version ".tar.xz"))
317 (sha256
318 (base32
7031b9a7 319 "0b9cj5xfsa7zwlk5m146fhv102v51iqs3rapq0n2xrz30k8p9a7q"))))
c426e61e
TUBK
320 (build-system gnu-build-system)
321 (native-inputs
322 `(("pkg-config" ,pkg-config)
323 ("yasm" ,yasm)))
324 (propagated-inputs
325 `(("freetype" ,freetype)
326 ("fribidi" ,fribidi)
327 ("fontconfig" ,fontconfig)
328 ("harfbuzz" ,harfbuzz)
329 ("enca" ,enca)))
330 (home-page "https://github.com/libass/libass")
331 (synopsis "Subtitle rendering library for the ASS/SSA format")
332 (description "libass is a subtitle rendering library for the
333ASS/SSA (Advanced Substation Alpha/SubStation Alpha) subtitle format.")
ae0bdd81 334 (license license:isc)))
c426e61e 335
4d94b93c
TUBK
336(define-public libcaca
337 (package
338 (name "libcaca")
339 (version "0.99.beta19")
340 (source (origin
341 (method url-fetch)
342 (uri (string-append "http://caca.zoy.org/files/libcaca/libcaca-"
343 version ".tar.gz"))
344 (sha256
345 (base32
346 "1x3j6yfyxl52adgnabycr0n38j9hx2j74la0hz0n8cnh9ry4d2qj"))))
347 (build-system gnu-build-system)
348 (native-inputs `(("pkg-config" ,pkg-config)))
349 (inputs
350 `(("freeglut" ,freeglut)
351 ("ftgl" ,ftgl)
43d51239 352 ("imlib2" ,imlib2)
4d94b93c
TUBK
353 ("libx11" ,libx11)
354 ("mesa" ,mesa)
355 ("ncurses" ,ncurses)
356 ("zlib" ,zlib)))
357 (home-page "http://caca.zoy.org/wiki/libcaca")
358 (synopsis "Colour ASCII-art library")
359 (description "libcaca is a graphics library that outputs text instead of
360pixels, so that it can work on older video cards or text terminals. It
361supports Unicode, 2048 colors, dithering of color images, and advanced text
362canvas operations.")
ae0bdd81 363 (license (license:fsf-free "file://COPYING")))) ;WTFPL version 2
4d94b93c 364
3bfb78dc
TUBK
365(define-public libdca
366 (package
367 (name "libdca")
368 (version "0.0.5")
369 (source (origin
370 (method url-fetch)
371 (uri (string-append
b8a31908 372 "https://download.videolan.org/pub/videolan/libdca/"
3bfb78dc
TUBK
373 version "/libdca-" version ".tar.bz2"))
374 (sha256
375 (base32
376 "0hh6a7l8vvccsd5i1fkv9av2gzv9fy8m0b8jpsn5p6hh4bh2586v"))))
377 (build-system gnu-build-system)
b8a31908 378 (home-page "https://www.videolan.org/developers/libdca.html")
3bfb78dc
TUBK
379 (synopsis "DTS Coherent Acoustics decoder")
380 (description "libdca is a library for decoding DTS Coherent Acoustics
381streams.")
ae0bdd81 382 (license license:gpl2+)))
3bfb78dc 383
99d4c455
TUBK
384(define-public libdv
385 (package
386 (name "libdv")
387 (version "1.0.0")
388 (source (origin
389 (method url-fetch)
390 (uri (string-append
de67e922
LF
391 "mirror://sourceforge/" name "/" name "/"
392 version "/" name "-" version ".tar.gz"))
99d4c455
TUBK
393 (sha256
394 (base32
395 "1fl96f2xh2slkv1i1ix7kqk576a0ak1d33cylm0mbhm96d0761d3"))))
396 (build-system gnu-build-system)
397 (native-inputs `(("pkg-config" ,pkg-config)))
398 (inputs `(("libxv" ,libxv)))
399 (home-page "http://libdv.sourceforge.net/")
400 (synopsis "DV video (IEC 61834 and SMPTE 314M) codec")
401 (description "The Quasar DV codec (libdv) is a software codec for DV
402video, the encoding format used by most digital camcorders, typically those
403that support the IEEE 1394 (a.k.a. FireWire or i.Link) interface. Libdv was
404developed according to the official standards for DV video: IEC 61834 and
405SMPTE 314M.")
ae0bdd81 406 (license license:lgpl2.1+)))
99d4c455 407
ee3b55ea
TUBK
408(define-public libva
409 (package
410 (name "libva")
f575efa1 411 (version "1.8.1")
ee3b55ea
TUBK
412 (source
413 (origin
414 (method url-fetch)
415 (uri (string-append
5cc3096c 416 "https://www.freedesktop.org/software/vaapi/releases/libva/libva-"
ee3b55ea
TUBK
417 version".tar.bz2"))
418 (sha256
f575efa1 419 (base32 "0wswfznj93jpnxhc3jwdk5j3pmyki0rs6k9vk4vnzds0dddximf1"))))
ee3b55ea
TUBK
420 (build-system gnu-build-system)
421 (native-inputs
422 `(("pkg-config" ,pkg-config)))
423 (inputs
424 `(("libdrm" ,libdrm)
425 ("libx11" ,libx11)
426 ("libxext" ,libxext)
427 ("libxfixes" ,libxfixes)
428 ("mesa" ,mesa)))
372cf039
TUBK
429 (arguments
430 `(#:phases
431 (modify-phases %standard-phases
432 (add-before
433 'build 'fix-dlopen-paths
434 (lambda* (#:key outputs #:allow-other-keys)
435 (let ((out (assoc-ref outputs "out")))
436 (substitute* "va/drm/va_drm_auth_x11.c"
437 (("\"libva-x11\\.so\\.%d\"")
438 (string-append "\"" out "/lib/libva-x11.so.%d\"")))))))
439 ;; Most drivers are in mesa's $prefix/lib/dri, so use that. (Can be
440 ;; overridden at run-time via LIBVA_DRIVERS_PATH.)
441 #:configure-flags
442 (list (string-append "--with-drivers-path="
443 (assoc-ref %build-inputs "mesa") "/lib/dri"))
444 ;; However, we can't write to mesa's store directory, so override the
445 ;; following make variable to install the dummy driver to libva's
446 ;; $prefix/lib/dri directory.
447 #:make-flags
448 (list (string-append "dummy_drv_video_ladir="
449 (assoc-ref %outputs "out") "/lib/dri"))))
5c1c2254 450 (home-page "https://www.freedesktop.org/wiki/Software/vaapi/")
ee3b55ea
TUBK
451 (synopsis "Video acceleration library")
452 (description "The main motivation for VA-API (Video Acceleration API) is
453to enable hardware accelerated video decode/encode at various
454entry-points (VLD, IDCT, Motion Compensation etc.) for prevailing coding
455standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
ae0bdd81 456 (license license:expat)))
ee3b55ea 457
39efcc9b
AE
458(define-public ffmpeg
459 (package
460 (name "ffmpeg")
9b22c4dd 461 (version "3.3.1")
39efcc9b
AE
462 (source (origin
463 (method url-fetch)
a1121a7f
EF
464 (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
465 version ".tar.xz"))
39efcc9b
AE
466 (sha256
467 (base32
9b22c4dd 468 "0bwgm6z6k3khb91qh9xv15inykkfchpkm0lcdckkxhkacpyaf0mp"))))
39efcc9b
AE
469 (build-system gnu-build-system)
470 (inputs
c4c4cc05 471 `(("fontconfig" ,fontconfig)
39efcc9b 472 ("freetype" ,freetype)
c8dab7f4 473 ("gnutls" ,gnutls)
e816b348 474 ("opus" ,opus)
71241192 475 ("ladspa" ,ladspa)
d4f12db8 476 ("lame" ,lame)
c426e61e 477 ("libass" ,libass)
5d3609e4 478 ("libbluray" ,libbluray)
4d94b93c 479 ("libcaca" ,libcaca)
cc6c0170 480 ("libcdio-paranoia" ,libcdio-paranoia)
39efcc9b 481 ("libtheora" ,libtheora)
f88f0d20 482 ("libvdpau" ,libvdpau)
39efcc9b 483 ("libvorbis" ,libvorbis)
dc55b8b2 484 ("libvpx" ,libvpx)
f88f0d20 485 ("libx11" ,libx11)
549381d6 486 ("libx264" ,libx264)
f88f0d20 487 ("mesa" ,mesa)
71241192 488 ("openal" ,openal)
71241192 489 ("pulseaudio" ,pulseaudio)
85bc5434 490 ("sdl" ,sdl2)
72bfebf5 491 ("soxr" ,soxr)
c4c4cc05 492 ("speex" ,speex)
72bfebf5 493 ("twolame" ,twolame)
d505801a 494 ("x265" ,x265)
67932f86 495 ("xvid" ,xvid)
b3546174 496 ("zlib" ,zlib)))
c4c4cc05
JD
497 (native-inputs
498 `(("bc" ,bc)
39efcc9b
AE
499 ("perl" ,perl)
500 ("pkg-config" ,pkg-config)
824d9dc3 501 ("texinfo" ,texinfo)
39efcc9b
AE
502 ("python" ,python-2) ; scripts use interpreter python2
503 ("speex" ,speex)
c4c4cc05 504 ("yasm" ,yasm)))
39efcc9b 505 (arguments
31f9322e 506 `(#:test-target "fate"
12f92e38
AP
507 #:configure-flags
508 ;; possible additional inputs:
509 ;; --enable-avisynth enable reading of AviSynth script
510 ;; files [no]
511 ;; --enable-frei0r enable frei0r video filtering
512 ;; --enable-libaacplus enable AAC+ encoding via libaacplus [no]
513 ;; --enable-libcelt enable CELT decoding via libcelt [no]
514 ;; --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394
515 ;; and libraw1394 [no]
516 ;; --enable-libfaac enable AAC encoding via libfaac [no]
517 ;; --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no]
518 ;; --enable-libflite enable flite (voice synthesis) support via
519 ;; libflite [no]
520 ;; --enable-libgme enable Game Music Emu via libgme [no]
521 ;; --enable-libgsm enable GSM de/encoding via libgsm [no]
522 ;; --enable-libiec61883 enable iec61883 via libiec61883 [no]
523 ;; --enable-libilbc enable iLBC de/encoding via libilbc [no]
524 ;; --enable-libmodplug enable ModPlug via libmodplug [no]
525 ;; --enable-libnut enable NUT (de)muxing via libnut,
526 ;; native (de)muxer exists [no]
527 ;; --enable-libopencore-amrnb enable AMR-NB de/encoding via
528 ;; libopencore-amrnb [no]
529 ;; --enable-libopencore-amrwb enable AMR-WB decoding via
530 ;; libopencore-amrwb [no]
531 ;; --enable-libopencv enable video filtering via libopencv [no]
532 ;; --enable-libopenjpeg enable JPEG 2000 de/encoding via
533 ;; OpenJPEG [no]
534 ;; --enable-librtmp enable RTMP[E] support via librtmp [no]
535 ;; --enable-libschroedinger enable Dirac de/encoding via
536 ;; libschroedinger [no]
537 ;; --enable-libshine enable fixed-point MP3 encoding via
538 ;; libshine [no]
539 ;; --enable-libssh enable SFTP protocol via libssh [no]
540 ;; (libssh2 does not work)
541 ;; --enable-libstagefright-h264 enable H.264 decoding via
542 ;; libstagefright [no]
543 ;; --enable-libutvideo enable Ut Video encoding and decoding via
544 ;; libutvideo [no]
545 ;; --enable-libv4l2 enable libv4l2/v4l-utils [no]
546 ;; --enable-libvidstab enable video stabilization using
547 ;; vid.stab [no]
548 ;; --enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no]
549 ;; --enable-libvo-amrwbenc enable AMR-WB encoding via
550 ;; libvo-amrwbenc [no]
551 ;; --enable-libwavpack enable wavpack encoding via libwavpack [no]
552 ;; --enable-libxavs enable AVS encoding via xavs [no]
553 ;; --enable-libzmq enable message passing via libzmq [no]
554 ;; --enable-libzvbi enable teletext support via libzvbi [no]
555 ;; --enable-opencl enable OpenCL code
12f92e38
AP
556 '("--enable-avresample"
557 "--enable-gpl" ; enable optional gpl licensed parts
558 "--enable-shared"
559 "--enable-fontconfig"
c8dab7f4 560 "--enable-gnutls"
12f92e38
AP
561 "--enable-ladspa"
562 "--enable-libass"
563 "--enable-libbluray"
564 "--enable-libcaca"
565 "--enable-libcdio"
566 "--enable-libfreetype"
567 "--enable-libmp3lame"
568 "--enable-libopus"
569 "--enable-libpulse"
12f92e38
AP
570 "--enable-libsoxr"
571 "--enable-libspeex"
572 "--enable-libtheora"
573 "--enable-libtwolame"
574 "--enable-libvorbis"
575 "--enable-libvpx"
576 "--enable-libxvid"
577 "--enable-libx264"
d505801a 578 "--enable-libx265"
12f92e38 579 "--enable-openal"
f88f0d20 580 "--enable-opengl"
12f92e38
AP
581
582 "--enable-runtime-cpudetect"
583
584 ;; Runtime cpu detection is not implemented on
585 ;; MIPS, so we disable some features.
586 "--disable-mips32r2"
c5e1fcd0 587 "--disable-mipsdsp"
12f92e38
AP
588 "--disable-mipsdspr2"
589 "--disable-mipsfpu")
31f9322e 590 #:phases
f2feb0ce
LC
591 (modify-phases %standard-phases
592 (replace
39efcc9b
AE
593 'configure
594 ;; configure does not work followed by "SHELL=..." and
595 ;; "CONFIG_SHELL=..."; set environment variables instead
596 (lambda* (#:key outputs configure-flags #:allow-other-keys)
597 (let ((out (assoc-ref outputs "out")))
598 (substitute* "configure"
47734a56 599 (("#! /bin/sh") (string-append "#!" (which "sh"))))
39efcc9b
AE
600 (setenv "SHELL" (which "bash"))
601 (setenv "CONFIG_SHELL" (which "bash"))
12f92e38
AP
602 (zero? (apply system*
603 "./configure"
604 (string-append "--prefix=" out)
605 ;; Add $libdir to the RUNPATH of all the binaries.
606 (string-append "--extra-ldflags=-Wl,-rpath="
607 out "/lib")
608 configure-flags)))))
457e528e
LC
609 (add-before
610 'check 'set-ld-library-path
611 (lambda _
612 ;; Allow $(top_builddir)/ffmpeg to find its dependencies when
613 ;; running tests.
614 (let* ((dso (find-files "." "\\.so$"))
615 (path (string-join (map dirname dso) ":")))
616 (format #t "setting LD_LIBRARY_PATH to ~s~%" path)
617 (setenv "LD_LIBRARY_PATH" path)
27350ef8 618 #t))))))
702bfbf1 619 (home-page "https://www.ffmpeg.org/")
39efcc9b
AE
620 (synopsis "Audio and video framework")
621 (description "FFmpeg is a complete, cross-platform solution to record,
622convert and stream audio and video. It includes the libavcodec
623audio/video codec library.")
ae0bdd81 624 (license license:gpl2+)))
d5a748e8 625
940778c7
LC
626(define-public ffmpeg-2.8
627 (package
628 (inherit ffmpeg)
2c20bf62 629 (version "2.8.11")
940778c7
LC
630 (source (origin
631 (method url-fetch)
632 (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
633 version ".tar.xz"))
634 (sha256
635 (base32
2c20bf62 636 "1rhz7rhmhhh8bjcj3dc82haisn3qjbzqlr7k6d6v7064jgn3maiq"))))
940778c7
LC
637 (arguments
638 (substitute-keyword-arguments (package-arguments ffmpeg)
639 ((#:configure-flags flags)
640 `(map (lambda (flag)
641 (if (string=? flag "--disable-mipsdsp")
642 "--disable-mipsdspr1"
643 flag))
644 ,flags))))))
645
d5a748e8
AE
646(define-public vlc
647 (package
648 (name "vlc")
a134cc8e 649 (version "2.2.4")
d5a748e8
AE
650 (source (origin
651 (method url-fetch)
652 (uri (string-append
a134cc8e 653 "https://download.videolan.org/pub/videolan/vlc/"
d5a748e8
AE
654 version "/vlc-" version ".tar.xz"))
655 (sha256
656 (base32
a134cc8e 657 "1gjkrwlg8ab3skzl67cxb9qzg4187ifckd1z9kpy11q058fyjchn"))
4ef2721b
LC
658 (modules '((guix build utils)))
659 (snippet
660 ;; There are two occurrences where __DATE__ and __TIME__ are
661 ;; used to capture the build time and show it to the user.
662 '(substitute* (find-files "." "help\\.c(pp)?$")
663 (("__DATE__") "\"2016\"")
664 (("__TIME__") "\"00:00\"")))))
d5a748e8
AE
665 (build-system gnu-build-system)
666 (native-inputs
667 `(("git" ,git) ; needed for a test
668 ("pkg-config" ,pkg-config)))
669 ;; FIXME: Add optional inputs once available.
670 (inputs
671 `(("alsa-lib" ,alsa-lib)
672 ("avahi" ,avahi)
673 ("dbus" ,dbus)
674 ("flac" ,flac)
b4dff935 675 ("ffmpeg" ,ffmpeg-2.8) ;fails to build against ffmpeg 3.0
d5a748e8
AE
676 ("fontconfig" ,fontconfig)
677 ("freetype" ,freetype)
678 ("gnutls" ,gnutls)
8824da4c 679 ("liba52" ,liba52)
d5a748e8
AE
680 ("libcddb" ,libcddb)
681 ("libgcrypt" ,libgcrypt)
682 ("libkate" ,libkate)
683 ("libmad" ,libmad)
684 ("libogg" ,libogg)
685 ("libpng" ,libpng)
686 ("libsamplerate" ,libsamplerate)
687 ("libssh2" ,libssh2)
688 ("libvorbis" ,libvorbis)
689 ("libtheora" ,libtheora)
690 ("libxext" ,libxext)
c161c22a 691 ("libxi" ,libxi)
d5a748e8
AE
692 ("libxinerama" ,libxinerama)
693 ("libxml2" ,libxml2)
694 ("libxpm" ,libxpm)
695 ("lua" ,lua-5.1)
696 ("mesa" ,mesa)
697 ("opus" ,opus)
698 ("perl" ,perl)
699 ("pulseaudio" ,pulseaudio)
700 ("python" ,python-wrapper)
c161c22a
DC
701 ("qt" ,qt) ; FIXME: reenable modular qt after update - requires building
702 ;("qtbase" ,qtbase) with -std=gnu++11.
a134cc8e 703 ;("qtx11extras" ,qtx11extras)
d5a748e8
AE
704 ("sdl" ,sdl)
705 ("sdl-image" ,sdl-image)
706 ("speex" ,speex)
8f5f6c92 707 ("x265" ,x265)
d5a748e8
AE
708 ("xcb-util-keysyms" ,xcb-util-keysyms)))
709 (arguments
710 `(#:configure-flags
8824da4c 711 `(;; Gross workaround for <https://trac.videolan.org/vlc/ticket/16907>.
c6b3dc69
LC
712 ;; In our case, this led to a test failure:
713 ;; test_libvlc_equalizer: libvlc/equalizer.c:122: test_equalizer: Assertion `isnan(libvlc_audio_equalizer_get_amp_at_index (equalizer, u_bands))' failed.
714 "ac_cv_c_fast_math=no"
715
d5a748e8
AE
716 ,(string-append "LDFLAGS=-Wl,-rpath -Wl,"
717 (assoc-ref %build-inputs "ffmpeg")
cd76fbde
LC
718 "/lib")) ;needed for the tests
719
720 #:phases
721 (modify-phases %standard-phases
a134cc8e
EF
722 (add-before 'configure 'remove-visual-tests
723 ;; Some of the tests require using the display to test out VLC,
724 ;; which fails in our sandboxed build system
725 (lambda _
726 (substitute* "test/run_vlc.sh"
727 (("./vlc --ignore-config") "echo"))
728 #t))
cd76fbde
LC
729 (add-after 'install 'regenerate-plugin-cache
730 (lambda* (#:key outputs #:allow-other-keys)
731 ;; The 'install-exec-hook' rule in the top-level Makefile.am
732 ;; generates 'lib/vlc/plugins/plugins.dat', a plugin cache, using
733 ;; 'vlc-cache-gen'. This file includes the mtime of the plugins
734 ;; it references. Thus, we first reset the timestamps of all
735 ;; these files, and then regenerate the cache such that the
736 ;; mtimes it includes are always zero instead of being dependent
737 ;; on the build time.
738 (let* ((out (assoc-ref outputs "out"))
739 (pkglibdir (string-append out "/lib/vlc"))
740 (plugindir (string-append pkglibdir "/plugins"))
741 (cachegen (string-append pkglibdir "/vlc-cache-gen")))
742 ;; TODO: Factorize 'reset-timestamps'.
743 (for-each (lambda (file)
744 (let ((s (lstat file)))
745 (unless (eq? (stat:type s) 'symlink)
746 (utime file 0 0 0 0))))
747 (find-files plugindir))
748 (zero? (system* cachegen plugindir))))))))
d5a748e8
AE
749 (home-page "https://www.videolan.org/")
750 (synopsis "Audio and video framework")
751 (description "VLC is a cross-platform multimedia player and framework
752that plays most multimedia files as well as DVD, Audio CD, VCD, and various
753treaming protocols.")
ae0bdd81 754 (license license:gpl2+)))
ace69243
AE
755
756(define-public mplayer
757 (package
758 (name "mplayer")
e71b20e5 759 (version "1.3.0")
ace69243
AE
760 (source (origin
761 (method url-fetch)
762 (uri (string-append
ebde7c7a 763 "https://www.mplayerhq.hu/MPlayer/releases/MPlayer-"
ace69243
AE
764 version ".tar.xz"))
765 (sha256
766 (base32
e71b20e5 767 "0hwqn04bdknb2ic88xd75smffxx63scvz0zvwvjb56nqj9n89l1s"))))
ace69243
AE
768 (build-system gnu-build-system)
769 ;; FIXME: Add additional inputs once available.
770 (native-inputs
771 `(("pkg-config" ,pkg-config)))
772 (inputs
773 `(("alsa-lib" ,alsa-lib)
774 ("cdparanoia" ,cdparanoia)
b3546174 775 ("ffmpeg" ,ffmpeg)
778a6a8b 776 ("fontconfig" ,fontconfig)
ace69243 777 ("freetype" ,freetype)
778a6a8b 778;; ("giflib" ,giflib) ; uses QuantizeBuffer, requires version >= 5
ace69243 779 ("lame" ,lame)
778a6a8b 780 ("libass" ,libass)
b3546174
MW
781 ("libdvdcss" ,libdvdcss)
782 ("libdvdnav" ,libdvdnav)
ace69243 783 ("libjpeg" ,libjpeg)
778a6a8b
EF
784 ("libmpeg2" ,libmpeg2)
785 ("libmpg123" ,mpg123) ; audio codec for MP3
ace69243
AE
786 ("libpng" ,libpng)
787 ("libtheora" ,libtheora)
778a6a8b 788 ("libvdpau" ,libvdpau)
ace69243
AE
789 ("libvorbis" ,libvorbis)
790 ("libx11" ,libx11)
778a6a8b 791 ("libx264" ,libx264)
ace69243
AE
792 ("libxinerama" ,libxinerama)
793 ("libxv" ,libxv)
778a6a8b 794 ("libxxf86dga" ,libxxf86dga)
ace69243 795 ("mesa" ,mesa)
778a6a8b 796 ("opus" ,opus)
ace69243
AE
797 ("perl" ,perl)
798 ("pulseaudio" ,pulseaudio)
799 ("python" ,python-wrapper)
800 ("sdl" ,sdl)
801 ("speex" ,speex)
802 ("yasm" ,yasm)
803 ("zlib" ,zlib)))
804 (arguments
805 `(#:tests? #f ; no test target
806 #:phases
ebde7c7a
EF
807 (modify-phases %standard-phases
808 (replace 'configure
ace69243
AE
809 ;; configure does not work followed by "SHELL=..." and
810 ;; "CONFIG_SHELL=..."; set environment variables instead
811 (lambda* (#:key inputs outputs #:allow-other-keys)
812 (let ((out (assoc-ref outputs "out"))
813 (libx11 (assoc-ref inputs "libx11")))
814 (substitute* "configure"
2564b7c2 815 (("#! /bin/sh") (string-append "#!" (which "sh"))))
ace69243
AE
816 (setenv "SHELL" (which "bash"))
817 (setenv "CONFIG_SHELL" (which "bash"))
818 (zero? (system*
819 "./configure"
820 (string-append "--extra-cflags=-I"
821 libx11 "/include") ; to detect libx11
ebde7c7a 822 "--disable-ffmpeg_a" ; disables bundled ffmpeg
ace69243 823 (string-append "--prefix=" out)
fe138965
MW
824 ;; Enable runtime cpu detection where supported,
825 ;; and choose a suitable target.
826 ,@(match (or (%current-target-system)
827 (%current-system))
828 ("x86_64-linux"
829 '("--enable-runtime-cpudetection"
830 "--target=x86_64-linux"))
831 ("i686-linux"
832 '("--enable-runtime-cpudetection"
833 "--target=i686-linux"))
834 ("mips64el-linux"
f0d6d835
MW
835 '("--target=mips3-linux"))
836 (_ (list (string-append
837 "--target="
838 (or (%current-target-system)
839 (nix-system->gnu-triplet
840 (%current-system)))))))
ebde7c7a
EF
841 "--disable-iwmmxt"))))))))
842 (home-page "https://www.mplayerhq.hu/design7/news.html")
ace69243
AE
843 (synopsis "Audio and video player")
844 (description "MPlayer is a movie player. It plays most MPEG/VOB, AVI,
845Ogg/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, RealMedia, Matroska, NUT,
846NuppelVideo, FLI, YUV4MPEG, FILM, RoQ, PVA files. One can watch VideoCD,
847SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
ae0bdd81 848 (license license:gpl2)))
d0ed39be 849
1c1178cd
TUBK
850(define-public mpv
851 (package
852 (name "mpv")
43ba5dd4 853 (version "0.25.0")
1c1178cd
TUBK
854 (source (origin
855 (method url-fetch)
856 (uri (string-append
857 "https://github.com/mpv-player/mpv/archive/v" version
858 ".tar.gz"))
859 (sha256
860 (base32
43ba5dd4 861 "1khb7c4fdj1aak46lwyb3lq14w5jpxzws0zp6bdc87ljsvx3yhh7"))
1c1178cd
TUBK
862 (file-name (string-append name "-" version ".tar.gz"))))
863 (build-system waf-build-system)
864 (native-inputs
832d60dc 865 `(("perl" ,perl) ; for zsh completion file
1c1178cd
TUBK
866 ("pkg-config" ,pkg-config)
867 ("python-docutils" ,python-docutils)))
81c29ccc 868 ;; Missing features: libguess, Wayland, V4L2
1c1178cd
TUBK
869 (inputs
870 `(("alsa-lib" ,alsa-lib)
871 ("enca" ,enca)
872 ("ffmpeg" ,ffmpeg)
2d8781a4 873 ("jack" ,jack-1)
1c1178cd
TUBK
874 ("ladspa" ,ladspa)
875 ("lcms" ,lcms)
876 ("libass" ,libass)
877 ("libbluray" ,libbluray)
878 ("libcaca" ,libcaca)
879 ("libbs2b" ,libbs2b)
880 ("libcdio-paranoia" ,libcdio-paranoia)
881 ("libdvdread" ,libdvdread)
882 ("libdvdnav" ,libdvdnav)
883 ("libjpeg" ,libjpeg)
884 ("libva" ,libva)
81c29ccc 885 ("libvdpau" ,libvdpau)
1c1178cd
TUBK
886 ("libx11" ,libx11)
887 ("libxext" ,libxext)
888 ("libxinerama" ,libxinerama)
889 ("libxrandr" ,libxrandr)
890 ("libxscrnsaver" ,libxscrnsaver)
891 ("libxv" ,libxv)
e66f0dd2
AP
892 ;; XXX: lua > 5.2 is not currently supported; see
893 ;; waftools/checks/custom.py
894 ("lua" ,lua-5.2)
1c1178cd
TUBK
895 ("mesa" ,mesa)
896 ("mpg123" ,mpg123)
897 ("pulseaudio" ,pulseaudio)
898 ("rsound" ,rsound)
f0b8d83a 899 ("waf" ,python-waf)
1c1178cd
TUBK
900 ("youtube-dl" ,youtube-dl)
901 ("zlib" ,zlib)))
902 (arguments
903 '(#:phases
904 (modify-phases %standard-phases
905 (add-before
f8503e2b 906 'configure 'setup-waf
1c1178cd
TUBK
907 (lambda* (#:key inputs #:allow-other-keys)
908 (copy-file (assoc-ref inputs "waf") "waf")
599fd842 909 (setenv "CC" "gcc"))))
98c8b963 910 #:configure-flags (list "--enable-libmpv-shared"
43ba5dd4
EF
911 "--enable-cdda"
912 "--enable-dvdread"
913 "--enable-dvdnav"
98c8b963
EF
914 "--enable-zsh-comp"
915 "--disable-build-date")
1c1178cd
TUBK
916 ;; No check function defined.
917 #:tests? #f))
581873b5 918 (home-page "https://mpv.io/")
1c1178cd
TUBK
919 (synopsis "Audio and video player")
920 (description "mpv is a general-purpose audio and video player. It is a
921fork of mplayer2 and MPlayer. It shares some features with the former
922projects while introducing many more.")
ae0bdd81 923 (license license:gpl2+)))
1c1178cd 924
0e74bb5b
AG
925(define-public gnome-mpv
926 (package
927 (name "gnome-mpv")
2b841707 928 (version "0.11")
0e74bb5b
AG
929 (source
930 (origin
931 (method url-fetch)
932 (uri (string-append "https://github.com/gnome-mpv/gnome-mpv/releases"
933 "/download/v" version "/gnome-mpv-" version
934 ".tar.xz"))
935 (sha256
936 (base32
2b841707 937 "1hn3mpsxbrwf2m0nz4vzji4i6i896y8kqjb9kijqpk04cnrs3fgz"))))
0e74bb5b
AG
938 (native-inputs
939 `(("intltool" ,intltool)
940 ("pkg-config" ,pkg-config)))
941 (inputs
942 `(("gtk+" ,gtk+)
943 ("libepoxy" ,libepoxy)
944 ("mpv" ,mpv)))
945 (build-system glib-or-gtk-build-system)
946 (home-page "https://github.com/gnome-mpv/gnome-mpv")
947 (synopsis "GTK+ frontend for the mpv media player")
948 (description "GNOME MPV is a simple GTK+ frontend for the mpv media player.
949GNOME MPV interacts with mpv via the client API exported by libmpv, allowing
950access to mpv's powerful playback capabilities.")
951 (license license:gpl3+)))
952
d0ed39be
DT
953(define-public libvpx
954 (package
955 (name "libvpx")
65064909 956 (version "1.6.1")
d0ed39be
DT
957 (source (origin
958 (method url-fetch)
723e8866
MW
959 (uri (string-append "http://storage.googleapis.com/"
960 "downloads.webmproject.org/releases/webm/"
961 name "-" version ".tar.bz2"))
d0ed39be
DT
962 (sha256
963 (base32
65064909 964 "06d8hqjkfs6wl45qf4pwh1kpbvkx6cwywd5y8d4lgagvjwm0qb0w"))
c7c49446 965 (patches (search-patches "libvpx-CVE-2016-2818.patch"))))
d0ed39be
DT
966 (build-system gnu-build-system)
967 (arguments
0e47b4e7
EF
968 `(#:phases
969 (modify-phases %standard-phases
970 (replace 'configure
971 (lambda* (#:key outputs #:allow-other-keys)
972 (setenv "CONFIG_SHELL" (which "bash"))
973 (let ((out (assoc-ref outputs "out")))
974 (setenv "LDFLAGS"
975 (string-append "-Wl,-rpath=" out "/lib"))
976 (zero? (system* "./configure"
977 "--enable-shared"
978 "--as=yasm"
979 ;; Limit size to avoid CVE-2015-1258
980 "--size-limit=16384x16384"
981 (string-append "--prefix=" out)))))))
4f8f15cd 982 #:tests? #f)) ; no check target
d0ed39be
DT
983 (native-inputs
984 `(("perl" ,perl)
985 ("yasm" ,yasm)))
986 (synopsis "VP8/VP9 video codec")
987 (description "libvpx is a codec for the VP8/VP9 video compression format.")
ae0bdd81 988 (license license:bsd-3)
d0ed39be 989 (home-page "http://www.webmproject.org/")))
615215a5
LC
990
991(define-public youtube-dl
992 (package
993 (name "youtube-dl")
0d74a8fd 994 (version "2017.05.07")
615215a5
LC
995 (source (origin
996 (method url-fetch)
39dc7032 997 (uri (string-append "https://yt-dl.org/downloads/"
615215a5
LC
998 version "/youtube-dl-"
999 version ".tar.gz"))
1000 (sha256
1001 (base32
0d74a8fd 1002 "1q3b9xkbk1lmy1wxm1jcnmaj70sdksqbc8zsqxz6b6z4nmv8qc25"))))
615215a5 1003 (build-system python-build-system)
2ad9515c
AV
1004 (arguments
1005 ;; The problem here is that the directory for the man page and completion
1006 ;; files is relative, and for some reason, setup.py uses the
1007 ;; auto-detected sys.prefix instead of the user-defined "--prefix=FOO".
1008 ;; So, we need pass the prefix directly. In addition, make sure the Bash
1009 ;; completion file is called 'youtube-dl' rather than
1010 ;; 'youtube-dl.bash-completion'.
31c58006
LF
1011 `(#:tests? #f ; Many tests fail. The test suite can be run with pytest.
1012 #:phases (modify-phases %standard-phases
2ad9515c
AV
1013 (add-before 'install 'fix-the-data-directories
1014 (lambda* (#:key outputs #:allow-other-keys)
1015 (let ((prefix (assoc-ref outputs "out")))
1016 (mkdir "bash-completion")
1017 (rename-file "youtube-dl.bash-completion"
1018 "bash-completion/youtube-dl")
1019 (substitute* "setup.py"
1020 (("youtube-dl\\.bash-completion")
1021 "bash-completion/youtube-dl")
1022 (("'etc/")
1023 (string-append "'" prefix "/etc/"))
1024 (("'share/")
1025 (string-append "'" prefix "/share/")))))))))
615215a5
LC
1026 (synopsis "Download videos from YouTube.com and other sites")
1027 (description
b798dfde 1028 "Youtube-dl is a small command-line program to download videos from
615215a5 1029YouTube.com and a few more sites.")
39dc7032 1030 (home-page "https://yt-dl.org")
ae0bdd81 1031 (license license:public-domain)))
e6bdb36a 1032
794223bc
CM
1033(define-public youtube-dl-gui
1034 (package
1035 (name "youtube-dl-gui")
1036 (version "0.3.8")
1037 (source
1038 (origin
1039 (method url-fetch)
1040 (uri (pypi-uri "Youtube-DLG" version))
1041 (sha256
1042 (base32
1043 "0napxwzgls5ik1bxbp99vly32l23xpc4ng5kr24hfhf21ypjyadb"))))
1044 (build-system python-build-system)
1045 (arguments
1046 ;; In Guix, wxpython has not yet been packaged for Python 3.
1047 `(#:python ,python-2
1048 ;; This package has no tests.
1049 #:tests? #f
1050 #:phases
1051 (modify-phases %standard-phases
1052 (add-before 'build 'patch-source
1053 (lambda* (#:key inputs #:allow-other-keys)
1054 ;; The youtube-dl-gui program lets you configure options. Some of
1055 ;; them are problematic, so we change their defaults.
1056 (substitute* "youtube_dl_gui/optionsmanager.py"
1057 ;; When this is true, the builder process will try (and fail) to
1058 ;; write logs to the builder user's home directory.
1059 (("'enable_log': True") "'enable_log': False")
1060 ;; This determines which youtube-dl program youtube-dl-gui will
1061 ;; run. If we don't set this, then youtube-dl-gui might download
1062 ;; an arbitrary copy from the Internet into the user's home
1063 ;; directory and run it, so let's make sure youtube-dl-gui uses
1064 ;; the youtube-dl from the inputs by default.
1065 (("'youtubedl_path': self.config_path")
1066 (string-append "'youtubedl_path': '"
1067 (assoc-ref inputs "youtube-dl")
1068 "/bin'"))
1069 ;; When this is True, when youtube-dl-gui is finished downloading
1070 ;; a file, it will try (and possibly fail) to open the directory
1071 ;; containing the downloaded file. This can fail because it
1072 ;; assumes that xdg-open is in PATH. Unfortunately, simply
1073 ;; adding xdg-utils to the propagated inputs is not enough to
1074 ;; make this work, so for now we set the default to False.
1075 (("'open_dl_dir': True") "'open_dl_dir': False"))
1076 ;; The youtube-dl program from the inputs is actually a wrapper
1077 ;; script written in bash, so attempting to invoke it as a python
1078 ;; script will fail.
1079 (substitute* "youtube_dl_gui/downloaders.py"
1080 (("cmd = \\['python', self\\.youtubedl_path\\]")
1081 "cmd = [self.youtubedl_path]"))
1082 ;; Use relative paths for installing data files so youtube-dl-gui
1083 ;; installs the files relative to its prefix in the store, rather
1084 ;; than relative to /. Also, instead of installing data files into
1085 ;; $prefix/usr/share, install them into $prefix/share for
1086 ;; consistency (see: (standards) Directory Variables).
1087 (substitute* "setup.py"
1088 (("= '/usr/share") "= 'share"))
1089 ;; Update get_locale_file() so it finds the installed localization
1090 ;; files.
1091 (substitute* "youtube_dl_gui/utils.py"
1092 (("os\\.path\\.join\\('/usr', 'share'")
1093 (string-append "os.path.join('"
1094 (assoc-ref %outputs "out")
1095 "', 'share'"))))))))
1096 (inputs
1097 `(("python2-wxpython" ,python2-wxpython)
1098 ("youtube-dl" ,youtube-dl)))
1099 (home-page "https://github.com/MrS0m30n3/youtube-dl-gui")
1100 (synopsis
1101 "GUI (Graphical User Interface) for @command{youtube-dl}")
1102 (description
1103 "Youtube-dlG is a GUI (Graphical User Interface) for
1104@command{youtube-dl}. You can use it to download videos from YouTube and any
1105other site that youtube-dl supports.")
1106 (license license:unlicense)))
1107
72fa6667
FS
1108(define-public you-get
1109 (package
1110 (name "you-get")
f0bc6ca1 1111 (version "0.4.715")
72fa6667
FS
1112 (source (origin
1113 (method url-fetch)
1114 (uri (string-append
1115 "https://github.com/soimort/you-get/releases/download/v"
1116 version "/you-get-" version ".tar.gz"))
1117 (sha256
1118 (base32
f0bc6ca1 1119 "043122hfh56fbbszp1kwd1f65asgyn60j1ijday93hf2dkhvbrnh"))))
72fa6667
FS
1120 (build-system python-build-system)
1121 (arguments
1122 ;; no tests
1123 '(#:tests? #f))
1124 (inputs
1125 `(("ffmpeg" ,ffmpeg)))
1126 (synopsis "Download videos, audios, or images from Web sites")
1127 (description
1128 "You-Get is a command-line utility to download media contents (videos,
1129audio, images) from the Web. It can use either mpv or vlc for playback.")
1130 (home-page "https://you-get.org/")
1131 (license license:expat)))
1132
5d3609e4
TUBK
1133(define-public libbluray
1134 (package
1135 (name "libbluray")
7c78beb3 1136 (version "1.0.0")
5d3609e4
TUBK
1137 (source (origin
1138 (method url-fetch)
5e3f68e6 1139 (uri (string-append "https://download.videolan.org/videolan/"
5d3609e4
TUBK
1140 name "/" version "/"
1141 name "-" version ".tar.bz2"))
1142 (sha256
1143 (base32
7c78beb3 1144 "1k3lag4lxi2jjd3zh4wcb5l3hadzm54j5kagh92yzfy76p9svqzp"))))
5d3609e4 1145 (build-system gnu-build-system)
6c0cd765
AP
1146 (arguments
1147 `(#:configure-flags '("--disable-bdjava")
1148 #:phases
1149 (modify-phases %standard-phases
1150 (add-before 'build 'fix-dlopen-paths
1151 (lambda* (#:key inputs #:allow-other-keys)
1152 (let ((libaacs (assoc-ref inputs "libaacs"))
1153 (libbdplus (assoc-ref inputs "libbdplus")))
1154 (substitute* "src/libbluray/disc/aacs.c"
1155 (("\"libaacs\"")
1156 (string-append "\"" libaacs "/lib/libaacs\"")))
1157 (substitute* "src/libbluray/disc/bdplus.c"
1158 (("\"libbdplus\"")
1159 (string-append "\"" libbdplus "/lib/libbdplus\"")))
1160 #t))))))
2da45ebe 1161 (native-inputs `(("pkg-config" ,pkg-config)))
5d3609e4 1162 (inputs
71ee51a0 1163 `(("fontconfig" ,fontconfig)
5d3609e4 1164 ("freetype" ,freetype)
6c0cd765
AP
1165 ("libaacs" ,libaacs)
1166 ("libbdplus" ,libbdplus)
71ee51a0 1167 ("libxml2" ,libxml2)))
5e3f68e6 1168 (home-page "https://www.videolan.org/developers/libbluray.html")
5d3609e4
TUBK
1169 (synopsis "Blu-Ray Disc playback library")
1170 (description
1171 "libbluray is a library designed for Blu-Ray Disc playback for media
1172players, like VLC or MPlayer.")
ae0bdd81 1173 (license license:lgpl2.1+)))
5d3609e4 1174
e6bdb36a
AE
1175(define-public libdvdread
1176 (package
1177 (name "libdvdread")
9aebf330 1178 (version "5.0.3")
e6bdb36a
AE
1179 (source (origin
1180 (method url-fetch)
b8a31908 1181 (uri (string-append "https://download.videolan.org/videolan/"
e6bdb36a
AE
1182 name "/" version "/"
1183 name "-" version ".tar.bz2"))
1184 (sha256
1185 (base32
9aebf330 1186 "0ayqiq0psq18rcp6f5pz82sxsq66v0kwv0y55dbrcg68plnxy71j"))))
e6bdb36a
AE
1187 (build-system gnu-build-system)
1188 (home-page "http://dvdnav.mplayerhq.hu/")
1189 (synopsis "Library for reading video DVDs")
1190 (description
1191 "Libdvdread provides a simple foundation for reading DVD video
1192disks. It provides the functionality that is required to access many
1193DVDs. It parses IFO files, reads NAV-blocks, and performs CSS
1194authentication and descrambling (if an external libdvdcss library is
1195installed).")
ae0bdd81 1196 (license license:gpl2+)))
b027d919 1197
b5b20bda
TD
1198(define-public dvdauthor
1199 (package
1200 (name "dvdauthor")
1201 (version "0.7.2")
1202 (source
1203 (origin
1204 (method url-fetch)
1205 (uri (string-append "mirror://sourceforge/dvdauthor/dvdauthor-"
1206 version ".tar.gz"))
1207 (sha256
1208 (base32
1209 "1drfc47hikfzc9d7hjk34rw10iqw01d2vwmn91pv73ppx4nsj81h"))))
1210 (build-system gnu-build-system)
1211 (inputs
1212 `(("libdvdread" ,libdvdread)
1213 ("libpng" ,libpng)
1214 ("imagemagick" ,imagemagick)
1215 ("libxml2" ,libxml2)
1216 ("freetype" ,freetype)))
1217 (native-inputs
1218 `(("pkg-config" ,pkg-config)))
1219 (synopsis "Generates a DVD-Video movie from a MPEG-2 stream")
1220 (description "@command{dvdauthor} will generate a DVD-Video movie from a
1221MPEG-2 stream containing VOB packets.")
1222 (home-page "http://dvdauthor.sourceforge.net")
1223 (license license:gpl3+)))
1224
b027d919
AE
1225(define-public libdvdnav
1226 (package
1227 (name "libdvdnav")
734976b6 1228 (version "5.0.3")
b027d919
AE
1229 (source (origin
1230 (method url-fetch)
b8a31908 1231 (uri (string-append "https://download.videolan.org/videolan/"
b027d919
AE
1232 name "/" version "/"
1233 name "-" version ".tar.bz2"))
1234 (sha256
1235 (base32
734976b6 1236 "0v8byv5z598k06rqzdmj7739vc86xq3zf79zfr698dib7lz055sh"))))
b027d919
AE
1237 (build-system gnu-build-system)
1238 (native-inputs
1239 `(("pkg-config" ,pkg-config)))
1240 (inputs
1241 `(("libdvdread" ,libdvdread)))
1242 (home-page "http://dvdnav.mplayerhq.hu/")
1243 (synopsis "Library for video DVD navigation features")
1244 (description
1245 "Libdvdnav is a library for developers of multimedia
1246applications. It allows easy use of sophisticated DVD navigation features
1247such as DVD menus, multiangle playback and even interactive DVD games. All
1248this functionality is provided through a simple API which provides the DVD
1249playback as a single logical stream of blocks, intermitted by special
1250dvdnav events to report certain conditions. The main usage of libdvdnav is
1251a loop regularly calling a function to get the next block, surrounded by
1252additional calls to tell the library of user interaction. The whole
1253DVD virtual machine and internal playback states are completely
1254encapsulated.")
ae0bdd81 1255 (license license:gpl2+)))
2cd85cf9 1256
f1044010
TUBK
1257(define-public libdvdnav-4
1258 (package
1259 (inherit libdvdnav)
1260 (version "4.2.1")
1261 (source (origin
1262 (method url-fetch)
1263 (uri
1264 (string-append
b8a31908 1265 "https://download.videolan.org/videolan/libdvdnav/libdvdnav-"
f1044010
TUBK
1266 version ".tar.xz"))
1267 (sha256
1268 (base32
1269 "0wi3gy408c8xj0ism0hckv5jbfh3lg4pmgxv87gbch9jrhp2gjkz"))))
1270 (native-inputs
1271 `(("pkg-config" ,pkg-config)
1272 ("autoconf" ,autoconf)
1273 ("automake" ,automake)
1274 ("libtool" ,libtool)))
1275 (arguments
1276 '(#:phases
1277 (alist-cons-after
1278 'unpack 'autoreconf
1279 (lambda _
1280 (zero? (system* "autoreconf" "-vif")))
1281 %standard-phases)))))
1282
a6f710ec
TUBK
1283(define-public libdvdcss
1284 (package
1285 (name "libdvdcss")
98416109 1286 (version "1.4.0")
a6f710ec
TUBK
1287 (source (origin
1288 (method url-fetch)
b8a31908 1289 (uri (string-append "https://download.videolan.org/pub/"
a6f710ec
TUBK
1290 name "/" version "/"
1291 name "-" version ".tar.bz2"))
1292 (sha256
1293 (base32
98416109 1294 "0nl45ifc4xcb196snv9d6hinfw614cqpzcqp92dg43c0hickg290"))))
a6f710ec 1295 (build-system gnu-build-system)
b8a31908 1296 (home-page "https://www.videolan.org/developers/libdvdcss.html")
a6f710ec
TUBK
1297 (synopsis "Library for accessing DVDs as block devices")
1298 (description
1299 "libdvdcss is a simple library designed for accessing DVDs like a block
1300device without having to bother about the decryption.")
ae0bdd81 1301 (license license:gpl2+)))
a6f710ec 1302
2cd85cf9
DT
1303(define-public srt2vtt
1304 (package
1305 (name "srt2vtt")
1306 (version "0.1")
1307 (source (origin
1308 (method url-fetch)
1309 (uri (string-append
1310 "http://dthompson.us/releases/srt2vtt/srt2vtt-"
1311 version ".tar.gz"))
1312 (sha256
1313 (base32
1314 "16b377znjm6qlga5yb8aj7b7bcisa1ghcnj2lrb1d30lvxp4liif"))))
1315 (build-system gnu-build-system)
1316 (inputs
1317 `(("guile" ,guile-2.0)))
1318 (synopsis "SubRip to WebVTT subtitle converter")
1319 (description "srt2vtt converts SubRip formatted subtitles to WebVTT format
1320for use with HTML5 video.")
1321 (home-page "http://dthompson.us/pages/software/srt2vtt")
ae0bdd81 1322 (license license:gpl3+)))
44726031
AE
1323
1324(define-public avidemux
1325 (package
1326 (name "avidemux")
9e786e8b 1327 (version "2.6.12")
44726031
AE
1328 (source (origin
1329 (method url-fetch)
1330 (uri (string-append
de67e922
LF
1331 "mirror://sourceforge/" name "/" name "/" version "/"
1332 name "_" version ".tar.gz"))
44726031
AE
1333 (sha256
1334 (base32
9e786e8b 1335 "0nz52yih8sff53inndkh2dba759xjzsh4b8xjww419lcpk0qp6kn"))
fc1adab1 1336 (patches (search-patches "avidemux-install-to-lib.patch"))))
44726031
AE
1337 (build-system cmake-build-system)
1338 (native-inputs
1339 `(("pkg-config" ,pkg-config)))
1340 ;; FIXME: Once packaged, add libraries not found during the build.
1341 (inputs
1342 `(("alsa-lib" ,alsa-lib)
1343 ("fontconfig" ,fontconfig)
1344 ("freetype" ,freetype)
1345 ("fribidi" ,fribidi)
1346 ("glu" ,glu)
44726031
AE
1347 ("jack" ,jack-1)
1348 ("lame" ,lame)
4cafe8ad
EF
1349 ("libva" ,libva)
1350 ("libvdpau" ,libvdpau)
44726031
AE
1351 ("libvorbis" ,libvorbis)
1352 ("libvpx" ,libvpx)
1353 ("libxv" ,libxv)
1354 ("perl" ,perl)
1355 ("pulseaudio" ,pulseaudio)
1356 ("python" ,python-wrapper)
a2c24bf5
DC
1357 ("qt" ,qt) ; FIXME: reenable modular qt after update - requires building
1358 ;("qtbase" ,qtbase) with -std=gnu++11.
1359 ;("qttools" ,qttools)
44726031
AE
1360 ("sdl" ,sdl)
1361 ("sqlite" ,sqlite)
1362 ("yasm" ,yasm)
1363 ("zlib" ,zlib)))
1364 (arguments
1365 `(#:tests? #f ; no check target
1366 #:phases
1367 ;; Make sure files inside the included ffmpeg tarball are
1368 ;; patch-shebanged.
1898900f
EF
1369 (modify-phases %standard-phases
1370 (add-before 'patch-source-shebangs 'unpack-ffmpeg
44726031
AE
1371 (lambda _
1372 (with-directory-excursion "avidemux_core/ffmpeg_package"
1898900f
EF
1373 (system* "tar" "xf" "ffmpeg-2.7.6.tar.bz2")
1374 (delete-file "ffmpeg-2.7.6.tar.bz2"))))
1375 (add-after 'patch-source-shebangs 'repack-ffmpeg
44726031
AE
1376 (lambda _
1377 (with-directory-excursion "avidemux_core/ffmpeg_package"
9e786e8b 1378 (substitute* "ffmpeg-2.7.6/configure"
2fed4042 1379 (("#! /bin/sh") (string-append "#!" (which "sh"))))
9e786e8b 1380 (system* "tar" "cjf" "ffmpeg-2.7.6.tar.bz2" "ffmpeg-2.7.6"
c09e6a5f 1381 ;; avoid non-determinism in the archive
92226a47
MW
1382 "--sort=name" "--mtime=@0"
1383 "--owner=root:0" "--group=root:0")
1898900f
EF
1384 (delete-file-recursively "ffmpeg-2.7.6"))))
1385 (replace 'configure
1386 (lambda _
1387 ;; Copy-paste settings from the cmake build system.
1388 (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
1389 (setenv "CMAKE_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))))
1390 (replace 'build
1391 (lambda* (#:key inputs outputs #:allow-other-keys)
1392 (let*
1393 ((out (assoc-ref outputs "out"))
1394 (lib (string-append out "/lib"))
1395 (top (getcwd))
1396 (sdl (assoc-ref inputs "sdl"))
1397 (build_component
1398 (lambda* (component srcdir #:optional (args '()))
1399 (let ((builddir (string-append "build_" component)))
1400 (mkdir builddir)
1401 (with-directory-excursion builddir
1402 (zero?
1403 (and
44726031
AE
1404 (apply system* "cmake"
1405 "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE"
1406 (string-append "-DCMAKE_INSTALL_PREFIX=" out)
1407 (string-append "-DCMAKE_INSTALL_RPATH=" lib)
c687f731
AE
1408 (string-append "-DCMAKE_SHARED_LINKER_FLAGS="
1409 "\"-Wl,-rpath=" lib "\"")
44726031
AE
1410 (string-append "-DAVIDEMUX_SOURCE_DIR=" top)
1411 (string-append "-DSDL_INCLUDE_DIR="
1412 sdl "/include/SDL")
1413 (string-append "../" srcdir)
aab56ab7 1414 "-DENABLE_QT5=True"
44726031 1415 args)
1898900f
EF
1416 (system* "make" "-j"
1417 (number->string (parallel-job-count)))
1418 (system* "make" "install"))))))))
1419 (mkdir out)
1420 (and (build_component "core" "avidemux_core")
1421 (build_component "cli" "avidemux/cli")
1422 (build_component "qt4" "avidemux/qt4")
1423 (build_component "plugins_common" "avidemux_plugins"
1424 '("-DPLUGIN_UI=COMMON"))
1425 (build_component "plugins_cli" "avidemux_plugins"
1426 '("-DPLUGIN_UI=CLI"))
1427 (build_component "plugins_qt4" "avidemux_plugins"
1428 '("-DPLUGIN_UI=QT4"))
1429 (build_component "plugins_settings" "avidemux_plugins"
1430 '("-DPLUGIN_UI=SETTINGS")))
1431 ;; Remove .exe and .dll file.
1432 (delete-file-recursively
1433 (string-append out "/share/ADM6_addons")))))
1434 (delete 'install))))
44726031
AE
1435 (home-page "http://fixounet.free.fr/avidemux/")
1436 (synopsis "Video editor")
1437 (description "Avidemux is a video editor designed for simple cutting,
1438filtering and encoding tasks. It supports many file types, including AVI,
1439DVD compatible MPEG files, MP4 and ASF, using a variety of codecs. Tasks
1440can be automated using projects, job queue and powerful scripting
1441capabilities.")
1442 ;; Software with various licenses is included, see License.txt.
ae0bdd81 1443 (license license:gpl2+)))
44726031 1444
6f6c8b65
TUBK
1445(define-public vapoursynth
1446 (package
1447 (name "vapoursynth")
4f7a9e0b 1448 (version "37")
6f6c8b65
TUBK
1449 (source (origin
1450 (method url-fetch)
1451 (uri (string-append
1452 "https://github.com/vapoursynth/vapoursynth/archive/R"
1453 version ".tar.gz"))
0b37c4cd 1454 (file-name (string-append name "-" version ".tar.gz"))
6f6c8b65
TUBK
1455 (sha256
1456 (base32
4f7a9e0b 1457 "1g3hc079jw4mz1cmkv2y28pdb556wqc8ql7iravgh1rg8j3f1zi5"))))
6f6c8b65
TUBK
1458 (build-system gnu-build-system)
1459 (native-inputs
1460 `(("autoconf" ,autoconf)
1461 ("automake" ,automake)
1462 ("cython" ,python-cython)
1463 ("libtool" ,libtool)
1464 ("pkg-config" ,pkg-config)
1465 ("python" ,python)
1466 ("yasm" ,yasm)))
1467 (inputs
1468 `(("ffmpeg" ,ffmpeg)
1469 ("libass" ,libass)
f80d5fe0
EF
1470 ("tesseract-ocr" ,tesseract-ocr)
1471 ("zimg" ,zimg)))
6f6c8b65
TUBK
1472 (arguments
1473 '(#:phases
1474 (modify-phases %standard-phases
1475 (add-after
f8503e2b 1476 'unpack 'autogen
6f6c8b65
TUBK
1477 (lambda _
1478 (zero? (system* "sh" "autogen.sh")))))))
1479 (home-page "http://www.vapoursynth.com/")
1480 (synopsis "Video processing framework")
1481 (description "VapourSynth is a C++ library and Python module for video
1482manipulation. It aims to be a modern rewrite of Avisynth, supporting
1483multithreading, generalized colorspaces, per frame properties, and videos with
1484format changes.")
9a078f48
EF
1485 ;; src/core/cpufeatures only allows x86, ARM or PPC
1486 (supported-systems (delete "mips64el-linux" %supported-systems))
6f6c8b65 1487 ;; As seen from the source files.
ae0bdd81 1488 (license license:lgpl2.1+)))
6f6c8b65 1489
67932f86
TUBK
1490(define-public xvid
1491 (package
1492 (name "xvid")
e05035c7 1493 (version "1.3.4")
67932f86
TUBK
1494 (source (origin
1495 (method url-fetch)
1496 (uri (string-append
1497 "http://downloads.xvid.org/downloads/xvidcore-"
1498 version ".tar.bz2"))
1499 (sha256
1500 (base32
e05035c7 1501 "1xwbmp9wqshc0ckm970zdpi0yvgqxlqg0s8bkz98mnr8p2067bsz"))))
67932f86
TUBK
1502 (build-system gnu-build-system)
1503 (native-inputs `(("yasm" ,yasm)))
1504 (arguments
1505 '(#:phases
62fe2d47
EF
1506 (modify-phases %standard-phases
1507 (add-before
1508 'configure 'pre-configure
1509 (lambda _
1510 (chdir "build/generic")
1511 (substitute* "configure"
1512 (("#! /bin/sh") (string-append "#!" (which "sh")))))))
67932f86
TUBK
1513 ;; No 'check' target.
1514 #:tests? #f))
1515 (home-page "https://www.xvid.com/")
1516 (synopsis "MPEG-4 Part 2 Advanced Simple Profile video codec")
1517 (description "Xvid is an MPEG-4 Part 2 Advanced Simple Profile (ASP) video
1518codec library. It uses ASP features such as b-frames, global and quarter
1519pixel motion compensation, lumi masking, trellis quantization, and H.263, MPEG
1520and custom quantization matrices.")
ae0bdd81 1521 (license license:gpl2+)))
e16fde14
DT
1522
1523(define-public livestreamer
1524 (package
1525 (name "livestreamer")
68e88a09 1526 (version "1.12.2")
e16fde14
DT
1527 (source (origin
1528 (method url-fetch)
1529 (uri (string-append
1530 "https://github.com/chrippa/livestreamer/archive/v"
1531 version ".tar.gz"))
1532 (file-name (string-append "livestreamer-" version ".tar.gz"))
1533 (sha256
1534 (base32
68e88a09 1535 "1fp3d3z2grb1ls97smjkraazpxnvajda2d1g1378s6gzmda2jvjd"))))
e16fde14
DT
1536 (build-system python-build-system)
1537 (arguments
1538 '(#:tests? #f)) ; tests rely on external web servers
e16fde14 1539 (propagated-inputs
5b9fe59f 1540 `(("python-requests" ,python-requests)))
e16fde14
DT
1541 (synopsis "Internet video stream viewer")
1542 (description "Livestreamer is a command-line utility that extracts streams
1543from various services and pipes them into a video playing application.")
1544 (home-page "http://livestreamer.io/")
1545 (license license:bsd-2)))
307ad140
RW
1546
1547(define-public mlt
1548 (package
1549 (name "mlt")
f05f5b30 1550 (version "6.4.1")
307ad140
RW
1551 (source (origin
1552 (method url-fetch)
4c7729dc
EF
1553 (uri (string-append "https://github.com/mltframework/mlt/"
1554 "archive/v" version ".tar.gz"))
1555 (file-name (string-append name "-" version ".tar.gz"))
307ad140
RW
1556 (sha256
1557 (base32
f05f5b30 1558 "10m3ry0b2pvqx3bk34qh5dq337nn8pkc2gzfyhsj4nv9abskln47"))))
307ad140
RW
1559 (build-system gnu-build-system)
1560 (arguments
1561 `(#:tests? #f ; no tests
1562 #:make-flags '("CC=gcc")
1563 #:configure-flags
1564 (list "--enable-gpl3"
1565 "--enable-gpl")
1566 #:phases
1567 (modify-phases %standard-phases
1568 (add-after
1569 'configure 'override-LDFLAGS
1570 (lambda* (#:key outputs #:allow-other-keys)
1571 (substitute* "config.mak"
1572 (("LDFLAGS\\+=")
1573 (string-append "LDFLAGS+=-Wl,-rpath="
1574 (assoc-ref outputs "out")
1575 "/lib ")))
1576 #t)))))
1577 (inputs
1578 `(("alsa-lib" ,alsa-lib)
1579 ("fftw" ,fftw)
1580 ("libxml2" ,libxml2)
1581 ("jack" ,jack-1)
1582 ("ladspa" ,ladspa)
1583 ("libsamplerate" ,libsamplerate)
4c7729dc 1584 ("pulseaudio" ,pulseaudio)
307ad140
RW
1585 ("sdl" ,sdl)
1586 ("sox" ,sox)))
1587 (native-inputs
1588 `(("pkg-config" ,pkg-config)))
4c7729dc 1589 (home-page "https://www.mltframework.org/")
307ad140
RW
1590 (synopsis "Author, manage, and run multitrack audio/video compositions")
1591 (description
1592 "MLT is a multimedia framework, designed and developed for television
1593broadcasting. It provides a toolkit for broadcasters, video editors, media
1594players, transcoders, web streamers and many more types of applications. The
1595functionality of the system is provided via an assortment of ready to use
1596tools, XML authoring components, and an extensible plug-in based API.")
1597 (license license:lgpl2.1+)))
f464016d 1598
945d985a
DT
1599(define-public v4l-utils
1600 (package
1601 (name "v4l-utils")
4ca077d5 1602 (version "1.12.3")
945d985a
DT
1603 (source (origin
1604 (method url-fetch)
1d4ac724 1605 (uri (string-append "https://linuxtv.org/downloads/v4l-utils"
945d985a
DT
1606 "/v4l-utils-" version ".tar.bz2"))
1607 (sha256
1608 (base32
4ca077d5 1609 "0vpl3jl0x441y7b5cn7zhdsyi954hp9h2p30jhnr1zkx1rpxsiss"))))
945d985a
DT
1610 (build-system gnu-build-system)
1611 (arguments
1612 '(#:configure-flags
1613 (list (string-append "--with-udevdir="
1614 (assoc-ref %outputs "out")
2cef0f7c
DC
1615 "/lib/udev")
1616 "CXXFLAGS=-std=gnu++11")))
945d985a 1617 (native-inputs
4ca077d5
TGR
1618 `(("perl" ,perl)
1619 ("pkg-config" ,pkg-config)))
945d985a
DT
1620 (inputs
1621 `(("alsa-lib" ,alsa-lib)
1622 ("glu" ,glu)
1623 ("libjpeg" ,libjpeg)
1624 ("libx11" ,libx11)
b37662e2 1625 ("qtbase" ,qtbase)
945d985a
DT
1626 ("eudev" ,eudev)))
1627 (synopsis "Realtime video capture utilities for Linux")
1628 (description "The v4l-utils provide a series of libraries and utilities to
1629be used for realtime video capture via Linux-specific APIs.")
1630 (home-page "https://linuxtv.org/wiki/index.php/V4l-utils")
1631 ;; libv4l2 is LGPL2.1+, while utilities are GPL2 only.
1632 (license (list license:lgpl2.1+ license:gpl2))))
1633
f464016d
DT
1634(define-public obs
1635 (package
1636 (name "obs")
341ccb0f 1637 (version "18.0.2")
f464016d
DT
1638 (source (origin
1639 (method url-fetch)
1640 (uri (string-append "https://github.com/jp9000/obs-studio"
1641 "/archive/" version ".tar.gz"))
1642 (file-name (string-append name "-" version ".tar.gz"))
1643 (sha256
1644 (base32
341ccb0f 1645 "02pbiyvf5x0zh448h5rpmyn33qnsqk694xxlyns83mdi74savyqw"))))
f464016d 1646 (build-system cmake-build-system)
08858812 1647 (arguments
f3bd1728 1648 `(#:tests? #f)) ; no tests
f464016d
DT
1649 (native-inputs
1650 `(("pkg-config" ,pkg-config)))
1651 (inputs
4f98c3c5
EF
1652 `(("alsa-lib" ,alsa-lib)
1653 ("curl" ,curl)
f464016d
DT
1654 ("eudev" ,eudev)
1655 ("ffmpeg" ,ffmpeg)
4f98c3c5 1656 ("fontconfig" ,fontconfig)
f464016d
DT
1657 ("freetype" ,freetype)
1658 ("jack" ,jack-1)
1659 ("jansson" ,jansson)
1660 ("libx264" ,libx264)
1661 ("libxcomposite" ,libxcomposite)
1662 ("mesa" ,mesa)
1663 ("pulseaudio" ,pulseaudio)
90a2309b
EF
1664 ("qtbase" ,qtbase)
1665 ("qtx11extras" ,qtx11extras)
4f98c3c5 1666 ("speex" ,speex)
d4df2032 1667 ("v4l-utils" ,v4l-utils)
f464016d
DT
1668 ("zlib" ,zlib)))
1669 (synopsis "Live streaming software")
1670 (description "Open Broadcaster Software provides a graphical interface for
1671video recording and live streaming. OBS supports capturing audio and video
1672from many input sources such as webcams, X11 (for screencasting), PulseAudio,
1673and JACK.")
1674 (home-page "https://obsproject.com")
f3bd1728 1675 (supported-systems '("x86_64-linux" "i686-linux"))
f464016d 1676 (license license:gpl2+)))
d5650f86
EF
1677
1678(define-public libvdpau
1679 (package
1680 (name "libvdpau")
1681 (version "1.1.1")
1682 (source
1683 (origin
1684 (method url-fetch)
1685 (uri (string-append "https://secure.freedesktop.org/~aplattner/vdpau/"
1686 name "-" version ".tar.bz2"))
1687 (sha256
1688 (base32
1689 "0dnpb0yh7v6rvckx82kxg045rd9rbsw25wjv7ad5n8h94s9h2yl5"))))
1690 (build-system gnu-build-system)
1691 (native-inputs
1692 `(("pkg-config" ,pkg-config)))
1693 (inputs
1694 `(("dri2proto" ,dri2proto)
1695 ("libx11" ,libx11 "out")
1696 ("libxext" ,libxext)))
1697 (home-page "https://wiki.freedesktop.org/www/Software/VDPAU/")
1698 (synopsis "Video Decode and Presentation API")
1699 (description "VDPAU is the Video Decode and Presentation API for UNIX. It
1700provides an interface to video decode acceleration and presentation hardware
1701present in modern GPUs.")
1702 (license (license:x11-style "file://COPYING"))))
3161d32d
EF
1703
1704(define-public vdpauinfo
1705 (package
1706 (name "vdpauinfo")
1707 (version "1.0")
1708 (source
1709 (origin
1710 (method url-fetch)
1711 (uri (string-append "https://secure.freedesktop.org/~aplattner/vdpau/"
1712 name "-" version ".tar.gz"))
1713 (sha256
1714 (base32
1715 "1i2b0k9h8r0lnxlrkgqzmrjakgaw3f1ygqqwzx8w6676g85rcm20"))))
1716 (build-system gnu-build-system)
1717 (native-inputs
1718 `(("pkg-config" ,pkg-config)
1719 ("libx11" ,libx11)))
1720 (propagated-inputs
1721 `(("libvdpau" ,libvdpau)))
1722 (home-page "https://wiki.freedesktop.org/www/Software/VDPAU/")
1723 (synopsis "Tool to query the capabilities of a VDPAU implementation")
1724 (description "Vdpauinfo is a tool to query the capabilities of a VDPAU
1725implementation.")
1726 (license (license:x11-style "file://COPYING"))))
a7d94b54
LC
1727
1728(define-public recordmydesktop
1729 (package
1730 (name "recordmydesktop")
1731 (version "0.3.8.1")
1732 (source (origin
1733 (method url-fetch)
1734 (uri (string-append "mirror://sourceforge/" name "/" name "/"
1735 version "/recordmydesktop-" version ".tar.gz"))
1736 (sha256
1737 (base32
1738 "133kkl5j0r877d41bzj7kj0vf3xm8x80yyx2n8nqxrva304f58ik"))))
1739 (build-system gnu-build-system)
1740 (inputs `(("popt" ,popt)
1741 ("zlib" ,zlib)
1742 ("libx11" ,libx11)
1743 ("libice" ,libice)
1744 ("libsm" ,libsm)
1745 ("libxfixes" ,libxfixes)
1746 ("libxdamage" ,libxdamage)
1747 ("libxext" ,libxext)
ed6ba9cc 1748 ("alsa-lib" ,alsa-lib)
a7d94b54
LC
1749 ("libvorbis" ,libvorbis)
1750 ("libtheora" ,libtheora)))
1751 (home-page "http://recordmydesktop.sourceforge.net/")
1752 (synopsis "Desktop session video recorder")
1753 (description
1754 "recordMyDesktop is a command-line tool that captures the activity in
1755your graphical desktop and encodes it as a video. This is a useful tool for
1756making @dfn{screencasts}.")
1757 (license license:gpl2+)))
d8841cc5
KK
1758
1759(define-public libsmpeg
1760 (package
1761 (name "libsmpeg")
1762 (version "0.4.5")
1763 (source (origin
1764 (method svn-fetch)
1765 (uri (svn-reference
1766 (url "svn://svn.icculus.org/smpeg/trunk/")
1767 (revision 401))) ; last revision before smpeg2 (for SDL 2.0)
b9af0564 1768 (file-name (string-append name "-" version "-checkout"))
d8841cc5
KK
1769 (sha256
1770 (base32
1771 "18yfkr70lr1x1hc8snn2ldnbzdcc7b64xmkqrfk8w59gpg7sl1xn"))))
1772 (build-system gnu-build-system)
1773 (arguments
1774 `(#:phases (modify-phases %standard-phases
1775 (add-after 'unpack 'autogen.sh
1776 (lambda _
1777 (zero? (system* "sh" "autogen.sh")))))))
1778 (native-inputs
1779 `(("autoconf" ,autoconf)
1780 ("automake" ,automake)))
1781 (inputs
1782 `(("sdl" ,sdl2)))
1783 (home-page "http://icculus.org/smpeg/")
1784 (synopsis "SDL MPEG decoding library")
1785 (description
1786 "SMPEG (SDL MPEG Player Library) is a free MPEG1 video player library
1787with sound support. Video playback is based on the ubiquitous Berkeley MPEG
1788player, mpeg_play v2.2. Audio is played through a slightly modified mpegsound
1789library, part of splay v0.8.2. SMPEG supports MPEG audio (MP3), MPEG-1 video,
1790and MPEG system streams.")
1791 (license (list license:expat
1792 license:lgpl2.1
1793 license:lgpl2.1+
1794 license:gpl2))))
4df07622
AP
1795
1796(define-public libbdplus
1797 (package
1798 (name "libbdplus")
1799 (version "0.1.2")
1800 (source
1801 (origin
1802 (method url-fetch)
1803 (uri (string-append "ftp://ftp.videolan.org/pub/videolan/libbdplus/"
1804 version "/" name "-" version ".tar.bz2"))
1805 (sha256
1806 (base32 "02n87lysqn4kg2qk7d1ffrp96c44zkdlxdj0n16hbgrlrpiwlcd6"))))
1807 (inputs
1808 `(("libgcrypt" ,libgcrypt)))
1809 (build-system gnu-build-system)
b8a31908 1810 (home-page "https://www.videolan.org/developers/libbdplus.html")
4df07622
AP
1811 (synopsis "Library for decrypting certain Blu-Ray discs")
1812 (description "libbdplus is a library which implements the BD+ System
1813specifications.")
1814 (license license:lgpl2.1+)))
8dd6fc51
AP
1815
1816(define-public libaacs
1817 (package
1818 (name "libaacs")
1819 (version "0.8.1")
1820 (source
1821 (origin
1822 (method url-fetch)
1823 (uri (string-append "ftp://ftp.videolan.org/pub/videolan/libaacs/"
1824 version "/" name "-" version ".tar.bz2"))
1825 (sha256
1826 (base32 "1s5v075hnbs57995r6lljm79wgrip3gnyf55a0y7bja75jh49hwm"))))
1827 (inputs
1828 `(("libgcrypt" ,libgcrypt)))
1829 (native-inputs
1830 `(("bison" ,bison)
1831 ("flex" ,flex)))
1832 (build-system gnu-build-system)
b8a31908 1833 (home-page "https://www.videolan.org/developers/libaacs.html")
8dd6fc51
AP
1834 (synopsis "Library for decrypting certain Blu-Ray discs")
1835 (description "libaacs is a library which implements the Advanced Access
1836Content System specification.")
1837 (license license:lgpl2.1+)))
05234973 1838
1839(define-public mps-youtube
1840 (package
1841 (name "mps-youtube")
1842 (version "0.2.7.1")
1843 (source
1844 (origin
1845 (method url-fetch)
1846 (uri (string-append "https://github.com/mps-youtube/mps-youtube/"
1847 "archive/v" version ".tar.gz"))
1848 (file-name (string-append name "-" version ".tar.gz"))
1849 (sha256
1850 (base32
1851 "1s7h35yx6f0szf8mm8612ic913w3v05m2kwphjfcxnpq0ammhyci"))))
1852 (build-system python-build-system)
175d6264 1853 (arguments
1854 ;; Tests need to be disabled until #556 upstream is fixed. It reads as if the
1855 ;; test suite results differ depending on the country and also introduce
1856 ;; non-determinism in the tests.
1857 ;; https://github.com/mps-youtube/mps-youtube/issues/556
1858 `(#:tests? #f))
05234973 1859 (propagated-inputs
1860 `(("python-pafy" ,python-pafy)
1861 ("python-pygobject" ,python-pygobject))) ; For mpris2 support
1862 (home-page "https://github.com/mps-youtube/mps-youtube")
1863 (synopsis "Terminal based YouTube player and downloader")
1864 (description
1865 "@code{mps-youtube} is based on mps, a terminal based program to
1866search, stream and download music. This implementation uses YouTube as
1867a source of content and can play and download video as well as audio.
1868It can use either mpv or mplayer for playback, and for conversion of
1869formats ffmpeg or libav is used. Users should install one of the
1870supported players in addition to this package.")
1871 (license license:gpl3+)))
fe047e13
EB
1872
1873(define-public handbrake
1874 (package
1875 (name "handbrake")
1876 (version "0.10.5")
1877 (source (origin
1878 (method url-fetch)
1879 (uri (string-append "https://handbrake.fr/rotation.php?file="
1880 "HandBrake-" version ".tar.bz2"))
1881 (file-name (string-append "handbrake-" version ".tar.bz2"))
1882 (sha256
1883 (base32
1884 "1w720y3bplkz187wgvy4a4xm0vpppg45mlni55l6yi8v2bfk14pv"))
1885 (patches (search-patches "handbrake-pkg-config-path.patch"))
1886 (modules '((guix build utils)))
1887 (snippet
1888 ;; Remove bundled libraries and source not necessary for
1889 ;; running under a GNU environment.
1890 '(begin
1891 (for-each delete-file-recursively '("contrib" "macosx" "win"))
1892 #t))))
1893 (build-system glib-or-gtk-build-system)
1894 (native-inputs
1895 `(("automake" ,automake) ;gui subpackage must be bootstrapped
1896 ("autoconf" ,autoconf)
1897 ("curl" ,curl) ;not actually used, but tested for
1898 ("intltool" ,intltool)
1899 ("libtool" ,libtool)
1900 ("pkg-config" ,pkg-config)
1901 ("python" ,python-2))) ;for configuration
1902 (inputs
1903 `(("bzip2" ,bzip2)
1904 ("dbus-glib" ,dbus-glib)
1905 ("ffmpeg" ,ffmpeg)
1906 ("fontconfig" ,fontconfig)
1907 ("freetype" ,freetype)
1908 ("glib" ,glib)
1909 ("gstreamer" ,gstreamer)
1910 ("gst-plugins-base" ,gst-plugins-base)
1911 ("gtk+" ,gtk+)
1912 ("lame" ,lame)
1913 ("libass" ,libass)
1914 ("libbluray" ,libbluray)
1915 ("libdvdnav" ,libdvdnav)
1916 ("libdvdread" ,libdvdread)
1917 ("libgudev" ,libgudev)
1918 ("libmpeg2" ,libmpeg2)
1919 ("libnotify" ,libnotify)
1920 ("libogg" ,libogg)
1921 ("libsamplerate" ,libsamplerate)
1922 ("libtheora" ,libtheora)
1923 ("libvorbis" ,libvorbis)
1924 ("libvpx" ,libvpx)
1925 ("libxml2" ,libxml2)
1926 ("libx264" ,libx264)
1927 ("x265" ,x265)
1928 ("zlib" ,zlib)))
1929 (arguments
1930 `(#:tests? #f ;tests require Ruby and claim to be unsupported
1931 #:phases
1932 (modify-phases %standard-phases
1933 (add-before 'patch-source-shebangs 'bootstrap-gtk
1934 ;; Run bootstrap ahead of time so that shebangs get patched.
1935 (lambda _
1936 (setenv "CONFIG_SHELL" (which "sh"))
1937 (setenv "NOCONFIGURE" "1")
1938 ;; Patch the Makefile so that it doesn't bootstrap again.
1939 (substitute* "gtk/module.rules"
1940 ((".*autogen\\.sh.*") ""))
1941 (zero? (system* "sh" "./gtk/autogen.sh"))))
1942 (add-before 'configure 'disable-contrib
1943 (lambda _
1944 (substitute* "make/include/main.defs"
1945 ;; Disable unconditional inclusion of some "contrib"
1946 ;; libraries (ffmpeg, libvpx, libdvdread, libdvdnav,
1947 ;; and libbluray), which would lead to fetching and
1948 ;; building of these libraries. Use our own instead.
1949 (("MODULES \\+= contrib") "# MODULES += contrib"))
1950 #t))
1951 (add-before 'configure 'fix-x265-linking
1952 (lambda _
1953 (substitute* "test/module.defs"
1954 ;; Fix missing library during linking error
1955 (("TEST.GCC.l =") "TEST.GCC.l = x265"))
1956 #t))
1957 (replace 'configure
1958 (lambda* (#:key outputs configure-flags #:allow-other-keys)
1959 ;; 'configure' is not an autoconf-generated script, and
1960 ;; errors on unrecognized arguments,
1961 ;; e.g. --enable-fast-install
1962 (let ((out (assoc-ref outputs "out")))
1963 (zero? (apply system* "./configure"
1964 (string-append "--prefix=" out)
1965 (or configure-flags '()))))))
1966 (add-after 'configure 'chdir-build
1967 (lambda _ (chdir "./build") #t)))))
1968 (home-page "https://handbrake.fr")
1969 (synopsis "Video transcoder")
1970 (description
1971 "HandBrake is a tool for converting video from any format to a selection
1972of modern, widely supported codecs.")
1973 ;; Most under GPL version 2 or later, and portions under BSD 3 Clause
1974 (license (list license:gpl2+ license:bsd-3))))
590abe01
JN
1975
1976(define-public openh264
1977 (package
1978 (name "openh264")
1979 (version "1.6.0")
1980 (source (origin
1981 (method url-fetch)
1982 (uri (string-append "https://github.com/cisco/"
1983 name "/archive/v" version ".tar.gz"))
1984 (file-name (string-append name "-" version ".tar.gz"))
1985 (sha256
1986 (base32
1987 "1ix2fhk62i4q4kbnkl0gfk4x53vxqavsn0pck1pashr566zhglv5"))))
1988 (build-system gnu-build-system)
1989 (native-inputs
1990 `(("nasm" ,nasm)
1991 ("python" ,python)))
1992 (arguments
1993 '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
1994 #:test-target "test"
1995 #:phases (modify-phases %standard-phases
1996 ;; no configure script
1997 (delete 'configure))))
1998 (home-page "http://www.openh264.org/")
1999 (synopsis "H264 decoder library")
2000 (description
2001 "Openh264 is a library which can decode H264 video streams.")
2002 (license license:bsd-2)))
3a44c7bb 2003
2004(define-public libmp4v2
2005 (package
2006 (name "libmp4v2")
2007 (version "2.0.0")
2008 (source
2009 (origin
2010 (method url-fetch)
2011 ;; XXX: The new location of upstream is uncertain and will become relevant the
2012 ;; moment when the googlecode archive shuts down. It is past the date it
2013 ;; should've been turned off. I tried to communicate with upstream, but this
2014 ;; wasn't very responsive and not very helpful. The short summary is, it is
2015 ;; chaos when it comes to the amount of forks and only time will tell where
2016 ;; the new upstream location is.
2017 (uri (string-append "https://storage.googleapis.com/google-"
2018 "code-archive-downloads/v2/"
2019 "code.google.com/mp4v2/mp4v2-" version ".tar.bz2"))
2020 (file-name (string-append name "-" version ".tar.bz2"))
2021 (sha256
2022 (base32
2023 "0f438bimimsvxjbdp4vsr8hjw2nwggmhaxgcw07g2z361fkbj683"))))
2024 (build-system gnu-build-system)
2025 (outputs '("out"
2026 "static")) ; 3.7MiB .a file
2027 (arguments
2028 `(#:phases
2029 (modify-phases %standard-phases
2030 (add-after 'unpack 'remove-dates
2031 (lambda _
2032 ;; Make the build reproducible.
2033 (substitute* "configure"
2034 (("PROJECT_build=\"`date`\"") "PROJECT_build=\"\"")
2035 (("ac_abs_top_builddir=$ac_pwd") "ac_abs_top_builddir=\"\""))
2036 #t))
2037 (add-after 'install 'move-static-libraries
2038 (lambda* (#:key outputs #:allow-other-keys)
2039 ;; Move static libraries to the "static" output.
2040 (let* ((out (assoc-ref outputs "out"))
2041 (lib (string-append out "/lib"))
2042 (static (assoc-ref outputs "static"))
2043 (slib (string-append static "/lib")))
2044 (mkdir-p slib)
2045 (for-each (lambda (file)
2046 (install-file file slib)
2047 (delete-file file))
2048 (find-files lib "\\.a$"))
2049 #t))))))
2050 (native-inputs
2051 `(("help2man" ,help2man)
2052 ("dejagnu" ,dejagnu)))
2053 (home-page "https://code.google.com/archive/p/mp4v2/")
2054 (synopsis "API to create and modify mp4 files")
2055 (description
2056 "The MP4v2 library provides an API to create and modify mp4 files as defined by
2057ISO-IEC:14496-1:2001 MPEG-4 Systems. This file format is derived from Apple's QuickTime
2058file format that has been used as a multimedia file format in a variety of platforms and
2059applications. It is a very powerful and extensible format that can accommodate
2060practically any type of media.")
2061 (license license:mpl1.1)))