gnu: scribus: Build with gnu++11.
[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>
26da7c26 6;;; Copyright © 2015, 2016 Efraim Flashner <efraim@flashner.co.il>
12f92e38 7;;; Copyright © 2015 Andy Patterson <ajpatter@uwaterloo.ca>
307ad140 8;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
2ad9515c 9;;; Copyright © 2015 Alex Vong <alexvong1995@gmail.com>
6cf83e3f 10;;; Copyright © 2016 Alex Griffin <a@ajgrf.com>
d8841cc5 11;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
ed6ba9cc 12;;; Copyright © 2016 Dmitry Nikolaev <cameltheman@gmail.com>
39efcc9b
AE
13;;;
14;;; This file is part of GNU Guix.
15;;;
16;;; GNU Guix is free software; you can redistribute it and/or modify it
17;;; under the terms of the GNU General Public License as published by
18;;; the Free Software Foundation; either version 3 of the License, or (at
19;;; your option) any later version.
20;;;
21;;; GNU Guix is distributed in the hope that it will be useful, but
22;;; WITHOUT ANY WARRANTY; without even the implied warranty of
23;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24;;; GNU General Public License for more details.
25;;;
26;;; You should have received a copy of the GNU General Public License
27;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
28
29(define-module (gnu packages video)
fe138965 30 #:use-module (ice-9 match)
08858812
EF
31 #:use-module (srfi srfi-1)
32 #:use-module (srfi srfi-26)
ae0bdd81 33 #:use-module ((guix licenses) #:prefix license:)
e930c2a3 34 #:use-module (guix utils)
39efcc9b
AE
35 #:use-module (guix packages)
36 #:use-module (guix download)
38829eac 37 #:use-module (guix git-download)
d8841cc5 38 #:use-module (guix svn-download)
44726031 39 #:use-module (guix build-system cmake)
39efcc9b 40 #:use-module (guix build-system gnu)
0e74bb5b 41 #:use-module (guix build-system glib-or-gtk)
615215a5 42 #:use-module (guix build-system python)
1c1178cd 43 #:use-module (guix build-system waf)
3b02429c 44 #:use-module (gnu packages)
39efcc9b 45 #:use-module (gnu packages algebra)
72bfebf5 46 #:use-module (gnu packages audio)
f1044010 47 #:use-module (gnu packages autotools)
d5a748e8 48 #:use-module (gnu packages avahi)
38829eac 49 #:use-module (gnu packages base)
d5a748e8 50 #:use-module (gnu packages cdrom)
39efcc9b 51 #:use-module (gnu packages compression)
f464016d 52 #:use-module (gnu packages curl)
44726031 53 #:use-module (gnu packages databases)
f22e0e26 54 #:use-module (gnu packages elf)
39efcc9b 55 #:use-module (gnu packages fontutils)
44726031
AE
56 #:use-module (gnu packages fribidi)
57 #:use-module (gnu packages gettext)
38829eac 58 #:use-module (gnu packages ghostscript)
d5a748e8
AE
59 #:use-module (gnu packages gl)
60 #:use-module (gnu packages glib)
2cd85cf9 61 #:use-module (gnu packages guile)
d5a748e8 62 #:use-module (gnu packages gnupg)
44726031 63 #:use-module (gnu packages gtk)
e55354b8 64 #:use-module (gnu packages image)
d5a748e8
AE
65 #:use-module (gnu packages linux)
66 #:use-module (gnu packages lua)
67 #:use-module (gnu packages mp3)
4d94b93c 68 #:use-module (gnu packages ncurses)
6f6c8b65 69 #:use-module (gnu packages ocr)
39efcc9b
AE
70 #:use-module (gnu packages perl)
71 #:use-module (gnu packages pkg-config)
a7d94b54 72 #:use-module (gnu packages popt)
d5a748e8 73 #:use-module (gnu packages pulseaudio)
39efcc9b 74 #:use-module (gnu packages python)
d5a748e8
AE
75 #:use-module (gnu packages qt)
76 #:use-module (gnu packages sdl)
77 #:use-module (gnu packages ssh)
6b2c6be0 78 #:use-module (gnu packages texinfo)
c426e61e 79 #:use-module (gnu packages textutils)
a7fd7b68 80 #:use-module (gnu packages tls)
d5a748e8 81 #:use-module (gnu packages version-control)
bb470bd3 82 #:use-module (gnu packages web)
ee3b55ea 83 #:use-module (gnu packages xdisorg)
54ff0b7d 84 #:use-module (gnu packages xiph)
d5a748e8
AE
85 #:use-module (gnu packages xml)
86 #:use-module (gnu packages xorg)
01497dfe 87 #:use-module (gnu packages assembly)
44726031 88 #:use-module (gnu packages zip))
39efcc9b 89
6b2c6be0
SB
90(define-public aalib
91 (package
92 (name "aalib")
93 (version "1.4rc5")
94 (source (origin
95 (method url-fetch)
de67e922
LF
96 (uri (string-append "mirror://sourceforge/aa-project/aa-lib/"
97 version "/" name "-" version ".tar.gz"))
6b2c6be0
SB
98 (sha256
99 (base32
100 "1vkh19gb76agvh4h87ysbrgy82hrw88lnsvhynjf4vng629dmpgv"))))
101 (build-system gnu-build-system)
102 (native-inputs
103 `(("makeinfo" ,texinfo)))
104 (inputs
105 `(("ncurses" ,ncurses)))
106 (arguments
c437922a 107 `(#:phases
6b2c6be0 108 (modify-phases %standard-phases
3a4de6b2 109 (replace 'configure
014cbde6 110 (lambda* (#:key build inputs outputs #:allow-other-keys)
6b2c6be0
SB
111 ;; This old `configure' script doesn't support
112 ;; variables passed as arguments.
113 (let ((out (assoc-ref outputs "out"))
114 (ncurses (assoc-ref inputs "ncurses")))
115 (setenv "CONFIG_SHELL" (which "bash"))
116 (zero? (system* "./configure"
117 (string-append "--prefix=" out)
014cbde6 118 (string-append "--build=" build)
c437922a
MW
119 ;; The ancient config.guess is unable to
120 ;; guess the host triplet on mips64el.
121 ,@(if (string=? "mips64el-linux"
122 (%current-system))
123 '("--host=mips64el-unknown-linux-gnu")
124 '())
6b2c6be0
SB
125 (string-append "--with-ncurses="
126 ncurses)))))))))
127 (home-page "http://aa-project.sourceforge.net/aalib/")
128 (synopsis "ASCII-art library")
129 (description
130 "AA-lib is a low level gfx library which does not require graphics device.
131In fact, there is no graphical output possible. AA-lib replaces those
132old-fashioned output methods with powerful ascii-art renderer.")
133 (license license:lgpl2.0+)))
134
cda163cd
TUBK
135(define-public liba52
136 (package
137 (name "liba52")
138 (version "0.7.4")
139 (source (origin
140 (method url-fetch)
8c056935
TUBK
141 (uri (string-append
142 ;; A mirror://sourceforge URI doesn't work, presumably
143 ;; because the SourceForge project is misconfigured.
144 "http://liba52.sourceforge.net/files/a52dec-" version
145 ".tar.gz"))
cda163cd
TUBK
146 (sha256
147 (base32
23da88f6 148 "0czccp4fcpf2ykp16xcrzdfmnircz1ynhls334q374xknd5747d2"))
fc1adab1
AK
149 (patches (search-patches "liba52-enable-pic.patch"
150 "liba52-set-soname.patch"
151 "liba52-use-mtune-not-mcpu.patch"
152 "liba52-link-with-libm.patch"))))
cda163cd 153 (build-system gnu-build-system)
23da88f6
MW
154 ;; XXX We need to run ./bootstrap because of the build system fixes above.
155 (native-inputs
156 `(("autoconf" ,autoconf)
157 ("automake" ,automake)
158 ("libtool" ,libtool)))
412a2422 159 (arguments `(#:configure-flags '("--enable-shared")
23da88f6
MW
160 #:phases
161 (modify-phases %standard-phases
162 ;; XXX We need to run ./bootstrap because of the build
163 ;; system fixes above.
164 (add-after
165 'unpack 'bootstrap
166 (lambda _ (zero? (system* "sh" "bootstrap")))))))
cda163cd
TUBK
167 (home-page "http://liba52.sourceforge.net/")
168 (synopsis "ATSC A/52 stream decoder")
169 (description "liba52 is a library for decoding ATSC A/52 streams. The
170A/52 standard is used in a variety of applications, including digital
171television and DVD. It is also known as AC-3.")
ae0bdd81 172 (license license:gpl2+)))
cda163cd 173
e0884109
MW
174(define-public libmpeg2
175 (package
176 (name "libmpeg2")
177 (version "0.5.1")
178 (source (origin
179 (method url-fetch)
180 ;; A mirror://sourceforge URI doesn't work, presumably
181 ;; because the SourceForge project is misconfigured.
182 (uri (string-append "http://libmpeg2.sourceforge.net/files/"
183 name "-" version ".tar.gz"))
184 (sha256
185 (base32
186 "1m3i322n2fwgrvbs1yck7g5md1dbg22bhq5xdqmjpz5m7j4jxqny"))))
187 (inputs
188 `(("libx11" ,libx11)
189 ("libxext" ,libxext)
190 ("libxv" ,libxv)
191 ("libsm" ,libsm)
192 ("libice" ,libice)
193 ("sdl" ,sdl)))
194 (build-system gnu-build-system)
195 (home-page "http://libmpeg2.sourceforge.net/")
196 (synopsis "MPEG1 and MPEG2 video decoder library")
197 (description
198 "libmpeg2 is a library which can decode MPEG1 and MPEG2 video streams.")
199 (license license:gpl2+)))
200
82712597
MW
201(define-public libx264
202 (package
203 (name "libx264")
466a7d70 204 (version "20160220-2245")
82712597
MW
205 (source (origin
206 (method url-fetch)
735e84c7 207 (uri (string-append "http://download.videolan.org/pub/x264/snapshots/"
82712597
MW
208 "x264-snapshot-" version ".tar.bz2"))
209 (sha256
210 (base32
466a7d70 211 "12zyzbiihfhamf7yi4qqaj6k0nisnrydvfr36kxadvmsm7dg4sj3"))))
82712597
MW
212 (build-system gnu-build-system)
213 (native-inputs
214 `(("pkg-config" ,pkg-config)
215 ("yasm" ,yasm)))
216 ;; TODO: Add gpac input
217 (arguments
218 `(#:tests? #f ;no check target
219 #:configure-flags '("--enable-shared"
220 ;; Don't build the command-line program. If we
221 ;; want it later, we should do so in a different
222 ;; package to avoid a circular dependency (the x264
223 ;; program depends on ffmpeg and ffmpeg depends on
224 ;; libx264).
cb50d0c2
MW
225 "--disable-cli"
226
227 ;; On MIPS, we must pass "--disable-asm" or else
228 ;; configure fails after printing: "You specified a
229 ;; pre-MSA CPU in your CFLAGS. If you really want
230 ;; to run on such a CPU, configure with
231 ;; --disable-asm."
232 ,@(if (string-prefix? "mips"
233 (or (%current-target-system)
234 (%current-system)))
235 '("--disable-asm")
236 '()))))
82712597
MW
237 (home-page "http://www.videolan.org/developers/x264.html")
238 (synopsis "H.264 video coding library")
239 (description "libx264 is an advanced encoding library for creating
240H.264 (MPEG-4 AVC) video streams.")
241 (license (list license:gpl2+ ;most files
242 license:isc ;common/x86/x86inc.asm
243 license:lgpl2.1+ ;extras/getopt.c
244 license:bsd-3 ;extras/inttypes.h
245 (license:non-copyleft ;extras/cl*.h
246 "file://extras/cl.h"
247 "See extras/cl.h in the distribution.")))))
248
c426e61e
TUBK
249(define-public libass
250 (package
251 (name "libass")
97206519 252 (version "0.13.2")
c426e61e
TUBK
253 (source (origin
254 (method url-fetch)
255 (uri (string-append
256 "https://github.com/libass/libass/releases/download/"
257 version "/libass-" version ".tar.xz"))
258 (sha256
259 (base32
97206519 260 "1kpsw4zw95v4cjvild9wpk73dzavn1khsm3bm32kcz6amnkd166n"))))
c426e61e
TUBK
261 (build-system gnu-build-system)
262 (native-inputs
263 `(("pkg-config" ,pkg-config)
264 ("yasm" ,yasm)))
265 (propagated-inputs
266 `(("freetype" ,freetype)
267 ("fribidi" ,fribidi)
268 ("fontconfig" ,fontconfig)
269 ("harfbuzz" ,harfbuzz)
270 ("enca" ,enca)))
271 (home-page "https://github.com/libass/libass")
272 (synopsis "Subtitle rendering library for the ASS/SSA format")
273 (description "libass is a subtitle rendering library for the
274ASS/SSA (Advanced Substation Alpha/SubStation Alpha) subtitle format.")
ae0bdd81 275 (license license:isc)))
c426e61e 276
4d94b93c
TUBK
277(define-public libcaca
278 (package
279 (name "libcaca")
280 (version "0.99.beta19")
281 (source (origin
282 (method url-fetch)
283 (uri (string-append "http://caca.zoy.org/files/libcaca/libcaca-"
284 version ".tar.gz"))
285 (sha256
286 (base32
287 "1x3j6yfyxl52adgnabycr0n38j9hx2j74la0hz0n8cnh9ry4d2qj"))))
288 (build-system gnu-build-system)
289 (native-inputs `(("pkg-config" ,pkg-config)))
290 (inputs
291 `(("freeglut" ,freeglut)
292 ("ftgl" ,ftgl)
43d51239 293 ("imlib2" ,imlib2)
4d94b93c
TUBK
294 ("libx11" ,libx11)
295 ("mesa" ,mesa)
296 ("ncurses" ,ncurses)
297 ("zlib" ,zlib)))
298 (home-page "http://caca.zoy.org/wiki/libcaca")
299 (synopsis "Colour ASCII-art library")
300 (description "libcaca is a graphics library that outputs text instead of
301pixels, so that it can work on older video cards or text terminals. It
302supports Unicode, 2048 colors, dithering of color images, and advanced text
303canvas operations.")
ae0bdd81 304 (license (license:fsf-free "file://COPYING")))) ;WTFPL version 2
4d94b93c 305
3bfb78dc
TUBK
306(define-public libdca
307 (package
308 (name "libdca")
309 (version "0.0.5")
310 (source (origin
311 (method url-fetch)
312 (uri (string-append
313 "http://download.videolan.org/pub/videolan/libdca/"
314 version "/libdca-" version ".tar.bz2"))
315 (sha256
316 (base32
317 "0hh6a7l8vvccsd5i1fkv9av2gzv9fy8m0b8jpsn5p6hh4bh2586v"))))
318 (build-system gnu-build-system)
319 (home-page "http://www.videolan.org/developers/libdca.html")
320 (synopsis "DTS Coherent Acoustics decoder")
321 (description "libdca is a library for decoding DTS Coherent Acoustics
322streams.")
ae0bdd81 323 (license license:gpl2+)))
3bfb78dc 324
99d4c455
TUBK
325(define-public libdv
326 (package
327 (name "libdv")
328 (version "1.0.0")
329 (source (origin
330 (method url-fetch)
331 (uri (string-append
de67e922
LF
332 "mirror://sourceforge/" name "/" name "/"
333 version "/" name "-" version ".tar.gz"))
99d4c455
TUBK
334 (sha256
335 (base32
336 "1fl96f2xh2slkv1i1ix7kqk576a0ak1d33cylm0mbhm96d0761d3"))))
337 (build-system gnu-build-system)
338 (native-inputs `(("pkg-config" ,pkg-config)))
339 (inputs `(("libxv" ,libxv)))
340 (home-page "http://libdv.sourceforge.net/")
341 (synopsis "DV video (IEC 61834 and SMPTE 314M) codec")
342 (description "The Quasar DV codec (libdv) is a software codec for DV
343video, the encoding format used by most digital camcorders, typically those
344that support the IEEE 1394 (a.k.a. FireWire or i.Link) interface. Libdv was
345developed according to the official standards for DV video: IEC 61834 and
346SMPTE 314M.")
ae0bdd81 347 (license license:lgpl2.1+)))
99d4c455 348
ee3b55ea
TUBK
349(define-public libva
350 (package
351 (name "libva")
5c1c2254 352 (version "1.7.0")
ee3b55ea
TUBK
353 (source
354 (origin
355 (method url-fetch)
356 (uri (string-append
5cc3096c 357 "https://www.freedesktop.org/software/vaapi/releases/libva/libva-"
ee3b55ea
TUBK
358 version".tar.bz2"))
359 (sha256
5c1c2254 360 (base32 "0py9igf4kicj7ji22bjawkpd6my013qpg0s4ir2np9l1rk5vr2d6"))))
ee3b55ea
TUBK
361 (build-system gnu-build-system)
362 (native-inputs
363 `(("pkg-config" ,pkg-config)))
364 (inputs
365 `(("libdrm" ,libdrm)
366 ("libx11" ,libx11)
367 ("libxext" ,libxext)
368 ("libxfixes" ,libxfixes)
369 ("mesa" ,mesa)))
372cf039
TUBK
370 (arguments
371 `(#:phases
372 (modify-phases %standard-phases
373 (add-before
374 'build 'fix-dlopen-paths
375 (lambda* (#:key outputs #:allow-other-keys)
376 (let ((out (assoc-ref outputs "out")))
377 (substitute* "va/drm/va_drm_auth_x11.c"
378 (("\"libva-x11\\.so\\.%d\"")
379 (string-append "\"" out "/lib/libva-x11.so.%d\"")))))))
380 ;; Most drivers are in mesa's $prefix/lib/dri, so use that. (Can be
381 ;; overridden at run-time via LIBVA_DRIVERS_PATH.)
382 #:configure-flags
383 (list (string-append "--with-drivers-path="
384 (assoc-ref %build-inputs "mesa") "/lib/dri"))
385 ;; However, we can't write to mesa's store directory, so override the
386 ;; following make variable to install the dummy driver to libva's
387 ;; $prefix/lib/dri directory.
388 #:make-flags
389 (list (string-append "dummy_drv_video_ladir="
390 (assoc-ref %outputs "out") "/lib/dri"))))
5c1c2254 391 (home-page "https://www.freedesktop.org/wiki/Software/vaapi/")
ee3b55ea
TUBK
392 (synopsis "Video acceleration library")
393 (description "The main motivation for VA-API (Video Acceleration API) is
394to enable hardware accelerated video decode/encode at various
395entry-points (VLD, IDCT, Motion Compensation etc.) for prevailing coding
396standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).")
ae0bdd81 397 (license license:expat)))
ee3b55ea 398
39efcc9b
AE
399(define-public ffmpeg
400 (package
401 (name "ffmpeg")
cd36a411 402 (version "3.1.2")
39efcc9b
AE
403 (source (origin
404 (method url-fetch)
a1121a7f
EF
405 (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
406 version ".tar.xz"))
39efcc9b
AE
407 (sha256
408 (base32
cd36a411 409 "0qdxp6r6x47jzi6nmbsv3dhvm073c8n5hpnlmj5gwihgkyva5ljq"))))
39efcc9b
AE
410 (build-system gnu-build-system)
411 (inputs
c4c4cc05 412 `(("fontconfig" ,fontconfig)
39efcc9b 413 ("freetype" ,freetype)
c8dab7f4 414 ("gnutls" ,gnutls)
e816b348 415 ("opus" ,opus)
71241192 416 ("ladspa" ,ladspa)
d4f12db8 417 ("lame" ,lame)
c426e61e 418 ("libass" ,libass)
5d3609e4 419 ("libbluray" ,libbluray)
4d94b93c 420 ("libcaca" ,libcaca)
cc6c0170 421 ("libcdio-paranoia" ,libcdio-paranoia)
39efcc9b 422 ("libtheora" ,libtheora)
f88f0d20 423 ("libvdpau" ,libvdpau)
39efcc9b 424 ("libvorbis" ,libvorbis)
dc55b8b2 425 ("libvpx" ,libvpx)
f88f0d20 426 ("libx11" ,libx11)
549381d6 427 ("libx264" ,libx264)
f88f0d20 428 ("mesa" ,mesa)
71241192 429 ("openal" ,openal)
71241192 430 ("pulseaudio" ,pulseaudio)
72bfebf5 431 ("soxr" ,soxr)
c4c4cc05 432 ("speex" ,speex)
72bfebf5 433 ("twolame" ,twolame)
67932f86 434 ("xvid" ,xvid)
b3546174 435 ("zlib" ,zlib)))
c4c4cc05
JD
436 (native-inputs
437 `(("bc" ,bc)
39efcc9b
AE
438 ("perl" ,perl)
439 ("pkg-config" ,pkg-config)
824d9dc3 440 ("texinfo" ,texinfo)
39efcc9b
AE
441 ("python" ,python-2) ; scripts use interpreter python2
442 ("speex" ,speex)
c4c4cc05 443 ("yasm" ,yasm)))
39efcc9b 444 (arguments
31f9322e 445 `(#:test-target "fate"
12f92e38
AP
446 #:configure-flags
447 ;; possible additional inputs:
448 ;; --enable-avisynth enable reading of AviSynth script
449 ;; files [no]
450 ;; --enable-frei0r enable frei0r video filtering
451 ;; --enable-libaacplus enable AAC+ encoding via libaacplus [no]
452 ;; --enable-libcelt enable CELT decoding via libcelt [no]
453 ;; --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394
454 ;; and libraw1394 [no]
455 ;; --enable-libfaac enable AAC encoding via libfaac [no]
456 ;; --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no]
457 ;; --enable-libflite enable flite (voice synthesis) support via
458 ;; libflite [no]
459 ;; --enable-libgme enable Game Music Emu via libgme [no]
460 ;; --enable-libgsm enable GSM de/encoding via libgsm [no]
461 ;; --enable-libiec61883 enable iec61883 via libiec61883 [no]
462 ;; --enable-libilbc enable iLBC de/encoding via libilbc [no]
463 ;; --enable-libmodplug enable ModPlug via libmodplug [no]
464 ;; --enable-libnut enable NUT (de)muxing via libnut,
465 ;; native (de)muxer exists [no]
466 ;; --enable-libopencore-amrnb enable AMR-NB de/encoding via
467 ;; libopencore-amrnb [no]
468 ;; --enable-libopencore-amrwb enable AMR-WB decoding via
469 ;; libopencore-amrwb [no]
470 ;; --enable-libopencv enable video filtering via libopencv [no]
471 ;; --enable-libopenjpeg enable JPEG 2000 de/encoding via
472 ;; OpenJPEG [no]
473 ;; --enable-librtmp enable RTMP[E] support via librtmp [no]
474 ;; --enable-libschroedinger enable Dirac de/encoding via
475 ;; libschroedinger [no]
476 ;; --enable-libshine enable fixed-point MP3 encoding via
477 ;; libshine [no]
478 ;; --enable-libssh enable SFTP protocol via libssh [no]
479 ;; (libssh2 does not work)
480 ;; --enable-libstagefright-h264 enable H.264 decoding via
481 ;; libstagefright [no]
482 ;; --enable-libutvideo enable Ut Video encoding and decoding via
483 ;; libutvideo [no]
484 ;; --enable-libv4l2 enable libv4l2/v4l-utils [no]
485 ;; --enable-libvidstab enable video stabilization using
486 ;; vid.stab [no]
487 ;; --enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no]
488 ;; --enable-libvo-amrwbenc enable AMR-WB encoding via
489 ;; libvo-amrwbenc [no]
490 ;; --enable-libwavpack enable wavpack encoding via libwavpack [no]
491 ;; --enable-libxavs enable AVS encoding via xavs [no]
492 ;; --enable-libzmq enable message passing via libzmq [no]
493 ;; --enable-libzvbi enable teletext support via libzvbi [no]
494 ;; --enable-opencl enable OpenCL code
12f92e38
AP
495 '("--enable-avresample"
496 "--enable-gpl" ; enable optional gpl licensed parts
497 "--enable-shared"
498 "--enable-fontconfig"
c8dab7f4 499 "--enable-gnutls"
12f92e38
AP
500 "--enable-ladspa"
501 "--enable-libass"
502 "--enable-libbluray"
503 "--enable-libcaca"
504 "--enable-libcdio"
505 "--enable-libfreetype"
506 "--enable-libmp3lame"
507 "--enable-libopus"
508 "--enable-libpulse"
12f92e38
AP
509 "--enable-libsoxr"
510 "--enable-libspeex"
511 "--enable-libtheora"
512 "--enable-libtwolame"
513 "--enable-libvorbis"
514 "--enable-libvpx"
515 "--enable-libxvid"
516 "--enable-libx264"
517 "--enable-openal"
f88f0d20
EF
518 "--enable-opengl"
519 "--enable-x11grab"
12f92e38
AP
520
521 "--enable-runtime-cpudetect"
522
523 ;; Runtime cpu detection is not implemented on
524 ;; MIPS, so we disable some features.
525 "--disable-mips32r2"
c5e1fcd0 526 "--disable-mipsdsp"
12f92e38
AP
527 "--disable-mipsdspr2"
528 "--disable-mipsfpu")
31f9322e 529 #:phases
f2feb0ce
LC
530 (modify-phases %standard-phases
531 (replace
39efcc9b
AE
532 'configure
533 ;; configure does not work followed by "SHELL=..." and
534 ;; "CONFIG_SHELL=..."; set environment variables instead
535 (lambda* (#:key outputs configure-flags #:allow-other-keys)
536 (let ((out (assoc-ref outputs "out")))
537 (substitute* "configure"
538 (("#! /bin/sh") (string-append "#!" (which "bash"))))
539 (setenv "SHELL" (which "bash"))
540 (setenv "CONFIG_SHELL" (which "bash"))
12f92e38
AP
541 (zero? (apply system*
542 "./configure"
543 (string-append "--prefix=" out)
544 ;; Add $libdir to the RUNPATH of all the binaries.
545 (string-append "--extra-ldflags=-Wl,-rpath="
546 out "/lib")
547 configure-flags)))))
457e528e
LC
548 (add-before
549 'check 'set-ld-library-path
550 (lambda _
551 ;; Allow $(top_builddir)/ffmpeg to find its dependencies when
552 ;; running tests.
553 (let* ((dso (find-files "." "\\.so$"))
554 (path (string-join (map dirname dso) ":")))
555 (format #t "setting LD_LIBRARY_PATH to ~s~%" path)
556 (setenv "LD_LIBRARY_PATH" path)
27350ef8 557 #t))))))
702bfbf1 558 (home-page "https://www.ffmpeg.org/")
39efcc9b
AE
559 (synopsis "Audio and video framework")
560 (description "FFmpeg is a complete, cross-platform solution to record,
561convert and stream audio and video. It includes the libavcodec
562audio/video codec library.")
ae0bdd81 563 (license license:gpl2+)))
d5a748e8 564
940778c7
LC
565(define-public ffmpeg-2.8
566 (package
567 (inherit ffmpeg)
fbb060fe 568 (version "2.8.7")
940778c7
LC
569 (source (origin
570 (method url-fetch)
571 (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
572 version ".tar.xz"))
573 (sha256
574 (base32
fbb060fe 575 "0z0mcj2q3ysp9qdn1ks03g5sn2zxyr06vxs4al0m4b5b3in8mglp"))))
940778c7
LC
576 (arguments
577 (substitute-keyword-arguments (package-arguments ffmpeg)
578 ((#:configure-flags flags)
579 `(map (lambda (flag)
580 (if (string=? flag "--disable-mipsdsp")
581 "--disable-mipsdspr1"
582 flag))
583 ,flags))))))
584
d5a748e8
AE
585(define-public vlc
586 (package
587 (name "vlc")
a134cc8e 588 (version "2.2.4")
d5a748e8
AE
589 (source (origin
590 (method url-fetch)
591 (uri (string-append
a134cc8e 592 "https://download.videolan.org/pub/videolan/vlc/"
d5a748e8
AE
593 version "/vlc-" version ".tar.xz"))
594 (sha256
595 (base32
a134cc8e 596 "1gjkrwlg8ab3skzl67cxb9qzg4187ifckd1z9kpy11q058fyjchn"))
4ef2721b
LC
597 (modules '((guix build utils)))
598 (snippet
599 ;; There are two occurrences where __DATE__ and __TIME__ are
600 ;; used to capture the build time and show it to the user.
601 '(substitute* (find-files "." "help\\.c(pp)?$")
602 (("__DATE__") "\"2016\"")
603 (("__TIME__") "\"00:00\"")))))
d5a748e8
AE
604 (build-system gnu-build-system)
605 (native-inputs
606 `(("git" ,git) ; needed for a test
607 ("pkg-config" ,pkg-config)))
608 ;; FIXME: Add optional inputs once available.
609 (inputs
610 `(("alsa-lib" ,alsa-lib)
611 ("avahi" ,avahi)
612 ("dbus" ,dbus)
613 ("flac" ,flac)
b4dff935 614 ("ffmpeg" ,ffmpeg-2.8) ;fails to build against ffmpeg 3.0
d5a748e8
AE
615 ("fontconfig" ,fontconfig)
616 ("freetype" ,freetype)
617 ("gnutls" ,gnutls)
618 ("libcddb" ,libcddb)
619 ("libgcrypt" ,libgcrypt)
620 ("libkate" ,libkate)
621 ("libmad" ,libmad)
622 ("libogg" ,libogg)
623 ("libpng" ,libpng)
624 ("libsamplerate" ,libsamplerate)
625 ("libssh2" ,libssh2)
626 ("libvorbis" ,libvorbis)
627 ("libtheora" ,libtheora)
628 ("libxext" ,libxext)
629 ("libxinerama" ,libxinerama)
630 ("libxml2" ,libxml2)
631 ("libxpm" ,libxpm)
632 ("lua" ,lua-5.1)
633 ("mesa" ,mesa)
634 ("opus" ,opus)
635 ("perl" ,perl)
636 ("pulseaudio" ,pulseaudio)
637 ("python" ,python-wrapper)
a134cc8e
EF
638 ("qtbase" ,qtbase)
639 ;("qtx11extras" ,qtx11extras)
d5a748e8
AE
640 ("sdl" ,sdl)
641 ("sdl-image" ,sdl-image)
642 ("speex" ,speex)
643 ("xcb-util-keysyms" ,xcb-util-keysyms)))
644 (arguments
645 `(#:configure-flags
646 `("--disable-a52" ; FIXME: reenable once available
c6b3dc69
LC
647
648 ;; Gross workaround for <https://trac.videolan.org/vlc/ticket/16907>.
649 ;; In our case, this led to a test failure:
650 ;; test_libvlc_equalizer: libvlc/equalizer.c:122: test_equalizer: Assertion `isnan(libvlc_audio_equalizer_get_amp_at_index (equalizer, u_bands))' failed.
651 "ac_cv_c_fast_math=no"
652
d5a748e8
AE
653 ,(string-append "LDFLAGS=-Wl,-rpath -Wl,"
654 (assoc-ref %build-inputs "ffmpeg")
cd76fbde
LC
655 "/lib")) ;needed for the tests
656
657 #:phases
658 (modify-phases %standard-phases
a134cc8e
EF
659 (add-before 'configure 'remove-visual-tests
660 ;; Some of the tests require using the display to test out VLC,
661 ;; which fails in our sandboxed build system
662 (lambda _
663 (substitute* "test/run_vlc.sh"
664 (("./vlc --ignore-config") "echo"))
665 #t))
cd76fbde
LC
666 (add-after 'install 'regenerate-plugin-cache
667 (lambda* (#:key outputs #:allow-other-keys)
668 ;; The 'install-exec-hook' rule in the top-level Makefile.am
669 ;; generates 'lib/vlc/plugins/plugins.dat', a plugin cache, using
670 ;; 'vlc-cache-gen'. This file includes the mtime of the plugins
671 ;; it references. Thus, we first reset the timestamps of all
672 ;; these files, and then regenerate the cache such that the
673 ;; mtimes it includes are always zero instead of being dependent
674 ;; on the build time.
675 (let* ((out (assoc-ref outputs "out"))
676 (pkglibdir (string-append out "/lib/vlc"))
677 (plugindir (string-append pkglibdir "/plugins"))
678 (cachegen (string-append pkglibdir "/vlc-cache-gen")))
679 ;; TODO: Factorize 'reset-timestamps'.
680 (for-each (lambda (file)
681 (let ((s (lstat file)))
682 (unless (eq? (stat:type s) 'symlink)
683 (utime file 0 0 0 0))))
684 (find-files plugindir))
685 (zero? (system* cachegen plugindir))))))))
d5a748e8
AE
686 (home-page "https://www.videolan.org/")
687 (synopsis "Audio and video framework")
688 (description "VLC is a cross-platform multimedia player and framework
689that plays most multimedia files as well as DVD, Audio CD, VCD, and various
690treaming protocols.")
ae0bdd81 691 (license license:gpl2+)))
ace69243
AE
692
693(define-public mplayer
694 (package
695 (name "mplayer")
e71b20e5 696 (version "1.3.0")
ace69243
AE
697 (source (origin
698 (method url-fetch)
699 (uri (string-append
ebde7c7a 700 "https://www.mplayerhq.hu/MPlayer/releases/MPlayer-"
ace69243
AE
701 version ".tar.xz"))
702 (sha256
703 (base32
e71b20e5 704 "0hwqn04bdknb2ic88xd75smffxx63scvz0zvwvjb56nqj9n89l1s"))))
ace69243
AE
705 (build-system gnu-build-system)
706 ;; FIXME: Add additional inputs once available.
707 (native-inputs
708 `(("pkg-config" ,pkg-config)))
709 (inputs
710 `(("alsa-lib" ,alsa-lib)
711 ("cdparanoia" ,cdparanoia)
b3546174 712 ("ffmpeg" ,ffmpeg)
778a6a8b 713 ("fontconfig" ,fontconfig)
ace69243 714 ("freetype" ,freetype)
778a6a8b 715;; ("giflib" ,giflib) ; uses QuantizeBuffer, requires version >= 5
ace69243 716 ("lame" ,lame)
778a6a8b 717 ("libass" ,libass)
b3546174
MW
718 ("libdvdcss" ,libdvdcss)
719 ("libdvdnav" ,libdvdnav)
ace69243 720 ("libjpeg" ,libjpeg)
778a6a8b
EF
721 ("libmpeg2" ,libmpeg2)
722 ("libmpg123" ,mpg123) ; audio codec for MP3
ace69243
AE
723 ("libpng" ,libpng)
724 ("libtheora" ,libtheora)
778a6a8b 725 ("libvdpau" ,libvdpau)
ace69243
AE
726 ("libvorbis" ,libvorbis)
727 ("libx11" ,libx11)
778a6a8b 728 ("libx264" ,libx264)
ace69243
AE
729 ("libxinerama" ,libxinerama)
730 ("libxv" ,libxv)
778a6a8b 731 ("libxxf86dga" ,libxxf86dga)
ace69243 732 ("mesa" ,mesa)
778a6a8b 733 ("opus" ,opus)
ace69243
AE
734 ("perl" ,perl)
735 ("pulseaudio" ,pulseaudio)
736 ("python" ,python-wrapper)
737 ("sdl" ,sdl)
738 ("speex" ,speex)
739 ("yasm" ,yasm)
740 ("zlib" ,zlib)))
741 (arguments
742 `(#:tests? #f ; no test target
743 #:phases
ebde7c7a
EF
744 (modify-phases %standard-phases
745 (replace 'configure
ace69243
AE
746 ;; configure does not work followed by "SHELL=..." and
747 ;; "CONFIG_SHELL=..."; set environment variables instead
748 (lambda* (#:key inputs outputs #:allow-other-keys)
749 (let ((out (assoc-ref outputs "out"))
750 (libx11 (assoc-ref inputs "libx11")))
751 (substitute* "configure"
752 (("#! /bin/sh") (string-append "#!" (which "bash"))))
753 (setenv "SHELL" (which "bash"))
754 (setenv "CONFIG_SHELL" (which "bash"))
755 (zero? (system*
756 "./configure"
757 (string-append "--extra-cflags=-I"
758 libx11 "/include") ; to detect libx11
ebde7c7a 759 "--disable-ffmpeg_a" ; disables bundled ffmpeg
ace69243 760 (string-append "--prefix=" out)
fe138965
MW
761 ;; Enable runtime cpu detection where supported,
762 ;; and choose a suitable target.
763 ,@(match (or (%current-target-system)
764 (%current-system))
765 ("x86_64-linux"
766 '("--enable-runtime-cpudetection"
767 "--target=x86_64-linux"))
768 ("i686-linux"
769 '("--enable-runtime-cpudetection"
770 "--target=i686-linux"))
771 ("mips64el-linux"
f0d6d835
MW
772 '("--target=mips3-linux"))
773 (_ (list (string-append
774 "--target="
775 (or (%current-target-system)
776 (nix-system->gnu-triplet
777 (%current-system)))))))
ebde7c7a
EF
778 "--disable-iwmmxt"))))))))
779 (home-page "https://www.mplayerhq.hu/design7/news.html")
ace69243
AE
780 (synopsis "Audio and video player")
781 (description "MPlayer is a movie player. It plays most MPEG/VOB, AVI,
782Ogg/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, RealMedia, Matroska, NUT,
783NuppelVideo, FLI, YUV4MPEG, FILM, RoQ, PVA files. One can watch VideoCD,
784SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
ae0bdd81 785 (license license:gpl2)))
d0ed39be 786
1c1178cd
TUBK
787(define-public mpv
788 (package
789 (name "mpv")
b1223d1f 790 (version "0.19.0")
1c1178cd
TUBK
791 (source (origin
792 (method url-fetch)
793 (uri (string-append
794 "https://github.com/mpv-player/mpv/archive/v" version
795 ".tar.gz"))
796 (sha256
797 (base32
b1223d1f 798 "1qk7blpg64v47qfnvpgnbf413v5gzn900wmlivs727fd88cq3x9x"))
1c1178cd
TUBK
799 (file-name (string-append name "-" version ".tar.gz"))))
800 (build-system waf-build-system)
801 (native-inputs
802 `(("perl" ,perl)
803 ("pkg-config" ,pkg-config)
804 ("python-docutils" ,python-docutils)))
81c29ccc 805 ;; Missing features: libguess, Wayland, V4L2
1c1178cd
TUBK
806 (inputs
807 `(("alsa-lib" ,alsa-lib)
808 ("enca" ,enca)
809 ("ffmpeg" ,ffmpeg)
2d8781a4 810 ("jack" ,jack-1)
1c1178cd
TUBK
811 ("ladspa" ,ladspa)
812 ("lcms" ,lcms)
813 ("libass" ,libass)
814 ("libbluray" ,libbluray)
815 ("libcaca" ,libcaca)
816 ("libbs2b" ,libbs2b)
817 ("libcdio-paranoia" ,libcdio-paranoia)
818 ("libdvdread" ,libdvdread)
819 ("libdvdnav" ,libdvdnav)
820 ("libjpeg" ,libjpeg)
821 ("libva" ,libva)
81c29ccc 822 ("libvdpau" ,libvdpau)
1c1178cd
TUBK
823 ("libx11" ,libx11)
824 ("libxext" ,libxext)
825 ("libxinerama" ,libxinerama)
826 ("libxrandr" ,libxrandr)
827 ("libxscrnsaver" ,libxscrnsaver)
828 ("libxv" ,libxv)
829 ("lua" ,lua)
830 ("mesa" ,mesa)
831 ("mpg123" ,mpg123)
832 ("pulseaudio" ,pulseaudio)
833 ("rsound" ,rsound)
1c1178cd 834 ("vapoursynth" ,vapoursynth)
f0b8d83a 835 ("waf" ,python-waf)
1c1178cd
TUBK
836 ("youtube-dl" ,youtube-dl)
837 ("zlib" ,zlib)))
838 (arguments
839 '(#:phases
840 (modify-phases %standard-phases
841 (add-before
f8503e2b 842 'configure 'setup-waf
1c1178cd
TUBK
843 (lambda* (#:key inputs #:allow-other-keys)
844 (copy-file (assoc-ref inputs "waf") "waf")
599fd842 845 (setenv "CC" "gcc"))))
6cf83e3f 846 #:configure-flags (list "--enable-libmpv-shared" "--enable-zsh-comp")
1c1178cd
TUBK
847 ;; No check function defined.
848 #:tests? #f))
581873b5 849 (home-page "https://mpv.io/")
1c1178cd
TUBK
850 (synopsis "Audio and video player")
851 (description "mpv is a general-purpose audio and video player. It is a
852fork of mplayer2 and MPlayer. It shares some features with the former
853projects while introducing many more.")
ae0bdd81 854 (license license:gpl2+)))
1c1178cd 855
0e74bb5b
AG
856(define-public gnome-mpv
857 (package
858 (name "gnome-mpv")
2ebc5ad6 859 (version "0.10")
0e74bb5b
AG
860 (source
861 (origin
862 (method url-fetch)
863 (uri (string-append "https://github.com/gnome-mpv/gnome-mpv/releases"
864 "/download/v" version "/gnome-mpv-" version
865 ".tar.xz"))
866 (sha256
867 (base32
2ebc5ad6 868 "10zizf926a82c753a80bi49rb5c4yqjyd6zin4xgmggspfxngncj"))))
0e74bb5b
AG
869 (native-inputs
870 `(("intltool" ,intltool)
871 ("pkg-config" ,pkg-config)))
872 (inputs
873 `(("gtk+" ,gtk+)
874 ("libepoxy" ,libepoxy)
875 ("mpv" ,mpv)))
876 (build-system glib-or-gtk-build-system)
877 (home-page "https://github.com/gnome-mpv/gnome-mpv")
878 (synopsis "GTK+ frontend for the mpv media player")
879 (description "GNOME MPV is a simple GTK+ frontend for the mpv media player.
880GNOME MPV interacts with mpv via the client API exported by libmpv, allowing
881access to mpv's powerful playback capabilities.")
882 (license license:gpl3+)))
883
d0ed39be
DT
884(define-public libvpx
885 (package
886 (name "libvpx")
fb197c0d 887 (version "1.5.0")
d0ed39be
DT
888 (source (origin
889 (method url-fetch)
723e8866
MW
890 (uri (string-append "http://storage.googleapis.com/"
891 "downloads.webmproject.org/releases/webm/"
892 name "-" version ".tar.bz2"))
d0ed39be
DT
893 (sha256
894 (base32
c7c49446
MW
895 "15v7qw0ydyxn08ksb6lxn1l51pxgpwgshdwd3275yrr5hs86fv9h"))
896 (patches (search-patches "libvpx-CVE-2016-2818.patch"))))
d0ed39be
DT
897 (build-system gnu-build-system)
898 (arguments
0e47b4e7
EF
899 `(#:phases
900 (modify-phases %standard-phases
901 (replace 'configure
902 (lambda* (#:key outputs #:allow-other-keys)
903 (setenv "CONFIG_SHELL" (which "bash"))
904 (let ((out (assoc-ref outputs "out")))
905 (setenv "LDFLAGS"
906 (string-append "-Wl,-rpath=" out "/lib"))
907 (zero? (system* "./configure"
908 "--enable-shared"
909 "--as=yasm"
910 ;; Limit size to avoid CVE-2015-1258
911 "--size-limit=16384x16384"
912 (string-append "--prefix=" out)))))))
4f8f15cd 913 #:tests? #f)) ; no check target
d0ed39be
DT
914 (native-inputs
915 `(("perl" ,perl)
916 ("yasm" ,yasm)))
917 (synopsis "VP8/VP9 video codec")
918 (description "libvpx is a codec for the VP8/VP9 video compression format.")
ae0bdd81 919 (license license:bsd-3)
d0ed39be 920 (home-page "http://www.webmproject.org/")))
615215a5
LC
921
922(define-public youtube-dl
923 (package
924 (name "youtube-dl")
2a69d4df 925 (version "2016.07.22")
615215a5
LC
926 (source (origin
927 (method url-fetch)
feb5c554 928 (uri (string-append "https://youtube-dl.org/downloads/"
615215a5
LC
929 version "/youtube-dl-"
930 version ".tar.gz"))
931 (sha256
932 (base32
2a69d4df 933 "02wcxpcbpvsbvyxcnhhf94ma0x5dcg4fygnxxca2h31dp47dkak9"))))
615215a5 934 (build-system python-build-system)
feb5c554 935 (home-page "https://youtube-dl.org")
2ad9515c
AV
936 (arguments
937 ;; The problem here is that the directory for the man page and completion
938 ;; files is relative, and for some reason, setup.py uses the
939 ;; auto-detected sys.prefix instead of the user-defined "--prefix=FOO".
940 ;; So, we need pass the prefix directly. In addition, make sure the Bash
941 ;; completion file is called 'youtube-dl' rather than
942 ;; 'youtube-dl.bash-completion'.
943 `(#:phases (modify-phases %standard-phases
944 (add-before 'install 'fix-the-data-directories
945 (lambda* (#:key outputs #:allow-other-keys)
946 (let ((prefix (assoc-ref outputs "out")))
947 (mkdir "bash-completion")
948 (rename-file "youtube-dl.bash-completion"
949 "bash-completion/youtube-dl")
950 (substitute* "setup.py"
951 (("youtube-dl\\.bash-completion")
952 "bash-completion/youtube-dl")
953 (("'etc/")
954 (string-append "'" prefix "/etc/"))
955 (("'share/")
956 (string-append "'" prefix "/share/")))))))))
615215a5
LC
957 (synopsis "Download videos from YouTube.com and other sites")
958 (description
b798dfde 959 "Youtube-dl is a small command-line program to download videos from
615215a5 960YouTube.com and a few more sites.")
ae0bdd81 961 (license license:public-domain)))
e6bdb36a 962
5d3609e4
TUBK
963(define-public libbluray
964 (package
965 (name "libbluray")
5e3f68e6 966 (version "0.9.3")
5d3609e4
TUBK
967 (source (origin
968 (method url-fetch)
5e3f68e6 969 (uri (string-append "https://download.videolan.org/videolan/"
5d3609e4
TUBK
970 name "/" version "/"
971 name "-" version ".tar.bz2"))
972 (sha256
973 (base32
5e3f68e6 974 "1q1whviqv5sr9nr372h31zwid1rvbfbx3z4lzr8lnj25xha6cdm6"))))
5d3609e4 975 (build-system gnu-build-system)
2da45ebe
EF
976 (arguments `(#:configure-flags '("--disable-bdjava")))
977 (native-inputs `(("pkg-config" ,pkg-config)))
5d3609e4 978 (inputs
71ee51a0 979 `(("fontconfig" ,fontconfig)
5d3609e4 980 ("freetype" ,freetype)
71ee51a0 981 ("libxml2" ,libxml2)))
5e3f68e6 982 (home-page "https://www.videolan.org/developers/libbluray.html")
5d3609e4
TUBK
983 (synopsis "Blu-Ray Disc playback library")
984 (description
985 "libbluray is a library designed for Blu-Ray Disc playback for media
986players, like VLC or MPlayer.")
ae0bdd81 987 (license license:lgpl2.1+)))
5d3609e4 988
e6bdb36a
AE
989(define-public libdvdread
990 (package
991 (name "libdvdread")
9aebf330 992 (version "5.0.3")
e6bdb36a
AE
993 (source (origin
994 (method url-fetch)
995 (uri (string-append "http://download.videolan.org/videolan/"
996 name "/" version "/"
997 name "-" version ".tar.bz2"))
998 (sha256
999 (base32
9aebf330 1000 "0ayqiq0psq18rcp6f5pz82sxsq66v0kwv0y55dbrcg68plnxy71j"))))
e6bdb36a
AE
1001 (build-system gnu-build-system)
1002 (home-page "http://dvdnav.mplayerhq.hu/")
1003 (synopsis "Library for reading video DVDs")
1004 (description
1005 "Libdvdread provides a simple foundation for reading DVD video
1006disks. It provides the functionality that is required to access many
1007DVDs. It parses IFO files, reads NAV-blocks, and performs CSS
1008authentication and descrambling (if an external libdvdcss library is
1009installed).")
ae0bdd81 1010 (license license:gpl2+)))
b027d919
AE
1011
1012(define-public libdvdnav
1013 (package
1014 (name "libdvdnav")
734976b6 1015 (version "5.0.3")
b027d919
AE
1016 (source (origin
1017 (method url-fetch)
1018 (uri (string-append "http://download.videolan.org/videolan/"
1019 name "/" version "/"
1020 name "-" version ".tar.bz2"))
1021 (sha256
1022 (base32
734976b6 1023 "0v8byv5z598k06rqzdmj7739vc86xq3zf79zfr698dib7lz055sh"))))
b027d919
AE
1024 (build-system gnu-build-system)
1025 (native-inputs
1026 `(("pkg-config" ,pkg-config)))
1027 (inputs
1028 `(("libdvdread" ,libdvdread)))
1029 (home-page "http://dvdnav.mplayerhq.hu/")
1030 (synopsis "Library for video DVD navigation features")
1031 (description
1032 "Libdvdnav is a library for developers of multimedia
1033applications. It allows easy use of sophisticated DVD navigation features
1034such as DVD menus, multiangle playback and even interactive DVD games. All
1035this functionality is provided through a simple API which provides the DVD
1036playback as a single logical stream of blocks, intermitted by special
1037dvdnav events to report certain conditions. The main usage of libdvdnav is
1038a loop regularly calling a function to get the next block, surrounded by
1039additional calls to tell the library of user interaction. The whole
1040DVD virtual machine and internal playback states are completely
1041encapsulated.")
ae0bdd81 1042 (license license:gpl2+)))
2cd85cf9 1043
f1044010
TUBK
1044(define-public libdvdnav-4
1045 (package
1046 (inherit libdvdnav)
1047 (version "4.2.1")
1048 (source (origin
1049 (method url-fetch)
1050 (uri
1051 (string-append
1052 "http://download.videolan.org/videolan/libdvdnav/libdvdnav-"
1053 version ".tar.xz"))
1054 (sha256
1055 (base32
1056 "0wi3gy408c8xj0ism0hckv5jbfh3lg4pmgxv87gbch9jrhp2gjkz"))))
1057 (native-inputs
1058 `(("pkg-config" ,pkg-config)
1059 ("autoconf" ,autoconf)
1060 ("automake" ,automake)
1061 ("libtool" ,libtool)))
1062 (arguments
1063 '(#:phases
1064 (alist-cons-after
1065 'unpack 'autoreconf
1066 (lambda _
1067 (zero? (system* "autoreconf" "-vif")))
1068 %standard-phases)))))
1069
a6f710ec
TUBK
1070(define-public libdvdcss
1071 (package
1072 (name "libdvdcss")
98416109 1073 (version "1.4.0")
a6f710ec
TUBK
1074 (source (origin
1075 (method url-fetch)
98416109 1076 (uri (string-append "http://download.videolan.org/pub/"
a6f710ec
TUBK
1077 name "/" version "/"
1078 name "-" version ".tar.bz2"))
1079 (sha256
1080 (base32
98416109 1081 "0nl45ifc4xcb196snv9d6hinfw614cqpzcqp92dg43c0hickg290"))))
a6f710ec
TUBK
1082 (build-system gnu-build-system)
1083 (home-page "http://www.videolan.org/developers/libdvdcss.html")
1084 (synopsis "Library for accessing DVDs as block devices")
1085 (description
1086 "libdvdcss is a simple library designed for accessing DVDs like a block
1087device without having to bother about the decryption.")
ae0bdd81 1088 (license license:gpl2+)))
a6f710ec 1089
2cd85cf9
DT
1090(define-public srt2vtt
1091 (package
1092 (name "srt2vtt")
1093 (version "0.1")
1094 (source (origin
1095 (method url-fetch)
1096 (uri (string-append
1097 "http://dthompson.us/releases/srt2vtt/srt2vtt-"
1098 version ".tar.gz"))
1099 (sha256
1100 (base32
1101 "16b377znjm6qlga5yb8aj7b7bcisa1ghcnj2lrb1d30lvxp4liif"))))
1102 (build-system gnu-build-system)
1103 (inputs
1104 `(("guile" ,guile-2.0)))
1105 (synopsis "SubRip to WebVTT subtitle converter")
1106 (description "srt2vtt converts SubRip formatted subtitles to WebVTT format
1107for use with HTML5 video.")
1108 (home-page "http://dthompson.us/pages/software/srt2vtt")
ae0bdd81 1109 (license license:gpl3+)))
44726031
AE
1110
1111(define-public avidemux
1112 (package
1113 (name "avidemux")
9e786e8b 1114 (version "2.6.12")
44726031
AE
1115 (source (origin
1116 (method url-fetch)
1117 (uri (string-append
de67e922
LF
1118 "mirror://sourceforge/" name "/" name "/" version "/"
1119 name "_" version ".tar.gz"))
44726031
AE
1120 (sha256
1121 (base32
9e786e8b 1122 "0nz52yih8sff53inndkh2dba759xjzsh4b8xjww419lcpk0qp6kn"))
fc1adab1 1123 (patches (search-patches "avidemux-install-to-lib.patch"))))
44726031
AE
1124 (build-system cmake-build-system)
1125 (native-inputs
1126 `(("pkg-config" ,pkg-config)))
1127 ;; FIXME: Once packaged, add libraries not found during the build.
1128 (inputs
1129 `(("alsa-lib" ,alsa-lib)
1130 ("fontconfig" ,fontconfig)
1131 ("freetype" ,freetype)
1132 ("fribidi" ,fribidi)
1133 ("glu" ,glu)
44726031
AE
1134 ("jack" ,jack-1)
1135 ("lame" ,lame)
4cafe8ad
EF
1136 ("libva" ,libva)
1137 ("libvdpau" ,libvdpau)
44726031
AE
1138 ("libvorbis" ,libvorbis)
1139 ("libvpx" ,libvpx)
1140 ("libxv" ,libxv)
1141 ("perl" ,perl)
1142 ("pulseaudio" ,pulseaudio)
1143 ("python" ,python-wrapper)
64e8be67
EF
1144 ("qtbase" ,qtbase)
1145 ("qttools" ,qttools)
44726031
AE
1146 ("sdl" ,sdl)
1147 ("sqlite" ,sqlite)
1148 ("yasm" ,yasm)
1149 ("zlib" ,zlib)))
1150 (arguments
1151 `(#:tests? #f ; no check target
1152 #:phases
1153 ;; Make sure files inside the included ffmpeg tarball are
1154 ;; patch-shebanged.
1898900f
EF
1155 (modify-phases %standard-phases
1156 (add-before 'patch-source-shebangs 'unpack-ffmpeg
44726031
AE
1157 (lambda _
1158 (with-directory-excursion "avidemux_core/ffmpeg_package"
1898900f
EF
1159 (system* "tar" "xf" "ffmpeg-2.7.6.tar.bz2")
1160 (delete-file "ffmpeg-2.7.6.tar.bz2"))))
1161 (add-after 'patch-source-shebangs 'repack-ffmpeg
44726031
AE
1162 (lambda _
1163 (with-directory-excursion "avidemux_core/ffmpeg_package"
9e786e8b 1164 (substitute* "ffmpeg-2.7.6/configure"
44726031 1165 (("#! /bin/sh") (string-append "#!" (which "bash"))))
9e786e8b 1166 (system* "tar" "cjf" "ffmpeg-2.7.6.tar.bz2" "ffmpeg-2.7.6"
c09e6a5f 1167 ;; avoid non-determinism in the archive
92226a47
MW
1168 "--sort=name" "--mtime=@0"
1169 "--owner=root:0" "--group=root:0")
1898900f
EF
1170 (delete-file-recursively "ffmpeg-2.7.6"))))
1171 (replace 'configure
1172 (lambda _
1173 ;; Copy-paste settings from the cmake build system.
1174 (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH"))
1175 (setenv "CMAKE_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))))
1176 (replace 'build
1177 (lambda* (#:key inputs outputs #:allow-other-keys)
1178 (let*
1179 ((out (assoc-ref outputs "out"))
1180 (lib (string-append out "/lib"))
1181 (top (getcwd))
1182 (sdl (assoc-ref inputs "sdl"))
1183 (build_component
1184 (lambda* (component srcdir #:optional (args '()))
1185 (let ((builddir (string-append "build_" component)))
1186 (mkdir builddir)
1187 (with-directory-excursion builddir
1188 (zero?
1189 (and
44726031
AE
1190 (apply system* "cmake"
1191 "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE"
1192 (string-append "-DCMAKE_INSTALL_PREFIX=" out)
1193 (string-append "-DCMAKE_INSTALL_RPATH=" lib)
c687f731
AE
1194 (string-append "-DCMAKE_SHARED_LINKER_FLAGS="
1195 "\"-Wl,-rpath=" lib "\"")
44726031
AE
1196 (string-append "-DAVIDEMUX_SOURCE_DIR=" top)
1197 (string-append "-DSDL_INCLUDE_DIR="
1198 sdl "/include/SDL")
1199 (string-append "../" srcdir)
aab56ab7 1200 "-DENABLE_QT5=True"
44726031 1201 args)
1898900f
EF
1202 (system* "make" "-j"
1203 (number->string (parallel-job-count)))
1204 (system* "make" "install"))))))))
1205 (mkdir out)
1206 (and (build_component "core" "avidemux_core")
1207 (build_component "cli" "avidemux/cli")
1208 (build_component "qt4" "avidemux/qt4")
1209 (build_component "plugins_common" "avidemux_plugins"
1210 '("-DPLUGIN_UI=COMMON"))
1211 (build_component "plugins_cli" "avidemux_plugins"
1212 '("-DPLUGIN_UI=CLI"))
1213 (build_component "plugins_qt4" "avidemux_plugins"
1214 '("-DPLUGIN_UI=QT4"))
1215 (build_component "plugins_settings" "avidemux_plugins"
1216 '("-DPLUGIN_UI=SETTINGS")))
1217 ;; Remove .exe and .dll file.
1218 (delete-file-recursively
1219 (string-append out "/share/ADM6_addons")))))
1220 (delete 'install))))
44726031
AE
1221 (home-page "http://fixounet.free.fr/avidemux/")
1222 (synopsis "Video editor")
1223 (description "Avidemux is a video editor designed for simple cutting,
1224filtering and encoding tasks. It supports many file types, including AVI,
1225DVD compatible MPEG files, MP4 and ASF, using a variety of codecs. Tasks
1226can be automated using projects, job queue and powerful scripting
1227capabilities.")
1228 ;; Software with various licenses is included, see License.txt.
ae0bdd81 1229 (license license:gpl2+)))
44726031 1230
6f6c8b65
TUBK
1231(define-public vapoursynth
1232 (package
1233 (name "vapoursynth")
f80d5fe0 1234 (version "32")
6f6c8b65
TUBK
1235 (source (origin
1236 (method url-fetch)
1237 (uri (string-append
1238 "https://github.com/vapoursynth/vapoursynth/archive/R"
1239 version ".tar.gz"))
f673552c 1240 (file-name (string-append name "-" version))
6f6c8b65
TUBK
1241 (sha256
1242 (base32
f80d5fe0 1243 "1j08whj946v2kkpgxsfhpca8xf0ax9iqzn73wvwjx319p9j0ymp9"))))
6f6c8b65
TUBK
1244 (build-system gnu-build-system)
1245 (native-inputs
1246 `(("autoconf" ,autoconf)
1247 ("automake" ,automake)
1248 ("cython" ,python-cython)
1249 ("libtool" ,libtool)
1250 ("pkg-config" ,pkg-config)
1251 ("python" ,python)
1252 ("yasm" ,yasm)))
1253 (inputs
1254 `(("ffmpeg" ,ffmpeg)
1255 ("libass" ,libass)
f80d5fe0
EF
1256 ("tesseract-ocr" ,tesseract-ocr)
1257 ("zimg" ,zimg)))
6f6c8b65
TUBK
1258 (arguments
1259 '(#:phases
1260 (modify-phases %standard-phases
1261 (add-after
f8503e2b 1262 'unpack 'autogen
6f6c8b65
TUBK
1263 (lambda _
1264 (zero? (system* "sh" "autogen.sh")))))))
1265 (home-page "http://www.vapoursynth.com/")
1266 (synopsis "Video processing framework")
1267 (description "VapourSynth is a C++ library and Python module for video
1268manipulation. It aims to be a modern rewrite of Avisynth, supporting
1269multithreading, generalized colorspaces, per frame properties, and videos with
1270format changes.")
1271 ;; As seen from the source files.
ae0bdd81 1272 (license license:lgpl2.1+)))
6f6c8b65 1273
67932f86
TUBK
1274(define-public xvid
1275 (package
1276 (name "xvid")
e05035c7 1277 (version "1.3.4")
67932f86
TUBK
1278 (source (origin
1279 (method url-fetch)
1280 (uri (string-append
1281 "http://downloads.xvid.org/downloads/xvidcore-"
1282 version ".tar.bz2"))
1283 (sha256
1284 (base32
e05035c7 1285 "1xwbmp9wqshc0ckm970zdpi0yvgqxlqg0s8bkz98mnr8p2067bsz"))))
67932f86
TUBK
1286 (build-system gnu-build-system)
1287 (native-inputs `(("yasm" ,yasm)))
1288 (arguments
1289 '(#:phases
62fe2d47
EF
1290 (modify-phases %standard-phases
1291 (add-before
1292 'configure 'pre-configure
1293 (lambda _
1294 (chdir "build/generic")
1295 (substitute* "configure"
1296 (("#! /bin/sh") (string-append "#!" (which "sh")))))))
67932f86
TUBK
1297 ;; No 'check' target.
1298 #:tests? #f))
1299 (home-page "https://www.xvid.com/")
1300 (synopsis "MPEG-4 Part 2 Advanced Simple Profile video codec")
1301 (description "Xvid is an MPEG-4 Part 2 Advanced Simple Profile (ASP) video
1302codec library. It uses ASP features such as b-frames, global and quarter
1303pixel motion compensation, lumi masking, trellis quantization, and H.263, MPEG
1304and custom quantization matrices.")
ae0bdd81 1305 (license license:gpl2+)))
e16fde14
DT
1306
1307(define-public livestreamer
1308 (package
1309 (name "livestreamer")
68e88a09 1310 (version "1.12.2")
e16fde14
DT
1311 (source (origin
1312 (method url-fetch)
1313 (uri (string-append
1314 "https://github.com/chrippa/livestreamer/archive/v"
1315 version ".tar.gz"))
1316 (file-name (string-append "livestreamer-" version ".tar.gz"))
1317 (sha256
1318 (base32
68e88a09 1319 "1fp3d3z2grb1ls97smjkraazpxnvajda2d1g1378s6gzmda2jvjd"))))
e16fde14
DT
1320 (build-system python-build-system)
1321 (arguments
1322 '(#:tests? #f)) ; tests rely on external web servers
e16fde14 1323 (propagated-inputs
5b9fe59f 1324 `(("python-requests" ,python-requests)))
e16fde14
DT
1325 (synopsis "Internet video stream viewer")
1326 (description "Livestreamer is a command-line utility that extracts streams
1327from various services and pipes them into a video playing application.")
1328 (home-page "http://livestreamer.io/")
1329 (license license:bsd-2)))
307ad140
RW
1330
1331(define-public mlt
1332 (package
1333 (name "mlt")
4c7729dc 1334 (version "6.2.0")
307ad140
RW
1335 (source (origin
1336 (method url-fetch)
4c7729dc
EF
1337 (uri (string-append "https://github.com/mltframework/mlt/"
1338 "archive/v" version ".tar.gz"))
1339 (file-name (string-append name "-" version ".tar.gz"))
307ad140
RW
1340 (sha256
1341 (base32
4c7729dc 1342 "1zwzfgxrcbwkxnkiwv0a1rzxdnnaly90yyarl9wdw84nx11ffbnx"))))
307ad140
RW
1343 (build-system gnu-build-system)
1344 (arguments
1345 `(#:tests? #f ; no tests
1346 #:make-flags '("CC=gcc")
1347 #:configure-flags
1348 (list "--enable-gpl3"
1349 "--enable-gpl")
1350 #:phases
1351 (modify-phases %standard-phases
1352 (add-after
1353 'configure 'override-LDFLAGS
1354 (lambda* (#:key outputs #:allow-other-keys)
1355 (substitute* "config.mak"
1356 (("LDFLAGS\\+=")
1357 (string-append "LDFLAGS+=-Wl,-rpath="
1358 (assoc-ref outputs "out")
1359 "/lib ")))
1360 #t)))))
1361 (inputs
1362 `(("alsa-lib" ,alsa-lib)
1363 ("fftw" ,fftw)
1364 ("libxml2" ,libxml2)
1365 ("jack" ,jack-1)
1366 ("ladspa" ,ladspa)
1367 ("libsamplerate" ,libsamplerate)
4c7729dc 1368 ("pulseaudio" ,pulseaudio)
307ad140
RW
1369 ("sdl" ,sdl)
1370 ("sox" ,sox)))
1371 (native-inputs
1372 `(("pkg-config" ,pkg-config)))
4c7729dc 1373 (home-page "https://www.mltframework.org/")
307ad140
RW
1374 (synopsis "Author, manage, and run multitrack audio/video compositions")
1375 (description
1376 "MLT is a multimedia framework, designed and developed for television
1377broadcasting. It provides a toolkit for broadcasters, video editors, media
1378players, transcoders, web streamers and many more types of applications. The
1379functionality of the system is provided via an assortment of ready to use
1380tools, XML authoring components, and an extensible plug-in based API.")
1381 (license license:lgpl2.1+)))
f464016d 1382
945d985a
DT
1383(define-public v4l-utils
1384 (package
1385 (name "v4l-utils")
9a5c0320 1386 (version "1.10.1")
945d985a
DT
1387 (source (origin
1388 (method url-fetch)
1d4ac724 1389 (uri (string-append "https://linuxtv.org/downloads/v4l-utils"
945d985a
DT
1390 "/v4l-utils-" version ".tar.bz2"))
1391 (sha256
1392 (base32
9a5c0320 1393 "1h1nhg5cmmzlbipak526nk4bm6d0yb217mll75f3rpg7kz1cqiv1"))))
945d985a
DT
1394 (build-system gnu-build-system)
1395 (arguments
1396 '(#:configure-flags
1397 (list (string-append "--with-udevdir="
1398 (assoc-ref %outputs "out")
1399 "/lib/udev"))))
1400 (native-inputs
1401 `(("pkg-config" ,pkg-config)))
1402 (inputs
1403 `(("alsa-lib" ,alsa-lib)
1404 ("glu" ,glu)
1405 ("libjpeg" ,libjpeg)
1406 ("libx11" ,libx11)
b37662e2 1407 ("qtbase" ,qtbase)
945d985a
DT
1408 ("eudev" ,eudev)))
1409 (synopsis "Realtime video capture utilities for Linux")
1410 (description "The v4l-utils provide a series of libraries and utilities to
1411be used for realtime video capture via Linux-specific APIs.")
1412 (home-page "https://linuxtv.org/wiki/index.php/V4l-utils")
1413 ;; libv4l2 is LGPL2.1+, while utilities are GPL2 only.
1414 (license (list license:lgpl2.1+ license:gpl2))))
1415
f464016d
DT
1416(define-public obs
1417 (package
1418 (name "obs")
91b2296b 1419 (version "0.15.4")
f464016d
DT
1420 (source (origin
1421 (method url-fetch)
1422 (uri (string-append "https://github.com/jp9000/obs-studio"
1423 "/archive/" version ".tar.gz"))
1424 (file-name (string-append name "-" version ".tar.gz"))
1425 (sha256
1426 (base32
91b2296b 1427 "11bqk0jpp8fp24j0rkjgrv3fdi3xnjyk4wq55j803cg84mn4zsp0"))))
f464016d 1428 (build-system cmake-build-system)
08858812
EF
1429 (arguments
1430 `(#:tests? #f ; no tests
1431 ,@(if (any (cute string-prefix? <> (or (%current-target-system)
1432 (%current-system)))
1433 '("arm" "mips"))
1434 '(#:phases
1435 (modify-phases %standard-phases
1436 (add-after 'unpack 'remove-architecture-specific-instructions
1437 ;; non-Intel platforms fail to build with the architecture
1438 ;; specific compiler flags included by default.
1439 (lambda _
1440 (substitute* "libobs/CMakeLists.txt"
1441 (("if\\(NOT MSVC\\)") "if(MSVC)"))
1442 #t))))
1443 '())))
f464016d
DT
1444 (native-inputs
1445 `(("pkg-config" ,pkg-config)))
1446 (inputs
1447 `(("curl" ,curl)
1448 ("eudev" ,eudev)
1449 ("ffmpeg" ,ffmpeg)
1450 ("freetype" ,freetype)
1451 ("jack" ,jack-1)
1452 ("jansson" ,jansson)
1453 ("libx264" ,libx264)
1454 ("libxcomposite" ,libxcomposite)
1455 ("mesa" ,mesa)
1456 ("pulseaudio" ,pulseaudio)
90a2309b
EF
1457 ("qtbase" ,qtbase)
1458 ("qtx11extras" ,qtx11extras)
d4df2032 1459 ("v4l-utils" ,v4l-utils)
f464016d
DT
1460 ("zlib" ,zlib)))
1461 (synopsis "Live streaming software")
1462 (description "Open Broadcaster Software provides a graphical interface for
1463video recording and live streaming. OBS supports capturing audio and video
1464from many input sources such as webcams, X11 (for screencasting), PulseAudio,
1465and JACK.")
1466 (home-page "https://obsproject.com")
1467 (license license:gpl2+)))
d5650f86
EF
1468
1469(define-public libvdpau
1470 (package
1471 (name "libvdpau")
1472 (version "1.1.1")
1473 (source
1474 (origin
1475 (method url-fetch)
1476 (uri (string-append "https://secure.freedesktop.org/~aplattner/vdpau/"
1477 name "-" version ".tar.bz2"))
1478 (sha256
1479 (base32
1480 "0dnpb0yh7v6rvckx82kxg045rd9rbsw25wjv7ad5n8h94s9h2yl5"))))
1481 (build-system gnu-build-system)
1482 (native-inputs
1483 `(("pkg-config" ,pkg-config)))
1484 (inputs
1485 `(("dri2proto" ,dri2proto)
1486 ("libx11" ,libx11 "out")
1487 ("libxext" ,libxext)))
1488 (home-page "https://wiki.freedesktop.org/www/Software/VDPAU/")
1489 (synopsis "Video Decode and Presentation API")
1490 (description "VDPAU is the Video Decode and Presentation API for UNIX. It
1491provides an interface to video decode acceleration and presentation hardware
1492present in modern GPUs.")
1493 (license (license:x11-style "file://COPYING"))))
3161d32d
EF
1494
1495(define-public vdpauinfo
1496 (package
1497 (name "vdpauinfo")
1498 (version "1.0")
1499 (source
1500 (origin
1501 (method url-fetch)
1502 (uri (string-append "https://secure.freedesktop.org/~aplattner/vdpau/"
1503 name "-" version ".tar.gz"))
1504 (sha256
1505 (base32
1506 "1i2b0k9h8r0lnxlrkgqzmrjakgaw3f1ygqqwzx8w6676g85rcm20"))))
1507 (build-system gnu-build-system)
1508 (native-inputs
1509 `(("pkg-config" ,pkg-config)
1510 ("libx11" ,libx11)))
1511 (propagated-inputs
1512 `(("libvdpau" ,libvdpau)))
1513 (home-page "https://wiki.freedesktop.org/www/Software/VDPAU/")
1514 (synopsis "Tool to query the capabilities of a VDPAU implementation")
1515 (description "Vdpauinfo is a tool to query the capabilities of a VDPAU
1516implementation.")
1517 (license (license:x11-style "file://COPYING"))))
a7d94b54
LC
1518
1519(define-public recordmydesktop
1520 (package
1521 (name "recordmydesktop")
1522 (version "0.3.8.1")
1523 (source (origin
1524 (method url-fetch)
1525 (uri (string-append "mirror://sourceforge/" name "/" name "/"
1526 version "/recordmydesktop-" version ".tar.gz"))
1527 (sha256
1528 (base32
1529 "133kkl5j0r877d41bzj7kj0vf3xm8x80yyx2n8nqxrva304f58ik"))))
1530 (build-system gnu-build-system)
1531 (inputs `(("popt" ,popt)
1532 ("zlib" ,zlib)
1533 ("libx11" ,libx11)
1534 ("libice" ,libice)
1535 ("libsm" ,libsm)
1536 ("libxfixes" ,libxfixes)
1537 ("libxdamage" ,libxdamage)
1538 ("libxext" ,libxext)
ed6ba9cc 1539 ("alsa-lib" ,alsa-lib)
a7d94b54
LC
1540 ("libvorbis" ,libvorbis)
1541 ("libtheora" ,libtheora)))
1542 (home-page "http://recordmydesktop.sourceforge.net/")
1543 (synopsis "Desktop session video recorder")
1544 (description
1545 "recordMyDesktop is a command-line tool that captures the activity in
1546your graphical desktop and encodes it as a video. This is a useful tool for
1547making @dfn{screencasts}.")
1548 (license license:gpl2+)))
d8841cc5
KK
1549
1550(define-public libsmpeg
1551 (package
1552 (name "libsmpeg")
1553 (version "0.4.5")
1554 (source (origin
1555 (method svn-fetch)
1556 (uri (svn-reference
1557 (url "svn://svn.icculus.org/smpeg/trunk/")
1558 (revision 401))) ; last revision before smpeg2 (for SDL 2.0)
1559 (sha256
1560 (base32
1561 "18yfkr70lr1x1hc8snn2ldnbzdcc7b64xmkqrfk8w59gpg7sl1xn"))))
1562 (build-system gnu-build-system)
1563 (arguments
1564 `(#:phases (modify-phases %standard-phases
1565 (add-after 'unpack 'autogen.sh
1566 (lambda _
1567 (zero? (system* "sh" "autogen.sh")))))))
1568 (native-inputs
1569 `(("autoconf" ,autoconf)
1570 ("automake" ,automake)))
1571 (inputs
1572 `(("sdl" ,sdl2)))
1573 (home-page "http://icculus.org/smpeg/")
1574 (synopsis "SDL MPEG decoding library")
1575 (description
1576 "SMPEG (SDL MPEG Player Library) is a free MPEG1 video player library
1577with sound support. Video playback is based on the ubiquitous Berkeley MPEG
1578player, mpeg_play v2.2. Audio is played through a slightly modified mpegsound
1579library, part of splay v0.8.2. SMPEG supports MPEG audio (MP3), MPEG-1 video,
1580and MPEG system streams.")
1581 (license (list license:expat
1582 license:lgpl2.1
1583 license:lgpl2.1+
1584 license:gpl2))))