diff options
Diffstat (limited to 'gnu/packages/video.scm')
-rw-r--r-- | gnu/packages/video.scm | 326 |
1 files changed, 236 insertions, 90 deletions
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index ef504e4ca0..824ea62273 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -1,7 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2013, 2014, 2015, 2016 Andreas Enge <andreas@enge.fr> ;;; Copyright © 2014, 2015, 2016 David Thompson <davet@gnu.org> -;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver <mhw@netris.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 Efraim Flashner <efraim@flashner.co.il> ;;; Copyright © 2015 Andy Patterson <ajpatter@uwaterloo.ca> @@ -15,7 +15,7 @@ ;;; 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 © 2017, 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 201–72021 Tobias Geerinckx-Rice <me@tobias.gr> ;;; Copyright © 2017 Chris Marusich <cmmarusich@gmail.com> ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be> ;;; Copyright © 2017 Ethan R. Jones <doubleplusgood23@gmail.com> @@ -46,6 +46,7 @@ ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org> ;;; Copyright © 2020 Alexandru-Sergiu Marton <brown121407@posteo.ro> ;;; Copyright © 2020 Ivan Kozlov <kanichos@yandex.ru> +;;; Copyright © 2020 Antoine Côté <antoine.cote@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -64,7 +65,7 @@ (define-module (gnu packages video) #:use-module (ice-9 match) - #:use-module (srfi srfi-1) + #:use-module ((srfi srfi-1) #:hide (zip)) #:use-module (srfi srfi-26) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix utils) @@ -153,6 +154,7 @@ #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages rdesktop) + #:use-module (gnu packages re2c) #:use-module (gnu packages ruby) #:use-module (gnu packages rust-apps) #:use-module (gnu packages samba) @@ -245,7 +247,7 @@ ("faac" ,faac) ("ffmpeg" ,ffmpeg) ("freetype" ,freetype) - ("imagemagick" ,imagemagick-next) + ("imagemagick" ,imagemagick) ("lame" ,lame) ("liba52" ,liba52) ("libdv" ,libdv) @@ -766,7 +768,7 @@ television and DVD. It is also known as AC-3.") (define-public libaom (package (name "libaom") - (version "2.0.0") + (version "2.0.1") (source (origin (method git-fetch) (uri (git-reference @@ -775,7 +777,7 @@ television and DVD. It is also known as AC-3.") (file-name (git-file-name name version)) (sha256 (base32 - "1616xjhj6770ykn82ml741h8hx44v507iky3s9h7a5lnk9d4cxzy")))) + "1vakwmcwvmmrdw7460m8hzq96y71lxqix8b2g07c6s12br0rrdhl")))) (build-system cmake-build-system) (native-inputs `(("perl" ,perl) @@ -1007,7 +1009,7 @@ H.264 (MPEG-4 AVC) video streams.") (define-public straw-viewer (package (name "straw-viewer") - (version "0.1.1") + (version "0.1.2") (source (origin (method git-fetch) @@ -1016,7 +1018,7 @@ H.264 (MPEG-4 AVC) video streams.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0idp1ayqghi5bg83v9qmvzz9wj05flwrp1fxb4kqa6vwxmprvhyk")))) + (base32 "1s6w8m9377ajy21x7lf6mbgp5yk5i70nhzmqscibjnarr3xfg9zs")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build) @@ -1030,13 +1032,13 @@ H.264 (MPEG-4 AVC) video streams.") ("perl-mozilla-ca" ,perl-mozilla-ca) ("perl-term-readline-gnu" ,perl-term-readline-gnu) ("perl-unicode-linebreak" ,perl-unicode-linebreak) - ("xdg-utils" ,xdg-utils) - - ;; Some videos play without youtube-dl, but others silently fail to. - ("youtube-dl" ,youtube-dl))) - - ;; Required only when building the graphical interface (--gtk). - ;;("perl-file-sharedir" ,perl-file-sharedir) + ("xdg-utils" ,xdg-utils))) + ;; Required only when building the graphical interface (--gtk). + ;;("perl-file-sharedir" ,perl-file-sharedir) + + ;; Some videos play without youtube-dl, but others silently fail to. + (propagated-inputs + `(("youtube-dl" ,youtube-dl))) (arguments `(#:modules ((guix build perl-build-system) (guix build utils) @@ -1327,19 +1329,14 @@ libebml is a C++ library to read and write EBML files.") (define-public libva (package (name "libva") - (version "2.9.0") + (version "2.10.0") (source (origin (method url-fetch) - (uri (list - ;; Newer releases are only available on GitHub. - (string-append "https://github.com/01org/libva/releases/download/" - version "/libva-" version ".tar.bz2") - ;; Keep the old URL around for compatibility. - (string-append "https://www.freedesktop.org/software/vaapi/releases/" - "libva/libva-" version "/libva-" version ".tar.bz2"))) + (uri (string-append "https://github.com/intel/libva/releases/download/" + version "/libva-" version ".tar.bz2")) (sha256 - (base32 "0jsq6ia3fzyzvq7lxsrn4a8kn2kx4z3v777xkxn6k4ny5lww2i73")))) + (base32 "0dh2zjn6wi74ga75r6pbrrj8hjm213zyxvn9bv78z0fra1dy70gs")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -1624,7 +1621,10 @@ audio/video codec library.") (arguments (substitute-keyword-arguments (package-arguments ffmpeg) ((#:configure-flags flags) - `(delete "--enable-librav1e" ,flags)))))) + `(delete "--enable-librav1e" ,flags)))) + (inputs (fold alist-delete + (package-inputs ffmpeg) + '("rav1e"))))) (define-public ffmpeg-3.4 (package @@ -1698,7 +1698,10 @@ audio/video codec library.") (path (string-join (map dirname dso) ":"))) (format #t "setting LD_LIBRARY_PATH to ~s~%" path) (setenv "LD_LIBRARY_PATH" path) - #t)))))))) + #t)))))) + (inputs (fold alist-delete + (package-inputs ffmpeg) + '("dav1d" "libaom" "rav1e" "srt"))))) (define-public ffmpeg-for-stepmania (hidden-package @@ -1769,6 +1772,7 @@ videoformats depend on the configuration flags of ffmpeg.") "https://download.videolan.org/pub/videolan/vlc/" (car (string-split version #\-)) "/vlc-" version ".tar.xz")) + (patches (search-patches "vlc-qt-5.15.patch")) (sha256 (base32 "1f46h0hv7fk35zg4iczlp7ib7h2jmh8m4r5klw3g2558ib9134qq")))) @@ -2189,14 +2193,25 @@ To load this plugin, specify the following option when starting mpv: (define-public youtube-dl (package (name "youtube-dl") - (version "2020.11.26") + (version "2021.01.08") (source (origin (method url-fetch) (uri (string-append "https://youtube-dl.org/downloads/latest/" "youtube-dl-" version ".tar.gz")) (sha256 (base32 - "0zvgb1b5kzd2y97rvynxf7qvz3narllf1m26xsph1zll1zb6q47v")))) + "1k870v9xc7g16nvixa272sdjnmc7pl49ymmnn6rdz0mcj2548h3k")) + (snippet + '(begin + ;; Delete the pre-generated files, except for the man page + ;; which requires 'pandoc' to build. + (for-each delete-file '("youtube-dl" + ;;pandoc is needed to generate + ;;"youtube-dl.1" + "youtube-dl.bash-completion" + "youtube-dl.fish" + "youtube-dl.zsh")) + #t)))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion @@ -2217,6 +2232,16 @@ To load this plugin, specify the following option when starting mpv: (("\\.get\\('ffmpeg_location'\\)" match) (format #f "~a or '~a'" match (which "ffmpeg")))) #t)) + (add-before 'build 'build-generated-files + (lambda _ + ;; Avoid the make targets that require pandoc. + (invoke "make" + "PYTHON=python" + "youtube-dl" + ;;"youtube-dl.1" ; needs pandoc + "youtube-dl.bash-completion" + "youtube-dl.zsh" + "youtube-dl.fish"))) (add-before 'install 'fix-the-data-directories (lambda* (#:key outputs #:allow-other-keys) (let ((prefix (assoc-ref outputs "out"))) @@ -2240,6 +2265,8 @@ To load this plugin, specify the following option when starting mpv: (copy-file "youtube-dl.zsh" (string-append zsh "/_youtube-dl")) #t)))))) + (native-inputs + `(("zip" ,zip))) (inputs `(("ffmpeg" ,ffmpeg))) (synopsis "Download videos from YouTube.com and other sites") @@ -2348,7 +2375,7 @@ other site that youtube-dl supports.") (define-public you-get (package (name "you-get") - (version "0.4.1488") + (version "0.4.1500") (source (origin (method git-fetch) (uri (git-reference @@ -2357,7 +2384,7 @@ other site that youtube-dl supports.") (file-name (git-file-name name version)) (sha256 (base32 - "10dx1gka92m42f8ah1mzylbd71apzrphfa48r5ci7g1j8ysdcs7q")))) + "02wkmq6bjg9iz0kccsgs192aiky99l2jnw1xs6zjhvjvq7jyvf7s")))) (build-system python-build-system) (inputs `(("ffmpeg" ,ffmpeg))) ; for multi-part and >=1080p videos @@ -2387,7 +2414,7 @@ audio, images) from the Web. It can use either mpv or vlc for playback.") (define-public youtube-viewer (package (name "youtube-viewer") - (version "3.7.9") + (version "3.8.1") (source (origin (method git-fetch) (uri (git-reference @@ -2396,7 +2423,7 @@ audio, images) from the Web. It can use either mpv or vlc for playback.") (file-name (git-file-name name version)) (sha256 (base32 - "16p0sa91h0zpqdpqmy348g6b9qj5f6qrbzrljn157vk00cg6mx18")))) + "0xdybiihd66b79rbsawjhxs9snm78gld5ziz3gnp8vdcw0bshwz7")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build))) @@ -2845,14 +2872,14 @@ and custom quantization matrices.") (define-public streamlink (package (name "streamlink") - (version "1.4.1") + (version "1.7.0") (source (origin (method url-fetch) (uri (pypi-uri "streamlink" version)) (sha256 (base32 - "1s458k8z1lv0w8i82sxs8dys66fwm4yr9j1m7fzp7r0piz8phcpd")))) + "0ymqxzpwk7mr77w0dnnv7dj63d46q7cl1l4vj9llgn8jfaj64ypq")))) (build-system python-build-system) (home-page "https://github.com/streamlink/streamlink") (native-inputs @@ -2984,14 +3011,14 @@ tools, XML authoring components, and an extensible plug-in based API.") (define-public v4l-utils (package (name "v4l-utils") - (version "1.16.6") + (version "1.20.0") (source (origin (method url-fetch) (uri (string-append "https://linuxtv.org/downloads/v4l-utils" "/v4l-utils-" version ".tar.bz2")) (sha256 (base32 - "1bkqlrizx0j2rd6ybam2x17bjrpwzl4v4szmnzm3cmixis3w3npr")))) + "1xr66y6w422hil6s7n8d61a2vhwh4im8l267amf41jvw7xqihqcm")))) (build-system gnu-build-system) ;; Separate graphical tools in order to save almost 1 GiB on the closure ;; for the common case. @@ -3047,7 +3074,7 @@ be used for realtime video capture via Linux-specific APIs.") (define-public obs (package (name "obs") - (version "26.0.2") + (version "26.1.1") (source (origin (method git-fetch) (uri (git-reference @@ -3056,7 +3083,7 @@ be used for realtime video capture via Linux-specific APIs.") (file-name (git-file-name name version)) (sha256 (base32 - "1d502f80whh686mvq0yn6zpa5nvmnlzxwp5sjz43vpbbvhpbrdqj")))) + "18b40ayww5isjqnjz63l05fi5xwzrcc64jvwxwq8nqsydn0b14ng")))) (build-system cmake-build-system) (arguments `(#:configure-flags @@ -3133,19 +3160,29 @@ present in modern GPUs.") (define-public vdpauinfo (package (name "vdpauinfo") - (version "1.0") + (version "1.4") (source (origin - (method url-fetch) - (uri (string-append "https://secure.freedesktop.org/~aplattner/vdpau/" - name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://gitlab.freedesktop.org/vdpau/vdpauinfo") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 - "1i2b0k9h8r0lnxlrkgqzmrjakgaw3f1ygqqwzx8w6676g85rcm20")))) + (base32 "0s84bavxr39w0r7zfaac7kpbfsg88hgymqyzcr0yvbj1yry3liz2")))) (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (replace 'bootstrap + ;; ./autogen.sh runs ./configure too soon. + (lambda _ + (invoke "autoreconf" "-fiv")))))) (native-inputs - `(("pkg-config" ,pkg-config) - ("libx11" ,libx11))) + `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libx11" ,libx11) + ("pkg-config" ,pkg-config))) (propagated-inputs `(("libvdpau" ,libvdpau))) (home-page "https://wiki.freedesktop.org/www/Software/VDPAU/") @@ -3963,33 +4000,72 @@ tools for styling them, including a built-in real-time video preview.") ; by upstream). See https://github.com/Aegisub/Aegisub/blob/master/LICENCE ; src/MatroskaParser.(c|h) is under bsd-3 with permission from the author -(define-public gst-transcoder - (package - (name "gst-transcoder") - (version "1.12.2") - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/pitivi/gst-transcoder") - (commit version))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0nw1zykqc6c8xs3ri55pm00pwyz93z4y4nd880apfiwj7yv5p3az")))) - (build-system meson-build-system) - (inputs - `(("gobject-introspection" ,gobject-introspection) - ("glib" ,glib) - ("gstreamer" ,gstreamer) - ("gst-plugins-base" ,gst-plugins-base))) +(define-public pitivi + ;; Pitivi switched to a non-semantic versioning scheme close before 1.0 + (let ((latest-semver "0.999.0") + (%version "2020.09.2")) + (package + (name "pitivi") + (version (string-append latest-semver "-" %version)) + (source (origin + (method url-fetch) + (uri (string-append "mirror://gnome/sources/" name "/" + (version-major+minor %version) "/" + name "-" %version ".tar.xz")) + (sha256 + (base32 + "0hzvv4wia4rk0kvq16y27imq2qd4q5lg3vx99hdcjdb1x3zqqfg0")))) + (build-system meson-build-system) + (inputs + `(("glib" ,glib) + ("gst-editing-services" ,gst-editing-services) + ("gstreamer" ,gstreamer) + ("gst-plugins-base" ,gst-plugins-base) + ("gst-plugins-good" ,gst-plugins-good) + ("gst-plugins-bad" + ,(gst-plugins/selection gst-plugins-bad + #:plugins '("debugutils" "transcoder") + #:configure-flags '("-Dintrospection=enabled"))) + ("gst-libav" ,gst-libav) + ("gsound" ,gsound) + ("gtk+" ,gtk+) + ("gdk-pixbuf+svg" ,gdk-pixbuf+svg) + ("libpeas" ,libpeas) + ("libnotify" ,libnotify) + ("pango" ,pango) + ("python-gst" ,python-gst) + ("python-numpy" ,python-numpy) + ("python-matplotlib" ,python-matplotlib) + ("python-pycairo" ,python-pycairo) + ("python-pygobject" ,python-pygobject))) (native-inputs - `(("python" ,python) + `(("gettext" ,gettext-minimal) + ("glib:bin" ,glib "bin") + ("itstool" ,itstool) ("pkg-config" ,pkg-config))) - (home-page "https://github.com/pitivi/gst-transcoder/") - (synopsis "GStreamer Transcoding API") - (description "GStreamer Transcoding API") - (license license:lgpl2.1))) + (arguments + `(#:glib-or-gtk? #t + #:phases + (modify-phases %standard-phases + (add-after 'glib-or-gtk-wrap 'wrap-other-dependencies + (lambda* (#:key outputs #:allow-other-keys) + (let ((prog (string-append (assoc-ref outputs "out") + "/bin/pitivi"))) + (wrap-program prog + `("PYTHONPATH" = (,(getenv "PYTHONPATH"))) + `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))) + ;; We've only added inputs for what Pitivi deems either + ;; necessary or optional. Let the user's packages take + ;; precedence in case they have e.g. the full gst-plugins-bad. + `("GST_PLUGIN_SYSTEM_PATH" suffix + (,(getenv "GST_PLUGIN_SYSTEM_PATH"))))) + #t))))) + (home-page "http://www.pitivi.org") + (synopsis "Video editor based on GStreamer Editing Services") + (description "Pitivi is a video editor built upon the GStreamer Editing +Services. It aims to be an intuitive and flexible application that can appeal +to newbies and professionals alike.") + (license license:lgpl2.1+)))) (define-public gavl (package @@ -4379,7 +4455,7 @@ transitions, and effects and then export your film to many common formats.") (define-public dav1d (package (name "dav1d") - (version "0.8.0") + (version "0.8.1") (source (origin (method git-fetch) @@ -4388,8 +4464,7 @@ transitions, and effects and then export your film to many common formats.") (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 - "0mjn87xjdqv0q1gj4s4f6fdmsj504mhk4qmqiyrhq2rs7yqj4csv")))) + (base32 "1820fpmmq1vxjzjmza6ydk4fgxipb8gmcc5skybki64qn7410v7x")))) (build-system meson-build-system) (native-inputs `(("nasm" ,nasm))) (home-page "https://code.videolan.org/videolan/dav1d") @@ -4430,7 +4505,7 @@ video from a Wayland session.") (define-public gaupol (package (name "gaupol") - (version "1.7") + (version "1.9") (source (origin (method git-fetch) (uri (git-reference @@ -4439,7 +4514,7 @@ video from a Wayland session.") (file-name (git-file-name name version)) (sha256 (base32 - "1cp0ka8hzma1dxiisdhl2fznxklj2pl63vkdqcd91lrblghdj6x9")))) + "1mmjg8nwhif2hmmp8i11643izwzdf839brqdai3ksfg0qkh8rnxk")))) (build-system python-build-system) (native-inputs `(("gettext" ,gettext-minimal) @@ -4562,19 +4637,19 @@ transcode or reformat the videos in any way, producing perfect backups.") (define-public svt-av1 (package (name "svt-av1") - (version "0.8.5") + (version "0.8.6") (source (origin (method git-fetch) (uri (git-reference - (url "https://github.com/OpenVisualCloud/SVT-AV1") + (url "https://github.com/AOMediaCodec/SVT-AV1") (commit (string-append "v" version)))) (file-name (git-file-name name version)) (sha256 - (base32 "1gfxdmdql090p7c8ln1z344g467l41p45287lmwy590hv8gw6bfg")))) + (base32 "1wzamg89azi1f93wxvdy7silsgklckc754ca066k33drvyacicyw")))) (build-system cmake-build-system) - ;; SVT-AV1 only supports Intel-compatible CPUs. - (supported-systems '("x86_64-linux" "i686-linux")) + ;; SVT-AV1 only supports 64-bit Intel-compatible CPUs. + (supported-systems '("x86_64-linux")) (arguments ;; The test suite tries to download test data and git clone a 3rd-party ;; fork of libaom. Skip it. @@ -4593,7 +4668,41 @@ transcode or reformat the videos in any way, producing perfect backups.") (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") + (home-page "https://github.com/AOMediaCodec/SVT-AV1") + (license license:bsd-2))) + +(define-public svt-vp9 + (package + (name "svt-vp9") + (version "0.3.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/OpenVisualCloud/SVT-VP9") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1ypdiw4cq22llvm8jyszxdq6r1aydkj80dsxjarjn5b7c1f2q3ar")))) + ;; SVT-AV1 only supports 64-bit Intel-compatible CPUs. + (supported-systems '("x86_64-linux")) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; No test suite + #: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/" ,name "-" ,version))) + (copy-recursively "../source/Docs" doc) + #t)))))) + (native-inputs + `(("yasm" ,yasm))) + (home-page "https://github.com/OpenVisualCloud/SVT-VP9") + (synopsis "VP9 video encoder") + (description "SVT-VP9 is a VP9 video encoder implementation. It is focused +on supporting video-on-demand and live encoding on Intel Xeon processors.") (license license:bsd-2))) (define-public w-scan @@ -4627,7 +4736,7 @@ result in several formats: (define-public rav1e (package (name "rav1e") - (version "0.3.3") + (version "0.3.5") (source (origin (method url-fetch) @@ -4636,17 +4745,18 @@ result in several formats: (string-append name "-" version ".tar.gz")) (sha256 (base32 - "053bh8hc6jj81ydq4gcak01b0ady59hvkl7d87im3y8nafg7xzb4")))) + "0c40gq4qid2apmlgzx98f6826jmn2n61prk0rn7sjxaw7yimw854")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs - (("rust-aom-sys" ,rust-aom-sys-0.1) + (("rust-aom-sys" ,rust-aom-sys-0.2) ("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) + ("rust-cc" ,rust-cc-1) ("rust-cfg-if" ,rust-cfg-if-0.1) ("rust-clap" ,rust-clap-2) ("rust-console" ,rust-console-0.11) @@ -4658,6 +4768,7 @@ result in several formats: ("rust-ivf" ,rust-ivf-0.1) ("rust-libc" ,rust-libc-0.2) ("rust-log" ,rust-log-0.4) + ("rust-nasm-rs" ,rust-nasm-rs-0.2) ("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) @@ -4666,17 +4777,15 @@ result in several formats: ("rust-rand-chacha" ,rust-rand-chacha-0.2) ("rust-rayon" ,rust-rayon-1) ("rust-rust-hawktracer" ,rust-rust-hawktracer-0.7) + ("rust-rustc-version" ,rust-rustc-version-0.2) ("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) ("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)) + ("rust-vergen" ,rust-vergen-3.1) + ("rust-y4m" ,rust-y4m-0.5)) #:cargo-development-inputs (("rust-assert-cmd" ,rust-assert-cmd-1) ("rust-criterion" ,rust-criterion-0.3) @@ -4886,3 +4995,40 @@ BBC iPlayer output.") includes @code{dvdxchap} tool for extracting chapter information from DVD.") (license license:gpl2) (home-page "https://www.bunkus.org/videotools/ogmtools/"))) + +(define-public libcaption + (package + (name "libcaption") + (version "0.7") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/szatmary/libcaption") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "16mhw8wpl7wdjj4n7rd1c294p1r8r322plj7z91crla5aah726rq")))) + (build-system cmake-build-system) + (arguments + `(#:tests? #f ; Cannot figure out how to run the unit tests + #:configure-flags '("-DENABLE_RE2C=ON"))) + (native-inputs + `(("re2c" ,re2c))) + (synopsis "CEA608 / CEA708 closed-caption codec") + (description "Libcaption creates and parses closed-caption data, +providing an encoder / decoder for the EIA608 and CEA708 closed-caption +standards. + +608 support is currently limited to encoding and decoding the necessary control +and preamble codes as well as support for the Basic North American, Special +North American and Extended Western European character sets. + +708 support is limited to encoding the 608 data in NTSC field 1 user data type +structure. + +In addition, utility functions to create h.264 SEI (Supplementary enhancement +information) NALUs (Network Abstraction Layer Unit) for inclusion into an h.264 +elementary stream are provided.") + (home-page "https://github.com/szatmary/libcaption") + (license license:expat))) |