gnu: gjs: Update to 1.48.3.
[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")
cfa7473c 276 (version "2.4")
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
cfa7473c 284 "0afp0xlk0fb4q6j4sh3hyvjnjccdp61sn21zg3fyqvwgswcafalw"))
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")
3bc45ad4 649 (version "2.2.5.1")
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
3bc45ad4 657 "1k51vm6piqlrnld7sxyg0s4kdkd3lan97lmy3v5wdh3qyll8m2xj"))))
d5a748e8
AE
658 (build-system gnu-build-system)
659 (native-inputs
660 `(("git" ,git) ; needed for a test
661 ("pkg-config" ,pkg-config)))
662 ;; FIXME: Add optional inputs once available.
663 (inputs
664 `(("alsa-lib" ,alsa-lib)
665 ("avahi" ,avahi)
666 ("dbus" ,dbus)
667 ("flac" ,flac)
b4dff935 668 ("ffmpeg" ,ffmpeg-2.8) ;fails to build against ffmpeg 3.0
d5a748e8
AE
669 ("fontconfig" ,fontconfig)
670 ("freetype" ,freetype)
671 ("gnutls" ,gnutls)
8824da4c 672 ("liba52" ,liba52)
d5a748e8
AE
673 ("libcddb" ,libcddb)
674 ("libgcrypt" ,libgcrypt)
675 ("libkate" ,libkate)
676 ("libmad" ,libmad)
677 ("libogg" ,libogg)
678 ("libpng" ,libpng)
679 ("libsamplerate" ,libsamplerate)
680 ("libssh2" ,libssh2)
681 ("libvorbis" ,libvorbis)
682 ("libtheora" ,libtheora)
683 ("libxext" ,libxext)
c161c22a 684 ("libxi" ,libxi)
d5a748e8
AE
685 ("libxinerama" ,libxinerama)
686 ("libxml2" ,libxml2)
687 ("libxpm" ,libxpm)
688 ("lua" ,lua-5.1)
689 ("mesa" ,mesa)
690 ("opus" ,opus)
691 ("perl" ,perl)
692 ("pulseaudio" ,pulseaudio)
693 ("python" ,python-wrapper)
c161c22a
DC
694 ("qt" ,qt) ; FIXME: reenable modular qt after update - requires building
695 ;("qtbase" ,qtbase) with -std=gnu++11.
a134cc8e 696 ;("qtx11extras" ,qtx11extras)
d5a748e8
AE
697 ("sdl" ,sdl)
698 ("sdl-image" ,sdl-image)
699 ("speex" ,speex)
8f5f6c92 700 ("x265" ,x265)
d5a748e8
AE
701 ("xcb-util-keysyms" ,xcb-util-keysyms)))
702 (arguments
703 `(#:configure-flags
8824da4c 704 `(;; Gross workaround for <https://trac.videolan.org/vlc/ticket/16907>.
c6b3dc69
LC
705 ;; In our case, this led to a test failure:
706 ;; test_libvlc_equalizer: libvlc/equalizer.c:122: test_equalizer: Assertion `isnan(libvlc_audio_equalizer_get_amp_at_index (equalizer, u_bands))' failed.
707 "ac_cv_c_fast_math=no"
708
d5a748e8
AE
709 ,(string-append "LDFLAGS=-Wl,-rpath -Wl,"
710 (assoc-ref %build-inputs "ffmpeg")
cd76fbde
LC
711 "/lib")) ;needed for the tests
712
713 #:phases
714 (modify-phases %standard-phases
a134cc8e
EF
715 (add-before 'configure 'remove-visual-tests
716 ;; Some of the tests require using the display to test out VLC,
717 ;; which fails in our sandboxed build system
718 (lambda _
719 (substitute* "test/run_vlc.sh"
720 (("./vlc --ignore-config") "echo"))
721 #t))
cd76fbde
LC
722 (add-after 'install 'regenerate-plugin-cache
723 (lambda* (#:key outputs #:allow-other-keys)
724 ;; The 'install-exec-hook' rule in the top-level Makefile.am
725 ;; generates 'lib/vlc/plugins/plugins.dat', a plugin cache, using
726 ;; 'vlc-cache-gen'. This file includes the mtime of the plugins
727 ;; it references. Thus, we first reset the timestamps of all
728 ;; these files, and then regenerate the cache such that the
729 ;; mtimes it includes are always zero instead of being dependent
730 ;; on the build time.
731 (let* ((out (assoc-ref outputs "out"))
732 (pkglibdir (string-append out "/lib/vlc"))
733 (plugindir (string-append pkglibdir "/plugins"))
734 (cachegen (string-append pkglibdir "/vlc-cache-gen")))
735 ;; TODO: Factorize 'reset-timestamps'.
736 (for-each (lambda (file)
737 (let ((s (lstat file)))
738 (unless (eq? (stat:type s) 'symlink)
739 (utime file 0 0 0 0))))
740 (find-files plugindir))
741 (zero? (system* cachegen plugindir))))))))
d5a748e8
AE
742 (home-page "https://www.videolan.org/")
743 (synopsis "Audio and video framework")
744 (description "VLC is a cross-platform multimedia player and framework
745that plays most multimedia files as well as DVD, Audio CD, VCD, and various
746treaming protocols.")
ae0bdd81 747 (license license:gpl2+)))
ace69243
AE
748
749(define-public mplayer
750 (package
751 (name "mplayer")
e71b20e5 752 (version "1.3.0")
ace69243
AE
753 (source (origin
754 (method url-fetch)
755 (uri (string-append
ebde7c7a 756 "https://www.mplayerhq.hu/MPlayer/releases/MPlayer-"
ace69243
AE
757 version ".tar.xz"))
758 (sha256
759 (base32
e71b20e5 760 "0hwqn04bdknb2ic88xd75smffxx63scvz0zvwvjb56nqj9n89l1s"))))
ace69243
AE
761 (build-system gnu-build-system)
762 ;; FIXME: Add additional inputs once available.
763 (native-inputs
764 `(("pkg-config" ,pkg-config)))
765 (inputs
766 `(("alsa-lib" ,alsa-lib)
767 ("cdparanoia" ,cdparanoia)
b3546174 768 ("ffmpeg" ,ffmpeg)
778a6a8b 769 ("fontconfig" ,fontconfig)
ace69243 770 ("freetype" ,freetype)
778a6a8b 771;; ("giflib" ,giflib) ; uses QuantizeBuffer, requires version >= 5
ace69243 772 ("lame" ,lame)
778a6a8b 773 ("libass" ,libass)
b3546174
MW
774 ("libdvdcss" ,libdvdcss)
775 ("libdvdnav" ,libdvdnav)
ace69243 776 ("libjpeg" ,libjpeg)
778a6a8b
EF
777 ("libmpeg2" ,libmpeg2)
778 ("libmpg123" ,mpg123) ; audio codec for MP3
ace69243
AE
779 ("libpng" ,libpng)
780 ("libtheora" ,libtheora)
778a6a8b 781 ("libvdpau" ,libvdpau)
ace69243
AE
782 ("libvorbis" ,libvorbis)
783 ("libx11" ,libx11)
778a6a8b 784 ("libx264" ,libx264)
ace69243
AE
785 ("libxinerama" ,libxinerama)
786 ("libxv" ,libxv)
778a6a8b 787 ("libxxf86dga" ,libxxf86dga)
ace69243 788 ("mesa" ,mesa)
778a6a8b 789 ("opus" ,opus)
ace69243
AE
790 ("perl" ,perl)
791 ("pulseaudio" ,pulseaudio)
792 ("python" ,python-wrapper)
793 ("sdl" ,sdl)
794 ("speex" ,speex)
795 ("yasm" ,yasm)
796 ("zlib" ,zlib)))
797 (arguments
798 `(#:tests? #f ; no test target
799 #:phases
ebde7c7a
EF
800 (modify-phases %standard-phases
801 (replace 'configure
ace69243
AE
802 ;; configure does not work followed by "SHELL=..." and
803 ;; "CONFIG_SHELL=..."; set environment variables instead
804 (lambda* (#:key inputs outputs #:allow-other-keys)
805 (let ((out (assoc-ref outputs "out"))
806 (libx11 (assoc-ref inputs "libx11")))
807 (substitute* "configure"
2564b7c2 808 (("#! /bin/sh") (string-append "#!" (which "sh"))))
ace69243
AE
809 (setenv "SHELL" (which "bash"))
810 (setenv "CONFIG_SHELL" (which "bash"))
811 (zero? (system*
812 "./configure"
813 (string-append "--extra-cflags=-I"
814 libx11 "/include") ; to detect libx11
ebde7c7a 815 "--disable-ffmpeg_a" ; disables bundled ffmpeg
ace69243 816 (string-append "--prefix=" out)
fe138965
MW
817 ;; Enable runtime cpu detection where supported,
818 ;; and choose a suitable target.
819 ,@(match (or (%current-target-system)
820 (%current-system))
821 ("x86_64-linux"
822 '("--enable-runtime-cpudetection"
823 "--target=x86_64-linux"))
824 ("i686-linux"
825 '("--enable-runtime-cpudetection"
826 "--target=i686-linux"))
827 ("mips64el-linux"
f0d6d835
MW
828 '("--target=mips3-linux"))
829 (_ (list (string-append
830 "--target="
831 (or (%current-target-system)
832 (nix-system->gnu-triplet
833 (%current-system)))))))
ebde7c7a
EF
834 "--disable-iwmmxt"))))))))
835 (home-page "https://www.mplayerhq.hu/design7/news.html")
ace69243
AE
836 (synopsis "Audio and video player")
837 (description "MPlayer is a movie player. It plays most MPEG/VOB, AVI,
838Ogg/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, RealMedia, Matroska, NUT,
839NuppelVideo, FLI, YUV4MPEG, FILM, RoQ, PVA files. One can watch VideoCD,
840SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
ae0bdd81 841 (license license:gpl2)))
d0ed39be 842
1c1178cd
TUBK
843(define-public mpv
844 (package
845 (name "mpv")
43ba5dd4 846 (version "0.25.0")
1c1178cd
TUBK
847 (source (origin
848 (method url-fetch)
849 (uri (string-append
850 "https://github.com/mpv-player/mpv/archive/v" version
851 ".tar.gz"))
852 (sha256
853 (base32
43ba5dd4 854 "1khb7c4fdj1aak46lwyb3lq14w5jpxzws0zp6bdc87ljsvx3yhh7"))
1c1178cd
TUBK
855 (file-name (string-append name "-" version ".tar.gz"))))
856 (build-system waf-build-system)
857 (native-inputs
832d60dc 858 `(("perl" ,perl) ; for zsh completion file
1c1178cd
TUBK
859 ("pkg-config" ,pkg-config)
860 ("python-docutils" ,python-docutils)))
81c29ccc 861 ;; Missing features: libguess, Wayland, V4L2
1c1178cd
TUBK
862 (inputs
863 `(("alsa-lib" ,alsa-lib)
864 ("enca" ,enca)
865 ("ffmpeg" ,ffmpeg)
2d8781a4 866 ("jack" ,jack-1)
1c1178cd
TUBK
867 ("ladspa" ,ladspa)
868 ("lcms" ,lcms)
869 ("libass" ,libass)
870 ("libbluray" ,libbluray)
871 ("libcaca" ,libcaca)
872 ("libbs2b" ,libbs2b)
873 ("libcdio-paranoia" ,libcdio-paranoia)
874 ("libdvdread" ,libdvdread)
875 ("libdvdnav" ,libdvdnav)
876 ("libjpeg" ,libjpeg)
877 ("libva" ,libva)
81c29ccc 878 ("libvdpau" ,libvdpau)
1c1178cd
TUBK
879 ("libx11" ,libx11)
880 ("libxext" ,libxext)
881 ("libxinerama" ,libxinerama)
882 ("libxrandr" ,libxrandr)
883 ("libxscrnsaver" ,libxscrnsaver)
884 ("libxv" ,libxv)
e66f0dd2
AP
885 ;; XXX: lua > 5.2 is not currently supported; see
886 ;; waftools/checks/custom.py
887 ("lua" ,lua-5.2)
1c1178cd
TUBK
888 ("mesa" ,mesa)
889 ("mpg123" ,mpg123)
890 ("pulseaudio" ,pulseaudio)
891 ("rsound" ,rsound)
f0b8d83a 892 ("waf" ,python-waf)
1c1178cd
TUBK
893 ("youtube-dl" ,youtube-dl)
894 ("zlib" ,zlib)))
895 (arguments
896 '(#:phases
897 (modify-phases %standard-phases
898 (add-before
f8503e2b 899 'configure 'setup-waf
1c1178cd
TUBK
900 (lambda* (#:key inputs #:allow-other-keys)
901 (copy-file (assoc-ref inputs "waf") "waf")
599fd842 902 (setenv "CC" "gcc"))))
98c8b963 903 #:configure-flags (list "--enable-libmpv-shared"
43ba5dd4
EF
904 "--enable-cdda"
905 "--enable-dvdread"
906 "--enable-dvdnav"
98c8b963
EF
907 "--enable-zsh-comp"
908 "--disable-build-date")
1c1178cd
TUBK
909 ;; No check function defined.
910 #:tests? #f))
581873b5 911 (home-page "https://mpv.io/")
1c1178cd
TUBK
912 (synopsis "Audio and video player")
913 (description "mpv is a general-purpose audio and video player. It is a
914fork of mplayer2 and MPlayer. It shares some features with the former
915projects while introducing many more.")
ae0bdd81 916 (license license:gpl2+)))
1c1178cd 917
0e74bb5b
AG
918(define-public gnome-mpv
919 (package
920 (name "gnome-mpv")
2b841707 921 (version "0.11")
0e74bb5b
AG
922 (source
923 (origin
924 (method url-fetch)
925 (uri (string-append "https://github.com/gnome-mpv/gnome-mpv/releases"
926 "/download/v" version "/gnome-mpv-" version
927 ".tar.xz"))
928 (sha256
929 (base32
2b841707 930 "1hn3mpsxbrwf2m0nz4vzji4i6i896y8kqjb9kijqpk04cnrs3fgz"))))
0e74bb5b
AG
931 (native-inputs
932 `(("intltool" ,intltool)
933 ("pkg-config" ,pkg-config)))
934 (inputs
935 `(("gtk+" ,gtk+)
936 ("libepoxy" ,libepoxy)
937 ("mpv" ,mpv)))
938 (build-system glib-or-gtk-build-system)
939 (home-page "https://github.com/gnome-mpv/gnome-mpv")
940 (synopsis "GTK+ frontend for the mpv media player")
941 (description "GNOME MPV is a simple GTK+ frontend for the mpv media player.
942GNOME MPV interacts with mpv via the client API exported by libmpv, allowing
943access to mpv's powerful playback capabilities.")
944 (license license:gpl3+)))
945
d0ed39be
DT
946(define-public libvpx
947 (package
948 (name "libvpx")
65064909 949 (version "1.6.1")
d0ed39be
DT
950 (source (origin
951 (method url-fetch)
723e8866
MW
952 (uri (string-append "http://storage.googleapis.com/"
953 "downloads.webmproject.org/releases/webm/"
954 name "-" version ".tar.bz2"))
d0ed39be
DT
955 (sha256
956 (base32
65064909 957 "06d8hqjkfs6wl45qf4pwh1kpbvkx6cwywd5y8d4lgagvjwm0qb0w"))
c7c49446 958 (patches (search-patches "libvpx-CVE-2016-2818.patch"))))
d0ed39be
DT
959 (build-system gnu-build-system)
960 (arguments
0e47b4e7
EF
961 `(#:phases
962 (modify-phases %standard-phases
963 (replace 'configure
964 (lambda* (#:key outputs #:allow-other-keys)
965 (setenv "CONFIG_SHELL" (which "bash"))
966 (let ((out (assoc-ref outputs "out")))
967 (setenv "LDFLAGS"
968 (string-append "-Wl,-rpath=" out "/lib"))
969 (zero? (system* "./configure"
970 "--enable-shared"
971 "--as=yasm"
972 ;; Limit size to avoid CVE-2015-1258
973 "--size-limit=16384x16384"
974 (string-append "--prefix=" out)))))))
4f8f15cd 975 #:tests? #f)) ; no check target
d0ed39be
DT
976 (native-inputs
977 `(("perl" ,perl)
978 ("yasm" ,yasm)))
979 (synopsis "VP8/VP9 video codec")
980 (description "libvpx is a codec for the VP8/VP9 video compression format.")
ae0bdd81 981 (license license:bsd-3)
d0ed39be 982 (home-page "http://www.webmproject.org/")))
615215a5
LC
983
984(define-public youtube-dl
985 (package
986 (name "youtube-dl")
0d74a8fd 987 (version "2017.05.07")
615215a5
LC
988 (source (origin
989 (method url-fetch)
39dc7032 990 (uri (string-append "https://yt-dl.org/downloads/"
615215a5
LC
991 version "/youtube-dl-"
992 version ".tar.gz"))
993 (sha256
994 (base32
0d74a8fd 995 "1q3b9xkbk1lmy1wxm1jcnmaj70sdksqbc8zsqxz6b6z4nmv8qc25"))))
615215a5 996 (build-system python-build-system)
2ad9515c
AV
997 (arguments
998 ;; The problem here is that the directory for the man page and completion
999 ;; files is relative, and for some reason, setup.py uses the
1000 ;; auto-detected sys.prefix instead of the user-defined "--prefix=FOO".
1001 ;; So, we need pass the prefix directly. In addition, make sure the Bash
1002 ;; completion file is called 'youtube-dl' rather than
1003 ;; 'youtube-dl.bash-completion'.
31c58006
LF
1004 `(#:tests? #f ; Many tests fail. The test suite can be run with pytest.
1005 #:phases (modify-phases %standard-phases
2ad9515c
AV
1006 (add-before 'install 'fix-the-data-directories
1007 (lambda* (#:key outputs #:allow-other-keys)
1008 (let ((prefix (assoc-ref outputs "out")))
1009 (mkdir "bash-completion")
1010 (rename-file "youtube-dl.bash-completion"
1011 "bash-completion/youtube-dl")
1012 (substitute* "setup.py"
1013 (("youtube-dl\\.bash-completion")
1014 "bash-completion/youtube-dl")
1015 (("'etc/")
1016 (string-append "'" prefix "/etc/"))
1017 (("'share/")
1018 (string-append "'" prefix "/share/")))))))))
615215a5
LC
1019 (synopsis "Download videos from YouTube.com and other sites")
1020 (description
b798dfde 1021 "Youtube-dl is a small command-line program to download videos from
615215a5 1022YouTube.com and a few more sites.")
39dc7032 1023 (home-page "https://yt-dl.org")
ae0bdd81 1024 (license license:public-domain)))
e6bdb36a 1025
794223bc
CM
1026(define-public youtube-dl-gui
1027 (package
1028 (name "youtube-dl-gui")
1029 (version "0.3.8")
1030 (source
1031 (origin
1032 (method url-fetch)
1033 (uri (pypi-uri "Youtube-DLG" version))
1034 (sha256
1035 (base32
1036 "0napxwzgls5ik1bxbp99vly32l23xpc4ng5kr24hfhf21ypjyadb"))))
1037 (build-system python-build-system)
1038 (arguments
1039 ;; In Guix, wxpython has not yet been packaged for Python 3.
1040 `(#:python ,python-2
1041 ;; This package has no tests.
1042 #:tests? #f
1043 #:phases
1044 (modify-phases %standard-phases
1045 (add-before 'build 'patch-source
1046 (lambda* (#:key inputs #:allow-other-keys)
1047 ;; The youtube-dl-gui program lets you configure options. Some of
1048 ;; them are problematic, so we change their defaults.
1049 (substitute* "youtube_dl_gui/optionsmanager.py"
1050 ;; When this is true, the builder process will try (and fail) to
1051 ;; write logs to the builder user's home directory.
1052 (("'enable_log': True") "'enable_log': False")
1053 ;; This determines which youtube-dl program youtube-dl-gui will
1054 ;; run. If we don't set this, then youtube-dl-gui might download
1055 ;; an arbitrary copy from the Internet into the user's home
1056 ;; directory and run it, so let's make sure youtube-dl-gui uses
1057 ;; the youtube-dl from the inputs by default.
1058 (("'youtubedl_path': self.config_path")
1059 (string-append "'youtubedl_path': '"
1060 (assoc-ref inputs "youtube-dl")
1061 "/bin'"))
1062 ;; When this is True, when youtube-dl-gui is finished downloading
1063 ;; a file, it will try (and possibly fail) to open the directory
1064 ;; containing the downloaded file. This can fail because it
1065 ;; assumes that xdg-open is in PATH. Unfortunately, simply
1066 ;; adding xdg-utils to the propagated inputs is not enough to
1067 ;; make this work, so for now we set the default to False.
1068 (("'open_dl_dir': True") "'open_dl_dir': False"))
1069 ;; The youtube-dl program from the inputs is actually a wrapper
1070 ;; script written in bash, so attempting to invoke it as a python
1071 ;; script will fail.
1072 (substitute* "youtube_dl_gui/downloaders.py"
1073 (("cmd = \\['python', self\\.youtubedl_path\\]")
1074 "cmd = [self.youtubedl_path]"))
1075 ;; Use relative paths for installing data files so youtube-dl-gui
1076 ;; installs the files relative to its prefix in the store, rather
1077 ;; than relative to /. Also, instead of installing data files into
1078 ;; $prefix/usr/share, install them into $prefix/share for
1079 ;; consistency (see: (standards) Directory Variables).
1080 (substitute* "setup.py"
1081 (("= '/usr/share") "= 'share"))
1082 ;; Update get_locale_file() so it finds the installed localization
1083 ;; files.
1084 (substitute* "youtube_dl_gui/utils.py"
1085 (("os\\.path\\.join\\('/usr', 'share'")
1086 (string-append "os.path.join('"
1087 (assoc-ref %outputs "out")
1088 "', 'share'"))))))))
1089 (inputs
1090 `(("python2-wxpython" ,python2-wxpython)
1091 ("youtube-dl" ,youtube-dl)))
1092 (home-page "https://github.com/MrS0m30n3/youtube-dl-gui")
1093 (synopsis
1094 "GUI (Graphical User Interface) for @command{youtube-dl}")
1095 (description
1096 "Youtube-dlG is a GUI (Graphical User Interface) for
1097@command{youtube-dl}. You can use it to download videos from YouTube and any
1098other site that youtube-dl supports.")
1099 (license license:unlicense)))
1100
72fa6667
FS
1101(define-public you-get
1102 (package
1103 (name "you-get")
f0bc6ca1 1104 (version "0.4.715")
72fa6667
FS
1105 (source (origin
1106 (method url-fetch)
1107 (uri (string-append
1108 "https://github.com/soimort/you-get/releases/download/v"
1109 version "/you-get-" version ".tar.gz"))
1110 (sha256
1111 (base32
f0bc6ca1 1112 "043122hfh56fbbszp1kwd1f65asgyn60j1ijday93hf2dkhvbrnh"))))
72fa6667
FS
1113 (build-system python-build-system)
1114 (arguments
1115 ;; no tests
1116 '(#:tests? #f))
1117 (inputs
1118 `(("ffmpeg" ,ffmpeg)))
1119 (synopsis "Download videos, audios, or images from Web sites")
1120 (description
1121 "You-Get is a command-line utility to download media contents (videos,
1122audio, images) from the Web. It can use either mpv or vlc for playback.")
1123 (home-page "https://you-get.org/")
1124 (license license:expat)))
1125
5d3609e4
TUBK
1126(define-public libbluray
1127 (package
1128 (name "libbluray")
7c78beb3 1129 (version "1.0.0")
5d3609e4
TUBK
1130 (source (origin
1131 (method url-fetch)
5e3f68e6 1132 (uri (string-append "https://download.videolan.org/videolan/"
5d3609e4
TUBK
1133 name "/" version "/"
1134 name "-" version ".tar.bz2"))
1135 (sha256
1136 (base32
7c78beb3 1137 "1k3lag4lxi2jjd3zh4wcb5l3hadzm54j5kagh92yzfy76p9svqzp"))))
5d3609e4 1138 (build-system gnu-build-system)
6c0cd765
AP
1139 (arguments
1140 `(#:configure-flags '("--disable-bdjava")
1141 #:phases
1142 (modify-phases %standard-phases
1143 (add-before 'build 'fix-dlopen-paths
1144 (lambda* (#:key inputs #:allow-other-keys)
1145 (let ((libaacs (assoc-ref inputs "libaacs"))
1146 (libbdplus (assoc-ref inputs "libbdplus")))
1147 (substitute* "src/libbluray/disc/aacs.c"
1148 (("\"libaacs\"")
1149 (string-append "\"" libaacs "/lib/libaacs\"")))
1150 (substitute* "src/libbluray/disc/bdplus.c"
1151 (("\"libbdplus\"")
1152 (string-append "\"" libbdplus "/lib/libbdplus\"")))
1153 #t))))))
2da45ebe 1154 (native-inputs `(("pkg-config" ,pkg-config)))
5d3609e4 1155 (inputs
71ee51a0 1156 `(("fontconfig" ,fontconfig)
5d3609e4 1157 ("freetype" ,freetype)
6c0cd765
AP
1158 ("libaacs" ,libaacs)
1159 ("libbdplus" ,libbdplus)
71ee51a0 1160 ("libxml2" ,libxml2)))
5e3f68e6 1161 (home-page "https://www.videolan.org/developers/libbluray.html")
5d3609e4
TUBK
1162 (synopsis "Blu-Ray Disc playback library")
1163 (description
1164 "libbluray is a library designed for Blu-Ray Disc playback for media
1165players, like VLC or MPlayer.")
ae0bdd81 1166 (license license:lgpl2.1+)))
5d3609e4 1167
e6bdb36a
AE
1168(define-public libdvdread
1169 (package
1170 (name "libdvdread")
9aebf330 1171 (version "5.0.3")
e6bdb36a
AE
1172 (source (origin
1173 (method url-fetch)
b8a31908 1174 (uri (string-append "https://download.videolan.org/videolan/"
e6bdb36a
AE
1175 name "/" version "/"
1176 name "-" version ".tar.bz2"))
1177 (sha256
1178 (base32
9aebf330 1179 "0ayqiq0psq18rcp6f5pz82sxsq66v0kwv0y55dbrcg68plnxy71j"))))
e6bdb36a
AE
1180 (build-system gnu-build-system)
1181 (home-page "http://dvdnav.mplayerhq.hu/")
1182 (synopsis "Library for reading video DVDs")
1183 (description
1184 "Libdvdread provides a simple foundation for reading DVD video
1185disks. It provides the functionality that is required to access many
1186DVDs. It parses IFO files, reads NAV-blocks, and performs CSS
1187authentication and descrambling (if an external libdvdcss library is
1188installed).")
ae0bdd81 1189 (license license:gpl2+)))
b027d919 1190
b5b20bda
TD
1191(define-public dvdauthor
1192 (package
1193 (name "dvdauthor")
1194 (version "0.7.2")
1195 (source
1196 (origin
1197 (method url-fetch)
1198 (uri (string-append "mirror://sourceforge/dvdauthor/dvdauthor-"
1199 version ".tar.gz"))
1200 (sha256
1201 (base32
1202 "1drfc47hikfzc9d7hjk34rw10iqw01d2vwmn91pv73ppx4nsj81h"))))
1203 (build-system gnu-build-system)
1204 (inputs
1205 `(("libdvdread" ,libdvdread)
1206 ("libpng" ,libpng)
1207 ("imagemagick" ,imagemagick)
1208 ("libxml2" ,libxml2)
1209 ("freetype" ,freetype)))
1210 (native-inputs
1211 `(("pkg-config" ,pkg-config)))
1212 (synopsis "Generates a DVD-Video movie from a MPEG-2 stream")
1213 (description "@command{dvdauthor} will generate a DVD-Video movie from a
1214MPEG-2 stream containing VOB packets.")
1215 (home-page "http://dvdauthor.sourceforge.net")
1216 (license license:gpl3+)))
1217
b027d919
AE
1218(define-public libdvdnav
1219 (package
1220 (name "libdvdnav")
734976b6 1221 (version "5.0.3")
b027d919
AE
1222 (source (origin
1223 (method url-fetch)
b8a31908 1224 (uri (string-append "https://download.videolan.org/videolan/"
b027d919
AE
1225 name "/" version "/"
1226 name "-" version ".tar.bz2"))
1227 (sha256
1228 (base32
734976b6 1229 "0v8byv5z598k06rqzdmj7739vc86xq3zf79zfr698dib7lz055sh"))))
b027d919
AE
1230 (build-system gnu-build-system)
1231 (native-inputs
1232 `(("pkg-config" ,pkg-config)))
1233 (inputs
1234 `(("libdvdread" ,libdvdread)))
1235 (home-page "http://dvdnav.mplayerhq.hu/")
1236 (synopsis "Library for video DVD navigation features")
1237 (description
1238 "Libdvdnav is a library for developers of multimedia
1239applications. It allows easy use of sophisticated DVD navigation features
1240such as DVD menus, multiangle playback and even interactive DVD games. All
1241this functionality is provided through a simple API which provides the DVD
1242playback as a single logical stream of blocks, intermitted by special
1243dvdnav events to report certain conditions. The main usage of libdvdnav is
1244a loop regularly calling a function to get the next block, surrounded by
1245additional calls to tell the library of user interaction. The whole
1246DVD virtual machine and internal playback states are completely
1247encapsulated.")
ae0bdd81 1248 (license license:gpl2+)))
2cd85cf9 1249
f1044010
TUBK
1250(define-public libdvdnav-4
1251 (package
1252 (inherit libdvdnav)
1253 (version "4.2.1")
1254 (source (origin
1255 (method url-fetch)
1256 (uri
1257 (string-append
b8a31908 1258 "https://download.videolan.org/videolan/libdvdnav/libdvdnav-"
f1044010
TUBK
1259 version ".tar.xz"))
1260 (sha256
1261 (base32
1262 "0wi3gy408c8xj0ism0hckv5jbfh3lg4pmgxv87gbch9jrhp2gjkz"))))
1263 (native-inputs
1264 `(("pkg-config" ,pkg-config)
1265 ("autoconf" ,autoconf)
1266 ("automake" ,automake)
1267 ("libtool" ,libtool)))
1268 (arguments
1269 '(#:phases
1270 (alist-cons-after
1271 'unpack 'autoreconf
1272 (lambda _
1273 (zero? (system* "autoreconf" "-vif")))
1274 %standard-phases)))))
1275
a6f710ec
TUBK
1276(define-public libdvdcss
1277 (package
1278 (name "libdvdcss")
98416109 1279 (version "1.4.0")
a6f710ec
TUBK
1280 (source (origin
1281 (method url-fetch)
b8a31908 1282 (uri (string-append "https://download.videolan.org/pub/"
a6f710ec
TUBK
1283 name "/" version "/"
1284 name "-" version ".tar.bz2"))
1285 (sha256
1286 (base32
98416109 1287 "0nl45ifc4xcb196snv9d6hinfw614cqpzcqp92dg43c0hickg290"))))
a6f710ec 1288 (build-system gnu-build-system)
b8a31908 1289 (home-page "https://www.videolan.org/developers/libdvdcss.html")
a6f710ec
TUBK
1290 (synopsis "Library for accessing DVDs as block devices")
1291 (description
1292 "libdvdcss is a simple library designed for accessing DVDs like a block
1293device without having to bother about the decryption.")
ae0bdd81 1294 (license license:gpl2+)))
a6f710ec 1295
2cd85cf9
DT
1296(define-public srt2vtt
1297 (package
1298 (name "srt2vtt")
1299 (version "0.1")
1300 (source (origin
1301 (method url-fetch)
1302 (uri (string-append
1303 "http://dthompson.us/releases/srt2vtt/srt2vtt-"
1304 version ".tar.gz"))
1305 (sha256
1306 (base32
1307 "16b377znjm6qlga5yb8aj7b7bcisa1ghcnj2lrb1d30lvxp4liif"))))
1308 (build-system gnu-build-system)
1309 (inputs
1310 `(("guile" ,guile-2.0)))
1311 (synopsis "SubRip to WebVTT subtitle converter")
1312 (description "srt2vtt converts SubRip formatted subtitles to WebVTT format
1313for use with HTML5 video.")
1314 (home-page "http://dthompson.us/pages/software/srt2vtt")
ae0bdd81 1315 (license license:gpl3+)))
44726031
AE
1316
1317(define-public avidemux
1318 (package
1319 (name "avidemux")
9e786e8b 1320 (version "2.6.12")
44726031
AE
1321 (source (origin
1322 (method url-fetch)
1323 (uri (string-append
de67e922
LF
1324 "mirror://sourceforge/" name "/" name "/" version "/"
1325 name "_" version ".tar.gz"))
44726031
AE
1326 (sha256
1327 (base32
9e786e8b 1328 "0nz52yih8sff53inndkh2dba759xjzsh4b8xjww419lcpk0qp6kn"))
fc1adab1 1329 (patches (search-patches "avidemux-install-to-lib.patch"))))
44726031
AE
1330 (build-system cmake-build-system)
1331 (native-inputs
1332 `(("pkg-config" ,pkg-config)))
1333 ;; FIXME: Once packaged, add libraries not found during the build.
1334 (inputs
1335 `(("alsa-lib" ,alsa-lib)
1336 ("fontconfig" ,fontconfig)
1337 ("freetype" ,freetype)
1338 ("fribidi" ,fribidi)
1339 ("glu" ,glu)
44726031
AE
1340 ("jack" ,jack-1)
1341 ("lame" ,lame)
4cafe8ad
EF
1342 ("libva" ,libva)
1343 ("libvdpau" ,libvdpau)
44726031
AE
1344 ("libvorbis" ,libvorbis)
1345 ("libvpx" ,libvpx)
1346 ("libxv" ,libxv)
1347 ("perl" ,perl)
1348 ("pulseaudio" ,pulseaudio)
1349 ("python" ,python-wrapper)
a2c24bf5
DC
1350 ("qt" ,qt) ; FIXME: reenable modular qt after update - requires building
1351 ;("qtbase" ,qtbase) with -std=gnu++11.
1352 ;("qttools" ,qttools)
44726031
AE
1353 ("sdl" ,sdl)
1354 ("sqlite" ,sqlite)
1355 ("yasm" ,yasm)
1356 ("zlib" ,zlib)))
1357 (arguments
1358 `(#:tests? #f ; no check target
1359 #:phases
1360 ;; Make sure files inside the included ffmpeg tarball are
1361 ;; patch-shebanged.
1898900f
EF
1362 (modify-phases %standard-phases
1363 (add-before 'patch-source-shebangs 'unpack-ffmpeg
44726031
AE
1364 (lambda _
1365 (with-directory-excursion "avidemux_core/ffmpeg_package"
1898900f
EF
1366 (system* "tar" "xf" "ffmpeg-2.7.6.tar.bz2")
1367 (delete-file "ffmpeg-2.7.6.tar.bz2"))))
1368 (add-after 'patch-source-shebangs 'repack-ffmpeg
44726031
AE
1369 (lambda _
1370 (with-directory-excursion "avidemux_core/ffmpeg_package"
9e786e8b 1371 (substitute* "ffmpeg-2.7.6/configure"
2fed4042 1372 (("#! /bin/sh") (string-append "#!" (which "sh"))))
9e786e8b 1373 (system* "tar" "cjf" "ffmpeg-2.7.6.tar.bz2" "ffmpeg-2.7.6"
c09e6a5f 1374 ;; avoid non-determinism in the archive
92226a47
MW
1375 "--sort=name" "--mtime=@0"
1376 "--owner=root:0" "--group=root:0")
1898900f
EF
1377 (delete-file-recursively "ffmpeg-2.7.6"))))
1378 (replace 'configure
1379 (lambda _
1380 ;; Copy-paste settings from the cmake build system.
1381 (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
1382 (setenv "CMAKE_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))))
1383 (replace 'build
1384 (lambda* (#:key inputs outputs #:allow-other-keys)
1385 (let*
1386 ((out (assoc-ref outputs "out"))
1387 (lib (string-append out "/lib"))
1388 (top (getcwd))
1389 (sdl (assoc-ref inputs "sdl"))
1390 (build_component
1391 (lambda* (component srcdir #:optional (args '()))
1392 (let ((builddir (string-append "build_" component)))
1393 (mkdir builddir)
1394 (with-directory-excursion builddir
1395 (zero?
1396 (and
44726031
AE
1397 (apply system* "cmake"
1398 "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE"
1399 (string-append "-DCMAKE_INSTALL_PREFIX=" out)
1400 (string-append "-DCMAKE_INSTALL_RPATH=" lib)
c687f731
AE
1401 (string-append "-DCMAKE_SHARED_LINKER_FLAGS="
1402 "\"-Wl,-rpath=" lib "\"")
44726031
AE
1403 (string-append "-DAVIDEMUX_SOURCE_DIR=" top)
1404 (string-append "-DSDL_INCLUDE_DIR="
1405 sdl "/include/SDL")
1406 (string-append "../" srcdir)
aab56ab7 1407 "-DENABLE_QT5=True"
44726031 1408 args)
1898900f
EF
1409 (system* "make" "-j"
1410 (number->string (parallel-job-count)))
1411 (system* "make" "install"))))))))
1412 (mkdir out)
1413 (and (build_component "core" "avidemux_core")
1414 (build_component "cli" "avidemux/cli")
1415 (build_component "qt4" "avidemux/qt4")
1416 (build_component "plugins_common" "avidemux_plugins"
1417 '("-DPLUGIN_UI=COMMON"))
1418 (build_component "plugins_cli" "avidemux_plugins"
1419 '("-DPLUGIN_UI=CLI"))
1420 (build_component "plugins_qt4" "avidemux_plugins"
1421 '("-DPLUGIN_UI=QT4"))
1422 (build_component "plugins_settings" "avidemux_plugins"
1423 '("-DPLUGIN_UI=SETTINGS")))
1424 ;; Remove .exe and .dll file.
1425 (delete-file-recursively
1426 (string-append out "/share/ADM6_addons")))))
1427 (delete 'install))))
44726031
AE
1428 (home-page "http://fixounet.free.fr/avidemux/")
1429 (synopsis "Video editor")
1430 (description "Avidemux is a video editor designed for simple cutting,
1431filtering and encoding tasks. It supports many file types, including AVI,
1432DVD compatible MPEG files, MP4 and ASF, using a variety of codecs. Tasks
1433can be automated using projects, job queue and powerful scripting
1434capabilities.")
1435 ;; Software with various licenses is included, see License.txt.
ae0bdd81 1436 (license license:gpl2+)))
44726031 1437
6f6c8b65
TUBK
1438(define-public vapoursynth
1439 (package
1440 (name "vapoursynth")
4f7a9e0b 1441 (version "37")
6f6c8b65
TUBK
1442 (source (origin
1443 (method url-fetch)
1444 (uri (string-append
1445 "https://github.com/vapoursynth/vapoursynth/archive/R"
1446 version ".tar.gz"))
0b37c4cd 1447 (file-name (string-append name "-" version ".tar.gz"))
6f6c8b65
TUBK
1448 (sha256
1449 (base32
4f7a9e0b 1450 "1g3hc079jw4mz1cmkv2y28pdb556wqc8ql7iravgh1rg8j3f1zi5"))))
6f6c8b65
TUBK
1451 (build-system gnu-build-system)
1452 (native-inputs
1453 `(("autoconf" ,autoconf)
1454 ("automake" ,automake)
1455 ("cython" ,python-cython)
1456 ("libtool" ,libtool)
1457 ("pkg-config" ,pkg-config)
1458 ("python" ,python)
1459 ("yasm" ,yasm)))
1460 (inputs
1461 `(("ffmpeg" ,ffmpeg)
1462 ("libass" ,libass)
f80d5fe0
EF
1463 ("tesseract-ocr" ,tesseract-ocr)
1464 ("zimg" ,zimg)))
6f6c8b65
TUBK
1465 (arguments
1466 '(#:phases
1467 (modify-phases %standard-phases
1468 (add-after
f8503e2b 1469 'unpack 'autogen
6f6c8b65
TUBK
1470 (lambda _
1471 (zero? (system* "sh" "autogen.sh")))))))
1472 (home-page "http://www.vapoursynth.com/")
1473 (synopsis "Video processing framework")
1474 (description "VapourSynth is a C++ library and Python module for video
1475manipulation. It aims to be a modern rewrite of Avisynth, supporting
1476multithreading, generalized colorspaces, per frame properties, and videos with
1477format changes.")
9a078f48
EF
1478 ;; src/core/cpufeatures only allows x86, ARM or PPC
1479 (supported-systems (delete "mips64el-linux" %supported-systems))
6f6c8b65 1480 ;; As seen from the source files.
ae0bdd81 1481 (license license:lgpl2.1+)))
6f6c8b65 1482
67932f86
TUBK
1483(define-public xvid
1484 (package
1485 (name "xvid")
e05035c7 1486 (version "1.3.4")
67932f86
TUBK
1487 (source (origin
1488 (method url-fetch)
1489 (uri (string-append
1490 "http://downloads.xvid.org/downloads/xvidcore-"
1491 version ".tar.bz2"))
1492 (sha256
1493 (base32
e05035c7 1494 "1xwbmp9wqshc0ckm970zdpi0yvgqxlqg0s8bkz98mnr8p2067bsz"))))
67932f86
TUBK
1495 (build-system gnu-build-system)
1496 (native-inputs `(("yasm" ,yasm)))
1497 (arguments
1498 '(#:phases
62fe2d47
EF
1499 (modify-phases %standard-phases
1500 (add-before
1501 'configure 'pre-configure
1502 (lambda _
1503 (chdir "build/generic")
1504 (substitute* "configure"
1505 (("#! /bin/sh") (string-append "#!" (which "sh")))))))
67932f86
TUBK
1506 ;; No 'check' target.
1507 #:tests? #f))
1508 (home-page "https://www.xvid.com/")
1509 (synopsis "MPEG-4 Part 2 Advanced Simple Profile video codec")
1510 (description "Xvid is an MPEG-4 Part 2 Advanced Simple Profile (ASP) video
1511codec library. It uses ASP features such as b-frames, global and quarter
1512pixel motion compensation, lumi masking, trellis quantization, and H.263, MPEG
1513and custom quantization matrices.")
ae0bdd81 1514 (license license:gpl2+)))
e16fde14
DT
1515
1516(define-public livestreamer
1517 (package
1518 (name "livestreamer")
68e88a09 1519 (version "1.12.2")
e16fde14
DT
1520 (source (origin
1521 (method url-fetch)
1522 (uri (string-append
1523 "https://github.com/chrippa/livestreamer/archive/v"
1524 version ".tar.gz"))
1525 (file-name (string-append "livestreamer-" version ".tar.gz"))
1526 (sha256
1527 (base32
68e88a09 1528 "1fp3d3z2grb1ls97smjkraazpxnvajda2d1g1378s6gzmda2jvjd"))))
e16fde14
DT
1529 (build-system python-build-system)
1530 (arguments
1531 '(#:tests? #f)) ; tests rely on external web servers
e16fde14 1532 (propagated-inputs
5b9fe59f 1533 `(("python-requests" ,python-requests)))
e16fde14
DT
1534 (synopsis "Internet video stream viewer")
1535 (description "Livestreamer is a command-line utility that extracts streams
1536from various services and pipes them into a video playing application.")
1537 (home-page "http://livestreamer.io/")
1538 (license license:bsd-2)))
307ad140
RW
1539
1540(define-public mlt
1541 (package
1542 (name "mlt")
f05f5b30 1543 (version "6.4.1")
307ad140
RW
1544 (source (origin
1545 (method url-fetch)
4c7729dc
EF
1546 (uri (string-append "https://github.com/mltframework/mlt/"
1547 "archive/v" version ".tar.gz"))
1548 (file-name (string-append name "-" version ".tar.gz"))
307ad140
RW
1549 (sha256
1550 (base32
f05f5b30 1551 "10m3ry0b2pvqx3bk34qh5dq337nn8pkc2gzfyhsj4nv9abskln47"))))
307ad140
RW
1552 (build-system gnu-build-system)
1553 (arguments
1554 `(#:tests? #f ; no tests
1555 #:make-flags '("CC=gcc")
1556 #:configure-flags
1557 (list "--enable-gpl3"
1558 "--enable-gpl")
1559 #:phases
1560 (modify-phases %standard-phases
1561 (add-after
1562 'configure 'override-LDFLAGS
1563 (lambda* (#:key outputs #:allow-other-keys)
1564 (substitute* "config.mak"
1565 (("LDFLAGS\\+=")
1566 (string-append "LDFLAGS+=-Wl,-rpath="
1567 (assoc-ref outputs "out")
1568 "/lib ")))
1569 #t)))))
1570 (inputs
1571 `(("alsa-lib" ,alsa-lib)
1572 ("fftw" ,fftw)
1573 ("libxml2" ,libxml2)
1574 ("jack" ,jack-1)
1575 ("ladspa" ,ladspa)
1576 ("libsamplerate" ,libsamplerate)
4c7729dc 1577 ("pulseaudio" ,pulseaudio)
307ad140
RW
1578 ("sdl" ,sdl)
1579 ("sox" ,sox)))
1580 (native-inputs
1581 `(("pkg-config" ,pkg-config)))
4c7729dc 1582 (home-page "https://www.mltframework.org/")
307ad140
RW
1583 (synopsis "Author, manage, and run multitrack audio/video compositions")
1584 (description
1585 "MLT is a multimedia framework, designed and developed for television
1586broadcasting. It provides a toolkit for broadcasters, video editors, media
1587players, transcoders, web streamers and many more types of applications. The
1588functionality of the system is provided via an assortment of ready to use
1589tools, XML authoring components, and an extensible plug-in based API.")
1590 (license license:lgpl2.1+)))
f464016d 1591
945d985a
DT
1592(define-public v4l-utils
1593 (package
1594 (name "v4l-utils")
f1d1ef71 1595 (version "1.12.5")
945d985a
DT
1596 (source (origin
1597 (method url-fetch)
1d4ac724 1598 (uri (string-append "https://linuxtv.org/downloads/v4l-utils"
945d985a
DT
1599 "/v4l-utils-" version ".tar.bz2"))
1600 (sha256
1601 (base32
f1d1ef71 1602 "03g2b4rivrilimcp57mwrlsa3qvrxmk4sza08mygwmqbvcnic606"))))
945d985a
DT
1603 (build-system gnu-build-system)
1604 (arguments
1605 '(#:configure-flags
1606 (list (string-append "--with-udevdir="
1607 (assoc-ref %outputs "out")
2cef0f7c
DC
1608 "/lib/udev")
1609 "CXXFLAGS=-std=gnu++11")))
945d985a 1610 (native-inputs
4ca077d5
TGR
1611 `(("perl" ,perl)
1612 ("pkg-config" ,pkg-config)))
945d985a
DT
1613 (inputs
1614 `(("alsa-lib" ,alsa-lib)
1615 ("glu" ,glu)
1616 ("libjpeg" ,libjpeg)
1617 ("libx11" ,libx11)
b37662e2 1618 ("qtbase" ,qtbase)
945d985a
DT
1619 ("eudev" ,eudev)))
1620 (synopsis "Realtime video capture utilities for Linux")
1621 (description "The v4l-utils provide a series of libraries and utilities to
1622be used for realtime video capture via Linux-specific APIs.")
1623 (home-page "https://linuxtv.org/wiki/index.php/V4l-utils")
1624 ;; libv4l2 is LGPL2.1+, while utilities are GPL2 only.
1625 (license (list license:lgpl2.1+ license:gpl2))))
1626
f464016d
DT
1627(define-public obs
1628 (package
1629 (name "obs")
341ccb0f 1630 (version "18.0.2")
f464016d
DT
1631 (source (origin
1632 (method url-fetch)
1633 (uri (string-append "https://github.com/jp9000/obs-studio"
1634 "/archive/" version ".tar.gz"))
1635 (file-name (string-append name "-" version ".tar.gz"))
1636 (sha256
1637 (base32
341ccb0f 1638 "02pbiyvf5x0zh448h5rpmyn33qnsqk694xxlyns83mdi74savyqw"))))
f464016d 1639 (build-system cmake-build-system)
08858812 1640 (arguments
f3bd1728 1641 `(#:tests? #f)) ; no tests
f464016d
DT
1642 (native-inputs
1643 `(("pkg-config" ,pkg-config)))
1644 (inputs
4f98c3c5
EF
1645 `(("alsa-lib" ,alsa-lib)
1646 ("curl" ,curl)
f464016d
DT
1647 ("eudev" ,eudev)
1648 ("ffmpeg" ,ffmpeg)
4f98c3c5 1649 ("fontconfig" ,fontconfig)
f464016d
DT
1650 ("freetype" ,freetype)
1651 ("jack" ,jack-1)
1652 ("jansson" ,jansson)
1653 ("libx264" ,libx264)
1654 ("libxcomposite" ,libxcomposite)
1655 ("mesa" ,mesa)
1656 ("pulseaudio" ,pulseaudio)
90a2309b
EF
1657 ("qtbase" ,qtbase)
1658 ("qtx11extras" ,qtx11extras)
4f98c3c5 1659 ("speex" ,speex)
d4df2032 1660 ("v4l-utils" ,v4l-utils)
f464016d
DT
1661 ("zlib" ,zlib)))
1662 (synopsis "Live streaming software")
1663 (description "Open Broadcaster Software provides a graphical interface for
1664video recording and live streaming. OBS supports capturing audio and video
1665from many input sources such as webcams, X11 (for screencasting), PulseAudio,
1666and JACK.")
1667 (home-page "https://obsproject.com")
f3bd1728 1668 (supported-systems '("x86_64-linux" "i686-linux"))
f464016d 1669 (license license:gpl2+)))
d5650f86
EF
1670
1671(define-public libvdpau
1672 (package
1673 (name "libvdpau")
1674 (version "1.1.1")
1675 (source
1676 (origin
1677 (method url-fetch)
1678 (uri (string-append "https://secure.freedesktop.org/~aplattner/vdpau/"
1679 name "-" version ".tar.bz2"))
1680 (sha256
1681 (base32
1682 "0dnpb0yh7v6rvckx82kxg045rd9rbsw25wjv7ad5n8h94s9h2yl5"))))
1683 (build-system gnu-build-system)
1684 (native-inputs
1685 `(("pkg-config" ,pkg-config)))
1686 (inputs
1687 `(("dri2proto" ,dri2proto)
1688 ("libx11" ,libx11 "out")
1689 ("libxext" ,libxext)))
1690 (home-page "https://wiki.freedesktop.org/www/Software/VDPAU/")
1691 (synopsis "Video Decode and Presentation API")
1692 (description "VDPAU is the Video Decode and Presentation API for UNIX. It
1693provides an interface to video decode acceleration and presentation hardware
1694present in modern GPUs.")
1695 (license (license:x11-style "file://COPYING"))))
3161d32d
EF
1696
1697(define-public vdpauinfo
1698 (package
1699 (name "vdpauinfo")
1700 (version "1.0")
1701 (source
1702 (origin
1703 (method url-fetch)
1704 (uri (string-append "https://secure.freedesktop.org/~aplattner/vdpau/"
1705 name "-" version ".tar.gz"))
1706 (sha256
1707 (base32
1708 "1i2b0k9h8r0lnxlrkgqzmrjakgaw3f1ygqqwzx8w6676g85rcm20"))))
1709 (build-system gnu-build-system)
1710 (native-inputs
1711 `(("pkg-config" ,pkg-config)
1712 ("libx11" ,libx11)))
1713 (propagated-inputs
1714 `(("libvdpau" ,libvdpau)))
1715 (home-page "https://wiki.freedesktop.org/www/Software/VDPAU/")
1716 (synopsis "Tool to query the capabilities of a VDPAU implementation")
1717 (description "Vdpauinfo is a tool to query the capabilities of a VDPAU
1718implementation.")
1719 (license (license:x11-style "file://COPYING"))))
a7d94b54
LC
1720
1721(define-public recordmydesktop
1722 (package
1723 (name "recordmydesktop")
1724 (version "0.3.8.1")
1725 (source (origin
1726 (method url-fetch)
1727 (uri (string-append "mirror://sourceforge/" name "/" name "/"
1728 version "/recordmydesktop-" version ".tar.gz"))
1729 (sha256
1730 (base32
1731 "133kkl5j0r877d41bzj7kj0vf3xm8x80yyx2n8nqxrva304f58ik"))))
1732 (build-system gnu-build-system)
1733 (inputs `(("popt" ,popt)
1734 ("zlib" ,zlib)
1735 ("libx11" ,libx11)
1736 ("libice" ,libice)
1737 ("libsm" ,libsm)
1738 ("libxfixes" ,libxfixes)
1739 ("libxdamage" ,libxdamage)
1740 ("libxext" ,libxext)
ed6ba9cc 1741 ("alsa-lib" ,alsa-lib)
a7d94b54
LC
1742 ("libvorbis" ,libvorbis)
1743 ("libtheora" ,libtheora)))
1744 (home-page "http://recordmydesktop.sourceforge.net/")
1745 (synopsis "Desktop session video recorder")
1746 (description
1747 "recordMyDesktop is a command-line tool that captures the activity in
1748your graphical desktop and encodes it as a video. This is a useful tool for
1749making @dfn{screencasts}.")
1750 (license license:gpl2+)))
d8841cc5
KK
1751
1752(define-public libsmpeg
1753 (package
1754 (name "libsmpeg")
1755 (version "0.4.5")
1756 (source (origin
1757 (method svn-fetch)
1758 (uri (svn-reference
1759 (url "svn://svn.icculus.org/smpeg/trunk/")
1760 (revision 401))) ; last revision before smpeg2 (for SDL 2.0)
b9af0564 1761 (file-name (string-append name "-" version "-checkout"))
d8841cc5
KK
1762 (sha256
1763 (base32
1764 "18yfkr70lr1x1hc8snn2ldnbzdcc7b64xmkqrfk8w59gpg7sl1xn"))))
1765 (build-system gnu-build-system)
1766 (arguments
1767 `(#:phases (modify-phases %standard-phases
1768 (add-after 'unpack 'autogen.sh
1769 (lambda _
1770 (zero? (system* "sh" "autogen.sh")))))))
1771 (native-inputs
1772 `(("autoconf" ,autoconf)
1773 ("automake" ,automake)))
1774 (inputs
1775 `(("sdl" ,sdl2)))
1776 (home-page "http://icculus.org/smpeg/")
1777 (synopsis "SDL MPEG decoding library")
1778 (description
1779 "SMPEG (SDL MPEG Player Library) is a free MPEG1 video player library
1780with sound support. Video playback is based on the ubiquitous Berkeley MPEG
1781player, mpeg_play v2.2. Audio is played through a slightly modified mpegsound
1782library, part of splay v0.8.2. SMPEG supports MPEG audio (MP3), MPEG-1 video,
1783and MPEG system streams.")
1784 (license (list license:expat
1785 license:lgpl2.1
1786 license:lgpl2.1+
1787 license:gpl2))))
4df07622
AP
1788
1789(define-public libbdplus
1790 (package
1791 (name "libbdplus")
1792 (version "0.1.2")
1793 (source
1794 (origin
1795 (method url-fetch)
1796 (uri (string-append "ftp://ftp.videolan.org/pub/videolan/libbdplus/"
1797 version "/" name "-" version ".tar.bz2"))
1798 (sha256
1799 (base32 "02n87lysqn4kg2qk7d1ffrp96c44zkdlxdj0n16hbgrlrpiwlcd6"))))
1800 (inputs
1801 `(("libgcrypt" ,libgcrypt)))
1802 (build-system gnu-build-system)
b8a31908 1803 (home-page "https://www.videolan.org/developers/libbdplus.html")
4df07622
AP
1804 (synopsis "Library for decrypting certain Blu-Ray discs")
1805 (description "libbdplus is a library which implements the BD+ System
1806specifications.")
1807 (license license:lgpl2.1+)))
8dd6fc51
AP
1808
1809(define-public libaacs
1810 (package
1811 (name "libaacs")
ba58886a 1812 (version "0.9.0")
8dd6fc51
AP
1813 (source
1814 (origin
1815 (method url-fetch)
1816 (uri (string-append "ftp://ftp.videolan.org/pub/videolan/libaacs/"
1817 version "/" name "-" version ".tar.bz2"))
1818 (sha256
ba58886a 1819 (base32 "1kms92i0c7i1yl659kqjf19lm8172pnpik5lsxp19xphr74vvq27"))))
8dd6fc51
AP
1820 (inputs
1821 `(("libgcrypt" ,libgcrypt)))
1822 (native-inputs
1823 `(("bison" ,bison)
1824 ("flex" ,flex)))
1825 (build-system gnu-build-system)
b8a31908 1826 (home-page "https://www.videolan.org/developers/libaacs.html")
8dd6fc51
AP
1827 (synopsis "Library for decrypting certain Blu-Ray discs")
1828 (description "libaacs is a library which implements the Advanced Access
1829Content System specification.")
1830 (license license:lgpl2.1+)))
05234973 1831
1832(define-public mps-youtube
1833 (package
1834 (name "mps-youtube")
1835 (version "0.2.7.1")
1836 (source
1837 (origin
1838 (method url-fetch)
1839 (uri (string-append "https://github.com/mps-youtube/mps-youtube/"
1840 "archive/v" version ".tar.gz"))
1841 (file-name (string-append name "-" version ".tar.gz"))
1842 (sha256
1843 (base32
1844 "1s7h35yx6f0szf8mm8612ic913w3v05m2kwphjfcxnpq0ammhyci"))))
1845 (build-system python-build-system)
175d6264 1846 (arguments
1847 ;; Tests need to be disabled until #556 upstream is fixed. It reads as if the
1848 ;; test suite results differ depending on the country and also introduce
1849 ;; non-determinism in the tests.
1850 ;; https://github.com/mps-youtube/mps-youtube/issues/556
1851 `(#:tests? #f))
05234973 1852 (propagated-inputs
1853 `(("python-pafy" ,python-pafy)
1854 ("python-pygobject" ,python-pygobject))) ; For mpris2 support
1855 (home-page "https://github.com/mps-youtube/mps-youtube")
1856 (synopsis "Terminal based YouTube player and downloader")
1857 (description
1858 "@code{mps-youtube} is based on mps, a terminal based program to
1859search, stream and download music. This implementation uses YouTube as
1860a source of content and can play and download video as well as audio.
1861It can use either mpv or mplayer for playback, and for conversion of
1862formats ffmpeg or libav is used. Users should install one of the
1863supported players in addition to this package.")
1864 (license license:gpl3+)))
fe047e13
EB
1865
1866(define-public handbrake
1867 (package
1868 (name "handbrake")
1869 (version "0.10.5")
1870 (source (origin
1871 (method url-fetch)
1872 (uri (string-append "https://handbrake.fr/rotation.php?file="
1873 "HandBrake-" version ".tar.bz2"))
1874 (file-name (string-append "handbrake-" version ".tar.bz2"))
1875 (sha256
1876 (base32
1877 "1w720y3bplkz187wgvy4a4xm0vpppg45mlni55l6yi8v2bfk14pv"))
1878 (patches (search-patches "handbrake-pkg-config-path.patch"))
1879 (modules '((guix build utils)))
1880 (snippet
1881 ;; Remove bundled libraries and source not necessary for
1882 ;; running under a GNU environment.
1883 '(begin
1884 (for-each delete-file-recursively '("contrib" "macosx" "win"))
1885 #t))))
1886 (build-system glib-or-gtk-build-system)
1887 (native-inputs
1888 `(("automake" ,automake) ;gui subpackage must be bootstrapped
1889 ("autoconf" ,autoconf)
1890 ("curl" ,curl) ;not actually used, but tested for
1891 ("intltool" ,intltool)
1892 ("libtool" ,libtool)
1893 ("pkg-config" ,pkg-config)
1894 ("python" ,python-2))) ;for configuration
1895 (inputs
1896 `(("bzip2" ,bzip2)
1897 ("dbus-glib" ,dbus-glib)
1898 ("ffmpeg" ,ffmpeg)
1899 ("fontconfig" ,fontconfig)
1900 ("freetype" ,freetype)
1901 ("glib" ,glib)
1902 ("gstreamer" ,gstreamer)
1903 ("gst-plugins-base" ,gst-plugins-base)
1904 ("gtk+" ,gtk+)
1905 ("lame" ,lame)
1906 ("libass" ,libass)
1907 ("libbluray" ,libbluray)
1908 ("libdvdnav" ,libdvdnav)
1909 ("libdvdread" ,libdvdread)
1910 ("libgudev" ,libgudev)
1911 ("libmpeg2" ,libmpeg2)
1912 ("libnotify" ,libnotify)
1913 ("libogg" ,libogg)
1914 ("libsamplerate" ,libsamplerate)
1915 ("libtheora" ,libtheora)
1916 ("libvorbis" ,libvorbis)
1917 ("libvpx" ,libvpx)
1918 ("libxml2" ,libxml2)
1919 ("libx264" ,libx264)
1920 ("x265" ,x265)
1921 ("zlib" ,zlib)))
1922 (arguments
1923 `(#:tests? #f ;tests require Ruby and claim to be unsupported
1924 #:phases
1925 (modify-phases %standard-phases
1926 (add-before 'patch-source-shebangs 'bootstrap-gtk
1927 ;; Run bootstrap ahead of time so that shebangs get patched.
1928 (lambda _
1929 (setenv "CONFIG_SHELL" (which "sh"))
1930 (setenv "NOCONFIGURE" "1")
1931 ;; Patch the Makefile so that it doesn't bootstrap again.
1932 (substitute* "gtk/module.rules"
1933 ((".*autogen\\.sh.*") ""))
1934 (zero? (system* "sh" "./gtk/autogen.sh"))))
1935 (add-before 'configure 'disable-contrib
1936 (lambda _
1937 (substitute* "make/include/main.defs"
1938 ;; Disable unconditional inclusion of some "contrib"
1939 ;; libraries (ffmpeg, libvpx, libdvdread, libdvdnav,
1940 ;; and libbluray), which would lead to fetching and
1941 ;; building of these libraries. Use our own instead.
1942 (("MODULES \\+= contrib") "# MODULES += contrib"))
1943 #t))
1944 (add-before 'configure 'fix-x265-linking
1945 (lambda _
1946 (substitute* "test/module.defs"
1947 ;; Fix missing library during linking error
1948 (("TEST.GCC.l =") "TEST.GCC.l = x265"))
1949 #t))
1950 (replace 'configure
1951 (lambda* (#:key outputs configure-flags #:allow-other-keys)
1952 ;; 'configure' is not an autoconf-generated script, and
1953 ;; errors on unrecognized arguments,
1954 ;; e.g. --enable-fast-install
1955 (let ((out (assoc-ref outputs "out")))
1956 (zero? (apply system* "./configure"
1957 (string-append "--prefix=" out)
1958 (or configure-flags '()))))))
1959 (add-after 'configure 'chdir-build
1960 (lambda _ (chdir "./build") #t)))))
1961 (home-page "https://handbrake.fr")
1962 (synopsis "Video transcoder")
1963 (description
1964 "HandBrake is a tool for converting video from any format to a selection
1965of modern, widely supported codecs.")
1966 ;; Most under GPL version 2 or later, and portions under BSD 3 Clause
1967 (license (list license:gpl2+ license:bsd-3))))
590abe01
JN
1968
1969(define-public openh264
1970 (package
1971 (name "openh264")
1972 (version "1.6.0")
1973 (source (origin
1974 (method url-fetch)
1975 (uri (string-append "https://github.com/cisco/"
1976 name "/archive/v" version ".tar.gz"))
1977 (file-name (string-append name "-" version ".tar.gz"))
1978 (sha256
1979 (base32
1980 "1ix2fhk62i4q4kbnkl0gfk4x53vxqavsn0pck1pashr566zhglv5"))))
1981 (build-system gnu-build-system)
1982 (native-inputs
1983 `(("nasm" ,nasm)
1984 ("python" ,python)))
1985 (arguments
1986 '(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
1987 #:test-target "test"
1988 #:phases (modify-phases %standard-phases
1989 ;; no configure script
1990 (delete 'configure))))
1991 (home-page "http://www.openh264.org/")
1992 (synopsis "H264 decoder library")
1993 (description
1994 "Openh264 is a library which can decode H264 video streams.")
1995 (license license:bsd-2)))
3a44c7bb 1996
1997(define-public libmp4v2
1998 (package
1999 (name "libmp4v2")
2000 (version "2.0.0")
2001 (source
2002 (origin
2003 (method url-fetch)
2004 ;; XXX: The new location of upstream is uncertain and will become relevant the
2005 ;; moment when the googlecode archive shuts down. It is past the date it
2006 ;; should've been turned off. I tried to communicate with upstream, but this
2007 ;; wasn't very responsive and not very helpful. The short summary is, it is
2008 ;; chaos when it comes to the amount of forks and only time will tell where
2009 ;; the new upstream location is.
2010 (uri (string-append "https://storage.googleapis.com/google-"
2011 "code-archive-downloads/v2/"
2012 "code.google.com/mp4v2/mp4v2-" version ".tar.bz2"))
2013 (file-name (string-append name "-" version ".tar.bz2"))
2014 (sha256
2015 (base32
2016 "0f438bimimsvxjbdp4vsr8hjw2nwggmhaxgcw07g2z361fkbj683"))))
2017 (build-system gnu-build-system)
2018 (outputs '("out"
2019 "static")) ; 3.7MiB .a file
2020 (arguments
2021 `(#:phases
2022 (modify-phases %standard-phases
2023 (add-after 'unpack 'remove-dates
2024 (lambda _
2025 ;; Make the build reproducible.
2026 (substitute* "configure"
2027 (("PROJECT_build=\"`date`\"") "PROJECT_build=\"\"")
2028 (("ac_abs_top_builddir=$ac_pwd") "ac_abs_top_builddir=\"\""))
2029 #t))
2030 (add-after 'install 'move-static-libraries
2031 (lambda* (#:key outputs #:allow-other-keys)
2032 ;; Move static libraries to the "static" output.
2033 (let* ((out (assoc-ref outputs "out"))
2034 (lib (string-append out "/lib"))
2035 (static (assoc-ref outputs "static"))
2036 (slib (string-append static "/lib")))
2037 (mkdir-p slib)
2038 (for-each (lambda (file)
2039 (install-file file slib)
2040 (delete-file file))
2041 (find-files lib "\\.a$"))
2042 #t))))))
2043 (native-inputs
2044 `(("help2man" ,help2man)
2045 ("dejagnu" ,dejagnu)))
2046 (home-page "https://code.google.com/archive/p/mp4v2/")
2047 (synopsis "API to create and modify mp4 files")
2048 (description
2049 "The MP4v2 library provides an API to create and modify mp4 files as defined by
2050ISO-IEC:14496-1:2001 MPEG-4 Systems. This file format is derived from Apple's QuickTime
2051file format that has been used as a multimedia file format in a variety of platforms and
2052applications. It is a very powerful and extensible format that can accommodate
2053practically any type of media.")
2054 (license license:mpl1.1)))