summaryrefslogtreecommitdiff
path: root/gnu/packages/video.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/video.scm')
-rw-r--r--gnu/packages/video.scm118
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+)))