+
+(define-public svt-av1
+ (package
+ (name "svt-av1")
+ (version "0.8.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/OpenVisualCloud/SVT-AV1")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1gfxdmdql090p7c8ln1z344g467l41p45287lmwy590hv8gw6bfg"))))
+ (build-system cmake-build-system)
+ ;; SVT-AV1 only supports Intel-compatible CPUs.
+ (supported-systems '("x86_64-linux" "i686-linux"))
+ (arguments
+ ;; The test suite tries to download test data and git clone a 3rd-party
+ ;; fork of libaom. Skip it.
+ `(#:tests? #f
+ #:phases
+ (modify-phases %standard-phases
+ (add-after 'install 'install-documentation
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref %outputs "out"))
+ (doc (string-append out "/share/doc/svt-av1-" ,version)))
+ (copy-recursively "../source/Docs" doc)
+ #t))))))
+ (native-inputs
+ `(("yasm" ,yasm)))
+ (synopsis "AV1 video codec")
+ (description "SVT-AV1 is an AV1 codec implementation. The encoder is a
+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.3")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (crate-uri "rav1e" version))
+ (file-name
+ (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "053bh8hc6jj81ydq4gcak01b0ady59hvkl7d87im3y8nafg7xzb4"))))
+ (build-system cargo-build-system)
+ (arguments
+ `(#:cargo-inputs
+ (("rust-aom-sys" ,rust-aom-sys-0.1)
+ ("rust-arbitrary" ,rust-arbitrary-0.2)
+ ("rust-arg-enum-proc-macro" ,rust-arg-enum-proc-macro-0.3)
+ ("rust-arrayvec" ,rust-arrayvec-0.5)
+ ("rust-backtrace" ,rust-backtrace-0.3)
+ ("rust-bitstream-io" ,rust-bitstream-io-0.8)
+ ("rust-byteorder" ,rust-byteorder-1.3)
+ ("rust-cfg-if" ,rust-cfg-if-0.1)
+ ("rust-clap" ,rust-clap-2)
+ ("rust-console" ,rust-console-0.11)
+ ("rust-dav1d-sys" ,rust-dav1d-sys-0.3)
+ ("rust-fern" ,rust-fern-0.6)
+ ("rust-image" ,rust-image-0.23)
+ ("rust-interpolate-name" ,rust-interpolate-name-0.2)
+ ("rust-itertools" ,rust-itertools-0.9)
+ ("rust-ivf" ,rust-ivf-0.1)
+ ("rust-libc" ,rust-libc-0.2)
+ ("rust-log" ,rust-log-0.4)
+ ("rust-noop-proc-macro" ,rust-noop-proc-macro-0.2)
+ ("rust-num-derive" ,rust-num-derive-0.3)
+ ("rust-num-traits" ,rust-num-traits-0.2)
+ ("rust-paste" ,rust-paste-0.1)
+ ("rust-rand" ,rust-rand-0.7)
+ ("rust-rand-chacha" ,rust-rand-chacha-0.2)
+ ("rust-rayon" ,rust-rayon-1)
+ ("rust-rust-hawktracer" ,rust-rust-hawktracer-0.7)
+ ("rust-scan-fmt" ,rust-scan-fmt-0.2)
+ ("rust-serde" ,rust-serde-1)
+ ("rust-signal-hook" ,rust-signal-hook-0.1)
+ ("rust-simd-helpers" ,rust-simd-helpers-0.1)
+ ("rust-thiserror" ,rust-thiserror-1.0)
+ ("rust-toml" ,rust-toml-0.5)
+ ("rust-y4m" ,rust-y4m-0.5)
+ ("rust-cc" ,rust-cc-1)
+ ("rust-nasm-rs" ,rust-nasm-rs-0.1)
+ ("rust-rustc-version" ,rust-rustc-version-0.2)
+ ("rust-vergen" ,rust-vergen-3.1))
+ #:cargo-development-inputs
+ (("rust-assert-cmd" ,rust-assert-cmd-1)
+ ("rust-criterion" ,rust-criterion-0.3)
+ ("rust-interpolate-name" ,rust-interpolate-name-0.2)
+ ("rust-pretty-assertions" ,rust-pretty-assertions-0.6)
+ ("rust-rand" ,rust-rand-0.7)
+ ("rust-rand-chacha" ,rust-rand-chacha-0.2)
+ ("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")
+ (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")
+ (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+)))
+
+(define-public ogmtools
+ (package
+ (name "ogmtools")
+ (version "1.5")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "https://www.bunkus.org/videotools/ogmtools/ogmtools-"
+ version
+ ".tar.bz2"))
+ (sha256
+ (base32
+ "1spx81p5wf59ksl3r3gvf78d77sh7gj8a6lw773iv67bphfivmn8"))))
+ (build-system gnu-build-system)
+ (inputs
+ `(("libvorbis" ,libvorbis)
+ ("libdvdread" ,libdvdread)))
+ (synopsis "Information, extraction or creation for OGG media streams")
+ (description
+ "These tools allow information about (@code{ogminfo}) or extraction from
+\(@code{ogmdemux}) or creation of (@code{ogmmerge}) OGG media streams. It
+includes @code{dvdxchap} tool for extracting chapter information from DVD.")
+ (license license:gpl2)
+ (home-page "https://www.bunkus.org/videotools/ogmtools/")))