summary refs log tree commit diff
path: root/gnu/packages/video.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/video.scm')
-rw-r--r--gnu/packages/video.scm324
1 files changed, 167 insertions, 157 deletions
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 1dca59d182..97e6f9a072 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -24,7 +24,7 @@
 ;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
 ;;; Copyright © 2018-2022 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2018, 2019, 2020 Pierre Neidhardt <mail@ambrevar.xyz>
-;;; Copyright © 2018, 2019, 2020 Leo Famulari <leo@famulari.name>
+;;; Copyright © 2018, 2019, 2020, 2022 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018 Brendan Tildesley <mail@brendan.scot>
 ;;; Copyright © 2018 Arun Isaac <arunisaac@systemreboot.net>
 ;;; Copyright © 2018 Björn Höfling <bjoern.hoefling@bjoernhoefling.de>
@@ -746,6 +746,7 @@ stream decoding")
                           (ncurses (assoc-ref inputs "ncurses")))
                       (setenv "CONFIG_SHELL" (which "bash"))
                       (invoke "./configure"
+                              "--disable-static"
                               (string-append "--prefix=" out)
                               (string-append "--build=" build)
                               (string-append "--with-ncurses="
@@ -1547,58 +1548,56 @@ These tools require a supported graphics chip, driver, and VA-API back end to
 operate properly.")
     (license license:expat)))
 
