diff options
Diffstat (limited to 'gnu/packages/video.scm')
-rw-r--r-- | gnu/packages/video.scm | 91 |
1 files changed, 86 insertions, 5 deletions
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm index 7673636b15..6060702022 100644 --- a/gnu/packages/video.scm +++ b/gnu/packages/video.scm @@ -62,6 +62,7 @@ #:use-module (gnu packages ocr) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages popt) #:use-module (gnu packages pulseaudio) #:use-module (gnu packages python) #:use-module (gnu packages qt) @@ -535,6 +536,26 @@ convert and stream audio and video. It includes the libavcodec audio/video codec library.") (license license:gpl2+))) +(define-public ffmpeg-2.8 + (package + (inherit ffmpeg) + (version "2.8.6") + (source (origin + (method url-fetch) + (uri (string-append "https://ffmpeg.org/releases/ffmpeg-" + version ".tar.xz")) + (sha256 + (base32 + "1yh7dvm7zwdlsspdaq524s5qaggma5md9h95qc4kvb5dmyyyvg15")))) + (arguments + (substitute-keyword-arguments (package-arguments ffmpeg) + ((#:configure-flags flags) + `(map (lambda (flag) + (if (string=? flag "--disable-mipsdsp") + "--disable-mipsdspr1" + flag)) + ,flags)))))) + (define-public vlc (package (name "vlc") @@ -546,7 +567,14 @@ audio/video codec library.") version "/vlc-" version ".tar.xz")) (sha256 (base32 - "1jqzrzrpw6932lbkf863xk8cfmn4z2ngbxz7w8ggmh4f6xz9sgal")))) + "1jqzrzrpw6932lbkf863xk8cfmn4z2ngbxz7w8ggmh4f6xz9sgal")) + (modules '((guix build utils))) + (snippet + ;; There are two occurrences where __DATE__ and __TIME__ are + ;; used to capture the build time and show it to the user. + '(substitute* (find-files "." "help\\.c(pp)?$") + (("__DATE__") "\"2016\"") + (("__TIME__") "\"00:00\""))))) (build-system gnu-build-system) (native-inputs `(("git" ,git) ; needed for a test @@ -557,7 +585,7 @@ audio/video codec library.") ("avahi" ,avahi) ("dbus" ,dbus) ("flac" ,flac) - ("ffmpeg" ,ffmpeg) + ("ffmpeg" ,ffmpeg-2.8) ;fails to build against ffmpeg 3.0 ("fontconfig" ,fontconfig) ("freetype" ,freetype) ("gnutls" ,gnutls) @@ -591,7 +619,30 @@ audio/video codec library.") `("--disable-a52" ; FIXME: reenable once available ,(string-append "LDFLAGS=-Wl,-rpath -Wl," (assoc-ref %build-inputs "ffmpeg") - "/lib")))) ; needed for the tests + "/lib")) ;needed for the tests + + #:phases + (modify-phases %standard-phases + (add-after 'install 'regenerate-plugin-cache + (lambda* (#:key outputs #:allow-other-keys) + ;; The 'install-exec-hook' rule in the top-level Makefile.am + ;; generates 'lib/vlc/plugins/plugins.dat', a plugin cache, using + ;; 'vlc-cache-gen'. This file includes the mtime of the plugins + ;; it references. Thus, we first reset the timestamps of all + ;; these files, and then regenerate the cache such that the + ;; mtimes it includes are always zero instead of being dependent + ;; on the build time. + (let* ((out (assoc-ref outputs "out")) + (pkglibdir (string-append out "/lib/vlc")) + (plugindir (string-append pkglibdir "/plugins")) + (cachegen (string-append pkglibdir "/vlc-cache-gen"))) + ;; TODO: Factorize 'reset-timestamps'. + (for-each (lambda (file) + (let ((s (lstat file))) + (unless (eq? (stat:type s) 'symlink) + (utime file 0 0 0 0)))) + (find-files plugindir)) + (zero? (system* cachegen plugindir)))))))) (home-page "https://www.videolan.org/") (synopsis "Audio and video framework") (description "VLC is a cross-platform multimedia player and framework @@ -696,7 +747,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") (define-public mpv (package (name "mpv") - (version "0.16.0") + (version "0.17.0") (source (origin (method url-fetch) (uri (string-append @@ -704,7 +755,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.") ".tar.gz")) (sha256 (base32 - "1fiqxx85s418qynq2fp0v7cpzrz8j285hwmc4fqgn5ny1vg1jdpw")) + "0vms3viwqcwl1mrgmf2yy4c69fvv7xpbkyrl693l6zpwynqd4b30")) (file-name (string-append name "-" version ".tar.gz")))) (build-system waf-build-system) (native-inputs @@ -1382,3 +1433,33 @@ present in modern GPUs.") (description "Vdpauinfo is a tool to query the capabilities of a VDPAU implementation.") (license (license:x11-style "file://COPYING")))) + +(define-public recordmydesktop + (package + (name "recordmydesktop") + (version "0.3.8.1") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge/" name "/" name "/" + version "/recordmydesktop-" version ".tar.gz")) + (sha256 + (base32 + "133kkl5j0r877d41bzj7kj0vf3xm8x80yyx2n8nqxrva304f58ik")))) + (build-system gnu-build-system) + (inputs `(("popt" ,popt) + ("zlib" ,zlib) + ("libx11" ,libx11) + ("libice" ,libice) + ("libsm" ,libsm) + ("libxfixes" ,libxfixes) + ("libxdamage" ,libxdamage) + ("libxext" ,libxext) + ("libvorbis" ,libvorbis) + ("libtheora" ,libtheora))) + (home-page "http://recordmydesktop.sourceforge.net/") + (synopsis "Desktop session video recorder") + (description + "recordMyDesktop is a command-line tool that captures the activity in +your graphical desktop and encodes it as a video. This is a useful tool for +making @dfn{screencasts}.") + (license license:gpl2+))) |