aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/video.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/video.scm')
-rw-r--r--gnu/packages/video.scm276
1 files changed, 222 insertions, 54 deletions
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 227c11d1fa..e3d145a840 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -5,7 +5,7 @@
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Andy Patterson <ajpatter@uwaterloo.ca>
-;;; Copyright © 2015, 2018, 2019 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2018, 2019, 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net>
@@ -38,6 +38,9 @@
;;; Copyright © 2020 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Josh Holland <josh@inv.alid.pw>
;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
+;;; Copyright © 2020 Guillaume Le Vaillant <glv@posteo.net>
+;;; Copyright © 2020 Alex McGrath <amk@amk.ie>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -64,7 +67,9 @@
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix svn-download)
+ #:use-module (guix build-system cargo)
#:use-module (guix build-system cmake)
+ #:use-module (guix build-system copy)
#:use-module (guix build-system gnu)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system meson)
@@ -87,6 +92,7 @@
#:use-module (gnu packages cmake)
#:use-module (gnu packages compression)
#:use-module (gnu packages cpp)
+ #:use-module (gnu packages crates-io)
#:use-module (gnu packages curl)
#:use-module (gnu packages dejagnu)
#:use-module (gnu packages dns)
@@ -137,6 +143,7 @@
#:use-module (gnu packages qt)
#:use-module (gnu packages rdesktop)
#:use-module (gnu packages ruby)
+ #:use-module (gnu packages rust-apps)
#:use-module (gnu packages samba)
#:use-module (gnu packages sdl)
#:use-module (gnu packages serialization)
@@ -212,14 +219,14 @@ old-fashioned output methods with powerful ascii-art renderer.")
(define-public celluloid
(package
(name "celluloid")
- (version "0.18")
+ (version "0.19")
(source
(origin
(method url-fetch)
(uri (string-append "https://github.com/celluloid-player/celluloid/releases"
"/download/v" version "/celluloid-" version ".tar.xz"))
(sha256
- (base32 "0gmscx9zb8ppfjlnmgbcmhknhawa05sdhxi7dv5wjapjq0glq481"))))
+ (base32 "1s3qkism96gi44incvsb6rqg255qcvjvw61ya7nw30md0sapj4sl"))))
(build-system glib-or-gtk-build-system)
(native-inputs
`(("intltool" ,intltool)
@@ -600,7 +607,7 @@ available.")
(define-public x265
(package
(name "x265")
- (version "3.2.1")
+ (version "3.3")
(outputs '("out" "static"))
(source
(origin
@@ -610,7 +617,7 @@ available.")
(string-append "https://download.videolan.org/videolan/x265/"
"x265_" version ".tar.gz")))
(sha256
- (base32 "1k5vijsy6cgcghw69f5275xfmbjjx7js0nlbgxbd6krnjb7sv6zv"))
+ (base32 "170b61cgpcs5n35qps0p40dqs1q81vkgagzbs4zv7pzls6718vpj"))
(patches (search-patches "x265-arm-flags.patch"))
(modules '((guix build utils)))
(snippet '(begin
@@ -756,7 +763,7 @@ canvas operations.")
(define-public libdca
(package
(name "libdca")
- (version "0.0.6")
+ (version "0.0.7")
(source (origin
(method url-fetch)
(uri (string-append
@@ -764,8 +771,12 @@ canvas operations.")
version "/libdca-" version ".tar.bz2"))
(sha256
(base32
- "0h0zvcn97i9kyljdpifzi8in9xnw31fx3b3ggj96p8h0l2d8mycq"))))
+ "0sjz0s0nrv7jcpvh1i432x3jza0y5yycmzw84cfncb2qby0i62rs"))))
(build-system gnu-build-system)
+ (native-inputs
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)))
(home-page "https://www.videolan.org/developers/libdca.html")
(synopsis "DTS Coherent Acoustics decoder")
(description "libdca is a library for decoding DTS Coherent Acoustics
@@ -1538,7 +1549,7 @@ projects while introducing many more.")
(define-public mpv-mpris
(package
(name "mpv-mpris")
- (version "0.2")
+ (version "0.4")
(source
(origin
(method git-fetch)
@@ -1548,19 +1559,17 @@ projects while introducing many more.")
(file-name (git-file-name name version))
(sha256
(base32
- "06hq3j1jjlaaz9ss5l7illxz8vm5bng86jl24kawglwkqayhdnjx"))))
- (build-system gnu-build-system)
+ "1fr3jvja8s2gdpx8qyk9r17977flms3qpm8zci62nd9r5wjdvr5i"))))
+ (build-system copy-build-system)
(arguments
- '(#:tests? #f ; no tests
- #:make-flags '("CC=gcc")
+ '(#:install-plan
+ '(("mpris.so" "lib/"))
#:phases
(modify-phases %standard-phases
- (delete 'configure) ; no configure script
- (replace 'install
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (install-file "mpris.so" (string-append out "/lib")))
- #t)))))
+ (add-before 'install 'build
+ (lambda _
+ (setenv "CC" (which "gcc"))
+ (invoke "make"))))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
@@ -1618,29 +1627,10 @@ To load this plugin, specify the following option when starting mpv:
(license license:bsd-3)
(home-page "https://www.webmproject.org/")))
-;; GNU IceCat fails to build against 1.8.0, so keep this version for now.
-(define-public libvpx-1.7
- (package
- (inherit libvpx)
- (version "1.7.0")
- (source (origin
- (inherit (package-source libvpx))
- (uri (git-reference
- (url "https://chromium.googlesource.com/webm/libvpx")
- (commit (string-append "v" version))))
- (file-name (git-file-name "libvpx" version))
- (sha256
- (base32
- "0vvh89hvp8qg9an9vcmwb7d9k3nixhxaz6zi65qdjnd0i56kkcz6"))
- (patches
- (append
- (origin-patches (package-source libvpx))
- (search-patches "libvpx-use-after-free-in-postproc.patch")))))))
-
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2020.03.08")
+ (version "2020.03.24")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/ytdl-org/youtube-dl/"
@@ -1648,7 +1638,7 @@ To load this plugin, specify the following option when starting mpv:
version ".tar.gz"))
(sha256
(base32
- "1xbka14wnalcqkhibfcqw8f5bw1m9b1f44719yifv1jk0614q4bn"))))
+ "05l4asakakxn53wrvxn6c03fd80zdizdbj6r2cj8c1ja3sj9i8s5"))))
(build-system python-build-system)
(arguments
;; The problem here is that the directory for the man page and completion
@@ -2211,7 +2201,7 @@ capabilities.")
(define-public vapoursynth
(package
(name "vapoursynth")
- (version "48")
+ (version "49")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2220,7 +2210,7 @@ capabilities.")
(file-name (git-file-name name version))
(sha256
(base32
- "1i6163bidlp0p9zcnxpsphr44ayfzd51fig4ri7vbrbl9lw9jaih"))))
+ "1d298mlb24nlc2x7pixfbkd0qbpv4c706c32idsgpi96z1spkhvl"))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf)
@@ -2311,9 +2301,6 @@ and custom quantization matrices.")
from sites like Twitch.tv and pipes them into a video player of choice.")
(license license:bsd-2)))
-(define-public livestreamer
- (deprecated-package "livestreamer" streamlink))
-
(define-public twitchy
(let ((commit "9beb36d80b16662414129693e74fa3a2fd97554e")) ; 3.4 has no tag
(package
@@ -2455,7 +2442,7 @@ be used for realtime video capture via Linux-specific APIs.")
(define-public obs
(package
(name "obs")
- (version "24.0.4")
+ (version "25.0.7")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -2464,7 +2451,7 @@ be used for realtime video capture via Linux-specific APIs.")
(file-name (git-file-name name version))
(sha256
(base32
- "0m15ch2ix9qrdf1a9mj7wcpl72z3h13zx60c9q72sb1435id2g1q"))))
+ "02ppkp1j5yxnxv663nz5wv4vbcg3k53l43xq94d1p1b3j4wxwq8b"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no tests
@@ -3281,7 +3268,6 @@ programmers to access a standard API to open and decompress media files.")
#t)))))
(inputs
`(("boost" ,boost)
- ("desktop-file-utils" ,desktop-file-utils)
("ffms2" ,ffms2)
("fftw" ,fftw)
("hunspell" ,hunspell)
@@ -3294,6 +3280,7 @@ programmers to access a standard API to open and decompress media files.")
("wxwidgets-gtk2" ,wxwidgets-gtk2)))
(native-inputs
`(("intltool" ,intltool)
+ ("desktop-file-utils" ,desktop-file-utils)
("pkg-config" ,pkg-config)))
(home-page "http://www.aegisub.org/")
(synopsis "Subtitle engine")
@@ -3659,7 +3646,7 @@ API. It includes bindings for Python, Ruby, and other languages.")
(define-public openshot
(package
(name "openshot")
- (version "2.4.4")
+ (version "2.5.1")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3668,10 +3655,11 @@ API. It includes bindings for Python, Ruby, and other languages.")
(file-name (git-file-name name version))
(sha256
(base32
- "0mg63v36h7l8kv2sgf6x8c1n3ygddkqqwlciz7ccxpbm4x1idqba"))
+ "0qc5i0ay6j2wab1whl41sjb71cj02pg6y79drf7asrprq8b2rmfq"))
(modules '((guix build utils)))
(snippet
'(begin
+ ;; TODO: Unbundle jquery and others from src/timeline/media
(delete-file-recursively "src/images/fonts") #t))))
(build-system python-build-system)
(inputs
@@ -3684,14 +3672,17 @@ API. It includes bindings for Python, Ruby, and other languages.")
("python-requests" ,python-requests)
("qtsvg" ,qtsvg)))
(arguments
- `(#:tests? #f ;no tests
- #:modules ((guix build python-build-system)
+ `(#:modules ((guix build python-build-system)
(guix build qt-utils)
(guix build utils))
#:imported-modules (,@%python-build-system-modules
(guix build qt-utils))
#:phases (modify-phases %standard-phases
(delete 'build) ;install phase does all the work
+ (replace 'check
+ (lambda _
+ (setenv "QT_QPA_PLATFORM" "offscreen")
+ (invoke "python" "src/tests/query_tests.py")))
(add-after 'unpack 'patch-font-location
(lambda* (#:key inputs #:allow-other-keys)
(let ((font (assoc-ref inputs "font-ubuntu")))
@@ -3710,7 +3701,7 @@ API. It includes bindings for Python, Ruby, and other languages.")
(let ((out (assoc-ref outputs "out")))
(wrap-qt-program out "openshot-qt"))
#t)))))
- (home-page "https://openshot.org")
+ (home-page "https://www.openshot.org/")
(synopsis "Video editor")
(description "OpenShot takes your videos, photos, and music files and
helps you create the film you have always dreamed of. Easily add sub-titles,
@@ -3901,7 +3892,7 @@ transcode or reformat the videos in any way, producing perfect backups.")
(define-public svt-av1
(package
(name "svt-av1")
- (version "0.8.1")
+ (version "0.8.2")
(source (origin
(method git-fetch)
(uri (git-reference
@@ -3910,7 +3901,7 @@ transcode or reformat the videos in any way, producing perfect backups.")
(file-name (git-file-name name version))
(sha256
(base32
- "08sx9zhhks8wzq05f67jqmc1zqmmi7hqkgg2gyjpcsan5qc5476w"))))
+ "0273fxgf4r832y9s0p8hqdj1j1nj8nlz4hylya0b4nsif89yfrhp"))))
(build-system cmake-build-system)
;; SVT-AV1 only supports Intel-compatible CPUs.
(supported-systems '("x86_64-linux" "i686-linux"))
@@ -3934,3 +3925,180 @@ work-in-progress, aiming to support video-on-demand and live streaming
applications. It only supports Intel-compatible CPUs (x86).")
(home-page "https://github.com/OpenVisualCloud/SVT-AV1")
(license license:bsd-2)))
+
+(define-public w-scan
+ (package
+ (name "w-scan")
+ (version "20170107")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append "https://www.gen2vdr.de/wirbel/w_scan/w_scan-"
+ version ".tar.bz2"))
+ (sha256
+ (base32 "1zkgnj2sfvckix360wwk1v5s43g69snm45m0drnzyv7hgf5g7q1q"))))
+ (build-system gnu-build-system)
+ (synopsis "Scan ATSC/DVB-C/DVB-S/DVB-T channels")
+ (description
+ "This is a small command line utility used to perform frequency scans for
+DVB and ATSC transmissions without initial tuning data. It can print the
+result in several formats:
+@itemize
+@item VDR channels.conf,
+@item czap/tzap/xine/mplayer channels.conf,
+@item Gstreamer dvbsrc plugin,
+@item VLC xspf playlist,
+@item XML,
+@item initial tuning data for scan or dvbv5-scan.
+@end itemize\n")
+ (home-page "https://www.gen2vdr.de/wirbel/w_scan/index2.html")
+ (license license:gpl2+)))
+
+(define-public rav1e
+ (package
+ (name "rav1e")
+ (version "0.3.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rav1e" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1bsmj8kqzs5pf8dl98rsl6a67cljj1gkj3b5hmd8hn8wdy4ya173"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-simd-helpers" ,rust-simd-helpers-0.1)
+ ("rust-ivf" ,rust-ivf-0.1)
+ ("rust-cfg-if" ,rust-cfg-if-0.1)
+ ("rust-paste" ,rust-paste-0.1)
+ ("rust-signal-hook" ,rust-signal-hook-0.1)
+ ("rust-aom-sys" ,rust-aom-sys-0.1)
+ ("rust-nasm-rs" ,rust-nasm-rs-0.1)
+ ("rust-arbitrary" ,rust-arbitrary-0.2)
+ ("rust-better-panic" ,rust-better-panic-0.2)
+ ("rust-noop-proc-macro"
+ ,rust-noop-proc-macro-0.2)
+ ("rust-num-traits" ,rust-num-traits-0.2)
+ ("rust-rand-chacha" ,rust-rand-chacha-0.2)
+ ("rust-err-derive" ,rust-err-derive-0.2)
+ ("rust-interpolate-name"
+ ,rust-interpolate-name-0.2)
+ ("rust-rustc-version" ,rust-rustc-version-0.2)
+ ("rust-scan-fmt" ,rust-scan-fmt-0.2)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-image" ,rust-image-0.22)
+ ("rust-arg-enum-proc-macro"
+ ,rust-arg-enum-proc-macro-0.3)
+ ("rust-num-derive" ,rust-num-derive-0.3)
+ ("rust-dav1d-sys" ,rust-dav1d-sys-0.3)
+ ("rust-backtrace" ,rust-backtrace-0.3)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-y4m" ,rust-y4m-0.5)
+ ("rust-arrayvec" ,rust-arrayvec-0.5)
+ ("rust-toml" ,rust-toml-0.5)
+ ("rust-fern" ,rust-fern-0.5)
+ ("rust-rust-hawktracer"
+ ,rust-rust-hawktracer-0.7)
+ ("rust-rand" ,rust-rand-0.7)
+ ("rust-itertools" ,rust-itertools-0.8)
+ ("rust-bitstream-io" ,rust-bitstream-io-0.8)
+ ("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-byteorder" ,rust-byteorder-1.3)
+ ("rust-clap" ,rust-clap-2)
+ ("rust-vergen" ,rust-vergen-3.1))
+ #:cargo-development-inputs
+ (("rust-rand-chacha" ,rust-rand-chacha-0.2)
+ ("rust-interpolate-name"
+ ,rust-interpolate-name-0.2)
+ ("rust-criterion" ,rust-criterion-0.3)
+ ("rust-pretty-assertions"
+ ,rust-pretty-assertions-0.6)
+ ("rust-rand" ,rust-rand-0.7)
+ ("rust-semver" ,rust-semver-0.9))
+ #:phases
+ (modify-phases %standard-phases
+ (replace 'build
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (invoke "cargo" "cinstall" "--release"
+ (string-append "--prefix=" out))))))))
+ (native-inputs
+ `(("cargo-c" ,rust-cargo-c)))
+ (inputs
+ `(("nasm" ,nasm)))
+ (home-page "https://github.com/xiph/rav1e/")
+ (synopsis "The fastest and safest AV1 encoder")
+ (description
+ "The fastest and safest AV1 encoder.")
+ (license license:bsd-2)))
+
+(define-public peek
+ (package
+ (name "peek")
+ (version "1.5.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/phw/peek.git")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1xwlfizga6hvjqq127py8vabaphsny928ar7mwqj9cyqfl6fx41x"))))
+ (build-system meson-build-system)
+ (arguments '(#:glib-or-gtk? #t))
+ (inputs
+ `(("gtk+" ,gtk+)))
+ (native-inputs
+ `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database
+ ("gettext" ,gettext-minimal)
+ ("glib:bin" ,glib "bin") ; for glib-compile-resources
+ ("gtk+-bin" ,gtk+ "bin") ; For gtk-update-icon-cache
+ ("pkg-config" ,pkg-config)
+ ("vala" ,vala)))
+ (home-page "https://github.com/phw/peek")
+ (synopsis "Simple animated GIF screen recorder")
+ (description
+ "Peek makes it easy to create short screencasts of a screen area. It was
+built for the specific use case of recording screen areas, e.g. for easily
+showing UI features of your own apps or for showing a bug in bug reports.
+With Peek, you simply place the Peek window over the area you want to record
+and press \"Record\". Peek is optimized for generating animated GIFs, but you
+can also directly record to WebM or MP4 if you prefer.")
+ (license license:gpl3+)))
+
+(define-public wf-recorder
+ (package
+ (name "wf-recorder")
+ (version "0.2.1")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/ammen99/wf-recorder.git")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1cw6kpcbl33wh95pvy32xrsrm6kkk1awccr3phyh885xjs3b3iim"))))
+ (build-system meson-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("ffmpeg" ,ffmpeg)
+ ("pulseaudio" ,pulseaudio)
+ ("wayland" ,wayland)
+ ("wayland-protocols" ,wayland-protocols)
+ ("libx264" ,libx264)))
+ (home-page "https://github.com/ammen99/wf-recorder")
+ (synopsis "Screen recorder for wlroots-based compositors")
+ (description
+ "@code{wf-recorder} is a utility program for screen recording of
+wlroots-based compositors. More specifically, those that support
+@code{wlr-screencopy-v1} and @code{xdg-output}.")
+ (license license:expat)))