;;; 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>
;;; Copyright © 2016 Dmitry Nikolaev <cameltheman@gmail.com>
;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
-;;; Copyright © 2016, 2017 ng0 <ng0@n0.is>
+;;; Copyright © 2016, 2017 Nikita <nikita@n0.is>
;;; Copyright © 2016, 2018, 2019, 2020 Eric Bavier <bavier@posteo.net>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017 Feng Shu <tumashu@163.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>
+;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020 Vinicius Monego <monego@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
#: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 (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)
#: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)
#:use-module (gnu packages ocr)
#:use-module (gnu packages perl)
#:use-module (gnu packages perl-check)
+ #:use-module (gnu packages perl-web)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages popt)
#:use-module (gnu packages pretty-print)
#: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)
(define-public libaom
(package
(name "libaom")
- (version "1.0.0-errata1-avif")
+ (version "2.0.0")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "169yfgh7zigc21h71qclfyr7s4wwp2i9vbr4z6pkabypvass4v7m"))))
+ "1616xjhj6770ykn82ml741h8hx44v507iky3s9h7a5lnk9d4cxzy"))))
(build-system cmake-build-system)
(native-inputs
`(("perl" ,perl)
(define-public x265
(package
(name "x265")
- (version "3.3")
+ (version "3.4")
(outputs '("out" "static"))
(source
(origin
(string-append "https://download.videolan.org/videolan/x265/"
"x265_" version ".tar.gz")))
(sha256
- (base32 "170b61cgpcs5n35qps0p40dqs1q81vkgagzbs4zv7pzls6718vpj"))
+ (base32 "0wl62hfsdqpf3r3z3s6l9bz7pdb1rcik5ll00b3yaadplqipy162"))
(patches (search-patches "x265-arm-flags.patch"))
(modules '((guix build utils)))
(snippet '(begin
(delete-file-recursively "source/compat/getopt")
#t))))
(build-system cmake-build-system)
+ (native-inputs
+ ;; XXX: ASM optimization fails on i686-linux, see <https://bugs.gnu.org/41768>.
+ (if (string-prefix? "i686" (%current-system))
+ '()
+ `(("nasm" ,nasm))))
(arguments
`(#:tests? #f ; tests are skipped if cpu-optimized code isn't built
#:configure-flags
;; Ensure position independent code for everyone.
(list "-DENABLE_PIC=TRUE"
- ,@(if (string-prefix? "armhf" (or (%current-system)
- (%current-target-system)))
+ ,@(if (target-arm?)
'("-DENABLE_ASSEMBLY=OFF")
'())
(string-append "-DCMAKE_INSTALL_PREFIX="
(lambda _
(delete-file-recursively "build")
(chdir "source")
- ;; recognize armv8 in 32-bit mode as ARM
- (substitute* "CMakeLists.txt"
- (("armv6l") "armv8l"))
#t))
(add-before 'configure 'build-12-bit
(lambda* (#:key (configure-flags '()) #:allow-other-keys)
(define-public libva
(package
(name "libva")
- (version "2.6.1")
+ (version "2.7.1")
(source
(origin
(method url-fetch)
(string-append "https://www.freedesktop.org/software/vaapi/releases/"
"libva/libva-" version "/libva-" version ".tar.bz2")))
(sha256
- (base32 "19df3r02k1p4cbyvifkdjyc8q7hi23f5b3x3390z52l25mjfnmvc"))))
+ (base32 "014av7ayyc624xfmr63xhbgg7nw8fynsswj1g2wmk4lnkyfz23x0"))))
(build-system gnu-build-system)
(native-inputs
`(("pkg-config" ,pkg-config)))
(define-public ffmpeg
(package
(name "ffmpeg")
- (version "4.2.2")
+ (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
- "176jn1lcdf0gk7sa5l2mv0faqp5dsqdhx1gqcrgymqhfmdal4xfb"))))
+ "0pbrsv5v96yd8qzb9bk4kw7qk4xqpi03rsd5xfbwnjzlhijd02hx"))))
(build-system gnu-build-system)
(inputs
`(("dav1d" ,dav1d)
("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)
"--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"
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)
(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
(define-public vlc
(package
(name "vlc")
- (version "3.0.8")
+ (version "3.0.11")
(source (origin
(method url-fetch)
(uri (string-append
"/vlc-" version ".tar.xz"))
(sha256
(base32
- "1xmxjpyzdhabchwncz6lvx3kzvl7fz9c42bkv3nbj68albs9w570"))
- (patches
- (search-patches
- ;; TODO: The test "libvlc_slaves" fails. Applied upstream as
- ;; <https://git.videolan.org/?p=vlc.git;a=commit;h=4186c94104ee528abd6860611b49515f3e6ec644>.
- ;; Try removing it in 3.0.9.
- "vlc-fix-test_libvlc_slaves.patch"))))
+ "06a9hfl60f6l0fs5c9ma5s8np8kscm4ala6m2pdfji9lyfna351y"))))
(build-system gnu-build-system)
(native-inputs
`(("flex" ,flex)
(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)
;; which fails in our sandboxed build system
(substitute* "test/run_vlc.sh"
(("./vlc --ignore-config") "echo"))
-
- ;; modules/text_renderer/freetype/text_layout.c uses a
- ;; now-deprecated interface 'fribidi_get_par_embedding_levels'
- ;; from fribidi.h, so for now we enable the use of deprecated
- ;; fribidi interfaces from this file.
- ;; FIXME: Try removing this for vlc >= 3.0.3.
- (substitute* "modules/text_renderer/freetype/text_layout.c"
- (("# define FRIBIDI_NO_DEPRECATED 1") ""))
-
- ;; Fix build with libssh2 > 1.8.0:
- ;; <https://trac.videolan.org/vlc/ticket/22060>
- ;; <https://git.videolan.org/?p=vlc.git;a=commit;h=11449b5cd8b415768e010d9b7c1d6ba3cea21f82>
- (substitute* "modules/access/sftp.c"
- (("010801") "010900"))
#t)))
(add-after 'strip 'regenerate-plugin-cache
(lambda* (#:key outputs #:allow-other-keys)
(("\"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)
(define-public mpv-mpris
(package
(name "mpv-mpris")
- (version "0.4")
+ (version "0.5")
(source
(origin
(method git-fetch)
(file-name (git-file-name name version))
(sha256
(base32
- "1fr3jvja8s2gdpx8qyk9r17977flms3qpm8zci62nd9r5wjdvr5i"))))
+ "07p6li5z38pkfd40029ag2jqx917vyl3ng5p2i4v5a0af14slcnk"))))
(build-system copy-build-system)
(arguments
'(#:install-plan
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2020.03.24")
+ (version "2020.06.16.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/ytdl-org/youtube-dl/"
version ".tar.gz"))
(sha256
(base32
- "05l4asakakxn53wrvxn6c03fd80zdizdbj6r2cj8c1ja3sj9i8s5"))))
+ "1q0080cvxpfakgbzigbnl9adnga3jz1sqig2rsiq52rarqbc01px"))))
(build-system python-build-system)
(arguments
;; The problem here is that the directory for the man page and completion
(define-public youtube-viewer
(package
(name "youtube-viewer")
- (version "3.7.5")
+ (version "3.7.6")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "1caz56sxy554avz2vdv9gm7gyqcq0gyixzrh5v9ixmg6vxif5d4f"))))
+ "1c7wynx0fzs8awb1s4rdrl8xavqlj64z95yckhl1m1gnhahhq291"))))
(build-system perl-build-system)
(native-inputs
`(("perl-module-build" ,perl-module-build)))
(define-public streamlink
(package
(name "streamlink")
- (version "1.3.1")
+ (version "1.4.1")
(source
(origin
(method url-fetch)
(uri (pypi-uri "streamlink" version))
(sha256
(base32
- "0cnlg3ra3g6dml4xfy9ysy9b4qwyn458fadd8ac44cfwi3v4gq6y"))))
+ "1s458k8z1lv0w8i82sxs8dys66fwm4yr9j1m7fzp7r0piz8phcpd"))))
(build-system python-build-system)
(home-page "https://github.com/streamlink/streamlink")
(native-inputs
(define-public mlt
(package
(name "mlt")
- (version "6.18.0")
+ (version "6.20.0")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "0iiqym15n8kbnjzj0asmm86gs23yykz0va5b475cc4v2vv5admgx"))))
+ "14kayzas2wisyw0z27qkcm4qnxbdb7bqa0hg7gaj5kbm3nvsnafk"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
#t)))))
(inputs
`(("alsa-lib" ,alsa-lib)
- ("ffmpeg" ,ffmpeg-3.4)
+ ("ffmpeg" ,ffmpeg)
("fftw" ,fftw)
("frei0r-plugins" ,frei0r-plugins)
("gdk-pixbuf" ,gdk-pixbuf)
(define-public obs
(package
(name "obs")
- (version "24.0.4")
+ (version "25.0.8")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "0m15ch2ix9qrdf1a9mj7wcpl72z3h13zx60c9q72sb1435id2g1q"))))
+ "0j2k65q3wfyfxhvkl6icz4qy0s3kfqhksizy2i3ah7yml266axbj"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f)) ; no tests
+ `(#:tests? #f ; no test suite
+ #:configure-flags
+ (list (string-append "-DOBS_VERSION_OVERRIDE=" ,version))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
("jansson" ,jansson)
("libx264" ,libx264)
("libxcomposite" ,libxcomposite)
+ ("mbedtls" ,mbedtls-apache)
("mesa" ,mesa)
("pulseaudio" ,pulseaudio)
("qtbase" ,qtbase)
(define-public libaacs
(package
(name "libaacs")
- (version "0.9.0")
+ (version "0.10.0")
(source
(origin
(method url-fetch)
(uri (string-append "https://ftp.videolan.org/pub/videolan/libaacs/"
- version "/" name "-" version ".tar.bz2"))
+ version "/libaacs-" version ".tar.bz2"))
(sha256
- (base32 "1kms92i0c7i1yl659kqjf19lm8172pnpik5lsxp19xphr74vvq27"))))
+ (base32 "1zhjdcph8sqx7ak35s22kc736icwq135jlypggkp6vqyyygb3xlk"))))
(inputs
`(("libgcrypt" ,libgcrypt)))
(native-inputs
(define-public handbrake
(package
(name "handbrake")
- (version "1.3.1")
+ (version "1.3.3")
(source (origin
(method url-fetch)
- (uri (string-append "https://download.handbrake.fr/releases/"
- version "/HandBrake-" version "-source.tar.bz2"))
+ (uri (string-append "https://github.com/HandBrake/HandBrake/"
+ "releases/download/" version "/"
+ "HandBrake-" version "-source.tar.bz2"))
(sha256
(base32
- "09rcrq0kjs1lc1as7w3glbpbfvzldwpx3xv0pfmkn4pl7acxw1f0"))
+ "11bzhyp052bmng5119x74xvdj5632smx6qsk537ygda8bzckg2i1"))
(modules '((guix build utils)))
(snippet
;; Remove "contrib" and source not necessary for
(define-public intel-vaapi-driver
(package
(name "intel-vaapi-driver")
- (version "2.4.0")
+ (version "2.4.1")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/intel/intel-vaapi-driver/"
- "releases/download/" version "/intel-vaapi-driver-"
- version ".tar.bz2"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/intel/intel-vaapi-driver")
+ (commit version)))
(sha256
- (base32 "12fhydgwpvyh97gxqlgv77wsf9yax321h46vi49j4sxghpcxvqki"))))
+ (base32 "1cidki3av9wnkgwi7fklxbg3bh6kysf8w3fk2qadjr05a92mx3zp"))
+ (file-name (git-file-name name version))))
(build-system gnu-build-system)
(native-inputs
- `(("pkg-config" ,pkg-config)))
+ `(("autoconf" ,autoconf)
+ ("automake" ,automake)
+ ("libtool" ,libtool)
+ ("pkg-config" ,pkg-config)))
(inputs
`(("libdrm" ,libdrm)
("libva" ,libva)
(define-public openh264
(package
(name "openh264")
- (version "2.0.0")
+ (version "2.1.1")
(source (origin
- (method url-fetch)
- (uri (string-append "https://github.com/cisco/"
- name "/releases/download/v"
- version "/Source.Code.tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/cisco/openh264")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0iq802xfsfkskg6q1j0kg90xh04vv1sxf61mrmahgynz5d7hx2ii"))))
+ "0ffav46pz3sbj92nipd62z03fibyqgclfq9w8lgr80s6za6zdk5s"))))
(build-system gnu-build-system)
(native-inputs
`(("nasm" ,nasm)
(define-public libmediainfo
(package
(name "libmediainfo")
- (version "0.7.95")
+ (version "20.03")
(source (origin
(method url-fetch)
(uri (string-append "https://mediaarea.net/download/source/"
- name "/" version"/"
- name "_" version ".tar.bz2"))
+ name "/" version "/"
+ name "_" version ".tar.xz"))
(sha256
(base32
- "1kchh6285b07z5nixv619hc9gml2ysdayicdiv30frrlqiyxqw4b"))))
+ "0wkzj5s34m8dvy7hif4h8f90q8ncrzd930gij1zzw3h5nw732j38"))))
;; TODO add a Big Buck Bunny webm for tests.
(native-inputs
`(("autoconf" ,autoconf)
(define-public mediainfo
(package
(name "mediainfo")
- (version "18.12")
+ (version "20.03")
(source (origin
(method url-fetch)
;; Warning: This source has proved unreliable 1 time at least.
;; happens again.
(uri (string-append "https://mediaarea.net/download/source/"
name "/" version "/"
- name "_" version ".tar.bz2"))
+ name "_" version ".tar.xz"))
(sha256
(base32
- "1ix95ilcjlawcq6phh25cgplm3riqa2ii7ql82g8yagqs4ldqp6a"))))
+ "1f1shnycf0f1fwka9k9s250l228xjkg0k4k73h8bpld8msighgnw"))))
(native-inputs
`(("autoconf" ,autoconf)
("automake" ,automake)
("pkg-config" ,pkg-config)))
(inputs
`(("libjpeg" ,libjpeg-turbo)
- ("ffmpeg" ,ffmpeg-3.4)
+ ("ffmpeg" ,ffmpeg)
("libmicrohttpd" ,libmicrohttpd)
("sqlite" ,sqlite)))
(arguments
(define-public dav1d
(package
(name "dav1d")
- (version "0.6.0")
+ (version "0.7.1")
(source
(origin
(method url-fetch)
"/dav1d/" version "/dav1d-" version ".tar.xz"))
(sha256
(base32
- "0w5k572jzxp7zwdbsa0jgjzri6hsrkydawzzilrw46nxpcak37q9"))))
+ "1hnkfcg57bv5rib6cnj39dy1jx0q7zi5fb2fz52hf2y0bv8bad1k"))))
(build-system meson-build-system)
(native-inputs `(("nasm" ,nasm)))
(home-page "https://code.videolan.org/videolan/dav1d")
(define-public svt-av1
(package
(name "svt-av1")
- (version "0.8.1")
+ (version "0.8.3")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "08sx9zhhks8wzq05f67jqmc1zqmmi7hqkgg2gyjpcsan5qc5476w"))))
+ "1rh4sz1bmrsxyxfxajsffw5jd17djcrymhwsi877v02fgln027qr"))))
(build-system cmake-build-system)
;; SVT-AV1 only supports Intel-compatible CPUs.
(supported-systems '("x86_64-linux" "i686-linux"))
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)
+ ("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)))
+
+(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+)))
+
+(define-public get-iplayer
+ (package
+ (name "get-iplayer")
+ (version "3.26")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/get-iplayer/get_iplayer")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "0lsz5hz1ia5j612540rb0f31y7j2k5gf7x5i43l8k06b90wi73d6"))))
+ (build-system perl-build-system)
+ (arguments
+ `(#:tests? #f ; no tests
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (man (string-append out "/share/man/man1")))
+ (install-file "get_iplayer" bin)
+ (install-file "get_iplayer.cgi" bin)
+ (install-file "get_iplayer.1" man))
+ #t))
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (perllib (string-append out "/lib/perl5/site_perl/"
+ ,(package-version perl))))
+ (wrap-program (string-append out "/bin/get_iplayer")
+ `("PERL5LIB" ":"
+ prefix (,(string-append perllib ":" (getenv "PERL5LIB")))))
+ (wrap-program (string-append out "/bin/get_iplayer.cgi")
+ `("PERL5LIB" ":"
+ prefix (,(string-append perllib ":" (getenv "PERL5LIB")))))
+ #t))))))
+ (inputs
+ `(("perl-mojolicious" ,perl-mojolicious)
+ ("perl-lwp-protocol-https" ,perl-lwp-protocol-https)
+ ("perl-xml-libxml" ,perl-xml-libxml)))
+ (home-page "https://github.com/get-iplayer/get_iplayer")
+ (synopsis "Download or stream available BBC iPlayer TV and radio programmes")
+ (description "@code{get_iplayer} lists, searches and records BBC iPlayer
+TV/Radio, BBC Podcast programmes. Other third-party plugins may be available.
+@code{get_iplayer} has three modes: recording a complete programme for later
+playback, streaming a programme directly to a playback application, such as
+mplayer; and as a @dfn{Personal Video Recorder} (PVR), subscribing to search
+terms and recording programmes automatically. It can also stream or record live
+BBC iPlayer output.")
+ (license license:gpl3+)))