diff options
Diffstat (limited to 'gnu/packages/video.scm')
-rw-r--r-- | gnu/packages/video.scm | 139 |
1 files changed, 116 insertions, 23 deletions
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 50e27b850f..c8d72bbeac 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -11,7 +11,7 @@ ;;; Copyright © 2016 Kei Kebreau <kkebreau@posteo.net> ;;; Copyright © 2016 Dmitry Nikolaev <cameltheman@gmail.com> ;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca> -;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is> +;;; Copyright © 2016, 2017 ng0 <ng0@n0.is> ;;; Copyright © 2016, 2018, 2019 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org> ;;; Copyright © 2017 Feng Shu <tumashu@163.com> @@ -377,6 +377,7 @@ H.264 (MPEG-4 AVC) video streams.") "lib/utf8-cpp")) #t)))) (build-system gnu-build-system) + (outputs '("out" "gui")) ; "mkvtoolnix-gui" brings the closure size from ~300 MB to 1.5+ GB. (inputs `(("boost" ,boost) ("bzip2" ,bzip2) @@ -432,7 +433,34 @@ H.264 (MPEG-4 AVC) video streams.") (invoke "rake" "tests/unit"))) (replace 'install (lambda _ - (invoke "rake" "install")))))) + (invoke "rake" "install"))) + (add-after 'install 'post-install + (lambda* (#:key outputs #:allow-other-keys) + ;; Move the Qt interface to "gui". + (let* ((out (assoc-ref outputs "out")) + (gui (assoc-ref outputs "gui")) + (strip-store-dir (lambda (path) + (substring path (string-prefix-length out path))))) + (for-each + (lambda (file) + (mkdir-p (string-append gui (dirname file))) + (rename-file (string-append out file) + (string-append gui file))) + (append '("/bin/mkvtoolnix-gui" + "/share/applications/org.bunkus.mkvtoolnix-gui.desktop" + "/share/metainfo/org.bunkus.mkvtoolnix-gui.appdata.xml" + "/share/mime/packages/org.bunkus.mkvtoolnix-gui.xml") + (map strip-store-dir (find-files out "\\.ogg$")) + (map strip-store-dir (find-files out "mkvtoolnix-gui\\.png$")) + (map strip-store-dir (find-files out "mkvtoolnix-gui\\.1")))) + (for-each + (lambda (file) + (delete-file-recursively (string-append out file))) + '("/share/applications" + "/share/metainfo" + "/share/mime" + "/share/mkvtoolnix"))) + #t))))) (home-page "https://mkvtoolnix.download") (synopsis "Tools to create, alter and inspect Matroska files") (description @@ -642,15 +670,14 @@ SMPTE 314M.") (define-public libmatroska (package (name "libmatroska") - (version "1.4.9") + (version "1.5.0") (source (origin (method url-fetch) (uri (string-append "https://dl.matroska.org/downloads/" - name "/" name "-" version ".tar.xz")) + "libmatroska/libmatroska-" version ".tar.xz")) (sha256 - (base32 - "1j4mjzx6mjzfjf9hz8g4w84krf5jccmr5cyynll0j1vwv3aiv9iq")))) + (base32 "07md2gvy3x92ym2k449740mdji6mhknlajkndnhi507s4wcdrvzh")))) (build-system cmake-build-system) (inputs `(("libebml" ,libebml))) @@ -728,14 +755,14 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") (define-public ffmpeg (package (name "ffmpeg") - (version "4.1.1") + (version "4.1.2") (source (origin (method url-fetch) (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" version ".tar.xz")) (sha256 (base32 - "11id9pm4azfrhpa4vr2yaw31dzgd55kl1zsxwn24sczx9n14jdrp")))) + "0yrl6nij4b1pk1c4nbi80857dsd760gziiss2ls19awq8zj0lpxr")))) (build-system gnu-build-system) (inputs `(("fontconfig" ,fontconfig) @@ -1105,13 +1132,11 @@ videoformats depend on the configuration flags of ffmpeg.") (substitute* "modules/text_renderer/freetype/text_layout.c" (("# define FRIBIDI_NO_DEPRECATED 1") "")) - ;; Fix build against Qt 5.11. - (substitute* "modules/gui/qt/actions_manager.cpp" - (("#include <vlc_keys.h>") "#include <vlc_keys.h> -#include <QAction>")) - (substitute* "modules/gui/qt/components/simple_preferences.cpp" - (("#include <QFont>") "#include <QFont> -#include <QButtonGroup>")) + ;; 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) @@ -1412,7 +1437,7 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2019.03.09") + (version "2019.03.18") (source (origin (method url-fetch) (uri (string-append "https://github.com/rg3/youtube-dl/releases/" @@ -1420,7 +1445,7 @@ access to mpv's powerful playback capabilities.") version ".tar.gz")) (sha256 (base32 - "1g46mrmzr31b2r6x0g6wmg3j00qc8l6cbzmdik0l5vwjfcrdvghf")))) + "0r31q7j3gg2zfw3b45jancxl7mmr2gin8dyfx5dgyyp92ss8hih7")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion @@ -2193,7 +2218,7 @@ be used for realtime video capture via Linux-specific APIs.") (define-public obs (package (name "obs") - (version "22.0.3") + (version "23.0.2") (source (origin (method git-fetch) (uri (git-reference @@ -2202,10 +2227,10 @@ be used for realtime video capture via Linux-specific APIs.") (file-name (git-file-name name version)) (sha256 (base32 - "0ri9qkqk3h71b1a5bwpjzqdr21bbmfqbykg48l779d20zln23n1i")))) + "1c0a5vy4h3qwz69qw3bydyk7r651ib5a9jna4yj6c25p3p9isdvp")))) (build-system cmake-build-system) (arguments - `(#:tests? #f)) ; no tests + `(#:tests? #f)) ; no tests (native-inputs `(("pkg-config" ,pkg-config))) (inputs @@ -3388,7 +3413,7 @@ transitions, and effects and then export your film to many common formats.") (define-public dav1d (package (name "dav1d") - (version "0.2.0") + (version "0.2.1") (source (origin (method url-fetch) @@ -3400,8 +3425,7 @@ transitions, and effects and then export your film to many common formats.") (string-append "https://code.videolan.org/videolan/dav1d/-/" "archive/" version "/dav1d-" version ".tar.bz2"))) (sha256 - (base32 - "0q0dbbl91syjnkygz268gh4b7mdcgl6hldj300a4cbqidsadpl5p")))) + (base32 "0cp7harg2gf61v35hyki2ddk9yr0xli9bkk3smxblabmq9rv5cs3")))) (build-system meson-build-system) (native-inputs `(("nasm" ,nasm))) (home-page "https://code.videolan.org/videolan/dav1d") @@ -3438,3 +3462,72 @@ speed and correctness.") (description "Wlstream is a screen capture tool for recording audio and video from a Wayland session.") (license license:lgpl2.1+)))) + +(define-public gaupol + (package + (name "gaupol") + (version "1.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/otsaloma/gaupol/") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "0dk44fmcs86ymfxfbpdbrr4x5nn5hnv57wkqjyw61g779xjhlrd2")))) + (build-system python-build-system) + (native-inputs + `(("gettext" ,gettext-minimal) + ("pkg-config" ,pkg-config))) + (inputs + `(("python-pygobject" ,python-pygobject) + ("gtk+" ,gtk+) + ("python-pycairo" ,python-pycairo) ; Required or else clicking on a subtitle line fails. + ("python-chardet" ,python-chardet) ; Optional: Character encoding detection. + ("gtkspell3" ,gtkspell3) ; Optional: Inline spell-checking. + ("iso-codes" ,iso-codes) ; Optional: Translations. + ("gstreamer" ,gstreamer) + ("gst-libav" ,gst-libav) + ("gst-plugins-base" ,gst-plugins-base) + ("gst-plugins-good" ,gst-plugins-good) + ("gst-plugins-bad" ,gst-plugins-bad) + ("gst-plugins-ugly" ,gst-plugins-ugly))) + (arguments + `(#:tests? #f ; Tests seem to require networking. + #:phases + (modify-phases %standard-phases + ;; gaupol's setup.py script does not support one of the Python build + ;; system's default flags, "--single-version-externally-managed". + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (invoke "python" "setup.py" "install" + (string-append "--prefix=" (assoc-ref outputs "out")) + "--root=/"))) + (add-after 'install 'wrap-gaupol + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + (gst-plugin-path (getenv "GST_PLUGIN_SYSTEM_PATH")) + (gi-typelib-path (getenv "GI_TYPELIB_PATH"))) + (wrap-program (string-append out "/bin/gaupol") + `("GST_PLUGIN_SYSTEM_PATH" ":" prefix (,gst-plugin-path)) + `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))) + #t)) + (add-after 'unpack 'patch-data-dir + ;; Fix some path variables that setup.py seems to garble. + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "setup.py" + (("DATA_DIR = \\{!r\\}\"\\.format\\(data_dir\\)") + (string-append "DATA_DIR = '" out "/share/gaupol'\"")) + (("LOCALE_DIR = \\{!r\\}\"\\.format\\(locale_dir\\)") + (string-append "LOCALE_DIR = '" out "/share/locale'\""))) + #t)))))) + (synopsis "Editor for text-based subtitles") + (description + "Gaupol supports multiple subtitle file formats and provides means of +creating subtitles, editing texts and timing subtitles to match video. The +user interface features a builtin video player and is designed with attention +to convenience of translating and batch processing of multiple documents.") + (home-page "https://otsaloma.io/gaupol/") + (license license:gpl3+))) |