aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/video.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/video.scm')
-rw-r--r--gnu/packages/video.scm630
1 files changed, 410 insertions, 220 deletions
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 01e41b1914..fc6caf3ff8 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -5,14 +5,14 @@
;;; Copyright © 2015 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com>
;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2015 Andy Patterson <ajpatter@uwaterloo.ca>
-;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
+;;; Copyright © 2015, 2018 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017, 2018 Alex Vong <alexvong1995@gmail.com>
;;; Copyright © 2016, 2017 Alex Griffin <a@ajgrf.com>
;;; 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 Eric Bavier <bavier@member.fsf.org>
+;;; Copyright © 2016, 2018 Eric Bavier <bavier@member.fsf.org>
;;; Copyright © 2016 Jan Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2017 Feng Shu <tumashu@163.com>
;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
@@ -24,11 +24,13 @@
;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2018 Pierre Neidhardt <ambrevar@gmail.com>
+;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
;;; Copyright © 2018 Brendan Tildesley <brendan.tildesley@openmailbox.org>
;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
+;;; Copyright © 2018 Mark Meyer <mark@ofosos.org>
+;;; Copyright © 2018 Gábor Boskovit <boskovits@gmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -65,6 +67,7 @@
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
+ #:use-module (gnu packages assembly)
#:use-module (gnu packages audio)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
@@ -94,6 +97,7 @@
#:use-module (gnu packages glib)
#:use-module (gnu packages guile)
#:use-module (gnu packages gnome)
+ #:use-module (gnu packages gnunet)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages gstreamer)
#:use-module (gnu packages gtk)
@@ -108,6 +112,7 @@
#:use-module (gnu packages man)
#:use-module (gnu packages mp3)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages networking)
#:use-module (gnu packages ocr)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
@@ -124,6 +129,7 @@
#:use-module (gnu packages serialization)
#:use-module (gnu packages shells)
#:use-module (gnu packages ssh)
+ #:use-module (gnu packages swig)
#:use-module (gnu packages texinfo)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
@@ -137,8 +143,7 @@
#:use-module (gnu packages xdisorg)
#:use-module (gnu packages xiph)
#:use-module (gnu packages xml)
- #:use-module (gnu packages xorg)
- #:use-module (gnu packages assembly))
+ #:use-module (gnu packages xorg))
(define-public aalib
(package
@@ -390,7 +395,8 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
(define-public x265
(package
(name "x265")
- (version "2.8")
+ (version "2.9")
+ (outputs '("out" "static"))
(source
(origin
(method url-fetch)
@@ -398,9 +404,9 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
"x265_" version ".tar.gz"))
(sha256
(base32
- "0qx8mavwdzdpkkby7n29i9av7zsnklavacwfz537mf62q2pzjnbf"))
- (patches (search-patches "x265-fix-ppc64le-build.patch"
- "x265-arm-asm-primitives.patch"))
+ "090hp4216isis8q5gb7bwzia8rfyzni54z21jnwm97x3hiy6ibpb"))
+ (patches (search-patches "x265-arm-flags.patch"
+ "x265-detect512-all-arches.patch"))
(modules '((guix build utils)))
(snippet '(begin
(delete-file-recursively "source/compat/getopt")
@@ -408,18 +414,76 @@ and creating Matroska files from other media files (@code{mkvmerge}).")
(build-system cmake-build-system)
(arguments
`(#:tests? #f ; tests are skipped if cpu-optimized code isn't built
- ;; Currently the source code doesn't check for aarch64.
- ,@(if (any (cute string-prefix? <> (or (%current-system)
- (%current-target-system)))
- '("armhf" "aarch64"))
- '(#:configure-flags '("-DENABLE_PIC=TRUE"))
- '())
+ #:configure-flags
+ ;; Ensure position independent code for everyone.
+ (list "-DENABLE_PIC=TRUE"
+ ,@(if (string-prefix? "armhf" (or (%current-system)
+ (%current-target-system)))
+ '("-DENABLE_ASSEMBLY=OFF")
+ '())
+ (string-append "-DCMAKE_INSTALL_PREFIX="
+ (assoc-ref %outputs "out")))
#:phases
(modify-phases %standard-phases
- (add-before 'configure 'prepare-build
+ (add-after 'unpack 'prepare-build
(lambda _
(delete-file-recursively "build")
(chdir "source")
+ ;; recognize armv8 in 32-bit mode as ARM
+ (substitute* "CMakeLists.txt"
+ (("armv6l") "armv8l"))
+ #t))
+ (add-before 'configure 'build-12-bit
+ (lambda* (#:key (configure-flags '()) #:allow-other-keys)
+ (mkdir "../build-12bit")
+ (with-directory-excursion "../build-12bit"
+ (apply invoke
+ "cmake" "../source"
+ "-DHIGH_BIT_DEPTH=ON"
+ "-DEXPORT_C_API=OFF"
+ "-DENABLE_CLI=OFF"
+ "-DMAIN12=ON"
+ configure-flags)
+ (substitute* (cons "cmake_install.cmake"
+ (append
+ (find-files "CMakeFiles/x265-shared.dir" ".")
+ (find-files "CMakeFiles/x265-static.dir" ".")))
+ (("libx265") "libx265_main12"))
+ (invoke "make"))))
+ (add-before 'configure 'build-10-bit
+ (lambda* (#:key (configure-flags '()) #:allow-other-keys)
+ (mkdir "../build-10bit")
+ (with-directory-excursion "../build-10bit"
+ (apply invoke
+ "cmake" "../source"
+ "-DHIGH_BIT_DEPTH=ON"
+ "-DEXPORT_C_API=OFF"
+ "-DENABLE_CLI=OFF"
+ configure-flags)
+ (substitute* (cons "cmake_install.cmake"
+ (append
+ (find-files "CMakeFiles/x265-shared.dir" ".")
+ (find-files "CMakeFiles/x265-static.dir" ".")))
+ (("libx265") "libx265_main10"))
+ (invoke "make"))))
+ (add-after 'install 'install-more-libs
+ (lambda _
+ (with-directory-excursion "../build-12bit"
+ (invoke "make" "install"))
+ (with-directory-excursion "../build-10bit"
+ (invoke "make" "install"))))
+ (add-before 'strip 'move-static-libs
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (static (assoc-ref outputs "static")))
+ (mkdir-p (string-append static "/lib"))
+ (with-directory-excursion
+ (string-append out "/lib")
+ (for-each
+ (lambda (file)
+ (rename-file file
+ (string-append static "/lib/" file)))
+ (find-files "." "\\.a$"))))
#t)))))
(home-page "http://x265.org/")
(synopsis "Library for encoding h.265/HEVC video streams")
@@ -616,14 +680,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.0.2")
+ (version "4.1")
(source (origin
(method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz"))
(sha256
(base32
- "15rgzcmdccy4flajs63gkz4n3k24wkkg50r13l1r83lrxg4hqp59"))))
+ "150rrm549fy1x71c9whmyi5knyd9sliwvmcsm438bdgg4v8c93m3"))))
(build-system gnu-build-system)
(inputs
`(("fontconfig" ,fontconfig)
@@ -792,14 +856,14 @@ audio/video codec library.")
(define-public ffmpeg-3.4
(package
(inherit ffmpeg)
- (version "3.4.4")
+ (version "3.4.5")
(source (origin
(method url-fetch)
(uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
version ".tar.xz"))
(sha256
(base32
- "1iizgnhjbhar9y1ykqlj1czqanlv24knkfq5vvfnppv5x00pcvrq"))))))
+ "0b59qk5wpc5ksiha76jbhb859g5gxa4w0k6afh3kgvgajiivs73l"))))))
(define-public ffmpeg-2.8
(package
@@ -826,12 +890,14 @@ audio/video codec library.")
(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)))
@@ -864,7 +930,7 @@ videoformats depend on the configuration flags of ffmpeg.")
(define-public vlc
(package
(name "vlc")
- (version "3.0.3-1")
+ (version "3.0.4")
(source (origin
(method url-fetch)
(uri (string-append
@@ -874,7 +940,7 @@ videoformats depend on the configuration flags of ffmpeg.")
(patches (list %vlc-libx264-compat.patch))
(sha256
(base32
- "1p7qvdvg9w4lz8vckzhn6bswfkq3qw7fqkgvwjcskdgc266xx7dw"))))
+ "17jsq0zqpqyxw4ckvjba0hf6zk8ywc4wf8sy3z03hh3ij0vxpwq1"))))
(build-system gnu-build-system)
(native-inputs
`(("flex" ,flex)
@@ -1121,16 +1187,16 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
(define-public mpv
(package
(name "mpv")
- (version "0.29.0")
+ (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
- "06bk8836brzik1qmq8kycwg5n35r438sd2176k6msjg5rrwghakp"))
- (file-name (string-append name "-" version ".tar.gz"))))
+ "138921kx8g6qprim558xin09xximjhsj9ss8b71ifg2m6kclym8m"))))
(build-system waf-build-system)
(native-inputs
`(("perl" ,perl) ; for zsh completion file
@@ -1182,7 +1248,8 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
(add-before
'configure 'setup-waf
(lambda* (#:key inputs #:allow-other-keys)
- (copy-file (assoc-ref inputs "waf") "waf")
+ (let ((waf (assoc-ref inputs "waf")))
+ (copy-file (string-append waf "/bin/waf") "waf"))
(setenv "CC" "gcc")
#t)))
#:configure-flags (list "--enable-libmpv-shared"
@@ -1203,7 +1270,7 @@ projects while introducing many more.")
(define-public gnome-mpv
(package
(name "gnome-mpv")
- (version "0.14")
+ (version "0.15")
(source
(origin
(method url-fetch)
@@ -1212,7 +1279,7 @@ projects while introducing many more.")
".tar.xz"))
(sha256
(base32
- "03kjwd5jq0i5ajnvhjwf5019bjjaa16xkdrhdkiz1k58ipjvvj93"))))
+ "1y47abkidxh1il0bvq8r3dglwn3ggsy41x2n7ic3x23wvvcqmq74"))))
(native-inputs
`(("intltool" ,intltool)
("pkg-config" ,pkg-config)))
@@ -1242,7 +1309,8 @@ access to mpv's powerful playback capabilities.")
(sha256
(base32
"0vvh89hvp8qg9an9vcmwb7d9k3nixhxaz6zi65qdjnd0i56kkcz6"))
- (patches (search-patches "libvpx-CVE-2016-2818.patch"))))
+ (patches (search-patches "libvpx-use-after-free-in-postproc.patch"
+ "libvpx-CVE-2016-2818.patch"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags (list "--enable-shared"
@@ -1270,7 +1338,7 @@ access to mpv's powerful playback capabilities.")
(define-public youtube-dl
(package
(name "youtube-dl")
- (version "2018.08.04")
+ (version "2018.11.07")
(source (origin
(method url-fetch)
(uri (string-append "https://yt-dl.org/downloads/"
@@ -1278,7 +1346,7 @@ access to mpv's powerful playback capabilities.")
version ".tar.gz"))
(sha256
(base32
- "1hcx99qbbyigc8k98c8bcc6a2wnhq6493fmrkl7rysc8krlxr0pm"))))
+ "1rvc2m2kbm2kycqsa7fkcg5gql9f0w3hn1a7jg48zzl06ayggxk9"))))
(build-system python-build-system)
(arguments
;; The problem here is that the directory for the man page and completion
@@ -1372,7 +1440,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)))
@@ -1390,14 +1459,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
@@ -1427,16 +1496,16 @@ audio, images) from the Web. It can use either mpv or vlc for playback.")
(define-public youtube-viewer
(package
(name "youtube-viewer")
- (version "3.3.4")
+ (version "3.4.1")
(source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/trizen/youtube-viewer/archive/"
- version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/trizen/youtube-viewer.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1dqaxkz5svv0lmxds6lppcpzhkq6gar2raw9gx6imrd7yz02fpgn"))))
+ "0axgb95lx81psgrb2a5rfdd8gl4mhsrzf41jas6l58d1xkaj54ri"))))
(build-system perl-build-system)
(native-inputs
`(("perl-module-build" ,perl-module-build)))
@@ -1710,67 +1779,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")
@@ -1788,14 +1858,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)
@@ -1850,7 +1920,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/")
@@ -1862,41 +1933,36 @@ and custom quantization matrices.")
(license license:gpl2+)))
(define-public streamlink
- ;; Release tarball doesn't contain ‘tests/resources/dash/’ directory.
- (let ((commit "2dca7930a938f60b48d8e23260963ea7c49d979f"))
- (package
- (name "streamlink")
- (version (git-version "0.13.0" "1" commit))
- (source
- (origin
- (method git-fetch)
- (uri (git-reference
- (url "https://github.com/streamlink/streamlink.git")
- (commit commit)))
- (file-name (git-file-name name version))
- (sha256
- (base32
- "0vq19aspshim63aj8yl2p64ykrbk2mwwlawdx427b3j2djlc5qhw"))))
- (build-system python-build-system)
- (home-page "https://github.com/streamlink/streamlink")
- (native-inputs
- `(("python-freezegun" ,python-freezegun)
- ("python-pytest" ,python-pytest)
- ("python-mock" ,python-mock)
- ("python-requests-mock" ,python-requests-mock)))
- (propagated-inputs
- `(("python-pysocks" ,python-pysocks)
- ("python-websocket-client" ,python-websocket-client)
- ("python-iso3166" ,python-iso3166)
- ("python-iso639" ,python-iso639)
- ("python-isodate", python-isodate)
- ("python-pycryptodome" ,python-pycryptodome)
- ("python-requests" ,python-requests)
- ("python-urllib3" ,python-urllib3)))
- (synopsis "Extract streams from various services")
- (description "Streamlink is command-line utility that extracts streams
+ (package
+ (name "streamlink")
+ (version "0.14.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "streamlink" version))
+ (sha256
+ (base32
+ "0l2145fd60i76afjisfxd48cwhwyir07i7s3bnimdq5db2kzkix8"))))
+ (build-system python-build-system)
+ (home-page "https://github.com/streamlink/streamlink")
+ (native-inputs
+ `(("python-freezegun" ,python-freezegun)
+ ("python-pytest" ,python-pytest)
+ ("python-mock" ,python-mock)
+ ("python-requests-mock" ,python-requests-mock)))
+ (propagated-inputs
+ `(("python-pysocks" ,python-pysocks)
+ ("python-websocket-client" ,python-websocket-client)
+ ("python-iso3166" ,python-iso3166)
+ ("python-iso639" ,python-iso639)
+ ("python-isodate", python-isodate)
+ ("python-pycryptodome" ,python-pycryptodome)
+ ("python-requests" ,python-requests)
+ ("python-urllib3" ,python-urllib3)))
+ (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.")
- (license license:bsd-2))))
+ (license license:bsd-2)))
(define-public livestreamer
(deprecated-package "livestreamer" streamlink))
@@ -1928,7 +1994,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)))
@@ -1941,15 +2008,16 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
(define-public mlt
(package
(name "mlt")
- (version "6.4.1")
+ (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
- "10m3ry0b2pvqx3bk34qh5dq337nn8pkc2gzfyhsj4nv9abskln47"))
+ "0ki86yslr5ywa6sz8pjrgd9a4rn2rr4mss2zkmqi7pq8prgsm1fr"))
(modules '((guix build utils)))
(snippet '(begin
;; As of glibc 2.26, <xlocale.h> no longer is.
@@ -1959,7 +2027,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; no tests
- #:make-flags '("CC=gcc")
+ #:make-flags '("CC=gcc" "CXX=g++ -std=gnu++11")
#:configure-flags
(list "--enable-gpl3"
"--enable-gpl")
@@ -1978,11 +2046,16 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
`(("alsa-lib" ,alsa-lib)
("ffmpeg" ,ffmpeg-3.4)
("fftw" ,fftw)
+ ("frei0r-plugins" ,frei0r-plugins)
+ ("gdk-pixbuf" ,gdk-pixbuf)
+ ("gtk+" ,gtk+-2)
("libxml2" ,libxml2)
("jack" ,jack-1)
("ladspa" ,ladspa)
("libsamplerate" ,libsamplerate)
("pulseaudio" ,pulseaudio)
+ ("qtbase" ,qtbase)
+ ("qtsvg" ,qtsvg)
("sdl" ,sdl)
("sox" ,sox)))
(native-inputs
@@ -2037,13 +2110,14 @@ be used for realtime video capture via Linux-specific APIs.")
(name "obs")
(version "20.1.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/jp9000/obs-studio.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "1g5z6z050v25whc7n3xvg6l238wmg5crp7ihvk73qngvzxr8bg28"))))
+ "0qdpa2xxiiw53ksvlrf80jm8gz6kxsn56sffv2v2ijxvy7kw5zcg"))))
(build-system cmake-build-system)
(arguments
`(#:tests? #f)) ; no tests
@@ -2199,13 +2273,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.
@@ -2217,7 +2292,8 @@ making @dfn{screencasts}.")
("jack" ,jack-1)
("libxi" ,libxi)
("pulseaudio" ,pulseaudio)
- ("qt" ,qt)))
+ ("qtbase" ,qtbase)
+ ("qtx11extras" ,qtx11extras)))
(native-inputs `(("pkg-config" ,pkg-config)))
(arguments
`(#:configure-flags
@@ -2322,13 +2398,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
@@ -2353,22 +2430,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
@@ -2382,13 +2464,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)
@@ -2398,6 +2481,7 @@ supported players in addition to this package.")
("libmpeg2" ,libmpeg2)
("libnotify" ,libnotify)
("libogg" ,libogg)
+ ("libopus" ,opus)
("libsamplerate" ,libsamplerate)
("libtheora" ,libtheora)
("libvorbis" ,libvorbis)
@@ -2408,6 +2492,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
@@ -2419,21 +2508,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
@@ -2450,8 +2524,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
@@ -2646,7 +2721,7 @@ many codecs and formats supported by libmediainfo.")
(define-public livemedia-utils
(package
(name "livemedia-utils")
- (version "2017.10.28")
+ (version "2018.10.17")
(source (origin
(method url-fetch)
(uri (string-append
@@ -2654,7 +2729,7 @@ many codecs and formats supported by libmediainfo.")
version ".tar.gz"))
(sha256
(base32
- "0f5kxpayqn3yhabqrd2cqlc74i6x2xr01jfkank1lcilxnfyrsnq"))
+ "1s69ipvdc6ldscp0cr1zpsll8xc3qcagr95nl84x7b1rbg4xjs3w"))
(modules '((guix build utils)))
(snippet '(begin
;; As of glibc 2.26, <xlocale.h> no longer is.
@@ -2716,12 +2791,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
@@ -2752,7 +2829,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
@@ -2804,13 +2882,14 @@ tools for styling them, including a built-in real-time video preview.")
(version "1.12.2")
(source
(origin
- (method url-fetch)
- (uri (string-append "https://github.com/pitivi/gst-transcoder/"
- "archive/" version ".tar.gz"))
- (file-name (string-append name "-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/pitivi/gst-transcoder.git")
+ (commit version)))
+ (file-name (git-file-name name version))
(sha256
(base32
- "0cnwmrsd321s02ff91m3j27ydj7f8wks0jvmp5admlhka6z7zxm9"))))
+ "0nw1zykqc6c8xs3ri55pm00pwyz93z4y4nd880apfiwj7yv5p3az"))))
(build-system meson-build-system)
(inputs
`(("gobject-introspection" ,gobject-introspection)
@@ -2912,25 +2991,27 @@ It counts more than 100 plugins.")
(define-public motion
(package
(name "motion")
- (version "4.1.1")
+ (version "4.2")
(home-page "https://motion-project.github.io/")
(source (origin
- (method url-fetch)
- (uri (string-append
- "https://github.com/Motion-Project/motion/archive/"
- "release-" version ".tar.gz"))
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/Motion-Project/motion.git")
+ (commit (string-append "release-" version))))
(sha256
(base32
- "1qm4i8zrqafl60sv2frhixvkd0wh0r5jfcrj5i6gha7yplsvjx10"))
- (file-name (string-append name "-" version ".tar.gz"))))
+ "0c0q6dl4v561m5y8bp0c0h4p3s52fjgcdnsrrf5ygdi288d3rfxv"))
+ (file-name (git-file-name name version))))
(build-system gnu-build-system)
(native-inputs
`(("autoconf" ,autoconf-wrapper)
("automake" ,automake)
+ ("gettext" ,gettext-minimal)
("pkg-config" ,pkg-config)))
(inputs
`(("libjpeg" ,libjpeg)
("ffmpeg" ,ffmpeg-3.4)
+ ("libmicrohttpd" ,libmicrohttpd)
("sqlite" ,sqlite)))
(arguments
'(#:phases (modify-phases %standard-phases
@@ -2994,14 +3075,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
@@ -3056,12 +3137,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
@@ -3074,3 +3157,110 @@ as surfing, skiing, riding and walking while shooting videos are especially
prone to erratic camera shakes. Vidstab targets these video contents to help
create smoother and stable videos.")
(license license:gpl2+)))
+
+(define-public libopenshot
+ (package
+ (name "libopenshot")
+ (version "0.2.2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/OpenShot/libopenshot")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1x4kv05pdq1pglb6y056aa7llc6iyibyhzg93k7zwj0q08cp5ixd"))
+ (modules '((guix build utils)))
+ (snippet '(begin
+ ;; Allow overriding of the python installation dir
+ (substitute* "src/bindings/python/CMakeLists.txt"
+ (("(SET\\(PYTHON_MODULE_PATH.*)\\)" _ set)
+ (string-append set " CACHE PATH "
+ "\"Python bindings directory\")")))
+ #t))
+ (patches (search-patches "libopenshot-tests-with-system-libs.patch"))))
+ (build-system cmake-build-system)
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("python" ,python)
+ ("swig" ,swig)
+ ("unittest++" ,unittest-cpp)))
+ (propagated-inputs ;all referenced in installed headers
+ `(("cppzmq" ,cppzmq)
+ ("ffmpeg" ,ffmpeg)
+ ("imagemagick" ,imagemagick)
+ ("jsoncpp" ,jsoncpp)
+ ("libopenshot-audio" ,libopenshot-audio)
+ ("qt" ,qt) ;widgets, core, gui, multimedia, and multimediawidgets
+ ("zeromq" ,zeromq)))
+ (arguments
+ `(#:configure-flags
+ (list (string-append "-DPYTHON_MODULE_PATH:PATH=" %output "/lib/python"
+ ,(version-major+minor (package-version python))
+ "/site-packages")
+ "-DUSE_SYSTEM_JSONCPP:BOOL=ON")
+ #:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'set-vars
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "LIBOPENSHOT_AUDIO_DIR"
+ (assoc-ref inputs "libopenshot-audio"))
+ (setenv "ZMQDIR"
+ (assoc-ref inputs "zeromq"))
+ (setenv "UNITTEST_DIR"
+ (string-append (assoc-ref inputs "unittest++")
+ "/include/UnitTest++"))
+ #t)))))
+ (home-page "https://openshot.org")
+ (synopsis "Video-editing, animation, and playback library")
+ (description "OpenShot Library (libopenshot) is a powerful C++ video
+editing library with a multi-threaded and feature rich video editing
+API. It includes bindings for Python, Ruby, and other languages.")
+ (license license:lgpl3+)))
+
+(define-public openshot
+ (package
+ (name "openshot")
+ (version "2.4.3")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/OpenShot/openshot-qt")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "1qdw1mli4y9qhrnllnkaf6ydgw5vfvdb90chs4i679k0x0jyb9a2"))))
+ (build-system python-build-system)
+ (inputs
+ `(("ffmpeg" ,ffmpeg)
+ ("libopenshot" ,libopenshot)
+ ("python" ,python)
+ ("python-pyqt" ,python-pyqt)
+ ("python-pyzmq" ,python-pyzmq)
+ ("python-requests" ,python-requests)
+ ("qtsvg" ,qtsvg)))
+ (arguments
+ `(#:tests? #f ;no tests
+ #:phases (modify-phases %standard-phases
+ (delete 'build) ;install phase does all the work
+ (add-before 'install 'set-tmp-home
+ (lambda _
+ ;; src/classes/info.py "needs" to create several
+ ;; directories in $HOME when loaded during build
+ (setenv "HOME" "/tmp")
+ #t))
+ (add-after 'install 'wrap-program
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (wrap-program (string-append (assoc-ref outputs "out")
+ "/bin/openshot-qt")
+ `("QT_PLUGIN_PATH" prefix
+ ,(list (string-append (assoc-ref inputs "qtsvg")
+ "/lib/qt5/plugins/")))))))))
+ (home-page "https://openshot.org")
+ (synopsis "Video editor")
+ (description "OpenShot takes your videos, photos, and music files and
+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+)))