X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/fb197c0da4bbfa5015c18f426be632892660cce8..18e681bf6c290aff2086af42605aaf333b5a19ed:/gnu/packages/video.scm diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 04aca2c084..6578a4031f 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -62,6 +62,7 @@ #: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) @@ -132,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 @@ -190,7 +191,7 @@ television and DVD. It is also known as AC-3.") (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 @@ -224,7 +225,7 @@ H.264 (MPEG-4 AVC) video streams.") (define-public libass (package (name "libass") - (version "0.13.1") + (version "0.13.2") (source (origin (method url-fetch) (uri (string-append @@ -232,7 +233,7 @@ H.264 (MPEG-4 AVC) video streams.") version "/libass-" version ".tar.xz")) (sha256 (base32 - "1rrz6is2blx8jqyydcz71y2f5f948blgx14jzi3an756fqc6p8sa")))) + "1kpsw4zw95v4cjvild9wpk73dzavn1khsm3bm32kcz6amnkd166n")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) @@ -372,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.6") + (version "3.0.2") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "1yh7dvm7zwdlsspdaq524s5qaggma5md9h95qc4kvb5dmyyyvg15")))) + "08sjp4dxgcinmv9ly7nm24swmn2cnbbhvph44ihlplf4n33kr542")))) (build-system gnu-build-system) (inputs `(("fontconfig" ,fontconfig) @@ -392,7 +393,6 @@ 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) @@ -406,7 +406,7 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") ("speex" ,speex) ("twolame" ,twolame) ("xvid" ,xvid) - ("zlib", zlib))) + ("zlib" ,zlib))) (native-inputs `(("bc" ,bc) ("perl" ,perl) @@ -480,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" @@ -498,7 +497,7 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") ;; Runtime cpu detection is not implemented on ;; MIPS, so we disable some features. "--disable-mips32r2" - "--disable-mipsdspr1" + "--disable-mipsdsp" "--disable-mipsdspr2" "--disable-mipsfpu") #:phases @@ -530,13 +529,33 @@ 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") @@ -548,7 +567,14 @@ audio/video codec library.") version "/vlc-" version ".tar.xz")) (sha256 (base32 - "1jqzrzrpw6932lbkf863xk8cfmn4z2ngbxz7w8ggmh4f6xz9sgal")))) + "1jqzrzrpw6932lbkf863xk8cfmn4z2ngbxz7w8ggmh4f6xz9sgal")) + (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 @@ -559,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) @@ -593,7 +619,30 @@ 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-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 @@ -604,7 +653,7 @@ treaming protocols.") (define-public mplayer (package (name "mplayer") - (version "1.2.1") + (version "1.3.0") (source (origin (method url-fetch) (uri (string-append @@ -612,7 +661,7 @@ treaming protocols.") version ".tar.xz")) (sha256 (base32 - "0prbqnsl6s7fbpp6nc6babx7gzwdrhrhzf0cmp6xz6w9gl4sy6w3")))) + "0hwqn04bdknb2ic88xd75smffxx63scvz0zvwvjb56nqj9n89l1s")))) (build-system gnu-build-system) ;; FIXME: Add additional inputs once available. (native-inputs @@ -620,14 +669,14 @@ treaming protocols.") (inputs `(("alsa-lib" ,alsa-lib) ("cdparanoia" ,cdparanoia) - ("ffmpeg", ffmpeg) + ("ffmpeg" ,ffmpeg) ("fontconfig" ,fontconfig) ("freetype" ,freetype) ;; ("giflib" ,giflib) ; uses QuantizeBuffer, requires version >= 5 ("lame" ,lame) ("libass" ,libass) - ("libdvdcss", libdvdcss) - ("libdvdnav", libdvdnav) + ("libdvdcss" ,libdvdcss) + ("libdvdnav" ,libdvdnav) ("libjpeg" ,libjpeg) ("libmpeg2" ,libmpeg2) ("libmpg123" ,mpg123) ; audio codec for MP3 @@ -698,7 +747,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (define-public mpv (package (name "mpv") - (version "0.15.0") + (version "0.17.0") (source (origin (method url-fetch) (uri (string-append @@ -706,7 +755,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") ".tar.gz")) (sha256 (base32 - "1p0b83048g66icpz5n66v3k4ldr1z0rmg5d2rr7kcbspm1xj2cbx")) + "0vms3viwqcwl1mrgmf2yy4c69fvv7xpbkyrl693l6zpwynqd4b30")) (file-name (string-append name "-" version ".tar.gz")))) (build-system waf-build-system) (native-inputs @@ -764,7 +813,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") #: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 @@ -785,20 +834,20 @@ projects while introducing many more.") "15v7qw0ydyxn08ksb6lxn1l51pxgpwgshdwd3275yrr5hs86fv9h")))) (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) @@ -811,7 +860,7 @@ projects while introducing many more.") (define-public youtube-dl (package (name "youtube-dl") - (version "2016.02.05.1") + (version "2016.05.01") (source (origin (method url-fetch) (uri (string-append "http://youtube-dl.org/downloads/" @@ -819,9 +868,8 @@ projects while introducing many more.") version ".tar.gz")) (sha256 (base32 - "17aza9c961mvqjp5sph61gv777g8xq3vzr5vjrng3gygfz7j2mn0")))) + "1w04afmwq5pjvp3nl2k59q0cigqrj9n8fwkydcfldwpq83l15j5d")))) (build-system python-build-system) - (native-inputs `(("python-setuptools" ,python-setuptools))) (home-page "http://youtube-dl.org") (arguments ;; The problem here is that the directory for the man page and completion @@ -1010,7 +1058,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))) @@ -1207,11 +1255,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.") @@ -1221,14 +1266,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 @@ -1254,11 +1300,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 @@ -1271,14 +1318,14 @@ tools, XML authoring components, and an extensible plug-in based API.") (define-public v4l-utils (package (name "v4l-utils") - (version "1.8.1") + (version "1.10.0") (source (origin (method url-fetch) - (uri (string-append "http://linuxtv.org/downloads/v4l-utils" + (uri (string-append "https://linuxtv.org/downloads/v4l-utils" "/v4l-utils-" version ".tar.bz2")) (sha256 (base32 - "0cqv8drw0z0kfmz4f50a8kzbrz6vbj6j6q78030hgshr7yq1jqig")))) + "0srkwh3r6f0bkb4kp0d7i0mlmp8babs3qc22cdy1sw4awmzd5skq")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -1304,7 +1351,7 @@ be used for realtime video capture via Linux-specific APIs.") (define-public obs (package (name "obs") - (version "0.13.1") + (version "0.14.1") (source (origin (method url-fetch) (uri (string-append "https://github.com/jp9000/obs-studio" @@ -1312,7 +1359,7 @@ be used for realtime video capture via Linux-specific APIs.") (file-name (string-append name "-" version ".tar.gz")) (sha256 (base32 - "1vsn4r3wzfdwjrn69kgx3c5wfx17i72nxdv298pq772fp4j2iy2r")))) + "1w07ign2swfigmsjd2jyaqqdnj2zpzs8hzsjzzk5l377jbx3ml5g")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; no tests (native-inputs @@ -1388,3 +1435,33 @@ present in modern GPUs.") (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+)))