X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/084e41c1ac0ba3d37426ef71ecf6e7dab0c1ffdb..feb5c554036f65386a5474b0e6fdcd375988208b:/gnu/packages/video.scm diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 80b21e0294..b447557d70 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1,11 +1,12 @@ ;;; GNU Guix --- Functional package management for GNU -;;; Copyright © 2013, 2014, 2015 Andreas Enge -;;; Copyright © 2014, 2015 David Thompson -;;; Copyright © 2014, 2015 Mark H Weaver +;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge +;;; Copyright © 2014, 2015, 2016 David Thompson +;;; Copyright © 2014, 2015, 2016 Mark H Weaver ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer -;;; Copyright © 2015 Efraim Flashner +;;; Copyright © 2015, 2016 Efraim Flashner ;;; Copyright © 2015 Andy Patterson ;;; Copyright © 2015 Ricardo Wurmus +;;; Copyright © 2015 Alex Vong ;;; ;;; This file is part of GNU Guix. ;;; @@ -41,8 +42,8 @@ #:use-module (gnu packages base) #:use-module (gnu packages cdrom) #:use-module (gnu packages compression) + #:use-module (gnu packages curl) #:use-module (gnu packages databases) - #:use-module (gnu packages doxygen) #:use-module (gnu packages elf) #:use-module (gnu packages fontutils) #:use-module (gnu packages fribidi) @@ -61,14 +62,13 @@ #:use-module (gnu packages ocr) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages popt) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages qt) - #:use-module (gnu packages samba) #:use-module (gnu packages sdl) #:use-module (gnu packages ssh) #:use-module (gnu packages texinfo) - #:use-module (gnu packages texlive) #:use-module (gnu packages textutils) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) @@ -133,10 +133,10 @@ old-fashioned output methods with powerful ascii-art renderer.") (sha256 (base32 "0czccp4fcpf2ykp16xcrzdfmnircz1ynhls334q374xknd5747d2")) - (patches (map search-patch '("liba52-enable-pic.patch" - "liba52-set-soname.patch" - "liba52-use-mtune-not-mcpu.patch" - "liba52-link-with-libm.patch"))))) + (patches (search-patches "liba52-enable-pic.patch" + "liba52-set-soname.patch" + "liba52-use-mtune-not-mcpu.patch" + "liba52-link-with-libm.patch")))) (build-system gnu-build-system) ;; XXX We need to run ./bootstrap because of the build system fixes above. (native-inputs @@ -188,14 +188,14 @@ television and DVD. It is also known as AC-3.") (define-public libx264 (package (name "libx264") - (version "20150706-2245") + (version "20160220-2245") (source (origin (method url-fetch) - (uri (string-append "ftp://ftp.videolan.org/pub/x264/snapshots/" + (uri (string-append "http://download.videolan.org/pub/x264/snapshots/" "x264-snapshot-" version ".tar.bz2")) (sha256 (base32 - "0v04xq25q66gsk78i4kryy7503ki87jxbhln2c0qpvyy0d47p466")))) + "12zyzbiihfhamf7yi4qqaj6k0nisnrydvfr36kxadvmsm7dg4sj3")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -225,7 +225,7 @@ H.264 (MPEG-4 AVC) video streams.") (define-public libass (package (name "libass") - (version "0.12.1") + (version "0.13.2") (source (origin (method url-fetch) (uri (string-append @@ -233,7 +233,7 @@ H.264 (MPEG-4 AVC) video streams.") version "/libass-" version ".tar.xz")) (sha256 (base32 - "1mwj2nk9g6cq6f8m1hf0ijg1299rghhy9naahqq43sc2whblb1l7")))) + "1kpsw4zw95v4cjvild9wpk73dzavn1khsm3bm32kcz6amnkd166n")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -328,7 +328,7 @@ SMPTE 314M.") (origin (method url-fetch) (uri (string-append - "http://www.freedesktop.org/software/vaapi/releases/libva/libva-" + "https://www.freedesktop.org/software/vaapi/releases/libva/libva-" version".tar.bz2")) (sha256 (base32 "0bjfb5s8dk3lql843l91ffxzlq47isqks5sj19cxh7j3nhzw58kz")))) @@ -373,14 +373,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") (define-public ffmpeg (package (name "ffmpeg") - (version "2.8.3") + (version "3.0.2") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "0jkhyv68aa7h3hf905ganwqbrflams3hs74in7ygxdfkcqw2xqhq")))) + "08sjp4dxgcinmv9ly7nm24swmn2cnbbhvph44ihlplf4n33kr542")))) (build-system gnu-build-system) (inputs `(("fontconfig" ,fontconfig) @@ -393,18 +393,20 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") ("libbluray" ,libbluray) ("libcaca" ,libcaca) ("libcdio-paranoia" ,libcdio-paranoia) - ("libquvi" ,libquvi) ("libtheora" ,libtheora) + ("libvdpau" ,libvdpau) ("libvorbis" ,libvorbis) ("libvpx" ,libvpx) + ("libx11" ,libx11) ("libx264" ,libx264) + ("mesa" ,mesa) ("openal" ,openal) ("pulseaudio" ,pulseaudio) ("soxr" ,soxr) ("speex" ,speex) ("twolame" ,twolame) ("xvid" ,xvid) - ("zlib", zlib))) + ("zlib" ,zlib))) (native-inputs `(("bc" ,bc) ("perl" ,perl) @@ -464,7 +466,6 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") ;; --enable-libzmq enable message passing via libzmq [no] ;; --enable-libzvbi enable teletext support via libzvbi [no] ;; --enable-opencl enable OpenCL code - ;; --enable-x11grab enable X11 grabbing [no] '("--enable-avresample" "--enable-gpl" ; enable optional gpl licensed parts "--enable-shared" @@ -479,7 +480,6 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") "--enable-libmp3lame" "--enable-libopus" "--enable-libpulse" - "--enable-libquvi" "--enable-libsoxr" "--enable-libspeex" "--enable-libtheora" @@ -489,13 +489,15 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") "--enable-libxvid" "--enable-libx264" "--enable-openal" + "--enable-opengl" + "--enable-x11grab" "--enable-runtime-cpudetect" ;; Runtime cpu detection is not implemented on ;; MIPS, so we disable some features. "--disable-mips32r2" - "--disable-mipsdspr1" + "--disable-mipsdsp" "--disable-mipsdspr2" "--disable-mipsfpu") #:phases @@ -527,25 +529,52 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") (format #t "setting LD_LIBRARY_PATH to ~s~%" path) (setenv "LD_LIBRARY_PATH" path) #t)))))) - (home-page "http://www.ffmpeg.org/") + (home-page "https://www.ffmpeg.org/") (synopsis "Audio and video framework") (description "FFmpeg is a complete, cross-platform solution to record, convert and stream audio and video. It includes the libavcodec audio/video codec library.") (license license:gpl2+))) +(define-public ffmpeg-2.8 + (package + (inherit ffmpeg) + (version "2.8.6") + (source (origin + (method url-fetch) + (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" + version ".tar.xz")) + (sha256 + (base32 + "1yh7dvm7zwdlsspdaq524s5qaggma5md9h95qc4kvb5dmyyyvg15")))) + (arguments + (substitute-keyword-arguments (package-arguments ffmpeg) + ((#:configure-flags flags) + `(map (lambda (flag) + (if (string=? flag "--disable-mipsdsp") + "--disable-mipsdspr1" + flag)) + ,flags)))))) + (define-public vlc (package (name "vlc") - (version "2.2.1") + (version "2.2.4") (source (origin (method url-fetch) (uri (string-append - "http://download.videolan.org/pub/videolan/vlc/" + "https://download.videolan.org/pub/videolan/vlc/" version "/vlc-" version ".tar.xz")) (sha256 (base32 - "1jqzrzrpw6932lbkf863xk8cfmn4z2ngbxz7w8ggmh4f6xz9sgal")))) + "1gjkrwlg8ab3skzl67cxb9qzg4187ifckd1z9kpy11q058fyjchn")) + (modules '((guix build utils))) + (snippet + ;; There are two occurrences where __DATE__ and __TIME__ are + ;; used to capture the build time and show it to the user. + '(substitute* (find-files "." "help\\.c(pp)?$") + (("__DATE__") "\"2016\"") + (("__TIME__") "\"00:00\""))))) (build-system gnu-build-system) (native-inputs `(("git" ,git) ; needed for a test @@ -556,7 +585,7 @@ audio/video codec library.") ("avahi" ,avahi) ("dbus" ,dbus) ("flac" ,flac) - ("ffmpeg" ,ffmpeg) + ("ffmpeg" ,ffmpeg-2.8) ;fails to build against ffmpeg 3.0 ("fontconfig" ,fontconfig) ("freetype" ,freetype) ("gnutls" ,gnutls) @@ -580,7 +609,8 @@ audio/video codec library.") ("perl" ,perl) ("pulseaudio" ,pulseaudio) ("python" ,python-wrapper) - ("qt" ,qt) + ("qtbase" ,qtbase) + ;("qtx11extras" ,qtx11extras) ("sdl" ,sdl) ("sdl-image" ,sdl-image) ("speex" ,speex) @@ -590,7 +620,37 @@ audio/video codec library.") `("--disable-a52" ; FIXME: reenable once available ,(string-append "LDFLAGS=-Wl,-rpath -Wl," (assoc-ref %build-inputs "ffmpeg") - "/lib")))) ; needed for the tests + "/lib")) ;needed for the tests + + #:phases + (modify-phases %standard-phases + (add-before 'configure 'remove-visual-tests + ;; Some of the tests require using the display to test out VLC, + ;; which fails in our sandboxed build system + (lambda _ + (substitute* "test/run_vlc.sh" + (("./vlc --ignore-config") "echo")) + #t)) + (add-after 'install 'regenerate-plugin-cache + (lambda* (#:key outputs #:allow-other-keys) + ;; The 'install-exec-hook' rule in the top-level Makefile.am + ;; generates 'lib/vlc/plugins/plugins.dat', a plugin cache, using + ;; 'vlc-cache-gen'. This file includes the mtime of the plugins + ;; it references. Thus, we first reset the timestamps of all + ;; these files, and then regenerate the cache such that the + ;; mtimes it includes are always zero instead of being dependent + ;; on the build time. + (let* ((out (assoc-ref outputs "out")) + (pkglibdir (string-append out "/lib/vlc")) + (plugindir (string-append pkglibdir "/plugins")) + (cachegen (string-append pkglibdir "/vlc-cache-gen"))) + ;; TODO: Factorize 'reset-timestamps'. + (for-each (lambda (file) + (let ((s (lstat file))) + (unless (eq? (stat:type s) 'symlink) + (utime file 0 0 0 0)))) + (find-files plugindir)) + (zero? (system* cachegen plugindir)))))))) (home-page "https://www.videolan.org/") (synopsis "Audio and video framework") (description "VLC is a cross-platform multimedia player and framework @@ -601,15 +661,15 @@ treaming protocols.") (define-public mplayer (package (name "mplayer") - (version "1.2") + (version "1.3.0") (source (origin (method url-fetch) (uri (string-append - "http://www.mplayerhq.hu/MPlayer/releases/MPlayer-" + "https://www.mplayerhq.hu/MPlayer/releases/MPlayer-" version ".tar.xz")) (sha256 (base32 - "1dp2lbxyhgjr8sn91kf6xw3w6d7dsgq08v4dgrq20afz1bqzdrzz")))) + "0hwqn04bdknb2ic88xd75smffxx63scvz0zvwvjb56nqj9n89l1s")))) (build-system gnu-build-system) ;; FIXME: Add additional inputs once available. (native-inputs @@ -617,23 +677,28 @@ treaming protocols.") (inputs `(("alsa-lib" ,alsa-lib) ("cdparanoia" ,cdparanoia) + ("ffmpeg" ,ffmpeg) ("fontconfig" ,fontconfig) - ("ffmpeg", ffmpeg) ("freetype" ,freetype) - ("lame" ,lame) - ("libdvdcss", libdvdcss) - ("libdvdnav", libdvdnav) - ("libmpg123" ,mpg123) ; audio codec for MP3 ;; ("giflib" ,giflib) ; uses QuantizeBuffer, requires version >= 5 + ("lame" ,lame) + ("libass" ,libass) + ("libdvdcss" ,libdvdcss) + ("libdvdnav" ,libdvdnav) ("libjpeg" ,libjpeg) + ("libmpeg2" ,libmpeg2) + ("libmpg123" ,mpg123) ; audio codec for MP3 ("libpng" ,libpng) ("libtheora" ,libtheora) + ("libvdpau" ,libvdpau) ("libvorbis" ,libvorbis) ("libx11" ,libx11) - ("libxxf86dga" ,libxxf86dga) + ("libx264" ,libx264) ("libxinerama" ,libxinerama) ("libxv" ,libxv) + ("libxxf86dga" ,libxxf86dga) ("mesa" ,mesa) + ("opus" ,opus) ("perl" ,perl) ("pulseaudio" ,pulseaudio) ("python" ,python-wrapper) @@ -644,8 +709,8 @@ treaming protocols.") (arguments `(#:tests? #f ; no test target #:phases - (alist-replace - 'configure + (modify-phases %standard-phases + (replace 'configure ;; configure does not work followed by "SHELL=..." and ;; "CONFIG_SHELL=..."; set environment variables instead (lambda* (#:key inputs outputs #:allow-other-keys) @@ -659,7 +724,7 @@ treaming protocols.") "./configure" (string-append "--extra-cflags=-I" libx11 "/include") ; to detect libx11 - "--disable-ffmpeg_a" ; disables bundled ffmpeg + "--disable-ffmpeg_a" ; disables bundled ffmpeg (string-append "--prefix=" out) ;; Enable runtime cpu detection where supported, ;; and choose a suitable target. @@ -678,9 +743,8 @@ treaming protocols.") (or (%current-target-system) (nix-system->gnu-triplet (%current-system))))))) - "--disable-iwmmxt")))) - %standard-phases))) - (home-page "http://www.mplayerhq.hu/design7/news.html") + "--disable-iwmmxt")))))))) + (home-page "https://www.mplayerhq.hu/design7/news.html") (synopsis "Audio and video player") (description "MPlayer is a movie player. It plays most MPEG/VOB, AVI, Ogg/OGM, VIVO, ASF/WMA/WMV, QT/MOV/MP4, RealMedia, Matroska, NUT, @@ -691,7 +755,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (define-public mpv (package (name "mpv") - (version "0.13.0") + (version "0.17.0") (source (origin (method url-fetch) (uri (string-append @@ -699,14 +763,14 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") ".tar.gz")) (sha256 (base32 - "1nqjd64p4pj1lks9n9s8y4zf4dp5bz8pyd0gsvviww7mv17p0whk")) + "0vms3viwqcwl1mrgmf2yy4c69fvv7xpbkyrl693l6zpwynqd4b30")) (file-name (string-append name "-" version ".tar.gz")))) (build-system waf-build-system) (native-inputs `(("perl" ,perl) ("pkg-config" ,pkg-config) ("python-docutils" ,python-docutils))) - ;; Missing features: libguess, Wayland, VDPAU, V4L2 + ;; Missing features: libguess, Wayland, V4L2 (inputs `(("alsa-lib" ,alsa-lib) ("enca" ,enca) @@ -723,6 +787,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") ("libdvdnav" ,libdvdnav) ("libjpeg" ,libjpeg) ("libva" ,libva) + ("libvdpau" ,libvdpau) ("libx11" ,libx11) ("libxext" ,libxext) ("libxinerama" ,libxinerama) @@ -734,7 +799,6 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") ("mpg123" ,mpg123) ("pulseaudio" ,pulseaudio) ("rsound" ,rsound) - ("samba" ,samba) ("vapoursynth" ,vapoursynth) ("waf" ,(origin (method url-fetch) @@ -753,17 +817,11 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") 'configure 'setup-waf (lambda* (#:key inputs #:allow-other-keys) (copy-file (assoc-ref inputs "waf") "waf") - (setenv "CC" "gcc"))) - (add-before - 'configure 'patch-wscript - (lambda* (#:key inputs #:allow-other-keys) - (substitute* "wscript" - ;; XXX Remove this when our Samba package provides a .pc file. - (("check_pkg_config\\('smbclient'\\)") - "check_cc(lib='smbclient')"))))) + (setenv "CC" "gcc")))) + #:configure-flags (list "--enable-gpl3" "--enable-zsh-comp") ;; No check function defined. #:tests? #f)) - (home-page "http://mpv.io/") + (home-page "https://mpv.io/") (synopsis "Audio and video player") (description "mpv is a general-purpose audio and video player. It is a fork of mplayer2 and MPlayer. It shares some features with the former @@ -773,7 +831,7 @@ projects while introducing many more.") (define-public libvpx (package (name "libvpx") - (version "1.4.0") + (version "1.5.0") (source (origin (method url-fetch) (uri (string-append "http://storage.googleapis.com/" @@ -781,23 +839,24 @@ projects while introducing many more.") name "-" version ".tar.bz2")) (sha256 (base32 - "1r0ql5kgy0c8mh5w7iiqvsd7w5njl9f9cclc7m52ln8assrdk0pm")))) + "15v7qw0ydyxn08ksb6lxn1l51pxgpwgshdwd3275yrr5hs86fv9h")) + (patches (search-patches "libvpx-CVE-2016-2818.patch")))) (build-system gnu-build-system) (arguments - `(#:phases (alist-replace - 'configure - (lambda* (#:key outputs #:allow-other-keys) - (setenv "CONFIG_SHELL" (which "bash")) - (let ((out (assoc-ref outputs "out"))) - (setenv "LDFLAGS" - (string-append "-Wl,-rpath=" out "/lib")) - (zero? (system* "./configure" - "--enable-shared" - "--as=yasm" - ;; Limit size to avoid CVE-2015-1258 - "--size-limit=16384x16384" - (string-append "--prefix=" out))))) - %standard-phases) + `(#:phases + (modify-phases %standard-phases + (replace 'configure + (lambda* (#:key outputs #:allow-other-keys) + (setenv "CONFIG_SHELL" (which "bash")) + (let ((out (assoc-ref outputs "out"))) + (setenv "LDFLAGS" + (string-append "-Wl,-rpath=" out "/lib")) + (zero? (system* "./configure" + "--enable-shared" + "--as=yasm" + ;; Limit size to avoid CVE-2015-1258 + "--size-limit=16384x16384" + (string-append "--prefix=" out))))))) #:tests? #f)) ; no check target (native-inputs `(("perl" ,perl) @@ -810,18 +869,38 @@ projects while introducing many more.") (define-public youtube-dl (package (name "youtube-dl") - (version "2015.11.18") + (version "2016.06.14") (source (origin (method url-fetch) - (uri (string-append "http://youtube-dl.org/downloads/" + (uri (string-append "https://youtube-dl.org/downloads/" version "/youtube-dl-" version ".tar.gz")) (sha256 (base32 - "0d8jy7xcali3rb645xvmjarsqrnqadl7zpqw17467zyjhzl2mjgb")))) + "0fmvpqipc1xwagvk7ih4slmv1xz1rb6s8wpndhypwvrq4pnnm9ns")))) (build-system python-build-system) - (inputs `(("setuptools" ,python-setuptools))) - (home-page "http://youtube-dl.org") + (home-page "https://youtube-dl.org") + (arguments + ;; The problem here is that the directory for the man page and completion + ;; files is relative, and for some reason, setup.py uses the + ;; auto-detected sys.prefix instead of the user-defined "--prefix=FOO". + ;; So, we need pass the prefix directly. In addition, make sure the Bash + ;; completion file is called 'youtube-dl' rather than + ;; 'youtube-dl.bash-completion'. + `(#:phases (modify-phases %standard-phases + (add-before 'install 'fix-the-data-directories + (lambda* (#:key outputs #:allow-other-keys) + (let ((prefix (assoc-ref outputs "out"))) + (mkdir "bash-completion") + (rename-file "youtube-dl.bash-completion" + "bash-completion/youtube-dl") + (substitute* "setup.py" + (("youtube-dl\\.bash-completion") + "bash-completion/youtube-dl") + (("'etc/") + (string-append "'" prefix "/etc/")) + (("'share/") + (string-append "'" prefix "/share/"))))))))) (synopsis "Download videos from YouTube.com and other sites") (description "Youtube-dl is a small command-line program to download videos from @@ -844,12 +923,9 @@ YouTube.com and a few more sites.") (arguments `(#:configure-flags '("--disable-bdjava"))) (native-inputs `(("pkg-config" ,pkg-config))) (inputs - `(("doxygen" ,doxygen) - ("fontconfig" ,fontconfig) + `(("fontconfig" ,fontconfig) ("freetype" ,freetype) - ("libxml2" ,libxml2) - ("perl" ,perl) ;for doxygen - ("texlive" ,texlive))) + ("libxml2" ,libxml2))) (home-page "http://www.videolan.org/developers/libbluray.html") (synopsis "Blu-Ray Disc playback library") (description @@ -941,15 +1017,15 @@ encapsulated.") (define-public libdvdcss (package (name "libdvdcss") - (version "1.3.99") + (version "1.4.0") (source (origin (method url-fetch) - (uri (string-append "http://download.videolan.org/videolan/" + (uri (string-append "http://download.videolan.org/pub/" name "/" version "/" name "-" version ".tar.bz2")) (sha256 (base32 - "0pawkfyvn2h3yl6ph5spcvqxb4fr4yi4wfkvw2xqqcqv2ywzmc08")))) + "0nl45ifc4xcb196snv9d6hinfw614cqpzcqp92dg43c0hickg290")))) (build-system gnu-build-system) (home-page "http://www.videolan.org/developers/libdvdcss.html") (synopsis "Library for accessing DVDs as block devices") @@ -991,7 +1067,7 @@ for use with HTML5 video.") (sha256 (base32 "1vas43bwb15q2wv3dpp7fgp8dc6szinmwl7i0ziq2vv5l2128v0p")) - (patches (map search-patch '("avidemux-install-to-lib.patch"))))) + (patches (search-patches "avidemux-install-to-lib.patch")))) (build-system cmake-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1041,7 +1117,7 @@ for use with HTML5 video.") (lambda _ ;; Copy-paste settings from the cmake build system. (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH")) - (setenv "CMAKE_INCLUDE_PATH" (getenv "CPATH"))) + (setenv "CMAKE_INCLUDE_PATH" (getenv "C_INCLUDE_PATH"))) (alist-replace 'build (lambda* (#:key inputs outputs #:allow-other-keys) (let* @@ -1100,15 +1176,16 @@ capabilities.") (define-public vapoursynth (package (name "vapoursynth") - (version "26") + (version "32") (source (origin (method url-fetch) (uri (string-append "https://github.com/vapoursynth/vapoursynth/archive/R" version ".tar.gz")) + (file-name (string-append name "-" version)) (sha256 (base32 - "1qbg5kg0kgrxldd0ckn1s7vy7vx2ig8nqzv6djp38fxccpzw3x9k")))) + "1j08whj946v2kkpgxsfhpca8xf0ax9iqzn73wvwjx319p9j0ymp9")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -1121,7 +1198,8 @@ capabilities.") (inputs `(("ffmpeg" ,ffmpeg) ("libass" ,libass) - ("tesseract-ocr" ,tesseract-ocr))) + ("tesseract-ocr" ,tesseract-ocr) + ("zimg" ,zimg))) (arguments '(#:phases (modify-phases %standard-phases @@ -1141,7 +1219,7 @@ format changes.") (define-public xvid (package (name "xvid") - (version "1.3.3") + (version "1.3.4") (source (origin (method url-fetch) (uri (string-append @@ -1149,18 +1227,18 @@ format changes.") version ".tar.bz2")) (sha256 (base32 - "0m5g75qvapr7xpywg6a83v5x19kw1nm9l2q48lg7jvvpba0bmqdh")))) + "1xwbmp9wqshc0ckm970zdpi0yvgqxlqg0s8bkz98mnr8p2067bsz")))) (build-system gnu-build-system) (native-inputs `(("yasm" ,yasm))) (arguments '(#:phases - (alist-cons-before - 'configure 'pre-configure - (lambda _ - (chdir "build/generic") - (substitute* "configure" - (("#! /bin/sh") (string-append "#!" (which "sh"))))) - %standard-phases) + (modify-phases %standard-phases + (add-before + 'configure 'pre-configure + (lambda _ + (chdir "build/generic") + (substitute* "configure" + (("#! /bin/sh") (string-append "#!" (which "sh"))))))) ;; No 'check' target. #:tests? #f)) (home-page "https://www.xvid.com/") @@ -1187,11 +1265,8 @@ and custom quantization matrices.") (build-system python-build-system) (arguments '(#:tests? #f)) ; tests rely on external web servers - (native-inputs - `(("python-setuptools" ,python-setuptools))) (propagated-inputs - `(("python-requests" ,python-requests) - ("python-singledispatch" ,python-singledispatch))) + `(("python-requests" ,python-requests))) (synopsis "Internet video stream viewer") (description "Livestreamer is a command-line utility that extracts streams from various services and pipes them into a video playing application.") @@ -1201,14 +1276,15 @@ from various services and pipes them into a video playing application.") (define-public mlt (package (name "mlt") - (version "0.9.8") + (version "6.2.0") (source (origin (method url-fetch) - (uri (string-append "mirror://sourceforge/mlt/mlt/mlt-" - version ".tar.gz")) + (uri (string-append "https://github.com/mltframework/mlt/" + "archive/v" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "0rmrkj7z9g3nr4099f3ff0r14l3ixcfnlx2cdbkqa6pxin0pv9bz")))) + "1zwzfgxrcbwkxnkiwv0a1rzxdnnaly90yyarl9wdw84nx11ffbnx")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests @@ -1234,11 +1310,12 @@ from various services and pipes them into a video playing application.") ("jack" ,jack-1) ("ladspa" ,ladspa) ("libsamplerate" ,libsamplerate) + ("pulseaudio" ,pulseaudio) ("sdl" ,sdl) ("sox" ,sox))) (native-inputs `(("pkg-config" ,pkg-config))) - (home-page "http://www.mltframework.org/") + (home-page "https://www.mltframework.org/") (synopsis "Author, manage, and run multitrack audio/video compositions") (description "MLT is a multimedia framework, designed and developed for television @@ -1247,3 +1324,154 @@ players, transcoders, web streamers and many more types of applications. The functionality of the system is provided via an assortment of ready to use tools, XML authoring components, and an extensible plug-in based API.") (license license:lgpl2.1+))) + +(define-public v4l-utils + (package + (name "v4l-utils") + (version "1.10.0") + (source (origin + (method url-fetch) + (uri (string-append "https://linuxtv.org/downloads/v4l-utils" + "/v4l-utils-" version ".tar.bz2")) + (sha256 + (base32 + "0srkwh3r6f0bkb4kp0d7i0mlmp8babs3qc22cdy1sw4awmzd5skq")))) + (build-system gnu-build-system) + (arguments + '(#:configure-flags + (list (string-append "--with-udevdir=" + (assoc-ref %outputs "out") + "/lib/udev")))) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("glu" ,glu) + ("libjpeg" ,libjpeg) + ("libx11" ,libx11) + ("qt" ,qt) + ("eudev" ,eudev))) + (synopsis "Realtime video capture utilities for Linux") + (description "The v4l-utils provide a series of libraries and utilities to +be used for realtime video capture via Linux-specific APIs.") + (home-page "https://linuxtv.org/wiki/index.php/V4l-utils") + ;; libv4l2 is LGPL2.1+, while utilities are GPL2 only. + (license (list license:lgpl2.1+ license:gpl2)))) + +(define-public obs + (package + (name "obs") + (version "0.14.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/jp9000/obs-studio" + "/archive/" version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1cb8naa67kfnnngkzv1wpd4y241j29ggnk1w7jgnymp9j8dny1xl")))) + (build-system cmake-build-system) + (arguments '(#:tests? #f)) ; no tests + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("curl" ,curl) + ("eudev" ,eudev) + ("ffmpeg" ,ffmpeg) + ("freetype" ,freetype) + ("jack" ,jack-1) + ("jansson" ,jansson) + ("libx264" ,libx264) + ("libxcomposite" ,libxcomposite) + ("mesa" ,mesa) + ("pulseaudio" ,pulseaudio) + ("qt" ,qt) + ("v4l-utils" ,v4l-utils) + ("zlib" ,zlib))) + (synopsis "Live streaming software") + (description "Open Broadcaster Software provides a graphical interface for +video recording and live streaming. OBS supports capturing audio and video +from many input sources such as webcams, X11 (for screencasting), PulseAudio, +and JACK.") + (home-page "https://obsproject.com") + (license license:gpl2+))) + +(define-public libvdpau + (package + (name "libvdpau") + (version "1.1.1") + (source + (origin + (method url-fetch) + (uri (string-append "https://secure.freedesktop.org/~aplattner/vdpau/" + name "-" version ".tar.bz2")) + (sha256 + (base32 + "0dnpb0yh7v6rvckx82kxg045rd9rbsw25wjv7ad5n8h94s9h2yl5")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("dri2proto" ,dri2proto) + ("libx11" ,libx11 "out") + ("libxext" ,libxext))) + (home-page "https://wiki.freedesktop.org/www/Software/VDPAU/") + (synopsis "Video Decode and Presentation API") + (description "VDPAU is the Video Decode and Presentation API for UNIX. It +provides an interface to video decode acceleration and presentation hardware +present in modern GPUs.") + (license (license:x11-style "file://COPYING")))) + +(define-public vdpauinfo + (package + (name "vdpauinfo") + (version "1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://secure.freedesktop.org/~aplattner/vdpau/" + name "-" version ".tar.gz")) + (sha256 + (base32 + "1i2b0k9h8r0lnxlrkgqzmrjakgaw3f1ygqqwzx8w6676g85rcm20")))) + (build-system gnu-build-system) + (native-inputs + `(("pkg-config" ,pkg-config) + ("libx11" ,libx11))) + (propagated-inputs + `(("libvdpau" ,libvdpau))) + (home-page "https://wiki.freedesktop.org/www/Software/VDPAU/") + (synopsis "Tool to query the capabilities of a VDPAU implementation") + (description "Vdpauinfo is a tool to query the capabilities of a VDPAU +implementation.") + (license (license:x11-style "file://COPYING")))) + +(define-public recordmydesktop + (package + (name "recordmydesktop") + (version "0.3.8.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/" name "/" name "/" + version "/recordmydesktop-" version ".tar.gz")) + (sha256 + (base32 + "133kkl5j0r877d41bzj7kj0vf3xm8x80yyx2n8nqxrva304f58ik")))) + (build-system gnu-build-system) + (inputs `(("popt" ,popt) + ("zlib" ,zlib) + ("libx11" ,libx11) + ("libice" ,libice) + ("libsm" ,libsm) + ("libxfixes" ,libxfixes) + ("libxdamage" ,libxdamage) + ("libxext" ,libxext) + ("libvorbis" ,libvorbis) + ("libtheora" ,libtheora))) + (home-page "http://recordmydesktop.sourceforge.net/") + (synopsis "Desktop session video recorder") + (description + "recordMyDesktop is a command-line tool that captures the activity in +your graphical desktop and encodes it as a video. This is a useful tool for +making @dfn{screencasts}.") + (license license:gpl2+)))