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