X-Git-Url: https://git.hcoop.net/jackhill/guix/guix.git/blobdiff_plain/e7c7b10db4fdf174055ecbc4a462481daa616295..cd0322a3efd96577de9ab35e4432d1ae399257c8:/gnu/packages/video.scm diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 0d31caed19..947c498c01 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -3,7 +3,7 @@ ;;; Copyright © 2014, 2015, 2016 David Thompson ;;; Copyright © 2014, 2015, 2016, 2018 Mark H Weaver ;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer -;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner +;;; Copyright © 2015, 2016, 2017, 2018, 2019 Efraim Flashner ;;; Copyright © 2015 Andy Patterson ;;; Copyright © 2015, 2018 Ricardo Wurmus ;;; Copyright © 2015, 2016, 2017, 2018 Alex Vong @@ -12,7 +12,7 @@ ;;; Copyright © 2016 Dmitry Nikolaev ;;; Copyright © 2016 Andy Patterson ;;; Copyright © 2016, 2017 Nils Gillmann -;;; Copyright © 2016, 2018 Eric Bavier +;;; Copyright © 2016, 2018, 2019 Eric Bavier ;;; Copyright © 2016 Jan Nieuwenhuizen ;;; Copyright © 2017 Feng Shu ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice @@ -21,7 +21,7 @@ ;;; Copyright © 2017 Ethan R. Jones ;;; Copyright © 2017, 2018 Clément Lassieur ;;; Copyright © 2017 Gregor Giesen -;;; Copyright © 2017, 2018 Rutger Helling +;;; Copyright © 2017, 2018, 2019 Rutger Helling ;;; Copyright © 2018 Roel Janssen ;;; Copyright © 2018 Marius Bakke ;;; Copyright © 2018 Pierre Neidhardt @@ -31,6 +31,7 @@ ;;; Copyright © 2018 Björn Höfling ;;; Copyright © 2018 Mark Meyer ;;; Copyright © 2018 Gábor Boskovit +;;; Copyright © 2019 Mathieu Othacehe ;;; ;;; This file is part of GNU Guix. ;;; @@ -81,8 +82,8 @@ #:use-module (gnu packages compression) #:use-module (gnu packages cpp) #:use-module (gnu packages curl) - #:use-module (gnu packages databases) #:use-module (gnu packages dejagnu) + #:use-module (gnu packages dns) #:use-module (gnu packages docbook) #:use-module (gnu packages documentation) #:use-module (gnu packages elf) @@ -117,10 +118,12 @@ #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) + #:use-module (gnu packages protobuf) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) + #:use-module (gnu packages python-xyz) #:use-module (gnu packages qt) #:use-module (gnu packages rdesktop) #:use-module (gnu packages ruby) @@ -128,6 +131,7 @@ #:use-module (gnu packages sdl) #:use-module (gnu packages serialization) #:use-module (gnu packages shells) + #:use-module (gnu packages sqlite) #:use-module (gnu packages ssh) #:use-module (gnu packages swig) #:use-module (gnu packages texinfo) @@ -701,6 +705,7 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") ("libbluray" ,libbluray) ("libcaca" ,libcaca) ("libcdio-paranoia" ,libcdio-paranoia) + ("libdrm" ,libdrm) ("libtheora" ,libtheora) ("libva" ,libva) ("libvdpau" ,libvdpau) @@ -802,6 +807,7 @@ standards (MPEG-2, MPEG-4 ASP/H.263, MPEG-4 AVC/H.264, and VC-1/VMW3).") "--enable-libx265" "--enable-openal" "--enable-opengl" + "--enable-libdrm" "--enable-runtime-cpudetect" @@ -865,37 +871,19 @@ audio/video codec library.") (base32 "0b59qk5wpc5ksiha76jbhb859g5gxa4w0k6afh3kgvgajiivs73l")))))) -(define-public ffmpeg-2.8 - (package - (inherit ffmpeg) - (version "2.8.15") - (source (origin - (method url-fetch) - (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" - version ".tar.xz")) - (sha256 - (base32 - "065xbvnfmxfbfrc14cavpqyd2slil99vcjksw4ndb7w8zdh0wp3v")))) - (arguments - (substitute-keyword-arguments (package-arguments ffmpeg) - ((#:configure-flags flags) - `(map (lambda (flag) - (if (string=? flag "--disable-mipsdsp") - "--disable-mipsdspr1" - flag)) - ,flags)))))) - (define-public ffmpegthumbnailer (package (name "ffmpegthumbnailer") (version "2.2.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/dirkvdb/" - name "/archive/" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/dirkvdb/ffmpegthumbnailer.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "13qs4iwd4l3iiim30s5051n80z0vgsnikym8vsn321cnm9algiwb")))) + "0kl8aa547icy9b05njps02a8sw4yn4f8fzs228kig247sn09s4cp")))) (build-system cmake-build-system) (native-inputs `(("pkg-config" ,pkg-config))) @@ -914,31 +902,19 @@ thumbnailer uses ffmpeg to decode frames from the video files, so supported videoformats depend on the configuration flags of ffmpeg.") (license license:gpl2+))) -;; Fix build with newer x264. -(define %vlc-libx264-compat.patch - (origin - (method url-fetch) - (uri (string-append "https://git.videolan.org/?p=vlc.git;a=patch;h=" - "a8953ba707cca1f2de372ca24513296bcfcdaaa8")) - (file-name "vlc-libx264-compat.patch") - (sha256 - (base32 - "04igckbdp3sbp8vh0ihmhcf3yjyyk9r3cd5dm9mn9j6vipi1dg3g")))) - (define-public vlc (package (name "vlc") - (version "3.0.4") + (version "3.0.5") (source (origin (method url-fetch) (uri (string-append "https://download.videolan.org/pub/videolan/vlc/" (car (string-split version #\-)) "/vlc-" version ".tar.xz")) - (patches (list %vlc-libx264-compat.patch)) (sha256 (base32 - "17jsq0zqpqyxw4ckvjba0hf6zk8ywc4wf8sy3z03hh3ij0vxpwq1")))) + "1nvj00khy08sing0mdnw6virmiq579mrk5rvpx9710nlxggqgh7m")))) (build-system gnu-build-system) (native-inputs `(("flex" ,flex) @@ -975,6 +951,7 @@ videoformats depend on the configuration flags of ffmpeg.") ("libkate" ,libkate) ("libmad" ,libmad) ("libmatroska" ,libmatroska) + ("libmicrodns" ,libmicrodns) ("libmodplug" ,libmodplug) ("libmpeg2" ,libmpeg2) ("libogg" ,libogg) @@ -1002,6 +979,7 @@ videoformats depend on the configuration flags of ffmpeg.") ("opus" ,opus) ("perl" ,perl) ("pulseaudio" ,pulseaudio) + ("protobuf" ,protobuf) ("python" ,python-wrapper) ("qtbase" ,qtbase) ("qtsvg" ,qtsvg) @@ -1086,7 +1064,7 @@ videoformats depend on the configuration flags of ffmpeg.") (synopsis "Audio and video framework") (description "VLC is a cross-platform multimedia player and framework that plays most multimedia files as well as DVD, Audio CD, VCD, and various -treaming protocols.") +streaming protocols.") (license license:gpl2+))) (define-public mplayer @@ -1187,14 +1165,14 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (name "mpv") (version "0.29.1") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/mpv-player/mpv/archive/v" version - ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mpv-player/mpv.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "08x63hlpj6s8xixmdbx6raff5p5mih7cnk0bcql9f3wrs5hx9ygr")) - (file-name (string-append name "-" version ".tar.gz")))) + "138921kx8g6qprim558xin09xximjhsj9ss8b71ifg2m6kclym8m")))) (build-system waf-build-system) (native-inputs `(("perl" ,perl) ; for zsh completion file @@ -1336,15 +1314,15 @@ access to mpv's powerful playback capabilities.") (define-public youtube-dl (package (name "youtube-dl") - (version "2018.11.07") + (version "2019.01.10") (source (origin (method url-fetch) - (uri (string-append "https://yt-dl.org/downloads/" - version "/youtube-dl-" + (uri (string-append "https://github.com/rg3/youtube-dl/releases/" + "download/" version "/youtube-dl-" version ".tar.gz")) (sha256 (base32 - "1rvc2m2kbm2kycqsa7fkcg5gql9f0w3hn1a7jg48zzl06ayggxk9")))) + "07r1y06697vhbkbf8pix4cnybaqmlf1wb2df5glj2xv8nl6f51gd")))) (build-system python-build-system) (arguments ;; The problem here is that the directory for the man page and completion @@ -1438,7 +1416,8 @@ YouTube.com and many more sites.") (("os\\.path\\.join\\('/usr', 'share'") (string-append "os.path.join('" (assoc-ref %outputs "out") - "', 'share'")))))))) + "', 'share'"))) + #t))))) (inputs `(("python2-wxpython" ,python2-wxpython) ("youtube-dl" ,youtube-dl))) @@ -1456,14 +1435,14 @@ other site that youtube-dl supports.") (name "you-get") (version "0.4.1077") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/soimort/you-get/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/soimort/you-get.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "04vxc91k627qgsqs8dhqajrb6vpj4pw21jlwbha28qakfiz2x11k")))) + "1rwkn3wb3r70b8cqj40qdknkg9kqbgzkvi901hbpy2a8s1b7858n")))) (build-system python-build-system) (inputs `(("ffmpeg" ,ffmpeg))) ; for multi-part and >=1080p videos @@ -1493,7 +1472,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.4.1") + (version "3.5.0") (source (origin (method git-fetch) (uri (git-reference @@ -1502,7 +1481,7 @@ audio, images) from the Web. It can use either mpv or vlc for playback.") (file-name (git-file-name name version)) (sha256 (base32 - "0axgb95lx81psgrb2a5rfdd8gl4mhsrzf41jas6l58d1xkaj54ri")))) + "1s7hv2a46cx2nbdykrijqfh8hdkf3zqn6q8sg3ajnnc5agaspyrg")))) (build-system perl-build-system) (native-inputs `(("perl-module-build" ,perl-module-build))) @@ -1524,6 +1503,15 @@ audio, images) from the Web. It can use either mpv or vlc for playback.") #:module-build-flags '("--gtk") #:phases (modify-phases %standard-phases + (add-after 'install 'install-desktop + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (sharedir (string-append out "/share"))) + (install-file "share/gtk-youtube-viewer.desktop" + (string-append sharedir "/applications")) + (install-file "share/icons/gtk-youtube-viewer.png" + (string-append sharedir "/pixmaps")) + #t))) (add-after 'install 'wrap-program (lambda* (#:key outputs #:allow-other-keys) (let* ((out (assoc-ref outputs "out")) @@ -1776,67 +1764,68 @@ for use with HTML5 video.") (add-before 'patch-source-shebangs 'unpack-ffmpeg (lambda _ (with-directory-excursion "avidemux_core/ffmpeg_package" - (system* "tar" "xf" "ffmpeg-2.7.6.tar.bz2") - (delete-file "ffmpeg-2.7.6.tar.bz2")))) + (invoke "tar" "xf" "ffmpeg-2.7.6.tar.bz2") + (delete-file "ffmpeg-2.7.6.tar.bz2")) + #t)) (add-after 'patch-source-shebangs 'repack-ffmpeg (lambda _ (with-directory-excursion "avidemux_core/ffmpeg_package" (substitute* "ffmpeg-2.7.6/configure" (("#! /bin/sh") (string-append "#!" (which "sh")))) - (system* "tar" "cjf" "ffmpeg-2.7.6.tar.bz2" "ffmpeg-2.7.6" - ;; avoid non-determinism in the archive - "--sort=name" "--mtime=@0" - "--owner=root:0" "--group=root:0") - (delete-file-recursively "ffmpeg-2.7.6")))) + (invoke "tar" "cjf" "ffmpeg-2.7.6.tar.bz2" "ffmpeg-2.7.6" + ;; avoid non-determinism in the archive + "--sort=name" "--mtime=@0" + "--owner=root:0" "--group=root:0") + (delete-file-recursively "ffmpeg-2.7.6")) + #t)) (replace 'configure (lambda _ ;; Copy-paste settings from the cmake build system. (setenv "CMAKE_LIBRARY_PATH" (getenv "LIBRARY_PATH")) - (setenv "CMAKE_INCLUDE_PATH" (getenv "C_INCLUDE_PATH")))) + (setenv "CMAKE_INCLUDE_PATH" (getenv "C_INCLUDE_PATH")) + #t)) (replace 'build (lambda* (#:key inputs outputs #:allow-other-keys) - (let* - ((out (assoc-ref outputs "out")) - (lib (string-append out "/lib")) - (top (getcwd)) - (sdl (assoc-ref inputs "sdl")) - (build_component - (lambda* (component srcdir #:optional (args '())) - (let ((builddir (string-append "build_" component))) - (mkdir builddir) - (with-directory-excursion builddir - (zero? - (and - (apply system* "cmake" - "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE" - (string-append "-DCMAKE_INSTALL_PREFIX=" out) - (string-append "-DCMAKE_INSTALL_RPATH=" lib) - (string-append "-DCMAKE_SHARED_LINKER_FLAGS=" - "\"-Wl,-rpath=" lib "\"") - (string-append "-DAVIDEMUX_SOURCE_DIR=" top) - (string-append "-DSDL_INCLUDE_DIR=" - sdl "/include/SDL") - (string-append "../" srcdir) - "-DENABLE_QT5=True" - args) - (system* "make" "-j" + (let* ((out (assoc-ref outputs "out")) + (lib (string-append out "/lib")) + (top (getcwd)) + (sdl (assoc-ref inputs "sdl")) + (build_component + (lambda* (component srcdir #:optional (args '())) + (let ((builddir (string-append "build_" component))) + (mkdir builddir) + (with-directory-excursion builddir + (apply invoke "cmake" + "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE" + (string-append "-DCMAKE_INSTALL_PREFIX=" out) + (string-append "-DCMAKE_INSTALL_RPATH=" lib) + (string-append "-DCMAKE_SHARED_LINKER_FLAGS=" + "\"-Wl,-rpath=" lib "\"") + (string-append "-DAVIDEMUX_SOURCE_DIR=" top) + (string-append "-DSDL_INCLUDE_DIR=" + sdl "/include/SDL") + (string-append "../" srcdir) + "-DENABLE_QT5=True" + args) + (invoke "make" "-j" (number->string (parallel-job-count))) - (system* "make" "install")))))))) + (invoke "make" "install")))))) (mkdir out) - (and (build_component "core" "avidemux_core") - (build_component "cli" "avidemux/cli") - (build_component "qt4" "avidemux/qt4") - (build_component "plugins_common" "avidemux_plugins" - '("-DPLUGIN_UI=COMMON")) - (build_component "plugins_cli" "avidemux_plugins" - '("-DPLUGIN_UI=CLI")) - (build_component "plugins_qt4" "avidemux_plugins" - '("-DPLUGIN_UI=QT4")) - (build_component "plugins_settings" "avidemux_plugins" - '("-DPLUGIN_UI=SETTINGS"))) + (build_component "core" "avidemux_core") + (build_component "cli" "avidemux/cli") + (build_component "qt4" "avidemux/qt4") + (build_component "plugins_common" "avidemux_plugins" + '("-DPLUGIN_UI=COMMON")) + (build_component "plugins_cli" "avidemux_plugins" + '("-DPLUGIN_UI=CLI")) + (build_component "plugins_qt4" "avidemux_plugins" + '("-DPLUGIN_UI=QT4")) + (build_component "plugins_settings" "avidemux_plugins" + '("-DPLUGIN_UI=SETTINGS")) ;; Remove .exe and .dll file. (delete-file-recursively - (string-append out "/share/ADM6_addons"))))) + (string-append out "/share/ADM6_addons")) + #t))) (delete 'install)))) (home-page "http://fixounet.free.fr/avidemux/") (synopsis "Video editor") @@ -1854,14 +1843,14 @@ capabilities.") (name "vapoursynth") (version "37") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/vapoursynth/vapoursynth/archive/R" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/vapoursynth/vapoursynth.git") + (commit (string-append "R" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1g3hc079jw4mz1cmkv2y28pdb556wqc8ql7iravgh1rg8j3f1zi5")))) + "1ma2s7dxk6y6l04qj1jvgwia4xj7999ny3a1yx2vbk5l83giam2p")))) (build-system gnu-build-system) (native-inputs `(("autoconf" ,autoconf) @@ -1916,7 +1905,8 @@ format changes.") (lambda _ (chdir "build/generic") (substitute* "configure" - (("#! /bin/sh") (string-append "#!" (which "sh"))))))) + (("#! /bin/sh") (string-append "#!" (which "sh")))) + #t))) ;; No 'check' target. #:tests? #f)) (home-page "https://www.xvid.com/") @@ -1937,7 +1927,8 @@ and custom quantization matrices.") (uri (pypi-uri "streamlink" version)) (sha256 (base32 - "0l2145fd60i76afjisfxd48cwhwyir07i7s3bnimdq5db2kzkix8")))) + "0l2145fd60i76afjisfxd48cwhwyir07i7s3bnimdq5db2kzkix8")) + (patches (search-patches "streamlink-update-test.patch")))) (build-system python-build-system) (home-page "https://github.com/streamlink/streamlink") (native-inputs @@ -1950,7 +1941,7 @@ and custom quantization matrices.") ("python-websocket-client" ,python-websocket-client) ("python-iso3166" ,python-iso3166) ("python-iso639" ,python-iso639) - ("python-isodate", python-isodate) + ("python-isodate" ,python-isodate) ("python-pycryptodome" ,python-pycryptodome) ("python-requests" ,python-requests) ("python-urllib3" ,python-urllib3))) @@ -1989,7 +1980,8 @@ from sites like Twitch.tv and pipes them into a video player of choice.") (lambda* (#:key outputs #:allow-other-keys) (install-file "plugins/rofi-twitchy" (string-append (assoc-ref outputs "out") - "/bin"))))))) + "/bin")) + #t))))) (inputs `(("python-requests" ,python-requests) ("streamlink" ,streamlink))) @@ -2004,13 +1996,14 @@ from sites like Twitch.tv and pipes them into a video player of choice.") (name "mlt") (version "6.10.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/mltframework/mlt/" - "archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mltframework/mlt.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1zzdj1g3g24q6v8hd0v34lv0pkh37a13fhjpl44h1ffi00mz3577")) + "0ki86yslr5ywa6sz8pjrgd9a4rn2rr4mss2zkmqi7pq8prgsm1fr")) (modules '((guix build utils))) (snippet '(begin ;; As of glibc 2.26, no longer is. @@ -2101,15 +2094,16 @@ be used for realtime video capture via Linux-specific APIs.") (define-public obs (package (name "obs") - (version "20.1.3") + (version "22.0.3") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/jp9000/obs-studio" - "/archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/obsproject/obs-studio.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "1g5z6z050v25whc7n3xvg6l238wmg5crp7ihvk73qngvzxr8bg28")))) + "0ri9qkqk3h71b1a5bwpjzqdr21bbmfqbykg48l779d20zln23n1i")))) (build-system cmake-build-system) (arguments `(#:tests? #f)) ; no tests @@ -2265,13 +2259,14 @@ making @dfn{screencasts}.") (version "0.3.11") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/MaartenBaert/ssr/archive/" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/MaartenBaert/ssr.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "0l6irdadqpajvv0dj3ngs1231n559l0y1pykhs2h7526qm4w7xal")))) + "0n702dnv4qshgn3b90ixvplfafjhgz6040yir5vy8khjdpciysq4")))) (build-system cmake-build-system) ;; Although libx11, libxfixes, libxext are listed as build dependencies in ;; README.md, the program builds and functions properly without them. @@ -2389,13 +2384,14 @@ Content System specification.") (version "0.2.8") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/mps-youtube/mps-youtube/" - "archive/v" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/mps-youtube/mps-youtube.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0x7cmfh199q9j396v7bz81nnvanfllhsg86489i5dw2p3yyc9wnm")))) + "1w1jhw9rg3dx7vp97cwrk5fymipkcy2wrbl1jaa38ivcjhqg596y")))) (build-system python-build-system) (arguments ;; Tests need to be disabled until #556 upstream is fixed. It reads as if the @@ -2420,22 +2416,27 @@ supported players in addition to this package.") (define-public handbrake (package (name "handbrake") - (version "0.10.5") + (version "1.1.2") (source (origin (method url-fetch) - (uri (string-append "https://handbrake.fr/rotation.php?file=" - "HandBrake-" version ".tar.bz2")) - (file-name (string-append "handbrake-" version ".tar.bz2")) + (uri (string-append "https://download.handbrake.fr/releases/" + version "/HandBrake-" version "-source.tar.bz2")) (sha256 (base32 - "1w720y3bplkz187wgvy4a4xm0vpppg45mlni55l6yi8v2bfk14pv")) - (patches (search-patches "handbrake-pkg-config-path.patch")) + "0bny0hwlr55g2c69rsamv0xvwmfh1s4a582b9vq20xv5ly84m6ms")) (modules '((guix build utils))) (snippet - ;; Remove bundled libraries and source not necessary for - ;; running under a GNU environment. + ;; Remove "contrib" and source not necessary for + ;; building/running under a GNU environment. '(begin - (for-each delete-file-recursively '("contrib" "macosx" "win")) + (for-each delete-file-recursively + '("contrib" "macosx" "win")) + (substitute* "make/include/main.defs" + ;; Disable unconditional inclusion of "contrib" libraries + ;; (ffmpeg, libvpx, libdvdread, libdvdnav, and libbluray), + ;; which would lead to fetching and building of these + ;; libraries. Use our own instead. + (("MODULES \\+= contrib") "# MODULES += contrib")) #t)))) (build-system glib-or-gtk-build-system) (native-inputs @@ -2449,13 +2450,14 @@ supported players in addition to this package.") (inputs `(("bzip2" ,bzip2) ("dbus-glib" ,dbus-glib) - ("ffmpeg" ,ffmpeg-3.4) ;compilation errors with ffmpeg-4 + ("ffmpeg" ,ffmpeg) ("fontconfig" ,fontconfig) ("freetype" ,freetype) ("glib" ,glib) ("gstreamer" ,gstreamer) ("gst-plugins-base" ,gst-plugins-base) ("gtk+" ,gtk+) + ("jansson" ,jansson) ("lame" ,lame) ("libass" ,libass) ("libbluray" ,libbluray) @@ -2465,6 +2467,7 @@ supported players in addition to this package.") ("libmpeg2" ,libmpeg2) ("libnotify" ,libnotify) ("libogg" ,libogg) + ("libopus" ,opus) ("libsamplerate" ,libsamplerate) ("libtheora" ,libtheora) ("libvorbis" ,libvorbis) @@ -2475,6 +2478,11 @@ supported players in addition to this package.") ("zlib" ,zlib))) (arguments `(#:tests? #f ;tests require Ruby and claim to be unsupported + #:configure-flags + (list (string-append "CPPFLAGS=-I" + (assoc-ref %build-inputs "libxml2") + "/include/libxml2") + "LDFLAGS=-lx265") #:phases (modify-phases %standard-phases (replace 'bootstrap @@ -2486,21 +2494,6 @@ supported players in addition to this package.") (substitute* "gtk/module.rules" ((".*autogen\\.sh.*") "")) (invoke "sh" "./gtk/autogen.sh"))) - (add-before 'configure 'disable-contrib - (lambda _ - (substitute* "make/include/main.defs" - ;; Disable unconditional inclusion of some "contrib" - ;; libraries (ffmpeg, libvpx, libdvdread, libdvdnav, - ;; and libbluray), which would lead to fetching and - ;; building of these libraries. Use our own instead. - (("MODULES \\+= contrib") "# MODULES += contrib")) - #t)) - (add-before 'configure 'fix-x265-linking - (lambda _ - (substitute* "test/module.defs" - ;; Fix missing library during linking error - (("TEST.GCC.l =") "TEST.GCC.l = x265")) - #t)) (replace 'configure (lambda* (#:key outputs configure-flags #:allow-other-keys) ;; 'configure' is not an autoconf-generated script, and @@ -2517,8 +2510,9 @@ supported players in addition to this package.") (description "HandBrake is a tool for converting video from any format to a selection of modern, widely supported codecs.") - ;; Most under GPL version 2 or later, and portions under BSD 3 Clause - (license (list license:gpl2+ license:bsd-3)))) + ;; Some under GPLv2+, some under LGPLv2.1+, and portions under BSD3. + ;; Combination under GPLv2. See LICENSE. + (license license:gpl2))) (define-public openh264 (package @@ -2783,12 +2777,14 @@ and ITU-T H.222.0.") (version "2.23") (home-page "https://github.com/FFMS/ffms2") (source (origin - (method url-fetch) - (uri (string-append home-page "/archive/" version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/FFMS/ffms2.git") + (commit version))) + (file-name (git-file-name name version)) (sha256 (base32 - "1vbkab8vrplxz5xgag8ggzkwp4f7nf285pd0l2a7zy66n6i2m6xh")))) + "0dkz5b3gxq5p4xz0qqg6l2sigszrlsinz3skyf0ln4wf3zrvf8m5")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -2819,7 +2815,8 @@ programmers to access a standard API to open and decompress media files.") (sha256 (base32 "11b83qazc8h0iidyj1rprnnjdivj1lpphvpa08y53n42bfa36pn5")) - (patches (search-patches "aegisub-icu59-include-unistr.patch")))) + (patches (search-patches "aegisub-icu59-include-unistr.patch" + "aegisub-boost68.patch")))) (build-system gnu-build-system) (arguments `(#:configure-flags @@ -3064,14 +3061,14 @@ save it to the appropriate filename.") (name "l-smash") (version "2.14.5") (source (origin - (method url-fetch) - (uri (string-append - "https://github.com/" name "/" name "/archive/v" - version ".tar.gz")) - (file-name (string-append name "-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/l-smash/l-smash.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "0dary0h65kq6sv93iabv25djlvzr5ckdcp3ywagbix44wqfw7xz6")))) + "0rcq9727im6kd8da8b7kzzbzxdldvmh5nsljj9pvr4m3lj484b02")))) (build-system gnu-build-system) (arguments `(#:tests? #f ;no tests @@ -3126,12 +3123,14 @@ online.") (name "vidstab") (version "1.1.0") (source (origin - (method url-fetch) - (uri (string-append "https://github.com/georgmartius/vid.stab/" - "archive/v" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://github.com/georgmartius/vid.stab.git") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) (sha256 (base32 - "1fy03n343djfdi19msac81833v5iivpv635yjzrx9nkfwm9s1lhl")))) + "0a3frpm2kdbx7vszhg64p3alisag73bcspl7fp3a2f1kgq7rbh38")))) (build-system cmake-build-system) (arguments '(#:tests? #f)) ; tests are not run as part of standard build process @@ -3251,3 +3250,52 @@ API. It includes bindings for Python, Ruby, and other languages.") helps you create the film you have always dreamed of. Easily add sub-titles, transitions, and effects and then export your film to many common formats.") (license license:gpl3+))) + +(define-public dav1d + (package + (name "dav1d") + (version "0.1.0") + (source + (origin + (method url-fetch) + (uri (string-append "https://downloads.videolan.org/pub/videolan/" + "dav1d/" version "/dav1d-" version ".tar.xz")) + (sha256 + (base32 + "0dw0liday8cbyrirhm6bgzhxg4cdy66nspfkdlq338gdsfqcvrsc")))) + (build-system meson-build-system) + (native-inputs `(("nasm" ,nasm))) + (home-page "https://code.videolan.org/videolan/dav1d") + (synopsis "AV1 decoder") + (description "dav1d is a new AV1 cross-platform decoder, and focused on +speed and correctness.") + (license license:bsd-2))) + +(define-public wlstream + (let ((commit "182076a94562b128c3a97ecc53cc68905ea86838") + (revision "1")) + (package + (name "wlstream") + (version (git-version "0.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/atomnuker/wlstream.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "01qbcgfl3g9kfwn1jf1z9pdj3bvf5lmg71d1vwkcllc2az24bjqp")))) + (build-system meson-build-system) + (native-inputs `(("libdrm" ,libdrm) + ("pkg-config" ,pkg-config))) + (inputs `(("ffmpeg" ,ffmpeg) + ("pulseaudio" ,pulseaudio) + ("wayland" ,wayland) + ("wayland-protocols" ,wayland-protocols))) + (home-page "https://github.com/atomnuker/wlstream") + (synopsis "Screen capture tool for Wayland sessions") + (description "Wlstream is a screen capture tool for recording audio and +video from a Wayland session.") + (license license:lgpl2.1+))))