;;; Copyright © 2014, 2015, 2016 David Thompson <davet@gnu.org>
;;; Copyright © 2014, 2015, 2016, 2018, 2020 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015, 2016 Andy Patterson <ajpatter@uwaterloo.ca>
;;; Copyright © 2015, 2018, 2019, 2020, 2021 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018, 2019 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2018, 2019, 2020, 2021 Marius Bakke <marius@gnu.org>
+;;; Copyright © 2018-2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2018, 2019, 2020, 2022 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Brendan Tildesley <mail@brendan.scot>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
;;; Copyright © 2019 Riku Viitanen <riku.viitanen@protonmail.com>
;;; Copyright © 2020, 2021 Oleg Pykhalov <go.wigust@gmail.com>
;;; Copyright © 2020 Josh Holland <josh@inv.alid.pw>
-;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re>
+;;; Copyright © 2020, 2021 Brice Waegeneire <brice@waegenei.re>
;;; Copyright © 2020 Vincent Legoll <vincent.legoll@gmail.com>
;;; Copyright © 2020, 2021 Guillaume Le Vaillant <glv@posteo.net>
;;; Copyright © 2020 Alex McGrath <amk@amk.ie>
-;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
-;;; Copyright © 2020, 2021 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2020, 2021, 2022 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020, 2021, 2022 Vinicius Monego <monego@posteo.net>
;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro>
;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru>
;;; Copyright © 2021 Alexey Abramov <levenson@mmer.org>
;;; Copyright © 2021 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2021 David Wilson <david@daviwil.com>
-;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021,2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2020 Hartmut Goebel <h.goebel@crazy-compilers.com>
;;; Copyright © 2021 Raghav Gururajan <rg@raghavgururajan.name>
;;; Copyright © 2021 Thiago Jung Bauermann <bauermann@kolabnow.com>
;;; Copyright © 2021 Petr Hodina <phodina@protonmail.com>
;;; Copyright © 2021 Robin Templeton <robin@terpri.org>
;;; Copyright © 2021 Aleksandr Vityazev <avityazev@posteo.org>
+;;; Copyright © 2021 Pradana Aumars <paumars@courrier.dev>
+;;; Copyright © 2022 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
+;;; Copyright © 2022 Bird <birdsite@airmail.cc>
+;;; Copyright © 2022 Jai Vetrivelan <jaivetrivelan@gmail.com>
+;;; Copyright © 2022 Chadwain Holness <chadwainholness@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
#:use-module (gnu packages libreoffice)
#:use-module (gnu packages libusb)
#:use-module (gnu packages linux)
+ #:use-module (gnu packages llvm)
#:use-module (gnu packages lua)
#:use-module (gnu packages m4)
#:use-module (gnu packages man)
;"--enable-pv3"
;"--enable-nuv"
(native-inputs
- `(("autoconf" ,autoconf)
- ("automake" ,automake)
- ("iconv" ,libiconv)
- ("libtool" ,libtool)
- ("libxml2" ,libxml2)
- ("perl" ,perl)
- ("pkg-config" ,pkg-config)
- ("python" ,python-wrapper)))
+ (list autoconf
+ automake
+ libtool
+ libxml2
+ perl
+ pkg-config
+ python-wrapper))
(inputs
- `(("alsa-lib" ,alsa-lib)
- ("faac" ,faac)
- ("ffmpeg" ,ffmpeg)
- ("freetype" ,freetype)
- ("imagemagick" ,imagemagick)
- ("lame" ,lame)
- ("liba52" ,liba52)
- ("libdv" ,libdv)
- ("libdvdread" ,libdvdread)
- ("libjpeg" ,libjpeg-turbo)
- ("libmpeg2" ,libmpeg2)
- ("libogg" ,libogg)
- ("libquicktime" ,libquicktime)
- ("libtheora" ,libtheora)
- ("libvorbis" ,libvorbis)
- ("lzo" ,lzo)
- ("mjepgtools" ,mjpegtools)
- ("sdl" ,sdl)
- ;; ("v4l-utils" ,v4l-utils)
- ("x11" ,libx11)
- ("x264" ,libx264)
- ("xaw" ,libxaw)
- ("xext" ,libxext)
- ("xpm" ,libxpm)
- ("xv" ,libxv)
- ("xvid" ,xvid)
- ("zlib" ,zlib)))
+ (list alsa-lib
+ faac
+ ffmpeg
+ freetype
+ imagemagick
+ lame
+ liba52
+ libdv
+ libdvdread
+ libjpeg-turbo
+ libmpeg2
+ libogg
+ libquicktime
+ libtheora
+ libvorbis
+ lzo
+ mjpegtools
+ sdl
+ ;; ("v4l-utils" ,v4l-utils)
+ libx11
+ libx264
+ libxaw
+ libxext
+ libxpm
+ libxv
+ xvid
+ zlib))
(synopsis "Audio/Video Transcoder")
(description "Transcode is a fast, versatile and command-line based
-audio/video everything to everything converter primarily focussed on producing
+audio/video everything to everything converter primarily focused on producing
AVI video files with MP3 audio, but also including a program to read all the
video and audio streams from a DVD.")
(home-page
(define-public mjpegtools
(package
(name "mjpegtools")
- (version "2.1.0")
+ (version "2.2.1")
(source
(origin
(method url-fetch)
(uri
- (string-append "https://sourceforge.net/projects/" name "/files/"
+ (string-append "https://sourceforge.net/projects/mjpeg/files/"
name "/" version "/" name "-" version ".tar.gz"))
(sha256
- (base32 "0kvhxr5hkabj9v7ah2rzkbirndfqdijd9hp8v52c1z6bxddf019w"))))
+ (base32 "16pl22ra3x2mkp8p3awslhlhj46b1nq9g89301gb0q4rgmnm705i"))))
(build-system gnu-build-system)
(inputs
- (list gtk+-2 libdv libpng libquicktime sdl))
+ (list gtk+-2 libdv libjpeg-turbo libpng libquicktime sdl))
+ (native-inputs
+ (list pkg-config))
(synopsis "Tools for handling MPEG")
(description "Mjpeg tools is a suite of programs which support video capture,
editing, playback, and compression to MPEG of MJPEG video. Edit, play and
(ncurses (assoc-ref inputs "ncurses")))
(setenv "CONFIG_SHELL" (which "bash"))
(invoke "./configure"
+ "--disable-static"
(string-append "--prefix=" out)
(string-append "--build=" build)
(string-append "--with-ncurses="
(define-public celluloid
(package
(name "celluloid")
- (version "0.22")
+ (version "0.23")
(source
(origin
(method url-fetch)
"/releases/download/v" version
"/celluloid-" version ".tar.xz"))
(sha256
- (base32 "18g596ja8g0fy79pmxqdlzqzb0f9xq69ik4bah8g2ppipfvxbpjz"))))
+ (base32 "0x23y09jwkg8wbb0yp5f03sj5hwjg3kyhbbww2y1a0izs1iijbdj"))))
(build-system glib-or-gtk-build-system)
(native-inputs
(list intltool pkg-config))
(define-public libaom
(package
(name "libaom")
- (version "3.2.0")
+ (version "3.3.0")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "0fmnbzpl481i7kchx4hbvb507r5pfgyrzfrlrs7jk3bicycm75qv"))))
+ "024vhsx7bw9kajk65hhh5vmqrja0h33rmlcpngsj3yg4p8l29943"))))
(build-system cmake-build-system)
(native-inputs
(list perl pkg-config python)) ; to detect the version
(build-system gnu-build-system)
(native-inputs
(list pkg-config nasm))
+ (inputs
+ (list config))
;; TODO: Add gpac input
(arguments
`(#:tests? #f ;no check target
;; program depends on ffmpeg and ffmpeg depends on
;; libx264).
"--disable-cli"
+ "--enable-pic"
;; On MIPS, we must pass "--disable-asm" or else
;; configure fails after printing: "You specified a
(or (%current-target-system)
(%current-system)))
'("--disable-asm")
- '()))))
+ '()))
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'update-config-scripts
+ (lambda* (#:key native-inputs inputs #:allow-other-keys)
+ (for-each (lambda (file)
+ (install-file
+ (search-input-file
+ (or native-inputs inputs)
+ (string-append "/bin/" file)) "."))
+ '("config.guess" "config.sub")))))))
(home-page "https://www.videolan.org/developers/x264.html")
(synopsis "H.264 video coding library")
(description "libx264 is an advanced encoding library for creating
(define-public pipe-viewer
(package
(name "pipe-viewer")
- (version "0.1.7")
+ (version "0.2.0")
(source
(origin
(method git-fetch)
(commit version)))
(file-name (git-file-name name version))
(sha256
- (base32 "1fh8b77vchpsar88dszsz5h1gzd4jz0v902igp2880vnpvacmfi9"))))
+ (base32 "19qfs0nv7l01468f14a5zbvaiff5hrsk3a4zqknh15014xnvw08s"))))
(build-system perl-build-system)
(arguments
`(#:imported-modules
operate properly.")
(license license:expat)))
-(define-public ffmpeg
+(define-public ffmpeg-5
(package
(name "ffmpeg")
- (version "4.4.1")
+ (version "5.0.1")
(source (origin
- (method url-fetch)
- (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
- version ".tar.xz"))
- (sha256
- (base32
- "00hfwd8ld6jnd26pl9f0wcd2mag4zacxxgqgabsja2xkkagavnza"))))
+ (method url-fetch)
+ (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "0yq0jcdc4qm5znrzylj3dsicrkk2n3n8bv28vr0a506fb7iglbpg"))))
(build-system gnu-build-system)
(inputs
- `(("dav1d" ,dav1d)
- ("fontconfig" ,fontconfig)
- ("freetype" ,freetype)
- ("frei0r-plugins" ,frei0r-plugins)
- ("gnutls" ,gnutls)
- ("opus" ,opus)
- ("ladspa" ,ladspa)
- ("lame" ,lame)
- ("libaom" ,libaom)
- ("libass" ,libass)
- ("libbluray" ,libbluray)
- ("libcaca" ,libcaca)
- ("libcdio-paranoia" ,libcdio-paranoia)
- ("libdrm" ,libdrm)
- ("libtheora" ,libtheora)
- ("libva" ,libva)
- ("libvdpau" ,libvdpau)
- ("libvorbis" ,libvorbis)
- ("libvpx" ,libvpx)
- ("libx11" ,libx11)
- ("libx264" ,libx264)
- ("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)
- ("srt" ,srt)
- ("twolame" ,twolame)
- ("vidstab" ,vidstab)
- ("x265" ,x265)
- ("xvid" ,xvid)
- ("zlib" ,zlib)))
+ (append
+ ;; XXX: rav1e depends on rust, which currently only works on x86_64.
+ ;; See also the related configure flag when changing this.
+ (if (target-x86-64?) (list rav1e) '())
+ (list dav1d
+ fontconfig
+ freetype
+ frei0r-plugins
+ gnutls
+ opus
+ ladspa
+ lame
+ libaom
+ libass
+ libbluray
+ libcaca
+ libcdio-paranoia
+ libdrm
+ libtheora
+ libva
+ libvdpau
+ libvorbis
+ libvpx
+ libx11
+ libx264
+ mesa
+ openal
+ pulseaudio
+ sdl2
+ soxr
+ speex
+ srt
+ twolame
+ vidstab
+ x265
+ xvid
+ zlib)))
(native-inputs
(list bc
perl
speex
yasm))
(arguments
- `(#:test-target "fate"
- #:configure-flags
- ;; possible additional inputs:
- ;; --enable-avisynth enable reading of AviSynth script
- ;; files [no]
- ;; --enable-libaacplus enable AAC+ encoding via libaacplus [no]
- ;; --enable-libcelt enable CELT decoding via libcelt [no]
- ;; --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394
- ;; and libraw1394 [no]
- ;; --enable-libfaac enable AAC encoding via libfaac [no]
- ;; --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no]
- ;; --enable-libflite enable flite (voice synthesis) support via
- ;; libflite [no]
- ;; --enable-libgme enable Game Music Emu via libgme [no]
- ;; --enable-libgsm enable GSM de/encoding via libgsm [no]
- ;; --enable-libiec61883 enable iec61883 via libiec61883 [no]
- ;; --enable-libilbc enable iLBC de/encoding via libilbc [no]
- ;; --enable-libmodplug enable ModPlug via libmodplug [no]
- ;; --enable-libnut enable NUT (de)muxing via libnut,
- ;; native (de)muxer exists [no]
- ;; --enable-libopencore-amrnb enable AMR-NB de/encoding via
- ;; libopencore-amrnb [no]
- ;; --enable-libopencore-amrwb enable AMR-WB decoding via
- ;; libopencore-amrwb [no]
- ;; --enable-libopencv enable video filtering via libopencv [no]
- ;; --enable-libopenjpeg enable JPEG 2000 de/encoding via
- ;; OpenJPEG [no]
- ;; --enable-librtmp enable RTMP[E] support via librtmp [no]
- ;; --enable-libschroedinger enable Dirac de/encoding via
- ;; libschroedinger [no]
- ;; --enable-libshine enable fixed-point MP3 encoding via
- ;; libshine [no]
- ;; --enable-libssh enable SFTP protocol via libssh [no]
- ;; (libssh2 does not work)
- ;; --enable-libstagefright-h264 enable H.264 decoding via
- ;; libstagefright [no]
- ;; --enable-libutvideo enable Ut Video encoding and decoding via
- ;; libutvideo [no]
- ;; --enable-libv4l2 enable libv4l2/v4l-utils [no]
- ;; --enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no]
- ;; --enable-libvo-amrwbenc enable AMR-WB encoding via
- ;; libvo-amrwbenc [no]
- ;; --enable-libwavpack enable wavpack encoding via libwavpack [no]
- ;; --enable-libxavs enable AVS encoding via xavs [no]
- ;; --enable-libzmq enable message passing via libzmq [no]
- ;; --enable-libzvbi enable teletext support via libzvbi [no]
- ;; --enable-opencl enable OpenCL code
- '("--enable-avresample"
- "--enable-gpl" ; enable optional gpl licensed parts
+ (list
+ #:test-target "fate"
+ #:configure-flags
+ ;; possible additional inputs:
+ ;; --enable-avisynth enable reading of AviSynth script
+ ;; files [no]
+ ;; --enable-libaacplus enable AAC+ encoding via libaacplus [no]
+ ;; --enable-libcelt enable CELT decoding via libcelt [no]
+ ;; --enable-libdc1394 enable IIDC-1394 grabbing using libdc1394
+ ;; and libraw1394 [no]
+ ;; --enable-libfaac enable AAC encoding via libfaac [no]
+ ;; --enable-libfdk-aac enable AAC de/encoding via libfdk-aac [no]
+ ;; --enable-libflite enable flite (voice synthesis) support via
+ ;; libflite [no]
+ ;; --enable-libgme enable Game Music Emu via libgme [no]
+ ;; --enable-libgsm enable GSM de/encoding via libgsm [no]
+ ;; --enable-libiec61883 enable iec61883 via libiec61883 [no]
+ ;; --enable-libilbc enable iLBC de/encoding via libilbc [no]
+ ;; --enable-libmodplug enable ModPlug via libmodplug [no]
+ ;; --enable-libnut enable NUT (de)muxing via libnut,
+ ;; native (de)muxer exists [no]
+ ;; --enable-libopencore-amrnb enable AMR-NB de/encoding via
+ ;; libopencore-amrnb [no]
+ ;; --enable-libopencore-amrwb enable AMR-WB decoding via
+ ;; libopencore-amrwb [no]
+ ;; --enable-libopencv enable video filtering via libopencv [no]
+ ;; --enable-libopenjpeg enable JPEG 2000 de/encoding via
+ ;; OpenJPEG [no]
+ ;; --enable-librtmp enable RTMP[E] support via librtmp [no]
+ ;; --enable-libschroedinger enable Dirac de/encoding via
+ ;; libschroedinger [no]
+ ;; --enable-libshine enable fixed-point MP3 encoding via
+ ;; libshine [no]
+ ;; --enable-libssh enable SFTP protocol via libssh [no]
+ ;; (libssh2 does not work)
+ ;; --enable-libstagefright-h264 enable H.264 decoding via
+ ;; libstagefright [no]
+ ;; --enable-libutvideo enable Ut Video encoding and decoding via
+ ;; libutvideo [no]
+ ;; --enable-libv4l2 enable libv4l2/v4l-utils [no]
+ ;; --enable-libvo-aacenc enable AAC encoding via libvo-aacenc [no]
+ ;; --enable-libvo-amrwbenc enable AMR-WB encoding via
+ ;; libvo-amrwbenc [no]
+ ;; --enable-libwavpack enable wavpack encoding via libwavpack [no]
+ ;; --enable-libxavs enable AVS encoding via xavs [no]
+ ;; --enable-libzmq enable message passing via libzmq [no]
+ ;; --enable-libzvbi enable teletext support via libzvbi [no]
+ ;; --enable-opencl enable OpenCL code
+ #~(list
+ "--enable-gpl" ;enable optional gpl licensed parts
"--enable-shared"
"--enable-frei0r"
"--enable-fontconfig"
"--enable-libmp3lame"
"--enable-libopus"
"--enable-libpulse"
- ,@(if (string-prefix? "x86_64" (or (%current-target-system)
- (%current-system)))
- '("--enable-librav1e")
- '())
+ #$@(if (target-x86-64?)
+ '("--enable-librav1e")
+ '())
"--enable-libsoxr"
"--enable-libspeex"
"--enable-libsrt"
"--disable-mipsdsp"
"--disable-mipsdspr2"
"--disable-mipsfpu")
- #:phases
- (modify-phases %standard-phases
- (replace
- 'configure
- ;; configure does not work followed by "SHELL=..." and
- ;; "CONFIG_SHELL=..."; set environment variables instead
- (lambda* (#:key outputs configure-flags #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (substitute* "configure"
- (("#! /bin/sh") (string-append "#!" (which "sh"))))
- (setenv "SHELL" (which "bash"))
- (setenv "CONFIG_SHELL" (which "bash"))
- (apply invoke
- "./configure"
- (string-append "--prefix=" out)
- ;; Add $libdir to the RUNPATH of all the binaries.
- (string-append "--extra-ldflags=-Wl,-rpath="
- out "/lib")
- configure-flags))))
- (add-before
- 'check 'set-ld-library-path
- (lambda _
- ;; Allow $(top_builddir)/ffmpeg to find its dependencies when
- ;; running tests.
- (let* ((dso (find-files "." "\\.so$"))
- (path (string-join (map dirname dso) ":")))
- (format #t "setting LD_LIBRARY_PATH to ~s~%" path)
- (setenv "LD_LIBRARY_PATH" path)
- #t))))))
+ #:phases
+ #~(modify-phases %standard-phases
+ (replace 'configure
+ ;; configure does not work followed by "SHELL=..." and
+ ;; "CONFIG_SHELL=..."; set environment variables instead
+ (lambda* (#:key outputs configure-flags #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out")))
+ (substitute* "configure"
+ (("#! /bin/sh") (string-append "#!" (which "sh"))))
+ (setenv "SHELL" (which "bash"))
+ (setenv "CONFIG_SHELL" (which "bash"))
+ (apply invoke
+ "./configure"
+ (string-append "--prefix=" out)
+ ;; Add $libdir to the RUNPATH of all the binaries.
+ (string-append "--extra-ldflags=-Wl,-rpath="
+ out "/lib")
+ configure-flags))))
+ (add-before 'check 'set-ld-library-path
+ (lambda _
+ ;; Allow $(top_builddir)/ffmpeg to find its dependencies when
+ ;; running tests.
+ (let* ((dso (find-files "." "\\.so$"))
+ (path (string-join (map dirname dso) ":")))
+ (format #t "setting LD_LIBRARY_PATH to ~s~%" path)
+ (setenv "LD_LIBRARY_PATH" path)))))))
(home-page "https://www.ffmpeg.org/")
(synopsis "Audio and video framework")
(description "FFmpeg is a complete, cross-platform solution to record,
audio/video codec library.")
(license license:gpl2+)))
+(define-public ffmpeg-4
+ (package
+ (inherit ffmpeg-5)
+ (version "4.4.2")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
+ version ".tar.xz"))
+ (sha256
+ (base32
+ "14xadxm1yaamp216nq09xwasxg5g133v86dbb33mdg5di1zrlhdg"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments ffmpeg-5)
+ ((#:configure-flags flags ''())
+ #~(cons "--enable-avresample" #$flags))))))
+
(define-public ffmpeg-3.4
(package
- (inherit ffmpeg)
+ (inherit ffmpeg-4)
(version "3.4.9")
(source (origin
(method url-fetch)
(base32
"0d8nkd9c85rkjlgsq1hidmykkrksi883ygqzhhj6wh4nqflv8vs9"))))
(arguments
- (substitute-keyword-arguments (package-arguments ffmpeg)
+ (substitute-keyword-arguments (package-arguments ffmpeg-4)
((#:modules modules %gnu-build-system-modules)
`((srfi srfi-1)
,@modules))
((#:configure-flags flags)
- `(fold delete
- ,flags
- '("--enable-libdav1d"
- "--enable-libaom"
- "--enable-librav1e"
- "--enable-libsrt")))))
- (inputs (modify-inputs (package-inputs ffmpeg)
+ #~(fold delete #$flags
+ '("--enable-libdav1d"
+ "--enable-libaom"
+ "--enable-librav1e"
+ "--enable-libsrt")))))
+ (inputs (modify-inputs (package-inputs ffmpeg-4)
(delete "dav1d" "libaom" "rav1e" "srt")))))
(define-public ffmpeg-2.8
(package
- (inherit ffmpeg)
+ (inherit ffmpeg-3.4)
(version "2.8.18")
(source (origin
(method url-fetch)
(let* ((dso (find-files "." "\\.so$"))
(path (string-join (map dirname dso) ":")))
(format #t "setting LD_LIBRARY_PATH to ~s~%" path)
- (setenv "LD_LIBRARY_PATH" path)
- #t))))))
- (inputs (modify-inputs (package-inputs ffmpeg)
- (delete "dav1d" "libaom" "rav1e" "srt")))))
+ (setenv "LD_LIBRARY_PATH" path)))))))))
+
+(define-public ffmpeg ffmpeg-4)
(define-public ffmpeg-for-stepmania
(hidden-package
(package
- (inherit ffmpeg)
+ (inherit ffmpeg-4)
(version "2.1.3")
(source
(origin
(base32 "1by8rmbva8mfrivdbbkr2gx4kga89zqygkd4cfjl76nr8mdcdamb"))
(file-name (git-file-name "ffmpeg" version))))
(arguments
- (substitute-keyword-arguments (package-arguments ffmpeg)
+ (substitute-keyword-arguments (package-arguments ffmpeg-4)
((#:configure-flags flags)
- '(list "--disable-programs"
- "--disable-doc"
- "--disable-debug"
- "--disable-avdevice"
- "--disable-swresample"
- "--disable-postproc"
- "--disable-avfilter"
- "--disable-shared"
- "--enable-static"))))
+ #~(list "--disable-programs"
+ "--disable-doc"
+ "--disable-debug"
+ "--disable-avdevice"
+ "--disable-swresample"
+ "--disable-postproc"
+ "--disable-avfilter"
+ "--disable-shared"
+ "--enable-static"))))
(inputs '()))))
(define-public ffmpegthumbnailer
(define-public vlc
(package
(name "vlc")
- (version "3.0.16")
+ (version "3.0.17.3")
(source (origin
(method url-fetch)
(uri (string-append
"/vlc-" version ".tar.xz"))
(sha256
(base32
- "1xhhjhwihkz74dag25r5fscvw1v2byy4c8qxaxsw29gncky3bbpz"))))
+ "0510vqf35f0v9c498yki5441aig3fdqq3nv4vsb1vlvki7pr0zkg"))))
(build-system gnu-build-system)
(native-inputs
`(("flex" ,flex)
("libogg" ,libogg)
("libpng" ,libpng)
("libraw1394" ,libraw1394)
- ("librsvg" ,librsvg)
+ ("librsvg" ,(librsvg-for-system))
("libsamplerate" ,libsamplerate)
("libsecret" ,libsecret)
("libssh2" ,libssh2)
(define-public mpv
(package
(name "mpv")
- (version "0.34.0")
+ (version "0.34.1")
(source (origin
(method git-fetch)
(uri (git-reference
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0kqckrgvpx42gdmnc644lpwbimwf1am256xd670w2b8sbrjv3bm9"))))
+ (base32 "12qxwm1ww5vhjddl8yvj1xa0n1fi9z3lmzwhaiday2v59ca0qgsk"))))
(build-system waf-build-system)
(native-inputs
(list perl ; for zsh completion file
the last played position, etc.")
(license license:gpl2+)))
+(define-public gallery-dl
+ (package
+ (name "gallery-dl")
+ (version "1.20.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://github.com/mikf/gallery-dl"
+ "/releases/download/v" version "/gallery_dl-"
+ version ".tar.gz"))
+ (sha256
+ (base32
+ "0149hd4nh7bk2yqjdnvrkvag5mwgsb6gxrgfcd88q4cv3k2ji42h"))))
+ (build-system python-build-system)
+ (inputs (list python-requests ffmpeg))
+ (home-page "https://github.com/mikf/gallery-dl")
+ (synopsis "Command-line program to download images from several sites")
+ (description "Gallery-dl is a command-line program that downloads image
+galleries and collections from several image hosting sites. While this package
+can use youtube-dl or yt-dlp packages to download videos, the focus is more on
+images and image hosting sites.")
+ (license license:gpl2)))
+
(define-public gnome-mpv
(deprecated-package "gnome-mpv" celluloid))
(define-public libvpx
(package
(name "libvpx")
- (version "1.10.0")
+ (version "1.11.0")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "1p4v6j1505n3gnvx3iksciyi818ymxpazj9fmdrchzbl9pfzg4qi"))
+ "00f1jrclai2b6ys78dpsg6r1mvcyxlna93vxcz8zjyia24c2pjsb"))
(patches (search-patches "libvpx-CVE-2016-2818.patch"))))
(build-system gnu-build-system)
(arguments
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2021.06.06")
+ (version "2021.12.17")
(source (origin
(method url-fetch)
(uri (string-append "https://youtube-dl.org/downloads/latest/"
"youtube-dl-" version ".tar.gz"))
(sha256
(base32
- "1hqan9h55x9gfdakw554vic68w9gpvhblchwxlw265zxp56hxjrw"))
+ "1prm84ci1n1kjzhikhrsbxbgziw6br822psjnijm2ibqnz49jfwz"))
(snippet
'(begin
;; Delete the pre-generated files, except for the man page
;;"youtube-dl.1"
"youtube-dl.bash-completion"
"youtube-dl.fish"
- "youtube-dl.zsh"))
- #t))))
+ "youtube-dl.zsh"))))))
(build-system python-build-system)
(arguments
;; The problem here is that the directory for the man page and completion
;; Continue respecting the --ffmpeg-location argument.
(substitute* "youtube_dl/postprocessor/ffmpeg.py"
(("\\.get\\('ffmpeg_location'\\)" match)
- (format #f "~a or '~a'" match (which "ffmpeg"))))
- #t))
+ (format #f "~a or '~a'" match (which "ffmpeg"))))))
(add-before 'build 'build-generated-files
(lambda _
;; Avoid the make targets that require pandoc.
(("'etc/")
(string-append "'" prefix "/etc/"))
(("'share/")
- (string-append "'" prefix "/share/")))
- #t)))
+ (string-append "'" prefix "/share/"))))))
(add-after 'install 'install-completion
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
"/share/zsh/site-functions")))
(mkdir-p zsh)
(copy-file "youtube-dl.zsh"
- (string-append zsh "/_youtube-dl"))
- #t))))))
+ (string-append zsh "/_youtube-dl"))))))))
(native-inputs
(list zip))
(inputs
"Youtube-dl is a small command-line program to download videos from
YouTube.com and many more sites.")
(home-page "https://yt-dl.org")
+ (properties '((release-monitoring-url . "https://yt-dl.org/downloads/")))
(license license:public-domain)))
(define-public yt-dlp
(package/inherit youtube-dl
(name "yt-dlp")
- (version "2021.10.22")
+ (version "2022.05.18")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/yt-dlp/yt-dlp/"
version "/yt-dlp.tar.gz"))
(sha256
(base32
- "0xh4cwmvx49pxn8x07wj2dy8ynj6xg8977l5493vv0l8zc27wp87"))
+ "0wiiwqj8m4z6lladmrsp9354ddwlhn2gf0b39j271001g6fyi82r"))
(snippet
'(begin
;; Delete the pre-generated files, except for the man page
;;"yt-dlp.1"
"completions/bash/yt-dlp"
"completions/fish/yt-dlp.fish"
- "completions/zsh/_yt-dlp"))
- #t))))
+ "completions/zsh/_yt-dlp"))))))
(arguments
(substitute-keyword-arguments (package-arguments youtube-dl)
((#:tests? _) #t)
(lambda _
(substitute* "yt_dlp/postprocessor/ffmpeg.py"
(("\\.get_param\\('ffmpeg_location'\\)" match)
- (format #f "~a or '~a'" match (which "ffmpeg"))))
- #t))
+ (format #f "~a or '~a'" match (which "ffmpeg"))))))
(replace 'build-generated-files
(lambda _
;; Avoid the yt-dlp.1 target, which requires pandoc.
(("'etc/")
(string-append "'" prefix "/etc/"))
(("'share/")
- (string-append "'" prefix "/share/"))))
- #t))
+ (string-append "'" prefix "/share/"))))))
(delete 'install-completion)
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest" "-k" "not download"))))))))
(inputs
- `(("python-mutagen" ,python-mutagen)
+ `(("python-brotli" ,python-brotli)
+ ("python-certifi" ,python-certifi)
+ ("python-mutagen" ,python-mutagen)
("python-pycryptodomex" ,python-pycryptodomex)
("python-websockets" ,python-websockets)
,@(package-inputs youtube-dl)))
YouTube.com and many more sites. It is a fork of youtube-dl with a
focus on adding new features while keeping up-to-date with the
original project.")
+ (properties '((release-monitoring-url . "https://pypi.org/project/yt-dlp/")))
(home-page "https://github.com/yt-dlp/yt-dlp")))
(define-public youtube-dl-gui
(define-public streamlink
(package
(name "streamlink")
- (version "2.0.0")
+ (version "3.2.0")
(source
(origin
(method url-fetch)
(uri (pypi-uri "streamlink" version))
(sha256
(base32
- "1nv2kj1k42a1b20ws8sdzlxk3wh1qz6pg5mxp75433b3c7lxksn0"))))
+ "09nrspga15svzi0hmakcarbciav0nzf30hg1ff53gia473cd4w4p"))))
(build-system python-build-system)
- (home-page "https://github.com/streamlink/streamlink")
+ (arguments
+ `(#:phases (modify-phases %standard-phases
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "python" "-m" "pytest")))))))
(native-inputs
- (list python-freezegun python-pytest python-mock
+ (list python-freezegun python-mock python-pytest
python-requests-mock))
(propagated-inputs
(list python-pysocks
python-websocket-client
- python-iso3166
- python-iso639
python-isodate
+ python-lxml-4.7
+ python-pycountry
python-pycryptodome
python-requests
python-urllib3))
+ (home-page "https://github.com/streamlink/streamlink")
(synopsis "Extract streams from various services")
(description "Streamlink is command-line utility that extracts streams
from sites like Twitch.tv and pipes them into a video player of choice.")
(define-public mlt
(package
(name "mlt")
- (version "7.2.0")
+ (version "7.6.0")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "17d4gs46ca3n0qg6z69hl6mmllnqj2id8ccrv8fyz8c5zm55ghqm"))))
+ (base32 "1dj7jb5nk0qy28mlw0pcmj4nd607mgx229nhf14gjc0fq9gx71sd"))))
(build-system cmake-build-system)
(arguments
- `(#:tests? #f ;requires "Kwalify"
- #:phases
- (modify-phases %standard-phases
- (add-before 'configure 'override-LDFLAGS
- (lambda* (#:key outputs #:allow-other-keys)
- (setenv "LDFLAGS"
- (string-append
- "-Wl,-rpath="
- (assoc-ref outputs "out") "/lib")))))))
+ (list
+ #:tests? #f ;requires "Kwalify"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'configure 'override-LDFLAGS
+ (lambda _
+ (setenv "LDFLAGS"
+ (string-append "-Wl,-rpath=" #$output "/lib"))))
+ (add-after 'install 'wrap-executable
+ (lambda _
+ (let* ((frei0r #$(this-package-input "frei0r-plugins"))
+ (ladspa #$(this-package-input "ladspa"))
+ ;; In MLT 7, 'melt' symlinks to 'melt-7'. Try to keep
+ ;; compatibility with MLT 6 where it's only 'melt'.
+ (major #$(version-major version))
+ (exec (if (file-exists?
+ (string-append #$output "/bin/melt-" major))
+ (string-append "melt-" major)
+ "melt")))
+ (wrap-program (string-append #$output "/bin/" exec)
+ `("FREI0R_PATH" ":" =
+ (,(string-append frei0r "/lib/frei0r-1")))
+ `("LADSPA_PATH" ":" =
+ (,(string-append ladspa "/lib/ladspa"))))))))))
(inputs
(list alsa-lib
`(,alsa-plugins "pulseaudio")
+ bash-minimal
ffmpeg
fftw
frei0r-plugins
(define-public obs
(package
(name "obs")
- (version "27.0.1")
+ (version "27.1.3")
(source (origin
(method git-fetch)
(uri (git-reference
(file-name (git-file-name name version))
(sha256
(base32
- "04fzsr9yizmxy0r7z2706crvnsnybpnv5kgfn77znknxxjacfhkn"))
+ "1ndiarr3d6qihymaigf34jjml0lrgbj640fnpnffz2ysj7276q0j"))
(patches
(search-patches "obs-modules-location.patch"))))
(build-system cmake-build-system)
(arguments
- `(#:configure-flags
- (list (string-append "-DOBS_VERSION_OVERRIDE=" ,version)
- "-DENABLE_UNIT_TESTS=TRUE"
- ;; Browser plugin requires cef, but it is not packaged yet.
- ;; <https://bitbucket.org/chromiumembedded/cef/src/master/>
- "-DBUILD_BROWSER=FALSE")
+ (list
+ #:configure-flags
+ #~(list (string-append "-DOBS_VERSION_OVERRIDE=" #$version)
+ "-DENABLE_UNIT_TESTS=TRUE"
+ ;; Browser plugin requires cef, but it is not packaged yet.
+ ;; <https://bitbucket.org/chromiumembedded/cef/src/master/>
+ "-DBUILD_BROWSER=FALSE")
#:phases
- (modify-phases %standard-phases
- (add-after 'install 'wrap-executable
- (lambda* (#:key outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (plugin-path (getenv "QT_PLUGIN_PATH")))
- (wrap-program (string-append out "/bin/obs")
- `("QT_PLUGIN_PATH" ":" prefix (,plugin-path))))
- #t)))))
+ #~(modify-phases %standard-phases
+ (add-after 'install 'wrap-executable
+ (lambda* _
+ (let ((plugin-path (getenv "QT_PLUGIN_PATH")))
+ (wrap-program (string-append #$output "/bin/obs")
+ `("QT_PLUGIN_PATH" ":" prefix (,plugin-path)))))))))
(native-search-paths
(list (search-path-specification
(variable "OBS_PLUGINS_DIRECTORY")
(native-inputs
(list cmocka pkg-config))
(inputs
- `(("alsa-lib" ,alsa-lib)
- ("curl" ,curl)
- ("eudev" ,eudev)
- ("ffmpeg" ,ffmpeg)
- ("fontconfig" ,fontconfig)
- ("freetype" ,freetype)
- ("glib" ,glib)
- ("jack" ,jack-1)
- ("jansson" ,jansson)
- ("libx264" ,libx264)
- ("libxcomposite" ,libxcomposite)
- ("mbedtls" ,mbedtls-apache)
- ("mesa" ,mesa)
- ("pipewire" ,pipewire-0.3)
- ("pulseaudio" ,pulseaudio)
- ("qtbase" ,qtbase-5)
- ("qtsvg" ,qtsvg)
- ("qtx11extras" ,qtx11extras)
- ("speexdsp" ,speexdsp)
- ("v4l-utils" ,v4l-utils)
- ("wayland" ,wayland)
- ("wayland-protocols" ,wayland-protocols)
- ("zlib" ,zlib)))
+ (list
+ alsa-lib
+ curl
+ eudev
+ ffmpeg
+ fontconfig
+ freetype
+ glib
+ jack-1
+ jansson
+ libx264
+ libxcomposite
+ mbedtls-apache
+ mesa
+ pipewire-0.3
+ pulseaudio
+ qtbase-5
+ qtsvg
+ qtx11extras
+ qtwayland
+ speexdsp
+ v4l-utils
+ wayland
+ wayland-protocols
+ zlib))
(synopsis "Live streaming software")
(description "Open Broadcaster Software provides a graphical interface for
video recording and live streaming. OBS supports capturing audio and video
(define-public obs-websocket
(package
(name "obs-websocket")
- (version "4.9.0")
+ (version "4.9.1")
(source
(origin
(method git-fetch)
(recursive? #t)))
(file-name (git-file-name name version))
(sha256
- (base32 "1r47861ma1s3998clahbnbc216wcf706b1ps514k5p28h511l5w0"))))
+ (base32 "0giwhm0rbc578qng4invqqma935zzjlf05msz1gx986aqk654s7k"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f ;no tests
(lambda* _
(substitute* "CMakeLists.txt"
;; Remove lines that set writeable permissions on outputs.
+ (("PERMISSIONS [^)]*") "")
(("set\\(CMAKE_INSTALL_DEFAULT_DIRECTORY_PERMISSIONS") "")
- (("OWNER_READ.*\\)") "")
- (("PERMISSIONS") ")"))
- #t)))))
+ ;; Ug^WClever hack to comment out the next line, which is ‘)’.
+ (("(OWNER|GROUP|WORLD)_READ .*") "#")))))))
(inputs
(list obs qtbase-5))
(home-page "https://github.com/Palakis/obs-websocket")
(define-public handbrake
(package
(name "handbrake")
- (version "1.4.2")
+ (version "1.5.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/HandBrake/HandBrake/"
"HandBrake-" version "-source.tar.bz2"))
(sha256
(base32
- "0qgvdpnjjvh9937cr0yry1lkz5fj6x9pz32fx7s80c9fvjvq33lb"))
+ "1w1hjj6gvdydypw4mdn281w0x163is59cfm7k6bq371hsl3gx69r"))
(modules '((guix build utils)))
(snippet
;; Remove "contrib" and source not necessary for
(define-public libmediainfo
(package
(name "libmediainfo")
- (version "21.03")
+ (version "22.03")
(source (origin
(method url-fetch)
(uri (string-append "https://mediaarea.net/download/source/"
name "_" version ".tar.xz"))
(sha256
(base32
- "1jm4mk539wf3crgpcddgwdixshwdzm37mkb5441lifhcz2mykdsn"))))
+ "1fc0ihj17cdv9zb346llwvbv0hn3sl3ax398ankgp74fcaxvll7w"))))
;; TODO add a Big Buck Bunny webm for tests.
(native-inputs
(list autoconf automake libtool pkg-config))
(define-public mediainfo
(package
(name "mediainfo")
- (version "21.03")
+ (version "22.03")
(source (origin
(method url-fetch)
;; Warning: This source has proved unreliable 1 time at least.
name "_" version ".tar.xz"))
(sha256
(base32
- "07h2a1lbw5ak6c9bcn8qydchl0wpgk945rf9sfcqjyv05h5wll6y"))))
+ "1r1bh1lk2dsiv0j84whgca7qslxbibg6vsih7x5iga2p3lmgjdk2"))))
(native-inputs
(list autoconf automake libtool pkg-config))
(inputs
libpeas
libnotify
pango
+ python
python-gst
python-numpy
python-matplotlib
("pkg-config" ,pkg-config)))
(arguments
`(#:glib-or-gtk? #t
- ;; Pitivi is not yet compatible with Meson 0.60:
- ;; https://gitlab.gnome.org/GNOME/pitivi/-/issues/2593
- #:meson ,meson-0.59
#:phases
(modify-phases %standard-phases
(add-after 'glib-or-gtk-wrap 'wrap-other-dependencies
(define-public shotcut
(package
(name "shotcut")
- (version "21.10.31")
+ (version "22.04.25")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "0jgv6wl65gf6c4nmfica8k9vbgn3w3594d1phx1mb7zjvyy9y97k"))))
+ (base32 "0ccbx2crqrnhl19d7267xc40vs0cjmps2cnhi1g1l6bqxbi7k88x"))))
(build-system qt-build-system)
(arguments
- `(#:tests? #f ;there are no tests
+ `(#:tests? #f ;there are no tests
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'patch-executable-paths
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Shotcut expects ffmpeg and melt executables in the shotcut
+ ;; directory. Use full store paths.
+ (let* ((ffmpeg (assoc-ref inputs "ffmpeg"))
+ (mlt (assoc-ref inputs "mlt")))
+ (substitute* "src/jobs/ffmpegjob.cpp"
+ (("\"ffmpeg\"") (string-append "\"" ffmpeg "/bin/ffmpeg\"")))
+ (substitute* "src/jobs/meltjob.cpp"
+ (("\"melt\"") (string-append "\"" mlt "/bin/melt\""))
+ (("\"melt-7\"") (string-append "\"" mlt "/bin/melt-7\""))))))
(replace 'configure
(lambda* (#:key outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out")))
(lambda* (#:key inputs outputs #:allow-other-keys)
(let* ((out (assoc-ref outputs "out"))
(frei0r (assoc-ref inputs "frei0r-plugins"))
- (ffmpeg (assoc-ref inputs "ffmpeg"))
(jack (assoc-ref inputs "jack"))
+ (ladspa (assoc-ref inputs "ladspa"))
+ (mlt (assoc-ref inputs "mlt"))
(sdl2 (assoc-ref inputs "sdl2")))
(wrap-program (string-append out "/bin/shotcut")
- `("PATH" ":" prefix
- ,(list (string-append ffmpeg "/bin")))
+ `("FREI0R_PATH" ":" =
+ (,(string-append frei0r "/lib/frei0r-1")))
+ `("LADSPA_PATH" ":" =
+ (,(string-append ladspa "/lib/ladspa")))
`("LD_LIBRARY_PATH" ":" prefix
,(list (string-append jack "/lib" ":" sdl2 "/lib")))
- `("FREI0R_PATH" ":" =
- (,(string-append frei0r "/lib/frei0r-1/")))
- `("MLT_PREFIX" ":" =
- (,(assoc-ref inputs "mlt"))))))))))
+ `("PATH" ":" prefix
+ ,(list (string-append mlt "/bin"))))))))))
(native-inputs
`(("pkg-config" ,pkg-config)
- ("python" ,python-wrapper)
+ ("python-wrapper" ,python-wrapper)
("qttools" ,qttools)))
(inputs
- (list ffmpeg
+ (list bash-minimal
+ ffmpeg
frei0r-plugins
jack-1
ladspa
(define-public svt-av1
(package
(name "svt-av1")
- (version "0.8.7")
+ (version "0.9.1")
(source
(origin
(method git-fetch)
(commit (string-append "v" version))))
(file-name (git-file-name name version))
(sha256
- (base32 "1xlxb6kn6hqz9dxz0nd905m4i2mwjwq1330rbabwzmg4b66cdslg"))))
+ (base32 "02fchq2vlxcxzbrss72xl9vrxzysdy39d5i159bmg3qa45ngd2iw"))))
(build-system cmake-build-system)
;; SVT-AV1 only supports 64-bit Intel-compatible CPUs.
(supported-systems '("x86_64-linux"))
(home-page "https://www.gen2vdr.de/wirbel/w_scan/index2.html")
(license license:gpl2+)))
+;;; XXX: This crate is used only for rav1e and can be removed once the latter
+;;; is updated. See <https://issues.guix.gnu.org/52837>.
+(define rust-dav1d-sys-0.3.2
+ (package
+ (name "rust-dav1d-sys")
+ (version "0.3.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "dav1d-sys" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32 "1jdxhnlxcml6jd67lx78ifzkn1xm18zfk4li7vjdh3fa61i073kx"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-bindgen" ,rust-bindgen-0.54)
+ ("rust-metadeps" ,rust-metadeps-1))))
+ (native-inputs
+ (list pkg-config))
+ (inputs
+ (list dav1d clang llvm))
+ (home-page "https://github.com/rust-av/dav1d-rs")
+ (synopsis "FFI bindings to dav1d")
+ (description "This package provides FFI bindings to dav1d.")
+ (license license:expat)))
+
(define-public rav1e
(package
(name "rav1e")
- (version "0.4.1")
+ (version "0.5.1")
(source
(origin
(method url-fetch)
(string-append name "-" version ".tar.gz"))
(sha256
(base32
- "00rjil6qbrwfxhhlq9yvidxm0gp9qdbywhf5zvkj85lykbhyff09"))))
+ "006bfcmjwg0phg8gc25b1sl2ngjrb2bh1b3fd0s5gbf9nlkr8qsn"))))
(build-system cargo-build-system)
(arguments
- `(#:cargo-inputs
- (("rust-aom-sys" ,rust-aom-sys-0.2)
+ `(;; Strip the '--release' flag to work around the doctest failures with
+ ;; Rust 1.57 (see: https://github.com/xiph/rav1e/issues/2851).
+ #:cargo-test-flags '()
+ #:cargo-inputs
+ (("rust-aom-sys" ,rust-aom-sys-0.3)
("rust-arbitrary" ,rust-arbitrary-0.4)
("rust-arg-enum-proc-macro" ,rust-arg-enum-proc-macro-0.3)
- ("rust-arrayvec" ,rust-arrayvec-0.5)
- ("rust-av-metrics" ,rust-av-metrics-0.6)
+ ("rust-arrayvec" ,rust-arrayvec-0.7)
+ ("rust-av-metrics" ,rust-av-metrics-0.7)
("rust-backtrace" ,rust-backtrace-0.3)
("rust-bitstream-io" ,rust-bitstream-io-1)
("rust-byteorder" ,rust-byteorder-1)
("rust-rayon" ,rust-rayon-1)
("rust-regex" ,rust-regex-1)
("rust-rust-hawktracer" ,rust-rust-hawktracer-0.7)
- ("rust-rustc-version" ,rust-rustc-version-0.3)
+ ("rust-rustc-version" ,rust-rustc-version-0.4)
("rust-scan-fmt" ,rust-scan-fmt-0.2)
("rust-serde" ,rust-serde-1)
("rust-signal-hook" ,rust-signal-hook-0.3)
("rust-wasm-bindgen" ,rust-wasm-bindgen-0.2)
("rust-y4m" ,rust-y4m-0.7))
#:cargo-development-inputs
- (("rust-assert-cmd" ,rust-assert-cmd-1)
+ (("rust-assert-cmd" ,rust-assert-cmd-2)
("rust-cc" ,rust-cc-1)
("rust-criterion" ,rust-criterion-0.3)
("rust-interpolate-name" ,rust-interpolate-name-0.2)
- ("rust-pretty-assertions" ,rust-pretty-assertions-0.6)
+ ("rust-pretty-assertions" ,rust-pretty-assertions-0.7)
("rust-rand" ,rust-rand-0.8)
("rust-rand-chacha" ,rust-rand-chacha-0.3)
- ("rust-semver" ,rust-semver-0.11))
+ ("rust-semver" ,rust-semver-1))
#:phases
(modify-phases %standard-phases
+ (add-after 'unpack 'relax-versions
+ (lambda _
+ (substitute* "Cargo.toml"
+ ;; Allow using more recent versions of
+ (("~3.1.2") "~3"))))
(replace 'build
(lambda* (#:key outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out")))
(invoke "cargo" "cinstall" "--release"
- (string-append "--prefix=" out))))))))
+ (string-append "--prefix=" out)))))
+ (add-after 'install 'delete-static-library
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Delete 80 MiB (!) static library.
+ (delete-file (string-append (assoc-ref outputs "out")
+ "/lib/librav1e.a")))))))
(native-inputs
- `(("cargo-c" ,rust-cargo-c)
- ("nasm" ,nasm)))
+ (list rust-cargo-c nasm))
(home-page "https://github.com/xiph/rav1e/")
(synopsis "Fast and safe AV1 encoder")
(description "@code{rav1e} is an AV1 video encoder. It is designed to
elementary stream are provided.")
(home-page "https://github.com/szatmary/libcaption")
(license license:expat)))
+
+(define-public video-contact-sheet
+ (package
+ (name "video-contact-sheet")
+ (version "1.13.4")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://p.outlyer.net/vcs/files/vcs-" version
+ ".tar.gz"))
+ (sha256
+ (base32
+ "0jsl93r0rnybjcipqbww5hwsr9ln6kz1qnf32qfxdvhfw52n27fw"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list
+ #:make-flags
+ #~(list (string-append "prefix=" #$output))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (delete 'build)
+ (delete 'check)
+ (add-after 'install 'wrap-program
+ (lambda _
+ (wrap-program (string-append #$output "/bin/vcs")
+ `("PATH" ":" prefix
+ ,(map (lambda (dir)
+ (string-append dir "/bin"))
+ (list #$(this-package-input "ffmpeg")
+ #$(this-package-input "imagemagick"))))))))))
+ (inputs
+ (list bash-minimal ffmpeg imagemagick))
+ (synopsis "Create contact sheets (preview images) from videos")
+ (description "@acronym{VCS, Video Contact Sheet} is a Bash script meant to
+create video contact sheets (previews) of videos. Any video supported by
+MPlayer and FFmpeg can be used. A note of warning: Unlike most similar tools
+VCS, by default, makes screenshots the same size as the video, see the manual
+for details on how to change this.")
+ (home-page "http://p.outlyer.net/vcs/")
+ (license license:lgpl2.1+)))