gnu: python2-scikit-image: Use custom 'python2-' packages.
[jackhill/guix/guix.git] / gnu / packages / video.scm
CommitLineData
39efcc9b 1;;; GNU Guix --- Functional package management for GNU
44726031 2;;; Copyright © 2013, 2014, 2015 Andreas Enge <andreas@enge.fr>
2cd85cf9 3;;; Copyright © 2014, 2015 David Thompson <davet@gnu.org>
3b02429c 4;;; Copyright © 2014, 2015 Mark H Weaver <mhw@netris.org>
cda163cd 5;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
fd74cc3c 6;;; Copyright © 2015 Efraim Flashner <efraim@flashner.co.il>
12f92e38 7;;; Copyright © 2015 Andy Patterson <ajpatter@uwaterloo.ca>
307ad140 8;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
39efcc9b
AE
9;;;
10;;; This file is part of GNU Guix.
11;;;
12;;; GNU Guix is free software; you can redistribute it and/or modify it
13;;; under the terms of the GNU General Public License as published by
14;;; the Free Software Foundation; either version 3 of the License, or (at
15;;; your option) any later version.
16;;;
17;;; GNU Guix is distributed in the hope that it will be useful, but
18;;; WITHOUT ANY WARRANTY; without even the implied warranty of
19;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20;;; GNU General Public License for more details.
21;;;
22;;; You should have received a copy of the GNU General Public License
23;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
24
25(define-module (gnu packages video)
fe138965 26 #:use-module (ice-9 match)
ae0bdd81 27 #:use-module ((guix licenses) #:prefix license:)
e930c2a3 28 #:use-module (guix utils)
39efcc9b
AE
29 #:use-module (guix packages)
30 #:use-module (guix download)
38829eac 31 #:use-module (guix git-download)
44726031 32 #:use-module (guix build-system cmake)
39efcc9b 33 #:use-module (guix build-system gnu)
615215a5 34 #:use-module (guix build-system python)
1c1178cd 35 #:use-module (guix build-system waf)
3b02429c 36 #:use-module (gnu packages)
39efcc9b 37 #:use-module (gnu packages algebra)
72bfebf5 38 #:use-module (gnu packages audio)
f1044010 39 #:use-module (gnu packages autotools)
d5a748e8 40 #:use-module (gnu packages avahi)
38829eac 41 #:use-module (gnu packages base)
d5a748e8 42 #:use-module (gnu packages cdrom)
39efcc9b 43 #:use-module (gnu packages compression)
44726031 44 #:use-module (gnu packages databases)
5d3609e4 45 #:use-module (gnu packages doxygen)
f22e0e26 46 #:use-module (gnu packages elf)
39efcc9b 47 #:use-module (gnu packages fontutils)
44726031
AE
48 #:use-module (gnu packages fribidi)
49 #:use-module (gnu packages gettext)
38829eac 50 #:use-module (gnu packages ghostscript)
d5a748e8
AE
51 #:use-module (gnu packages gl)
52 #:use-module (gnu packages glib)
2cd85cf9 53 #:use-module (gnu packages guile)
d5a748e8 54 #:use-module (gnu packages gnupg)
44726031 55 #:use-module (gnu packages gtk)
e55354b8 56 #:use-module (gnu packages image)
d5a748e8
AE
57 #:use-module (gnu packages linux)
58 #:use-module (gnu packages lua)
59 #:use-module (gnu packages mp3)
4d94b93c 60 #:use-module (gnu packages ncurses)
6f6c8b65 61 #:use-module (gnu packages ocr)
39efcc9b
AE
62 #:use-module (gnu packages perl)
63 #:use-module (gnu packages pkg-config)
d5a748e8 64 #:use-module (gnu packages pulseaudio)
39efcc9b 65 #:use-module (gnu packages python)
d5a748e8 66 #:use-module (gnu packages qt)
38829eac 67 #:use-module (gnu packages samba)
d5a748e8
AE
68 #:use-module (gnu packages sdl)
69 #:use-module (gnu packages ssh)
6b2c6be0 70 #:use-module (gnu packages texinfo)
5d3609e4 71 #:use-module (gnu packages texlive)
c426e61e 72 #:use-module (gnu packages textutils)
a7fd7b68 73 #:use-module (gnu packages tls)
d5a748e8 74 #:use-module (gnu packages version-control)
bb470bd3 75 #:use-module (gnu packages web)
ee3b55ea 76 #:use-module (gnu packages xdisorg)
54ff0b7d 77 #:use-module (gnu packages xiph)
d5a748e8
AE
78 #:use-module (gnu packages xml)
79 #:use-module (gnu packages xorg)
44726031
AE
80 #:use-module (gnu packages yasm)
81 #:use-module (gnu packages zip))
39efcc9b 82
6b2c6be0
SB
83(define-public aalib
84 (package
85 (name "aalib")
86 (version "1.4rc5")
87 (source (origin
88 (method url-fetch)
89 (uri (string-append "mirror://sourceforge/aa-project/"
90 name "-" version ".tar.gz"))
91 (sha256
92 (base32
93 "1vkh19gb76agvh4h87ysbrgy82hrw88lnsvhynjf4vng629dmpgv"))))
94 (build-system gnu-build-system)
95 (native-inputs
96 `(("makeinfo" ,texinfo)))
97 (inputs
98 `(("ncurses" ,ncurses)))
99 (arguments
100 '(#:phases
101 (modify-phases %standard-phases
3a4de6b2 102 (replace 'configure
014cbde6 103 (lambda* (#:key build inputs outputs #:allow-other-keys)
6b2c6be0
SB
104 ;; This old `configure' script doesn't support
105 ;; variables passed as arguments.
106 (let ((out (assoc-ref outputs "out"))
107 (ncurses (assoc-ref inputs "ncurses")))
108 (setenv "CONFIG_SHELL" (which "bash"))
109 (zero? (system* "./configure"
110 (string-append "--prefix=" out)
014cbde6 111 (string-append "--build=" build)
6b2c6be0
SB
112 (string-append "--with-ncurses="
113 ncurses)))))))))
114 (home-page "http://aa-project.sourceforge.net/aalib/")
115 (synopsis "ASCII-art library")
116 (description
117 "AA-lib is a low level gfx library which does not require graphics device.
118In fact, there is no graphical output possible. AA-lib replaces those
119old-fashioned output methods with powerful ascii-art renderer.")
120 (license license:lgpl2.0+)))
121
cda163cd
TUBK
122(define-public liba52
123 (package
124 (name "liba52")
125 (version "0.7.4")
126 (source (origin
127 (method url-fetch)
8c056935
TUBK
128 (uri (string-append
129 ;; A mirror://sourceforge URI doesn't work, presumably
130 ;; because the SourceForge project is misconfigured.
131 "http://liba52.sourceforge.net/files/a52dec-" version
132 ".tar.gz"))
cda163cd
TUBK
133 (sha256
134 (base32
23da88f6
MW
135 "0czccp4fcpf2ykp16xcrzdfmnircz1ynhls334q374xknd5747d2"))
136 (patches (map search-patch '("liba52-enable-pic.patch"
137 "liba52-set-soname.patch"
138 "liba52-use-mtune-not-mcpu.patch"
139 "liba52-link-with-libm.patch")))))
cda163cd 140 (build-system gnu-build-system)
23da88f6
MW
141 ;; XXX We need to run ./bootstrap because of the build system fixes above.
142 (native-inputs
143 `(("autoconf" ,autoconf)
144 ("automake" ,automake)
145 ("libtool" ,libtool)))
412a2422 146 (arguments `(#:configure-flags '("--enable-shared")
23da88f6
MW
147 #:phases
148 (modify-phases %standard-phases
149 ;; XXX We need to run ./bootstrap because of the build
150 ;; system fixes above.
151 (add-after
152 'unpack 'bootstrap
153 (lambda _ (zero? (system* "sh" "bootstrap")))))))
cda163cd
TUBK
154 (home-page "http://liba52.sourceforge.net/")
155 (synopsis "ATSC A/52 stream decoder")
156 (description "liba52 is a library for decoding ATSC A/52 streams. The
157A/52 standard is used in a variety of applications, including digital
158television and DVD. It is also known as AC-3.")
ae0bdd81 159 (license license:gpl2+)))
cda163cd 160
e0884109
MW
161(define-public libmpeg2
162 (package
163 (name "libmpeg2")
164 (version "0.5.1")
165 (source (origin
166 (method url-fetch)
167 ;; A mirror://sourceforge URI doesn't work, presumably
168 ;; because the SourceForge project is misconfigured.
169 (uri (string-append "http://libmpeg2.sourceforge.net/files/"
170 name "-" version ".tar.gz"))
171 (sha256
172 (base32
173 "1m3i322n2fwgrvbs1yck7g5md1dbg22bhq5xdqmjpz5m7j4jxqny"))))
174 (inputs
175 `(("libx11" ,libx11)
176 ("libxext" ,libxext)
177 ("libxv" ,libxv)
178 ("libsm" ,libsm)
179 ("libice" ,libice)
180 ("sdl" ,sdl)))
181 (build-system gnu-build-system)
182 (home-page "http://libmpeg2.sourceforge.net/")
183 (synopsis "MPEG1 and MPEG2 video decoder library")
184 (description
185 "libmpeg2 is a library which can decode MPEG1 and MPEG2 video streams.")
186 (license license:gpl2+)))
187
82712597
MW
188(define-public libx264
189 (package
190 (name "libx264")
191 (version "20150706-2245")
192 (source (origin
193 (method url-fetch)
194 (uri (string-append "ftp://ftp.videolan.org/pub/x264/snapshots/"
195 "x264-snapshot-" version ".tar.bz2"))
196 (sha256
197 (base32
198 "0v04xq25q66gsk78i4kryy7503ki87jxbhln2c0qpvyy0d47p466"))))
199 (build-system gnu-build-system)
200 (native-inputs
201 `(("pkg-config" ,pkg-config)
202 ("yasm" ,yasm)))
203 ;; TODO: Add gpac input
204 (arguments
205 `(#:tests? #f ;no check target
206 #:configure-flags '("--enable-shared"
207 ;; Don't build the command-line program. If we
208 ;; want it later, we should do so in a different
209 ;; package to avoid a circular dependency (the x264
210 ;; program depends on ffmpeg and ffmpeg depends on
211 ;; libx264).
212 "--disable-cli")))
213 (home-page "http://www.videolan.org/developers/x264.html")
214 (synopsis "H.264 video coding library")
215 (description "libx264 is an advanced encoding library for creating
216H.264 (MPEG-4 AVC) video streams.")
217 (license (list license:gpl2+ ;most files
218 license:isc ;common/x86/x86inc.asm
219 license:lgpl2.1+ ;extras/getopt.c
220 license:bsd-3 ;extras/inttypes.h
221 (license:non-copyleft ;extras/cl*.h
222 "file://extras/cl.h"
223 "See extras/cl.h in the distribution.")))))
224
c426e61e
TUBK
225(define-public libass
226 (package
227 (name "libass")
228 (version "0.12.1")
229 (source (origin
230 (method url-fetch)
231 (uri (string-append
232 "https://github.com/libass/libass/releases/download/"
233 version "/libass-" version ".tar.xz"))
234 (sha256
235 (base32
236 "1mwj2nk9g6cq6f8m1hf0ijg1299rghhy9naahqq43sc2whblb1l7"))))
237 (build-system gnu-build-system)
238 (native-inputs
239 `(("pkg-config" ,pkg-config)
240 ("yasm" ,yasm)))
241 (propagated-inputs
242 `(("freetype" ,freetype)
243 ("fribidi" ,fribidi)
244 ("fontconfig" ,fontconfig)
245 ("harfbuzz" ,harfbuzz)
246 ("enca" ,enca)))
247 (home-page "https://github.com/libass/libass")
248 (synopsis "Subtitle rendering library for the ASS/SSA format")
249 (description "libass is a subtitle rendering library for the
250ASS/SSA (Advanced Substation Alpha/SubStation Alpha) subtitle format.")
ae0bdd81 251 (license license:isc)))
c426e61e 252
4d94b93c
TUBK
253(define-public libcaca
254 (package
255 (name "libcaca")
256 (version "0.99.beta19")
257 (source (origin
258 (method url-fetch)
259 (uri (string-append "http://caca.zoy.org/files/libcaca/libcaca-"
260 version ".tar.gz"))
261 (sha256
262 (base32
263 "1x3j6yfyxl52adgnabycr0n38j9hx2j74la0hz0n8cnh9ry4d2qj"))))
264 (build-system gnu-build-system)
265 (native-inputs `(("pkg-config" ,pkg-config)))
266 (inputs
267 `(("freeglut" ,freeglut)
268 ("ftgl" ,ftgl)
269 ("libx11" ,libx11)
270 ("mesa" ,mesa)
271 ("ncurses" ,ncurses)
272 ("zlib" ,zlib)))
273 (home-page "http://caca.zoy.org/wiki/libcaca")
274 (synopsis "Colour ASCII-art library")
275 (description "libcaca is a graphics library that outputs text instead of
276pixels, so that it can work on older video cards or text terminals. It
277supports Unicode, 2048 colors, dithering of color images, and advanced text
278canvas operations.")
ae0bdd81 279 (license (license:fsf-free "file://COPYING")))) ;WTFPL version 2
4d94b93c 280
3bfb78dc
TUBK
281(define-public libdca
282 (package
283 (name "libdca")
284 (version "0.0.5")
285 (source (origin
286 (method url-fetch)
287 (uri (string-append
288 "http://download.videolan.org/pub/videolan/libdca/"
289 version "/libdca-" version ".tar.bz2"))
290 (sha256
291 (base32
292 "0hh6a7l8vvccsd5i1fkv9av2gzv9fy8m0b8jpsn5p6hh4bh2586v"))))
293 (build-system gnu-build-system)
294 (home-page "http://www.videolan.org/developers/libdca.html")
295 (synopsis "DTS Coherent Acoustics decoder")
296 (description "libdca is a library for decoding DTS Coherent Acoustics
297streams.")
ae0bdd81 298 (license license:gpl2+)))
3bfb78dc 299
99d4c455
TUBK
300(define-public libdv
301 (package
302 (name "libdv")
303 (version "1.0.0")
304 (source (origin
305 (method url-fetch)
306 (uri (string-append
307 "mirror://sourceforge/libdv/libdv-" version ".tar.gz"))
308 (sha256
309 (base32
310 "1fl96f2xh2slkv1i1ix7kqk576a0ak1d33cylm0mbhm96d0761d3"))))
311 (build-system gnu-build-system)
312 (native-inputs `(("pkg-config" ,pkg-config)))
313 (inputs `(("libxv" ,libxv)))
314 (home-page "http://libdv.sourceforge.net/")
315 (synopsis "DV video (IEC 61834 and SMPTE 314M) codec")
316 (description "The Quasar DV codec (libdv) is a software codec for DV
317video, the encoding format used by most digital camcorders, typically those
318that support the IEEE 1394 (a.k.a. FireWire or i.Link) interface. Libdv was
319developed according to the official standards for DV video: IEC 61834 and
320SMPTE 314M.")
ae0bdd81 321 (license license:lgpl2.1+)))
99d4c455 322
ee3b55ea
TUBK
323(define-public libva
324 (package
325 (name "libva")
6410d257 326 (version "1.6.1")
ee3b55ea
TUBK
327 (source
328 (origin
329 (method url-fetch)
330 (uri (string-append
331 "http://www.freedesktop.org/software/vaapi/releases/libva/libva-"
332 version".tar.bz2"))
333 (sha256
6410d257 334 (base32 "0bjfb5s8dk3lql843l91ffxzlq47isqks5sj19cxh7j3nhzw58kz"))))
ee3b55ea
TUBK
335 (build-system gnu-build-system)
336 (native-inputs
337 `(("pkg-config" ,pkg-config)))
338 (inputs
339 `(("libdrm" ,libdrm)
340 ("libx11" ,libx11)
341 ("libxext" ,libxext)
342 ("libxfixes" ,libxfixes)
343 ("mesa" ,mesa)))
372cf039
TUBK
344 (arguments
345 `(#:phases
346 (modify-phases %standard-phases
347 (add-before
348 'build 'fix-dlopen-paths
349 (lambda* (#:key outputs #:allow-other-keys)
350 (let ((out (assoc-ref outputs "out")))
351 (substitute* "va/drm/va_drm_auth_x11.c"
352 (("\"libva-x11\\.so\\.%d\"")
353 (string-append "\"" out "/lib/libva-x11.so.%d\"")))))))
354 ;; Most drivers are in mesa's $prefix/lib/dri, so use that. (Can be
355 ;; overridden at run-time via LIBVA_DRIVERS_PATH.)
356 #:configure-flags
357 (list (string-append "--with-drivers-path="
358 (assoc-ref %build-inputs "mesa") "/lib/dri"))
359 ;; However, we can't write to mesa's store directory, so override the
360 ;; following make variable to install the dummy driver to libva's
361 ;; $prefix/lib/dri directory.
362 #:make-flags
363 (list (string-append "dummy_drv_video_ladir="
364 (assoc-ref %outputs "out") "/lib/dri"))))
ee3b55ea
TUBK
365 (home-page "http://www.freedesktop.org/wiki/Software/vaapi/")
366 (synopsis "Video acceleration library")
367 (description "The main motivation for VA-API (Video Acceleration API) is
368to enable hardware accelerated video decode/encode at various
369entry-points (VLD, IDCT, Motion Compensation etc.) for prevailing coding
370standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
ae0bdd81 371 (license license:expat)))
ee3b55ea 372
39efcc9b
AE
373(define-public ffmpeg
374 (package
375 (name "ffmpeg")
084e41c1 376 (version "2.8.3")
39efcc9b
AE
377 (source (origin
378 (method url-fetch)
a1121a7f
EF
379 (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
380 version ".tar.xz"))
39efcc9b
AE
381 (sha256
382 (base32
084e41c1 383 "0jkhyv68aa7h3hf905ganwqbrflams3hs74in7ygxdfkcqw2xqhq"))))
39efcc9b
AE
384 (build-system gnu-build-system)
385 (inputs
c4c4cc05 386 `(("fontconfig" ,fontconfig)
39efcc9b 387 ("freetype" ,freetype)
c8dab7f4 388 ("gnutls" ,gnutls)
e816b348 389 ("opus" ,opus)
71241192 390 ("ladspa" ,ladspa)
d4f12db8 391 ("lame" ,lame)
c426e61e 392 ("libass" ,libass)
5d3609e4 393 ("libbluray" ,libbluray)
4d94b93c 394 ("libcaca" ,libcaca)
cc6c0170 395 ("libcdio-paranoia" ,libcdio-paranoia)
bb470bd3 396 ("libquvi" ,libquvi)
39efcc9b
AE
397 ("libtheora" ,libtheora)
398 ("libvorbis" ,libvorbis)
dc55b8b2 399 ("libvpx" ,libvpx)
549381d6 400 ("libx264" ,libx264)
71241192 401 ("openal" ,openal)
71241192 402 ("pulseaudio" ,pulseaudio)
72bfebf5 403 ("soxr" ,soxr)
c4c4cc05 404 ("speex" ,speex)
72bfebf5 405 ("twolame" ,twolame)
67932f86 406 ("xvid" ,xvid)
c4c4cc05
JD
407 ("zlib", zlib)))
408 (native-inputs
409 `(("bc" ,bc)
39efcc9b
AE
410 ("perl" ,perl)
411 ("pkg-config" ,pkg-config)
824d9dc3 412 ("texinfo" ,texinfo)
39efcc9b
AE
413 ("python" ,python-2) ; scripts use interpreter python2
414 ("speex" ,speex)
c4c4cc05 415 ("yasm" ,yasm)))
39efcc9b 416 (arguments
31f9322e 417 `(#:test-target "fate"
12f92e38
AP
418 #:configure-flags
419 ;; possible additional inputs:
420 ;; --enable-avisynth enable reading of AviSynth script
421 ;; files [no]
422 ;; --enable-frei0r enable frei0r video filtering
423 ;; --enable-libaacplus enable AAC+ encoding via libaacplus [no]
424 ;; --enable-libcelt enable CELT decoding via libcelt [no]
425 ;; --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394
426 ;; and libraw1394 [no]
427 ;; --enable-libfaac enable AAC encoding via libfaac [no]
428 ;; --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no]
429 ;; --enable-libflite enable flite (voice synthesis) support via
430 ;; libflite [no]
431 ;; --enable-libgme enable Game Music Emu via libgme [no]
432 ;; --enable-libgsm enable GSM de/encoding via libgsm [no]
433 ;; --enable-libiec61883 enable iec61883 via libiec61883 [no]
434 ;; --enable-libilbc enable iLBC de/encoding via libilbc [no]
435 ;; --enable-libmodplug enable ModPlug via libmodplug [no]
436 ;; --enable-libnut enable NUT (de)muxing via libnut,
437 ;; native (de)muxer exists [no]
438 ;; --enable-libopencore-amrnb enable AMR-NB de/encoding via
439 ;; libopencore-amrnb [no]
440 ;; --enable-libopencore-amrwb enable AMR-WB decoding via
441 ;; libopencore-amrwb [no]
442 ;; --enable-libopencv enable video filtering via libopencv [no]
443 ;; --enable-libopenjpeg enable JPEG 2000 de/encoding via
444 ;; OpenJPEG [no]
445 ;; --enable-librtmp enable RTMP[E] support via librtmp [no]
446 ;; --enable-libschroedinger enable Dirac de/encoding via
447 ;; libschroedinger [no]
448 ;; --enable-libshine enable fixed-point MP3 encoding via
449 ;; libshine [no]
450 ;; --enable-libssh enable SFTP protocol via libssh [no]
451 ;; (libssh2 does not work)
452 ;; --enable-libstagefright-h264 enable H.264 decoding via
453 ;; libstagefright [no]
454 ;; --enable-libutvideo enable Ut Video encoding and decoding via
455 ;; libutvideo [no]
456 ;; --enable-libv4l2 enable libv4l2/v4l-utils [no]
457 ;; --enable-libvidstab enable video stabilization using
458 ;; vid.stab [no]
459 ;; --enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no]
460 ;; --enable-libvo-amrwbenc enable AMR-WB encoding via
461 ;; libvo-amrwbenc [no]
462 ;; --enable-libwavpack enable wavpack encoding via libwavpack [no]
463 ;; --enable-libxavs enable AVS encoding via xavs [no]
464 ;; --enable-libzmq enable message passing via libzmq [no]
465 ;; --enable-libzvbi enable teletext support via libzvbi [no]
466 ;; --enable-opencl enable OpenCL code
467 ;; --enable-x11grab enable X11 grabbing [no]
468 '("--enable-avresample"
469 "--enable-gpl" ; enable optional gpl licensed parts
470 "--enable-shared"
471 "--enable-fontconfig"
c8dab7f4 472 "--enable-gnutls"
12f92e38
AP
473 "--enable-ladspa"
474 "--enable-libass"
475 "--enable-libbluray"
476 "--enable-libcaca"
477 "--enable-libcdio"
478 "--enable-libfreetype"
479 "--enable-libmp3lame"
480 "--enable-libopus"
481 "--enable-libpulse"
482 "--enable-libquvi"
483 "--enable-libsoxr"
484 "--enable-libspeex"
485 "--enable-libtheora"
486 "--enable-libtwolame"
487 "--enable-libvorbis"
488 "--enable-libvpx"
489 "--enable-libxvid"
490 "--enable-libx264"
491 "--enable-openal"
492
493 "--enable-runtime-cpudetect"
494
495 ;; Runtime cpu detection is not implemented on
496 ;; MIPS, so we disable some features.
497 "--disable-mips32r2"
498 "--disable-mipsdspr1"
499 "--disable-mipsdspr2"
500 "--disable-mipsfpu")
31f9322e 501 #:phases
f2feb0ce
LC
502 (modify-phases %standard-phases
503 (replace
39efcc9b
AE
504 'configure
505 ;; configure does not work followed by "SHELL=..." and
506 ;; "CONFIG_SHELL=..."; set environment variables instead
507 (lambda* (#:key outputs configure-flags #:allow-other-keys)
508 (let ((out (assoc-ref outputs "out")))
509 (substitute* "configure"
510 (("#! /bin/sh") (string-append "#!" (which "bash"))))
511 (setenv "SHELL" (which "bash"))
512 (setenv "CONFIG_SHELL" (which "bash"))
12f92e38
AP
513 (zero? (apply system*
514 "./configure"
515 (string-append "--prefix=" out)
516 ;; Add $libdir to the RUNPATH of all the binaries.
517 (string-append "--extra-ldflags=-Wl,-rpath="
518 out "/lib")
519 configure-flags)))))
457e528e
LC
520 (add-before
521 'check 'set-ld-library-path
522 (lambda _
523 ;; Allow $(top_builddir)/ffmpeg to find its dependencies when
524 ;; running tests.
525 (let* ((dso (find-files "." "\\.so$"))
526 (path (string-join (map dirname dso) ":")))
527 (format #t "setting LD_LIBRARY_PATH to ~s~%" path)
528 (setenv "LD_LIBRARY_PATH" path)
27350ef8 529 #t))))))
39efcc9b
AE
530 (home-page "http://www.ffmpeg.org/")
531 (synopsis "Audio and video framework")
532 (description "FFmpeg is a complete, cross-platform solution to record,
533convert and stream audio and video. It includes the libavcodec
534audio/video codec library.")
ae0bdd81 535 (license license:gpl2+)))
d5a748e8
AE
536
537(define-public vlc
538 (package
539 (name "vlc")
9c55bae6 540 (version "2.2.1")
d5a748e8
AE
541 (source (origin
542 (method url-fetch)
543 (uri (string-append
544 "http://download.videolan.org/pub/videolan/vlc/"
545 version "/vlc-" version ".tar.xz"))
546 (sha256
547 (base32
9c55bae6 548 "1jqzrzrpw6932lbkf863xk8cfmn4z2ngbxz7w8ggmh4f6xz9sgal"))))
d5a748e8
AE
549 (build-system gnu-build-system)
550 (native-inputs
551 `(("git" ,git) ; needed for a test
552 ("pkg-config" ,pkg-config)))
553 ;; FIXME: Add optional inputs once available.
554 (inputs
555 `(("alsa-lib" ,alsa-lib)
556 ("avahi" ,avahi)
557 ("dbus" ,dbus)
558 ("flac" ,flac)
1a189da0 559 ("ffmpeg" ,ffmpeg)
d5a748e8
AE
560 ("fontconfig" ,fontconfig)
561 ("freetype" ,freetype)
562 ("gnutls" ,gnutls)
563 ("libcddb" ,libcddb)
564 ("libgcrypt" ,libgcrypt)
565 ("libkate" ,libkate)
566 ("libmad" ,libmad)
567 ("libogg" ,libogg)
568 ("libpng" ,libpng)
569 ("libsamplerate" ,libsamplerate)
570 ("libssh2" ,libssh2)
571 ("libvorbis" ,libvorbis)
572 ("libtheora" ,libtheora)
573 ("libxext" ,libxext)
574 ("libxinerama" ,libxinerama)
575 ("libxml2" ,libxml2)
576 ("libxpm" ,libxpm)
577 ("lua" ,lua-5.1)
578 ("mesa" ,mesa)
579 ("opus" ,opus)
580 ("perl" ,perl)
581 ("pulseaudio" ,pulseaudio)
582 ("python" ,python-wrapper)
c6c86cd7 583 ("qt" ,qt)
d5a748e8
AE
584 ("sdl" ,sdl)
585 ("sdl-image" ,sdl-image)
586 ("speex" ,speex)
587 ("xcb-util-keysyms" ,xcb-util-keysyms)))
588 (arguments
589 `(#:configure-flags
590 `("--disable-a52" ; FIXME: reenable once available
d5a748e8
AE
591 ,(string-append "LDFLAGS=-Wl,-rpath -Wl,"
592 (assoc-ref %build-inputs "ffmpeg")
593 "/lib")))) ; needed for the tests
594 (home-page "https://www.videolan.org/")
595 (synopsis "Audio and video framework")
596 (description "VLC is a cross-platform multimedia player and framework
597that plays most multimedia files as well as DVD, Audio CD, VCD, and various
598treaming protocols.")
ae0bdd81 599 (license license:gpl2+)))
ace69243
AE
600
601(define-public mplayer
602 (package
603 (name "mplayer")
fd74cc3c 604 (version "1.2")
ace69243
AE
605 (source (origin
606 (method url-fetch)
607 (uri (string-append
608 "http://www.mplayerhq.hu/MPlayer/releases/MPlayer-"
609 version ".tar.xz"))
610 (sha256
611 (base32
fd74cc3c 612 "1dp2lbxyhgjr8sn91kf6xw3w6d7dsgq08v4dgrq20afz1bqzdrzz"))))
ace69243
AE
613 (build-system gnu-build-system)
614 ;; FIXME: Add additional inputs once available.
615 (native-inputs
616 `(("pkg-config" ,pkg-config)))
617 (inputs
618 `(("alsa-lib" ,alsa-lib)
619 ("cdparanoia" ,cdparanoia)
620 ("fontconfig" ,fontconfig)
fd74cc3c 621 ("ffmpeg", ffmpeg)
ace69243
AE
622 ("freetype" ,freetype)
623 ("lame" ,lame)
fd74cc3c
EF
624 ("libdvdcss", libdvdcss)
625 ("libdvdnav", libdvdnav)
60bbd4f1 626 ("libmpg123" ,mpg123) ; audio codec for MP3
ace69243
AE
627;; ("giflib" ,giflib) ; uses QuantizeBuffer, requires version >= 5
628 ("libjpeg" ,libjpeg)
629 ("libpng" ,libpng)
630 ("libtheora" ,libtheora)
631 ("libvorbis" ,libvorbis)
632 ("libx11" ,libx11)
633 ("libxxf86dga" ,libxxf86dga)
634 ("libxinerama" ,libxinerama)
635 ("libxv" ,libxv)
636 ("mesa" ,mesa)
637 ("perl" ,perl)
638 ("pulseaudio" ,pulseaudio)
639 ("python" ,python-wrapper)
640 ("sdl" ,sdl)
641 ("speex" ,speex)
642 ("yasm" ,yasm)
643 ("zlib" ,zlib)))
644 (arguments
645 `(#:tests? #f ; no test target
646 #:phases
647 (alist-replace
648 'configure
649 ;; configure does not work followed by "SHELL=..." and
650 ;; "CONFIG_SHELL=..."; set environment variables instead
651 (lambda* (#:key inputs outputs #:allow-other-keys)
652 (let ((out (assoc-ref outputs "out"))
653 (libx11 (assoc-ref inputs "libx11")))
654 (substitute* "configure"
655 (("#! /bin/sh") (string-append "#!" (which "bash"))))
656 (setenv "SHELL" (which "bash"))
657 (setenv "CONFIG_SHELL" (which "bash"))
658 (zero? (system*
659 "./configure"
660 (string-append "--extra-cflags=-I"
661 libx11 "/include") ; to detect libx11
fd74cc3c 662 "--disable-ffmpeg_a" ; disables bundled ffmpeg
ace69243 663 (string-append "--prefix=" out)
fe138965
MW
664 ;; Enable runtime cpu detection where supported,
665 ;; and choose a suitable target.
666 ,@(match (or (%current-target-system)
667 (%current-system))
668 ("x86_64-linux"
669 '("--enable-runtime-cpudetection"
670 "--target=x86_64-linux"))
671 ("i686-linux"
672 '("--enable-runtime-cpudetection"
673 "--target=i686-linux"))
674 ("mips64el-linux"
f0d6d835
MW
675 '("--target=mips3-linux"))
676 (_ (list (string-append
677 "--target="
678 (or (%current-target-system)
679 (nix-system->gnu-triplet
680 (%current-system)))))))
ace69243
AE
681 "--disable-iwmmxt"))))
682 %standard-phases)))
683 (home-page "http://www.mplayerhq.hu/design7/news.html")
684 (synopsis "Audio and video player")
685 (description "MPlayer is a movie player. It plays most MPEG/VOB, AVI,
686Ogg/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, RealMedia, Matroska, NUT,
687NuppelVideo, FLI, YUV4MPEG, FILM, RoQ, PVA files. One can watch VideoCD,
688SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
ae0bdd81 689 (license license:gpl2)))
d0ed39be 690
1c1178cd
TUBK
691(define-public mpv
692 (package
693 (name "mpv")
54567afa 694 (version "0.13.0")
1c1178cd
TUBK
695 (source (origin
696 (method url-fetch)
697 (uri (string-append
698 "https://github.com/mpv-player/mpv/archive/v" version
699 ".tar.gz"))
700 (sha256
701 (base32
54567afa 702 "1nqjd64p4pj1lks9n9s8y4zf4dp5bz8pyd0gsvviww7mv17p0whk"))
1c1178cd
TUBK
703 (file-name (string-append name "-" version ".tar.gz"))))
704 (build-system waf-build-system)
705 (native-inputs
706 `(("perl" ,perl)
707 ("pkg-config" ,pkg-config)
708 ("python-docutils" ,python-docutils)))
7482b340 709 ;; Missing features: libguess, Wayland, VDPAU, V4L2
1c1178cd
TUBK
710 (inputs
711 `(("alsa-lib" ,alsa-lib)
712 ("enca" ,enca)
713 ("ffmpeg" ,ffmpeg)
2d8781a4 714 ("jack" ,jack-1)
1c1178cd
TUBK
715 ("ladspa" ,ladspa)
716 ("lcms" ,lcms)
717 ("libass" ,libass)
718 ("libbluray" ,libbluray)
719 ("libcaca" ,libcaca)
720 ("libbs2b" ,libbs2b)
721 ("libcdio-paranoia" ,libcdio-paranoia)
722 ("libdvdread" ,libdvdread)
723 ("libdvdnav" ,libdvdnav)
724 ("libjpeg" ,libjpeg)
725 ("libva" ,libva)
726 ("libx11" ,libx11)
727 ("libxext" ,libxext)
728 ("libxinerama" ,libxinerama)
729 ("libxrandr" ,libxrandr)
730 ("libxscrnsaver" ,libxscrnsaver)
731 ("libxv" ,libxv)
732 ("lua" ,lua)
733 ("mesa" ,mesa)
734 ("mpg123" ,mpg123)
735 ("pulseaudio" ,pulseaudio)
736 ("rsound" ,rsound)
737 ("samba" ,samba)
738 ("vapoursynth" ,vapoursynth)
739 ("waf" ,(origin
740 (method url-fetch)
741 ;; Keep this in sync with the version in the bootstrap.py
742 ;; script of the source tarball.
54567afa 743 (uri "http://www.freehackers.org/~tnagy/release/waf-1.8.12")
1c1178cd
TUBK
744 (sha256
745 (base32
54567afa 746 "12y9c352zwliw0zk9jm2lhynsjcf5jy0k1qch1c1av8hnbm2pgq1"))))
1c1178cd
TUBK
747 ("youtube-dl" ,youtube-dl)
748 ("zlib" ,zlib)))
749 (arguments
750 '(#:phases
751 (modify-phases %standard-phases
752 (add-before
f8503e2b 753 'configure 'setup-waf
1c1178cd
TUBK
754 (lambda* (#:key inputs #:allow-other-keys)
755 (copy-file (assoc-ref inputs "waf") "waf")
756 (setenv "CC" "gcc")))
757 (add-before
f8503e2b 758 'configure 'patch-wscript
1c1178cd
TUBK
759 (lambda* (#:key inputs #:allow-other-keys)
760 (substitute* "wscript"
761 ;; XXX Remove this when our Samba package provides a .pc file.
762 (("check_pkg_config\\('smbclient'\\)")
782770d1 763 "check_cc(lib='smbclient')")))))
1c1178cd
TUBK
764 ;; No check function defined.
765 #:tests? #f))
766 (home-page "http://mpv.io/")
767 (synopsis "Audio and video player")
768 (description "mpv is a general-purpose audio and video player. It is a
769fork of mplayer2 and MPlayer. It shares some features with the former
770projects while introducing many more.")
ae0bdd81 771 (license license:gpl2+)))
1c1178cd 772
d0ed39be
DT
773(define-public libvpx
774 (package
775 (name "libvpx")
4f8f15cd 776 (version "1.4.0")
d0ed39be
DT
777 (source (origin
778 (method url-fetch)
723e8866
MW
779 (uri (string-append "http://storage.googleapis.com/"
780 "downloads.webmproject.org/releases/webm/"
781 name "-" version ".tar.bz2"))
d0ed39be
DT
782 (sha256
783 (base32
4f8f15cd 784 "1r0ql5kgy0c8mh5w7iiqvsd7w5njl9f9cclc7m52ln8assrdk0pm"))))
d0ed39be
DT
785 (build-system gnu-build-system)
786 (arguments
3b02429c 787 `(#:phases (alist-replace
d0ed39be
DT
788 'configure
789 (lambda* (#:key outputs #:allow-other-keys)
790 (setenv "CONFIG_SHELL" (which "bash"))
791 (let ((out (assoc-ref outputs "out")))
b3455870
SB
792 (setenv "LDFLAGS"
793 (string-append "-Wl,-rpath=" out "/lib"))
d0ed39be
DT
794 (zero? (system* "./configure"
795 "--enable-shared"
796 "--as=yasm"
2ab5e39d
MW
797 ;; Limit size to avoid CVE-2015-1258
798 "--size-limit=16384x16384"
d0ed39be
DT
799 (string-append "--prefix=" out)))))
800 %standard-phases)
4f8f15cd 801 #:tests? #f)) ; no check target
d0ed39be
DT
802 (native-inputs
803 `(("perl" ,perl)
804 ("yasm" ,yasm)))
805 (synopsis "VP8/VP9 video codec")
806 (description "libvpx is a codec for the VP8/VP9 video compression format.")
ae0bdd81 807 (license license:bsd-3)
d0ed39be 808 (home-page "http://www.webmproject.org/")))
615215a5
LC
809
810(define-public youtube-dl
811 (package
812 (name "youtube-dl")
e30be986 813 (version "2015.11.18")
615215a5
LC
814 (source (origin
815 (method url-fetch)
b798dfde 816 (uri (string-append "http://youtube-dl.org/downloads/"
615215a5
LC
817 version "/youtube-dl-"
818 version ".tar.gz"))
819 (sha256
820 (base32
e30be986 821 "0d8jy7xcali3rb645xvmjarsqrnqadl7zpqw17467zyjhzl2mjgb"))))
615215a5
LC
822 (build-system python-build-system)
823 (inputs `(("setuptools" ,python-setuptools)))
824 (home-page "http://youtube-dl.org")
825 (synopsis "Download videos from YouTube.com and other sites")
826 (description
b798dfde 827 "Youtube-dl is a small command-line program to download videos from
615215a5 828YouTube.com and a few more sites.")
ae0bdd81 829 (license license:public-domain)))
e6bdb36a 830
5d3609e4
TUBK
831(define-public libbluray
832 (package
833 (name "libbluray")
59eef6f2 834 (version "0.9.2")
5d3609e4
TUBK
835 (source (origin
836 (method url-fetch)
837 (uri (string-append "http://download.videolan.org/videolan/"
838 name "/" version "/"
839 name "-" version ".tar.bz2"))
840 (sha256
841 (base32
59eef6f2 842 "1sp71j4agcsg17g6b85cqz78pn5vknl5pl39rvr6mkib5ps99jgg"))))
5d3609e4 843 (build-system gnu-build-system)
2da45ebe
EF
844 (arguments `(#:configure-flags '("--disable-bdjava")))
845 (native-inputs `(("pkg-config" ,pkg-config)))
5d3609e4
TUBK
846 (inputs
847 `(("doxygen" ,doxygen)
848 ("fontconfig" ,fontconfig)
849 ("freetype" ,freetype)
850 ("libxml2" ,libxml2)
851 ("perl" ,perl) ;for doxygen
852 ("texlive" ,texlive)))
853 (home-page "http://www.videolan.org/developers/libbluray.html")
854 (synopsis "Blu-Ray Disc playback library")
855 (description
856 "libbluray is a library designed for Blu-Ray Disc playback for media
857players, like VLC or MPlayer.")
ae0bdd81 858 (license license:lgpl2.1+)))
5d3609e4 859
e6bdb36a
AE
860(define-public libdvdread
861 (package
862 (name "libdvdread")
9aebf330 863 (version "5.0.3")
e6bdb36a
AE
864 (source (origin
865 (method url-fetch)
866 (uri (string-append "http://download.videolan.org/videolan/"
867 name "/" version "/"
868 name "-" version ".tar.bz2"))
869 (sha256
870 (base32
9aebf330 871 "0ayqiq0psq18rcp6f5pz82sxsq66v0kwv0y55dbrcg68plnxy71j"))))
e6bdb36a
AE
872 (build-system gnu-build-system)
873 (home-page "http://dvdnav.mplayerhq.hu/")
874 (synopsis "Library for reading video DVDs")
875 (description
876 "Libdvdread provides a simple foundation for reading DVD video
877disks. It provides the functionality that is required to access many
878DVDs. It parses IFO files, reads NAV-blocks, and performs CSS
879authentication and descrambling (if an external libdvdcss library is
880installed).")
ae0bdd81 881 (license license:gpl2+)))
b027d919
AE
882
883(define-public libdvdnav
884 (package
885 (name "libdvdnav")
734976b6 886 (version "5.0.3")
b027d919
AE
887 (source (origin
888 (method url-fetch)
889 (uri (string-append "http://download.videolan.org/videolan/"
890 name "/" version "/"
891 name "-" version ".tar.bz2"))
892 (sha256
893 (base32
734976b6 894 "0v8byv5z598k06rqzdmj7739vc86xq3zf79zfr698dib7lz055sh"))))
b027d919
AE
895 (build-system gnu-build-system)
896 (native-inputs
897 `(("pkg-config" ,pkg-config)))
898 (inputs
899 `(("libdvdread" ,libdvdread)))
900 (home-page "http://dvdnav.mplayerhq.hu/")
901 (synopsis "Library for video DVD navigation features")
902 (description
903 "Libdvdnav is a library for developers of multimedia
904applications. It allows easy use of sophisticated DVD navigation features
905such as DVD menus, multiangle playback and even interactive DVD games. All
906this functionality is provided through a simple API which provides the DVD
907playback as a single logical stream of blocks, intermitted by special
908dvdnav events to report certain conditions. The main usage of libdvdnav is
909a loop regularly calling a function to get the next block, surrounded by
910additional calls to tell the library of user interaction. The whole
911DVD virtual machine and internal playback states are completely
912encapsulated.")
ae0bdd81 913 (license license:gpl2+)))
2cd85cf9 914
f1044010
TUBK
915(define-public libdvdnav-4
916 (package
917 (inherit libdvdnav)
918 (version "4.2.1")
919 (source (origin
920 (method url-fetch)
921 (uri
922 (string-append
923 "http://download.videolan.org/videolan/libdvdnav/libdvdnav-"
924 version ".tar.xz"))
925 (sha256
926 (base32
927 "0wi3gy408c8xj0ism0hckv5jbfh3lg4pmgxv87gbch9jrhp2gjkz"))))
928 (native-inputs
929 `(("pkg-config" ,pkg-config)
930 ("autoconf" ,autoconf)
931 ("automake" ,automake)
932 ("libtool" ,libtool)))
933 (arguments
934 '(#:phases
935 (alist-cons-after
936 'unpack 'autoreconf
937 (lambda _
938 (zero? (system* "autoreconf" "-vif")))
939 %standard-phases)))))
940
a6f710ec
TUBK
941(define-public libdvdcss
942 (package
943 (name "libdvdcss")
69762e3c 944 (version "1.3.99")
a6f710ec
TUBK
945 (source (origin
946 (method url-fetch)
947 (uri (string-append "http://download.videolan.org/videolan/"
948 name "/" version "/"
949 name "-" version ".tar.bz2"))
950 (sha256
951 (base32
69762e3c 952 "0pawkfyvn2h3yl6ph5spcvqxb4fr4yi4wfkvw2xqqcqv2ywzmc08"))))
a6f710ec
TUBK
953 (build-system gnu-build-system)
954 (home-page "http://www.videolan.org/developers/libdvdcss.html")
955 (synopsis "Library for accessing DVDs as block devices")
956 (description
957 "libdvdcss is a simple library designed for accessing DVDs like a block
958device without having to bother about the decryption.")
ae0bdd81 959 (license license:gpl2+)))
a6f710ec 960
2cd85cf9
DT
961(define-public srt2vtt
962 (package
963 (name "srt2vtt")
964 (version "0.1")
965 (source (origin
966 (method url-fetch)
967 (uri (string-append
968 "http://dthompson.us/releases/srt2vtt/srt2vtt-"
969 version ".tar.gz"))
970 (sha256
971 (base32
972 "16b377znjm6qlga5yb8aj7b7bcisa1ghcnj2lrb1d30lvxp4liif"))))
973 (build-system gnu-build-system)
974 (inputs
975 `(("guile" ,guile-2.0)))
976 (synopsis "SubRip to WebVTT subtitle converter")
977 (description "srt2vtt converts SubRip formatted subtitles to WebVTT format
978for use with HTML5 video.")
979 (home-page "http://dthompson.us/pages/software/srt2vtt")
ae0bdd81 980 (license license:gpl3+)))
44726031
AE
981
982(define-public avidemux
983 (package
984 (name "avidemux")
aae70767 985 (version "2.6.10")
44726031
AE
986 (source (origin
987 (method url-fetch)
988 (uri (string-append
989 "mirror://sourceforge/avidemux/avidemux_"
990 version ".tar.gz"))
991 (sha256
992 (base32
aae70767 993 "1vas43bwb15q2wv3dpp7fgp8dc6szinmwl7i0ziq2vv5l2128v0p"))
a060ca32 994 (patches (map search-patch '("avidemux-install-to-lib.patch")))))
44726031
AE
995 (build-system cmake-build-system)
996 (native-inputs
997 `(("pkg-config" ,pkg-config)))
998 ;; FIXME: Once packaged, add libraries not found during the build.
999 (inputs
1000 `(("alsa-lib" ,alsa-lib)
1001 ("fontconfig" ,fontconfig)
1002 ("freetype" ,freetype)
1003 ("fribidi" ,fribidi)
1004 ("glu" ,glu)
44726031
AE
1005 ("jack" ,jack-1)
1006 ("lame" ,lame)
1007 ("libvorbis" ,libvorbis)
1008 ("libvpx" ,libvpx)
1009 ("libxv" ,libxv)
1010 ("perl" ,perl)
1011 ("pulseaudio" ,pulseaudio)
1012 ("python" ,python-wrapper)
aab56ab7 1013 ("qt" ,qt)
44726031
AE
1014 ("sdl" ,sdl)
1015 ("sqlite" ,sqlite)
1016 ("yasm" ,yasm)
1017 ("zlib" ,zlib)))
1018 (arguments
1019 `(#:tests? #f ; no check target
1020 #:phases
1021 ;; Make sure files inside the included ffmpeg tarball are
1022 ;; patch-shebanged.
1023 (alist-cons-before
1024 'patch-source-shebangs 'unpack-ffmpeg
1025 (lambda _
1026 (with-directory-excursion "avidemux_core/ffmpeg_package"
aae70767
AE
1027 (system* "tar" "xf" "ffmpeg-2.6.1.tar.bz2")
1028 (delete-file "ffmpeg-2.6.1.tar.bz2")))
44726031
AE
1029 (alist-cons-after
1030 'patch-source-shebangs 'repack-ffmpeg
1031 (lambda _
1032 (with-directory-excursion "avidemux_core/ffmpeg_package"
aae70767 1033 (substitute* "ffmpeg-2.6.1/configure"
44726031 1034 (("#! /bin/sh") (string-append "#!" (which "bash"))))
aae70767 1035 (system* "tar" "cjf" "ffmpeg-2.6.1.tar.bz2" "ffmpeg-2.6.1"
c09e6a5f 1036 ;; avoid non-determinism in the archive
92226a47
MW
1037 "--sort=name" "--mtime=@0"
1038 "--owner=root:0" "--group=root:0")
aae70767 1039 (delete-file-recursively "ffmpeg-2.6.1")))
44726031
AE
1040 (alist-replace 'configure
1041 (lambda _
1042 ;; Copy-paste settings from the cmake build system.
1043 (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
1044 (setenv "CMAKE_INCLUDE_PATH" (getenv "CPATH")))
1045 (alist-replace 'build
1046 (lambda* (#:key inputs outputs #:allow-other-keys)
1047 (let*
1048 ((out (assoc-ref outputs "out"))
a060ca32 1049 (lib (string-append out "/lib"))
44726031
AE
1050 (top (getcwd))
1051 (sdl (assoc-ref inputs "sdl"))
1052 (build_component
1053 (lambda* (component srcdir #:optional (args '()))
1054 (let ((builddir (string-append "build_" component)))
1055 (mkdir builddir)
1056 (with-directory-excursion builddir
1057 (zero? (and
1058 (apply system* "cmake"
1059 "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE"
1060 (string-append "-DCMAKE_INSTALL_PREFIX=" out)
1061 (string-append "-DCMAKE_INSTALL_RPATH=" lib)
c687f731
AE
1062 (string-append "-DCMAKE_SHARED_LINKER_FLAGS="
1063 "\"-Wl,-rpath=" lib "\"")
44726031
AE
1064 (string-append "-DAVIDEMUX_SOURCE_DIR=" top)
1065 (string-append "-DSDL_INCLUDE_DIR="
1066 sdl "/include/SDL")
1067 (string-append "../" srcdir)
aab56ab7 1068 "-DENABLE_QT5=True"
44726031
AE
1069 args)
1070 (system* "make" "-j"
1071 (number->string (parallel-job-count)))
1072 (system* "make" "install"))))))))
1073 (mkdir out)
1074 (and (build_component "core" "avidemux_core")
1075 (build_component "cli" "avidemux/cli")
1076 (build_component "qt4" "avidemux/qt4")
44726031
AE
1077 (build_component "plugins_common" "avidemux_plugins"
1078 '("-DPLUGIN_UI=COMMON"))
1079 (build_component "plugins_cli" "avidemux_plugins"
1080 '("-DPLUGIN_UI=CLI"))
1081 (build_component "plugins_qt4" "avidemux_plugins"
1082 '("-DPLUGIN_UI=QT4"))
44726031
AE
1083 (build_component "plugins_settings" "avidemux_plugins"
1084 '("-DPLUGIN_UI=SETTINGS")))
1085 ;; Remove .exe and .dll file.
1086 (delete-file-recursively
1087 (string-append out "/share/ADM6_addons"))))
1088 (alist-delete 'install
1089 %standard-phases)))))))
1090 (home-page "http://fixounet.free.fr/avidemux/")
1091 (synopsis "Video editor")
1092 (description "Avidemux is a video editor designed for simple cutting,
1093filtering and encoding tasks. It supports many file types, including AVI,
1094DVD compatible MPEG files, MP4 and ASF, using a variety of codecs. Tasks
1095can be automated using projects, job queue and powerful scripting
1096capabilities.")
1097 ;; Software with various licenses is included, see License.txt.
ae0bdd81 1098 (license license:gpl2+)))
44726031 1099
6f6c8b65
TUBK
1100(define-public vapoursynth
1101 (package
1102 (name "vapoursynth")
1103 (version "26")
1104 (source (origin
1105 (method url-fetch)
1106 (uri (string-append
1107 "https://github.com/vapoursynth/vapoursynth/archive/R"
1108 version ".tar.gz"))
1109 (sha256
1110 (base32
1111 "1qbg5kg0kgrxldd0ckn1s7vy7vx2ig8nqzv6djp38fxccpzw3x9k"))))
1112 (build-system gnu-build-system)
1113 (native-inputs
1114 `(("autoconf" ,autoconf)
1115 ("automake" ,automake)
1116 ("cython" ,python-cython)
1117 ("libtool" ,libtool)
1118 ("pkg-config" ,pkg-config)
1119 ("python" ,python)
1120 ("yasm" ,yasm)))
1121 (inputs
1122 `(("ffmpeg" ,ffmpeg)
1123 ("libass" ,libass)
1124 ("tesseract-ocr" ,tesseract-ocr)))
1125 (arguments
1126 '(#:phases
1127 (modify-phases %standard-phases
1128 (add-after
f8503e2b 1129 'unpack 'autogen
6f6c8b65
TUBK
1130 (lambda _
1131 (zero? (system* "sh" "autogen.sh")))))))
1132 (home-page "http://www.vapoursynth.com/")
1133 (synopsis "Video processing framework")
1134 (description "VapourSynth is a C++ library and Python module for video
1135manipulation. It aims to be a modern rewrite of Avisynth, supporting
1136multithreading, generalized colorspaces, per frame properties, and videos with
1137format changes.")
1138 ;; As seen from the source files.
ae0bdd81 1139 (license license:lgpl2.1+)))
6f6c8b65 1140
67932f86
TUBK
1141(define-public xvid
1142 (package
1143 (name "xvid")
1144 (version "1.3.3")
1145 (source (origin
1146 (method url-fetch)
1147 (uri (string-append
1148 "http://downloads.xvid.org/downloads/xvidcore-"
1149 version ".tar.bz2"))
1150 (sha256
1151 (base32
1152 "0m5g75qvapr7xpywg6a83v5x19kw1nm9l2q48lg7jvvpba0bmqdh"))))
1153 (build-system gnu-build-system)
1154 (native-inputs `(("yasm" ,yasm)))
1155 (arguments
1156 '(#:phases
1157 (alist-cons-before
1158 'configure 'pre-configure
1159 (lambda _
1160 (chdir "build/generic")
1161 (substitute* "configure"
1162 (("#! /bin/sh") (string-append "#!" (which "sh")))))
1163 %standard-phases)
1164 ;; No 'check' target.
1165 #:tests? #f))
1166 (home-page "https://www.xvid.com/")
1167 (synopsis "MPEG-4 Part 2 Advanced Simple Profile video codec")
1168 (description "Xvid is an MPEG-4 Part 2 Advanced Simple Profile (ASP) video
1169codec library. It uses ASP features such as b-frames, global and quarter
1170pixel motion compensation, lumi masking, trellis quantization, and H.263, MPEG
1171and custom quantization matrices.")
ae0bdd81 1172 (license license:gpl2+)))
e16fde14
DT
1173
1174(define-public livestreamer
1175 (package
1176 (name "livestreamer")
68e88a09 1177 (version "1.12.2")
e16fde14
DT
1178 (source (origin
1179 (method url-fetch)
1180 (uri (string-append
1181 "https://github.com/chrippa/livestreamer/archive/v"
1182 version ".tar.gz"))
1183 (file-name (string-append "livestreamer-" version ".tar.gz"))
1184 (sha256
1185 (base32
68e88a09 1186 "1fp3d3z2grb1ls97smjkraazpxnvajda2d1g1378s6gzmda2jvjd"))))
e16fde14
DT
1187 (build-system python-build-system)
1188 (arguments
1189 '(#:tests? #f)) ; tests rely on external web servers
1190 (native-inputs
1191 `(("python-setuptools" ,python-setuptools)))
1192 (propagated-inputs
1193 `(("python-requests" ,python-requests)
1194 ("python-singledispatch" ,python-singledispatch)))
1195 (synopsis "Internet video stream viewer")
1196 (description "Livestreamer is a command-line utility that extracts streams
1197from various services and pipes them into a video playing application.")
1198 (home-page "http://livestreamer.io/")
1199 (license license:bsd-2)))
307ad140
RW
1200
1201(define-public mlt
1202 (package
1203 (name "mlt")
1204 (version "0.9.8")
1205 (source (origin
1206 (method url-fetch)
1207 (uri (string-append "mirror://sourceforge/mlt/mlt/mlt-"
1208 version ".tar.gz"))
1209 (sha256
1210 (base32
1211 "0rmrkj7z9g3nr4099f3ff0r14l3ixcfnlx2cdbkqa6pxin0pv9bz"))))
1212 (build-system gnu-build-system)
1213 (arguments
1214 `(#:tests? #f ; no tests
1215 #:make-flags '("CC=gcc")
1216 #:configure-flags
1217 (list "--enable-gpl3"
1218 "--enable-gpl")
1219 #:phases
1220 (modify-phases %standard-phases
1221 (add-after
1222 'configure 'override-LDFLAGS
1223 (lambda* (#:key outputs #:allow-other-keys)
1224 (substitute* "config.mak"
1225 (("LDFLAGS\\+=")
1226 (string-append "LDFLAGS+=-Wl,-rpath="
1227 (assoc-ref outputs "out")
1228 "/lib ")))
1229 #t)))))
1230 (inputs
1231 `(("alsa-lib" ,alsa-lib)
1232 ("fftw" ,fftw)
1233 ("libxml2" ,libxml2)
1234 ("jack" ,jack-1)
1235 ("ladspa" ,ladspa)
1236 ("libsamplerate" ,libsamplerate)
1237 ("sdl" ,sdl)
1238 ("sox" ,sox)))
1239 (native-inputs
1240 `(("pkg-config" ,pkg-config)))
1241 (home-page "http://www.mltframework.org/")
1242 (synopsis "Author, manage, and run multitrack audio/video compositions")
1243 (description
1244 "MLT is a multimedia framework, designed and developed for television
1245broadcasting. It provides a toolkit for broadcasters, video editors, media
1246players, transcoders, web streamers and many more types of applications. The
1247functionality of the system is provided via an assortment of ready to use
1248tools, XML authoring components, and an extensible plug-in based API.")
1249 (license license:lgpl2.1+)))