diff options
Diffstat (limited to 'gnu/packages/video.scm')
-rw-r--r-- | gnu/packages/video.scm | 118 |
1 files changed, 95 insertions, 23 deletions
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 16136b7662..406a2ad5a1 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -42,6 +42,7 @@ ;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net> ;;; Copyright © 2020 Alex McGrath <amk@amk.ie> ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de> +;;; Copyright © 2020 Vinicius Monego <monego@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -121,11 +122,13 @@ #:use-module (gnu packages iso-codes) #:use-module (gnu packages libidn) #:use-module (gnu packages libreoffice) + #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages lua) #:use-module (gnu packages m4) #:use-module (gnu packages man) #:use-module (gnu packages markup) + #:use-module (gnu packages maths) #:use-module (gnu packages mp3) #:use-module (gnu packages ncurses) #:use-module (gnu packages networking) @@ -935,16 +938,14 @@ operate properly.") (define-public ffmpeg (package (name "ffmpeg") - (version "4.2.3") + (version "4.3") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) - ;; See <https://issues.guix.gnu.org/issue/39719> - (patches (search-patches "ffmpeg-prefer-dav1d.patch")) (sha256 (base32 - "0cddkb5sma9dzy8i59sfls19rhjlq40zn9mh3x666dqkxl5ckxlx")))) + "0pbrsv5v96yd8qzb9bk4kw7qk4xqpi03rsd5xfbwnjzlhijd02hx")))) (build-system gnu-build-system) (inputs `(("dav1d" ,dav1d) @@ -971,6 +972,12 @@ operate properly.") ("mesa" ,mesa) ("openal" ,openal) ("pulseaudio" ,pulseaudio) + ;; XXX: rav1e depends on rust, which currently only works on x86_64. + ;; See also the related configure flag when changing this. + ,@(if (string-prefix? "x86_64" (or (%current-target-system) + (%current-system))) + `(("rav1e" ,rav1e)) + '()) ("sdl" ,sdl2) ("soxr" ,soxr) ("speex" ,speex) @@ -1052,6 +1059,10 @@ operate properly.") "--enable-libmp3lame" "--enable-libopus" "--enable-libpulse" + ,@(if (string-prefix? "x86_64" (or (%current-target-system) + (%current-system))) + '("--enable-librav1e") + '()) "--enable-libsoxr" "--enable-libspeex" "--enable-libtheora" @@ -1116,6 +1127,24 @@ convert and stream audio and video. It includes the libavcodec audio/video codec library.") (license license:gpl2+))) +;; ungoogled-chromium crashes with ffmpeg 4.3, so stick with this version for +;; now. See <https://issues.guix.gnu.org/41987>. +(define-public ffmpeg-4.2 + (package + (inherit ffmpeg) + (version "4.2.3") + (source (origin + (method url-fetch) + (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" + version ".tar.xz")) + (sha256 + (base32 + "0cddkb5sma9dzy8i59sfls19rhjlq40zn9mh3x666dqkxl5ckxlx")))) + (arguments + (substitute-keyword-arguments (package-arguments ffmpeg) + ((#:configure-flags flags) + `(delete "--enable-librav1e" ,flags)))))) + (define-public ffmpeg-3.4 (package (inherit ffmpeg) @@ -1130,10 +1159,10 @@ audio/video codec library.") (arguments (substitute-keyword-arguments (package-arguments ffmpeg) ((#:configure-flags flags) - `(delete "--enable-libdav1d" (delete "--enable-libaom" - ,flags))))) - (inputs (alist-delete "dav1d" (alist-delete "libaom" - (package-inputs ffmpeg)))))) + `(delete "--enable-libdav1d" (delete "--enable-libaom" (delete "--enable-librav1e" + ,flags)))))) + (inputs (alist-delete "dav1d" (alist-delete "libaom" (alist-delete "rav1e" + (package-inputs ffmpeg))))))) (define-public ffmpeg-for-stepmania (hidden-package @@ -1197,7 +1226,7 @@ videoformats depend on the configuration flags of ffmpeg.") (define-public vlc (package (name "vlc") - (version "3.0.10") + (version "3.0.11") (source (origin (method url-fetch) (uri (string-append @@ -1206,7 +1235,7 @@ videoformats depend on the configuration flags of ffmpeg.") "/vlc-" version ".tar.xz")) (sha256 (base32 - "0cackl1084hcmg4myf3kvjvd6sjxmzn0c0qkmanz6brvgzyanrm9")))) + "06a9hfl60f6l0fs5c9ma5s8np8kscm4ala6m2pdfji9lyfna351y")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex) @@ -1218,10 +1247,6 @@ videoformats depend on the configuration flags of ffmpeg.") (inputs `(("alsa-lib" ,alsa-lib) ("avahi" ,avahi) - ;; XXX Try removing dav1d here and testing AV1 playback when FFmpeg 4.3 - ;; is released. - ;; <https://issues.guix.gnu.org/issue/39719> - ("dav1d" ,dav1d) ("dbus" ,dbus) ("eudev" ,eudev) ("flac" ,flac) @@ -1509,6 +1534,14 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (("\"youtube-dl\",") (string-append "\"" ytdl "/bin/youtube-dl\","))) #t))) + (add-before 'configure 'build-reproducibly + (lambda _ + ;; Somewhere in the build system library dependencies are enumerated + ;; and passed as linker flags, but the order in which they are added + ;; varies. See <https://github.com/mpv-player/mpv/issues/7855>. + ;; Set PYTHONHASHSEED as a workaround for deterministic results. + (setenv "PYTHONHASHSEED" "1") + #t)) (add-before 'configure 'setup-waf (lambda* (#:key inputs #:allow-other-keys) @@ -1616,7 +1649,7 @@ To load this plugin, specify the following option when starting mpv: (define-public youtube-dl (package (name "youtube-dl") - (version "2020.06.06") + (version "2020.06.16") (source (origin (method url-fetch) (uri (string-append "https://github.com/ytdl-org/youtube-dl/" @@ -1624,7 +1657,7 @@ To load this plugin, specify the following option when starting mpv: version ".tar.gz")) (sha256 (base32 - "1qrrr14glv0jv377n61paq55b6k58jpnwbz2sp5xfl4wnxy5hqny")))) + "1fgqi8pvw13p79gl38lnpl7ifa7cwxhzk53c6lmjsk1yhz5455m9")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion @@ -2335,7 +2368,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.") (define-public mlt (package (name "mlt") - (version "6.18.0") + (version "6.20.0") (source (origin (method git-fetch) (uri (git-reference @@ -2344,7 +2377,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.") (file-name (git-file-name name version)) (sha256 (base32 - "0iiqym15n8kbnjzj0asmm86gs23yykz0va5b475cc4v2vv5admgx")))) + "14kayzas2wisyw0z27qkcm4qnxbdb7bqa0hg7gaj5kbm3nvsnafk")))) (build-system gnu-build-system) (arguments `(#:tests? #f ; no tests @@ -2365,7 +2398,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.") #t))))) (inputs `(("alsa-lib" ,alsa-lib) - ("ffmpeg" ,ffmpeg-3.4) + ("ffmpeg" ,ffmpeg) ("fftw" ,fftw) ("frei0r-plugins" ,frei0r-plugins) ("gdk-pixbuf" ,gdk-pixbuf) @@ -2771,7 +2804,7 @@ supported players in addition to this package.") (define-public handbrake (package (name "handbrake") - (version "1.3.2") + (version "1.3.3") (source (origin (method url-fetch) (uri (string-append "https://github.com/HandBrake/HandBrake/" @@ -2779,7 +2812,7 @@ supported players in addition to this package.") "HandBrake-" version "-source.tar.bz2")) (sha256 (base32 - "0w7jxjrccvxp7g15dv0spildg5apmqp4gwbcqmg58va2gylynvzc")) + "11bzhyp052bmng5119x74xvdj5632smx6qsk537ygda8bzckg2i1")) (modules '((guix build utils))) (snippet ;; Remove "contrib" and source not necessary for @@ -3426,7 +3459,7 @@ It counts more than 100 plugins.") ("pkg-config" ,pkg-config))) (inputs `(("libjpeg" ,libjpeg-turbo) - ("ffmpeg" ,ffmpeg-3.4) + ("ffmpeg" ,ffmpeg) ("libmicrohttpd" ,libmicrohttpd) ("sqlite" ,sqlite))) (arguments @@ -4003,7 +4036,7 @@ result in several formats: ("rust-console" ,rust-console-0.9) ("rust-serde" ,rust-serde-1.0) ("rust-cc" ,rust-cc-1.0) - ("rust-rayon" ,rust-rayon-1.3) + ("rust-rayon" ,rust-rayon-1) ("rust-byteorder" ,rust-byteorder-1.3) ("rust-clap" ,rust-clap-2) ("rust-vergen" ,rust-vergen-3.1)) @@ -4097,3 +4130,42 @@ can also directly record to WebM or MP4 if you prefer.") wlroots-based compositors. More specifically, those that support @code{wlr-screencopy-v1} and @code{xdg-output}.") (license license:expat))) + +(define-public guvcview + (package + (name "guvcview") + (version "2.0.6") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/guvcview/source/guvcview-" + "src-" version ".tar.gz")) + (sha256 + (base32 + "11byyfpkcik7wvf2qic77zjamfr2rhji97dpj1gy2fg1bvpiqf4m")))) + (build-system gnu-build-system) + (arguments + ;; There are no tests and "make check" would fail on an intltool error. + '(#:tests? #f)) + (native-inputs + `(("pkg-config" ,pkg-config) + ("intltool" ,intltool))) + (inputs + `(("gtk+" ,gtk+) + ("eudev" ,eudev) + ("libusb" ,libusb) + ("v4l-utils" ,v4l-utils) ;libv4l2 + ("ffmpeg" ,ffmpeg) ;libavcodec, libavutil + ("sdl2" ,sdl2) + ("gsl" ,gsl) + ("portaudio" ,portaudio) + ("alsa-lib" ,alsa-lib))) + (home-page "http://guvcview.sourceforge.net/") + (synopsis "Control your webcam and capture videos and images") + (description + "GTK+ UVC Viewer (guvcview) is a graphical application to control a +webcam accessible with Video4Linux (V4L2) and to capture videos and images. +It provides control over precise settings of the webcam such as exposure, +brightness, contrast, and frame rate.") + + ;; 'COPYING' is GPLv3 but source headers say GPLv2+. + (license license:gpl2+))) |