-(define-public ffmpeg
+(define-public ffmpeg-5
   (package
     (name "ffmpeg")
-    (version "4.4.1")
+    (version "5.0.1")
     (source (origin
-             (method url-fetch)
-             (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
-                                 version ".tar.xz"))
-             (sha256
-              (base32
-               "00hfwd8ld6jnd26pl9f0wcd2mag4zacxxgqgabsja2xkkagavnza"))))
+              (method url-fetch)
+              (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
+                                  version ".tar.xz"))
+              (sha256
+               (base32
+                "0yq0jcdc4qm5znrzylj3dsicrkk2n3n8bv28vr0a506fb7iglbpg"))))
     (build-system gnu-build-system)
     (inputs
-     `(("dav1d" ,dav1d)
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("frei0r-plugins" ,frei0r-plugins)
-       ("gnutls" ,gnutls)
-       ("opus" ,opus)
-       ("ladspa" ,ladspa)
-       ("lame" ,lame)
-       ("libaom" ,libaom)
-       ("libass" ,libass)
-       ("libbluray" ,libbluray)
-       ("libcaca" ,libcaca)
-       ("libcdio-paranoia" ,libcdio-paranoia)
-       ("libdrm" ,libdrm)
-       ("libtheora" ,libtheora)
-       ("libva" ,libva)
-       ("libvdpau" ,libvdpau)
-       ("libvorbis" ,libvorbis)
-       ("libvpx" ,libvpx)
-       ("libx11" ,libx11)
-       ("libx264" ,libx264)
-       ("mesa" ,mesa)
-       ("openal" ,openal)
-       ("pulseaudio" ,pulseaudio)
-       ;; XXX: rav1e depends on rust, which currently only works on x86_64.
-       ;; See also the related configure flag when changing this.
-       ,@(if (string-prefix? "x86_64" (or (%current-target-system)
-                                          (%current-system)))
-             `(("rav1e" ,rav1e))
-             '())
-       ("sdl" ,sdl2)
-       ("soxr" ,soxr)
-       ("speex" ,speex)
-       ("srt" ,srt)
-       ("twolame" ,twolame)
-       ("vidstab" ,vidstab)
-       ("x265" ,x265)
-       ("xvid" ,xvid)
-       ("zlib" ,zlib)))
+     (append
+      ;; XXX: rav1e depends on rust, which currently only works on x86_64.
+      ;; See also the related configure flag when changing this.
+      (if (target-x86-64?) (list rav1e) '())
+      (list dav1d
+            fontconfig
+            freetype
+            frei0r-plugins
+            gnutls
+            opus
+            ladspa
+            lame
+            libaom
+            libass
+            libbluray
+            libcaca
+            libcdio-paranoia
+            libdrm
+            libtheora
+            libva
+            libvdpau
+            libvorbis
+            libvpx
+            libx11
+            libx264
+            mesa
+            openal
+            pulseaudio
+            sdl2
+            soxr
+            speex
+            srt
+            twolame
+            vidstab
+            x265
+            xvid
+            zlib)))
     (native-inputs
      (list bc
            perl
@@ -1607,55 +1606,56 @@ operate properly.")
            speex
            yasm))
     (arguments
-     `(#:test-target "fate"
-       #:configure-flags
-       ;; possible additional inputs:
-       ;;   --enable-avisynth        enable reading of AviSynth script
-       ;;                            files [no]
-       ;;   --enable-libaacplus      enable AAC+ encoding via libaacplus [no]
-       ;;   --enable-libcelt         enable CELT decoding via libcelt [no]
-       ;;   --enable-libdc1394       enable IIDC-1394 grabbing using libdc1394
-       ;;                            and libraw1394 [no]
-       ;;   --enable-libfaac         enable AAC encoding via libfaac [no]
-       ;;   --enable-libfdk-aac      enable AAC de/encoding via libfdk-aac [no]
-       ;;   --enable-libflite        enable flite (voice synthesis) support via
-       ;;                            libflite [no]
-       ;;   --enable-libgme          enable Game Music Emu via libgme [no]
-       ;;   --enable-libgsm          enable GSM de/encoding via libgsm [no]
-       ;;   --enable-libiec61883     enable iec61883 via libiec61883 [no]
-       ;;   --enable-libilbc         enable iLBC de/encoding via libilbc [no]
-       ;;   --enable-libmodplug      enable ModPlug via libmodplug [no]
-       ;;   --enable-libnut          enable NUT (de)muxing via libnut,
-       ;;                            native (de)muxer exists [no]
-       ;;   --enable-libopencore-amrnb    enable AMR-NB de/encoding via
-       ;;                                 libopencore-amrnb [no]
-       ;;   --enable-libopencore-amrwb    enable AMR-WB decoding via
-       ;;                                 libopencore-amrwb [no]
-       ;;   --enable-libopencv       enable video filtering via libopencv [no]
-       ;;   --enable-libopenjpeg     enable JPEG 2000 de/encoding via
-       ;;                            OpenJPEG [no]
-       ;;   --enable-librtmp         enable RTMP[E] support via librtmp [no]
-       ;;   --enable-libschroedinger enable Dirac de/encoding via
-       ;;                            libschroedinger [no]
-       ;;   --enable-libshine        enable fixed-point MP3 encoding via
-       ;;                            libshine [no]
-       ;;   --enable-libssh          enable SFTP protocol via libssh [no]
-       ;;                            (libssh2 does not work)
-       ;;   --enable-libstagefright-h264  enable H.264 decoding via
-       ;;                                 libstagefright [no]
-       ;;   --enable-libutvideo      enable Ut Video encoding and decoding via
-       ;;                            libutvideo [no]
-       ;;   --enable-libv4l2         enable libv4l2/v4l-utils [no]
-       ;;   --enable-libvo-aacenc    enable AAC encoding via libvo-aacenc [no]
-       ;;   --enable-libvo-amrwbenc  enable AMR-WB encoding via
-       ;;                            libvo-amrwbenc [no]
-       ;;   --enable-libwavpack      enable wavpack encoding via libwavpack [no]
-       ;;   --enable-libxavs         enable AVS encoding via xavs [no]
-       ;;   --enable-libzmq          enable message passing via libzmq [no]
-       ;;   --enable-libzvbi         enable teletext support via libzvbi [no]
-       ;;   --enable-opencl          enable OpenCL code
-       '("--enable-avresample"
-         "--enable-gpl" ; enable optional gpl licensed parts
+     (list
+      #:test-target "fate"
+      #:configure-flags
+      ;; possible additional inputs:
+      ;;   --enable-avisynth        enable reading of AviSynth script
+      ;;                            files [no]
+      ;;   --enable-libaacplus      enable AAC+ encoding via libaacplus [no]
+      ;;   --enable-libcelt         enable CELT decoding via libcelt [no]
+      ;;   --enable-libdc1394       enable IIDC-1394 grabbing using libdc1394
+      ;;                            and libraw1394 [no]
+      ;;   --enable-libfaac         enable AAC encoding via libfaac [no]
+      ;;   --enable-libfdk-aac      enable AAC de/encoding via libfdk-aac [no]
+      ;;   --enable-libflite        enable flite (voice synthesis) support via
+      ;;                            libflite [no]
+      ;;   --enable-libgme          enable Game Music Emu via libgme [no]
+      ;;   --enable-libgsm          enable GSM de/encoding via libgsm [no]
+      ;;   --enable-libiec61883     enable iec61883 via libiec61883 [no]
+      ;;   --enable-libilbc         enable iLBC de/encoding via libilbc [no]
+      ;;   --enable-libmodplug      enable ModPlug via libmodplug [no]
+      ;;   --enable-libnut          enable NUT (de)muxing via libnut,
+      ;;                            native (de)muxer exists [no]
+      ;;   --enable-libopencore-amrnb    enable AMR-NB de/encoding via
+      ;;                                 libopencore-amrnb [no]
+      ;;   --enable-libopencore-amrwb    enable AMR-WB decoding via
+      ;;                                 libopencore-amrwb [no]
+      ;;   --enable-libopencv       enable video filtering via libopencv [no]
+      ;;   --enable-libopenjpeg     enable JPEG 2000 de/encoding via
+      ;;                            OpenJPEG [no]
+      ;;   --enable-librtmp         enable RTMP[E] support via librtmp [no]
+      ;;   --enable-libschroedinger enable Dirac de/encoding via
+      ;;                            libschroedinger [no]
+      ;;   --enable-libshine        enable fixed-point MP3 encoding via
+      ;;                            libshine [no]
+      ;;   --enable-libssh          enable SFTP protocol via libssh [no]
+      ;;                            (libssh2 does not work)
+      ;;   --enable-libstagefright-h264  enable H.264 decoding via
+      ;;                                 libstagefright [no]
+      ;;   --enable-libutvideo      enable Ut Video encoding and decoding via
+      ;;                            libutvideo [no]
+      ;;   --enable-libv4l2         enable libv4l2/v4l-utils [no]
+      ;;   --enable-libvo-aacenc    enable AAC encoding via libvo-aacenc [no]
+      ;;   --enable-libvo-amrwbenc  enable AMR-WB encoding via
+      ;;                            libvo-amrwbenc [no]
+      ;;   --enable-libwavpack      enable wavpack encoding via libwavpack [no]
+      ;;   --enable-libxavs         enable AVS encoding via xavs [no]
+      ;;   --enable-libzmq          enable message passing via libzmq [no]
+      ;;   --enable-libzvbi         enable teletext support via libzvbi [no]
+      ;;   --enable-opencl          enable OpenCL code
+      #~(list
+         "--enable-gpl"                 ;enable optional gpl licensed parts
          "--enable-shared"
          "--enable-frei0r"
          "--enable-fontconfig"
@@ -1671,10 +1671,9 @@ operate properly.")
          "--enable-libmp3lame"
          "--enable-libopus"
          "--enable-libpulse"
-         ,@(if (string-prefix? "x86_64" (or (%current-target-system)
-                                            (%current-system)))
-               '("--enable-librav1e")
-               '())
+         #$@(if (target-x86-64?)
+                '("--enable-librav1e")
+                '())
          "--enable-libsoxr"
          "--enable-libspeex"
          "--enable-libsrt"
@@ -1705,35 +1704,32 @@ operate properly.")
          "--disable-mipsdsp"
          "--disable-mipsdspr2"
          "--disable-mipsfpu")
-       #:phases
-       (modify-phases %standard-phases
-         (replace
-          'configure
-          ;; configure does not work followed by "SHELL=..." and
-          ;; "CONFIG_SHELL=..."; set environment variables instead
-          (lambda* (#:key outputs configure-flags #:allow-other-keys)
-            (let ((out (assoc-ref outputs "out")))
-              (substitute* "configure"
-                (("#! /bin/sh") (string-append "#!" (which "sh"))))
-              (setenv "SHELL" (which "bash"))
-              (setenv "CONFIG_SHELL" (which "bash"))
-              (apply invoke
-                     "./configure"
-                     (string-append "--prefix=" out)
-                     ;; Add $libdir to the RUNPATH of all the binaries.
-                     (string-append "--extra-ldflags=-Wl,-rpath="
-                                    out "/lib")
-                     configure-flags))))
-         (add-before
-          'check 'set-ld-library-path
-          (lambda _
-            ;; Allow $(top_builddir)/ffmpeg to find its dependencies when
-            ;; running tests.
-            (let* ((dso  (find-files "." "\\.so$"))
-                   (path (string-join (map dirname dso) ":")))
-              (format #t "setting LD_LIBRARY_PATH to ~s~%" path)
-              (setenv "LD_LIBRARY_PATH" path)
-              #t))))))
+      #:phases
+      #~(modify-phases %standard-phases
+          (replace 'configure
+            ;; configure does not work followed by "SHELL=..." and
+            ;; "CONFIG_SHELL=..."; set environment variables instead
+            (lambda* (#:key outputs configure-flags #:allow-other-keys)
+              (let ((out (assoc-ref outputs "out")))
+                (substitute* "configure"
+                  (("#! /bin/sh") (string-append "#!" (which "sh"))))
+                (setenv "SHELL" (which "bash"))
+                (setenv "CONFIG_SHELL" (which "bash"))
+                (apply invoke
+                       "./configure"
+                       (string-append "--prefix=" out)
+                       ;; Add $libdir to the RUNPATH of all the binaries.
+                       (string-append "--extra-ldflags=-Wl,-rpath="
+                                      out "/lib")
+                       configure-flags))))
+          (add-before 'check 'set-ld-library-path
+            (lambda _
+              ;; Allow $(top_builddir)/ffmpeg to find its dependencies when
+              ;; running tests.
+              (let* ((dso  (find-files "." "\\.so$"))
+                     (path (string-join (map dirname dso) ":")))
+                (format #t "setting LD_LIBRARY_PATH to ~s~%" path)
+                (setenv "LD_LIBRARY_PATH" path)))))))
     (home-page "https://www.ffmpeg.org/")
     (synopsis "Audio and video framework")
     (description "FFmpeg is a complete, cross-platform solution to record,
@@ -1741,9 +1737,25 @@ convert and stream audio and video.  It includes the libavcodec
 audio/video codec library.")
     (license license:gpl2+)))
 
+(define-public ffmpeg-4
+  (package
+    (inherit ffmpeg-5)
+    (version "4.4.2")
+    (source (origin
+             (method url-fetch)
+             (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
+                                 version ".tar.xz"))
+             (sha256
+              (base32
+               "14xadxm1yaamp216nq09xwasxg5g133v86dbb33mdg5di1zrlhdg"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments ffmpeg-5)
+       ((#:configure-flags flags ''())
+        #~(cons "--enable-avresample" #$flags))))))
+
 (define-public ffmpeg-3.4
   (package
-    (inherit ffmpeg)
+    (inherit ffmpeg-4)
     (version "3.4.9")
     (source (origin
              (method url-fetch)
@@ -1753,23 +1765,22 @@ audio/video codec library.")
               (base32
                "0d8nkd9c85rkjlgsq1hidmykkrksi883ygqzhhj6wh4nqflv8vs9"))))
     (arguments
-     (substitute-keyword-arguments (package-arguments ffmpeg)
+     (substitute-keyword-arguments (package-arguments ffmpeg-4)
        ((#:modules modules %gnu-build-system-modules)
         `((srfi srfi-1)
           ,@modules))
        ((#:configure-flags flags)
-        `(fold delete
-               ,flags
-               '("--enable-libdav1d"
-                 "--enable-libaom"
-                 "--enable-librav1e"
-                 "--enable-libsrt")))))
-    (inputs (modify-inputs (package-inputs ffmpeg)
+        #~(fold delete #$flags
+                '("--enable-libdav1d"
+                  "--enable-libaom"
+                  "--enable-librav1e"
+                  "--enable-libsrt")))))
+    (inputs (modify-inputs (package-inputs ffmpeg-4)
               (delete "dav1d" "libaom" "rav1e" "srt")))))
 
 (define-public ffmpeg-2.8
   (package
-    (inherit ffmpeg)
+    (inherit ffmpeg-3.4)
     (version "2.8.18")
     (source (origin
               (method url-fetch)
@@ -1811,15 +1822,14 @@ audio/video codec library.")
              (let* ((dso  (find-files "." "\\.so$"))
                     (path (string-join (map dirname dso) ":")))
                (format #t "setting LD_LIBRARY_PATH to ~s~%" path)
-               (setenv "LD_LIBRARY_PATH" path)
-               #t))))))
-    (inputs (modify-inputs (package-inputs ffmpeg)
-              (delete "dav1d" "libaom" "rav1e" "srt")))))
+               (setenv "LD_LIBRARY_PATH" path)))))))))
+
+(define-public ffmpeg ffmpeg-4)
 
 (define-public ffmpeg-for-stepmania
   (hidden-package
    (package
-     (inherit ffmpeg)
+     (inherit ffmpeg-4)
      (version "2.1.3")
      (source
       (origin
@@ -1831,17 +1841,17 @@ audio/video codec library.")
          (base32 "1by8rmbva8mfrivdbbkr2gx4kga89zqygkd4cfjl76nr8mdcdamb"))
         (file-name (git-file-name "ffmpeg" version))))
      (arguments
-      (substitute-keyword-arguments (package-arguments ffmpeg)
+      (substitute-keyword-arguments (package-arguments ffmpeg-4)
         ((#:configure-flags flags)
-         '(list "--disable-programs"
-                "--disable-doc"
-                "--disable-debug"
-                "--disable-avdevice"
-                "--disable-swresample"
-                "--disable-postproc"
-                "--disable-avfilter"
-                "--disable-shared"
-                "--enable-static"))))
+         #~(list "--disable-programs"
+                 "--disable-doc"
+                 "--disable-debug"
+                 "--disable-avdevice"
+                 "--disable-swresample"
+                 "--disable-postproc"
+                 "--disable-avfilter"
+                 "--disable-shared"
+                 "--enable-static"))))
      (inputs '()))))
 
 (define-public ffmpegthumbnailer
@@ -1875,7 +1885,7 @@ videoformats depend on the configuration flags of ffmpeg.")
 (define-public vlc
   (package
     (name "vlc")
-    (version "3.0.16")
+    (version "3.0.17.3")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -1884,7 +1894,7 @@ videoformats depend on the configuration flags of ffmpeg.")
                     "/vlc-" version ".tar.xz"))
               (sha256
                (base32
-                "1xhhjhwihkz74dag25r5fscvw1v2byy4c8qxaxsw29gncky3bbpz"))))
+                "0510vqf35f0v9c498yki5441aig3fdqq3nv4vsb1vlvki7pr0zkg"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("flex" ,flex)