summary refs log tree commit diff
path: root/gnu/packages/video.scm
diff options
context:
space:
mode:
authorMarius Bakke <marius@gnu.org>2022-07-13 23:34:58 +0200
committerMarius Bakke <marius@gnu.org>2022-07-13 23:34:58 +0200
commit4442a5db773f79e05c37e014c63b4298e7de666b (patch)
tree880a6fdce7b288eaa506828b9b500191ca60ce24 /gnu/packages/video.scm
parent5b48591176a08bddfd0147bd854785fb4f6a62ba (diff)
parentb160795a0b65d67ff5d64447f1b97c2f009517a0 (diff)
downloadguix-4442a5db773f79e05c37e014c63b4298e7de666b.tar.gz
Merge branch 'master' into staging
Diffstat (limited to 'gnu/packages/video.scm')
-rw-r--r--gnu/packages/video.scm351
1 files changed, 176 insertions, 175 deletions
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index a82b1b8889..1fadadaee6 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -1199,22 +1199,19 @@ on the Invidious instances only as a fallback method.")
 (define-public x265
   (package
     (name "x265")
-    (version "3.4")
+    (version "3.5")
     (outputs '("out" "static"))
     (source
       (origin
         (method url-fetch)
-        (uri (list (string-append "https://bitbucket.org/multicoreware/x265"
-                                  "/downloads/x265_" version ".tar.gz")
-                   (string-append "https://download.videolan.org/videolan/x265/"
-                                  "x265_" version ".tar.gz")))
+        (uri (string-append "https://bitbucket.org/multicoreware/x265_git"
+                            "/downloads/x265_" version ".tar.gz"))
         (sha256
-         (base32 "0wl62hfsdqpf3r3z3s6l9bz7pdb1rcik5ll00b3yaadplqipy162"))
+         (base32 "1s6afxj61jdwfjnn70dwiql34fbqsvn6zv10785vmjyar8sk62p7"))
         (patches (search-patches "x265-arm-flags.patch"))
         (modules '((guix build utils)))
         (snippet '(begin
-                    (delete-file-recursively "source/compat/getopt")
-                    #t))))
+                    (delete-file-recursively "source/compat/getopt")))))
     (build-system cmake-build-system)
     (native-inputs
      ;; XXX: ASM optimization fails on i686-linux, see <https://bugs.gnu.org/41768>.
@@ -1222,13 +1219,10 @@ on the Invidious instances only as a fallback method.")
          '()
          `(("nasm" ,nasm))))
     (arguments
-     `(#:tests? #f ; tests are skipped if cpu-optimized code isn't built
+     `(#:tests? #f ; tests are skipped if ENABLE_ASSEMBLY is TRUE.
        #:configure-flags
          ;; Ensure position independent code for everyone.
          (list "-DENABLE_PIC=TRUE"
-               ,@(if (target-arm?)
-                     '("-DENABLE_ASSEMBLY=OFF")
-                     '())
                (string-append "-DCMAKE_INSTALL_PREFIX="
                               (assoc-ref %outputs "out")))
        #:phases
@@ -1237,13 +1231,21 @@ on the Invidious instances only as a fallback method.")
            (lambda _
              (delete-file-recursively "build")
              (chdir "source")
-             #t))
+             ;; We're not building from a git or mercurial repository,
+             ;; so help cmake find the version number.
+             (substitute* "cmake/Version.cmake"
+               (("if\\(X265_TAG_DISTANCE STREQUAL \"0\"\\)")
+                (string-append "if(TRUE)\n"
+                               "    set(X265_LATEST_TAG \"" ,version "\")\n")))))
          (add-before 'configure 'build-12-bit
-           (lambda* (#:key (configure-flags '()) #:allow-other-keys)
+           (lambda* (#:key (configure-flags '()) #:allow-other-keys #:rest args)
              (mkdir "../build-12bit")
              (with-directory-excursion "../build-12bit"
                (apply invoke
                  "cmake" "../source"
+                 ,@(if (target-aarch64?)
+                     '("-DENABLE_ASSEMBLY=OFF")
+                     '())
                  "-DHIGH_BIT_DEPTH=ON"
                  "-DEXPORT_C_API=OFF"
                  "-DENABLE_CLI=OFF"
@@ -1251,32 +1253,35 @@ on the Invidious instances only as a fallback method.")
                  configure-flags)
                (substitute* (cons "cmake_install.cmake"
                                   (append
-                                    (find-files "CMakeFiles/x265-shared.dir" ".")
-                                    (find-files "CMakeFiles/x265-static.dir" ".")))
+                                    (find-files "CMakeFiles/x265-shared.dir")
+                                    (find-files "CMakeFiles/x265-static.dir")))
                  (("libx265") "libx265_main12"))
-               (invoke "make"))))
+               ((assoc-ref %standard-phases 'build)))))
          (add-before 'configure 'build-10-bit
-           (lambda* (#:key (configure-flags '()) #:allow-other-keys)
+           (lambda* (#:key (configure-flags '()) #:allow-other-keys #:rest args)
              (mkdir "../build-10bit")
              (with-directory-excursion "../build-10bit"
                (apply invoke
                  "cmake" "../source"
+                 ,@(if (target-aarch64?)
+                     '("-DENABLE_ASSEMBLY=OFF")
+                     '())
                  "-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" ".")))
+                                    (find-files "CMakeFiles/x265-shared.dir")
+                                    (find-files "CMakeFiles/x265-static.dir")))
                  (("libx265") "libx265_main10"))
-               (invoke "make"))))
+               ((assoc-ref %standard-phases 'build)))))
          (add-after 'install 'install-more-libs
-           (lambda _
+           (lambda args
              (with-directory-excursion "../build-12bit"
-               (invoke "make" "install"))
+               ((assoc-ref %standard-phases 'install)))
              (with-directory-excursion "../build-10bit"
-               (invoke "make" "install"))))
+               ((assoc-ref %standard-phases 'install)))))
          (add-before 'strip 'move-static-libs
            (lambda* (#:key outputs #:allow-other-keys)
              (let ((out (assoc-ref outputs "out"))
@@ -1288,8 +1293,7 @@ on the Invidious instances only as a fallback method.")
                    (lambda (file)
                      (rename-file file
                                   (string-append static "/lib/" file)))
-                   (find-files "." "\\.a$"))))
-             #t)))))
+                   (find-files "." "\\.a$")))))))))
     (home-page "http://x265.org/")
     (synopsis "Library for encoding h.265/HEVC video streams")
     (description "x265 is a H.265 / HEVC video encoder application library,
@@ -1754,14 +1758,14 @@ audio/video codec library.")
 (define-public ffmpeg-3.4
   (package
     (inherit ffmpeg-4)
-    (version "3.4.9")
+    (version "3.4.11")
     (source (origin
              (method url-fetch)
              (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
                                  version ".tar.xz"))
              (sha256
               (base32
-               "0d8nkd9c85rkjlgsq1hidmykkrksi883ygqzhhj6wh4nqflv8vs9"))))
+               "1rijdvcx8xjqwh084qchwz91vcj8wsvb4diax0g8miywpir00ccw"))))
     (arguments
      (substitute-keyword-arguments (package-arguments ffmpeg-4)
        ((#:modules modules %gnu-build-system-modules)
@@ -1779,14 +1783,14 @@ audio/video codec library.")
 (define-public ffmpeg-2.8
   (package
     (inherit ffmpeg-3.4)
-    (version "2.8.18")
+    (version "2.8.20")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://ffmpeg.org/releases/ffmpeg-"
                                   version ".tar.xz"))
               (sha256
                (base32
-                "0k6dq7b8rpjvdl5ncf1135qwc36x0x9va8v83aggvbfhy5d97vwn"))))
+                "1ivnfqmfnp3zmn1q2dxy4p85427y3r6d3jbnl5kprr7lqckf6rl5"))))
     (arguments
      `(#:tests? #f               ; XXX: Enable them later, if required
        #:configure-flags
@@ -1895,87 +1899,84 @@ videoformats depend on the configuration flags of ffmpeg.")
                 "0cs1vnv91mg7p6253v6wms3zlz91xzphpwaw14dmrd2gibc64nlc"))))
     (build-system gnu-build-system)
     (native-inputs
-     `(("flex" ,flex)
-       ("bison" ,bison)
-       ("gettext" ,gettext-minimal)
-       ("pkg-config" ,pkg-config)))
+     (list flex bison gettext-minimal pkg-config))
     ;; FIXME: Add optional inputs once available.
     (inputs
-     `(("alsa-lib" ,alsa-lib)
-       ("avahi" ,avahi)
-       ("dav1d" ,dav1d)
-       ("dbus" ,dbus)
-       ("eudev" ,eudev)
-       ("flac" ,flac)
-       ("ffmpeg" ,ffmpeg)
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("fribidi" ,fribidi)
-       ("gnutls" ,gnutls)
-       ("liba52" ,liba52)
-       ("libarchive" ,libarchive)
-       ("libass" ,libass)
-       ("libavc1394" ,libavc1394)
-       ("libbluray" ,libbluray)
-       ("libcaca" ,libcaca)
-       ("libcddb" ,libcddb)
-       ("libdca" ,libdca)
-       ("libdvbpsi" ,libdvbpsi)
-       ("libdvdnav" ,libdvdnav)
-       ("libdvdread" ,libdvdread)
-       ("libebml" ,libebml)
-       ("libgcrypt" ,libgcrypt)
-       ("libidn" ,libidn)
-       ("libkate" ,libkate)
-       ("libmad" ,libmad)
-       ("libmatroska" ,libmatroska)
-       ("libmicrodns" ,libmicrodns)
-       ("libmodplug" ,libmodplug)
-       ("libmpeg2" ,libmpeg2)
-       ("libogg" ,libogg)
-       ("libpng" ,libpng)
-       ("libraw1394" ,libraw1394)
-       ("librsvg" ,(librsvg-for-system))
-       ("libsamplerate" ,libsamplerate)
-       ("libsecret" ,libsecret)
-       ("libssh2" ,libssh2)
-       ("libupnp" ,libupnp)
-       ("libva" ,libva)
-       ("libvdpau" ,libvdpau)
-       ("libvorbis" ,libvorbis)
-       ("libvpx" ,libvpx)
-       ("libtheora" ,libtheora)
-       ("libx264" ,libx264)
-       ("libxext" ,libxext)
-       ("libxi" ,libxi)
-       ("libxinerama" ,libxinerama)
-       ("libxml2" ,libxml2)
-       ("libxpm" ,libxpm)
-       ("livemedia-utils" ,livemedia-utils)
-       ("lua" ,lua-5.2)
-       ("mesa" ,mesa)
-       ("opus" ,opus)
-       ("perl" ,perl)
-       ("pulseaudio" ,pulseaudio)
-       ("protobuf" ,protobuf)
-       ("python" ,python-wrapper)
-       ("qtbase" ,qtbase-5)
-       ("qtsvg" ,qtsvg)
-       ("qtx11extras" ,qtx11extras)
-       ("samba" ,samba)
-       ("sdl" ,sdl)
-       ("sdl-image" ,sdl-image)
-       ("speex" ,speex)
-       ("speexdsp" ,speexdsp)
-       ;; VLC is not yet compatible with SRT > 1.4.1.
-       ("srt" ,srt-1.4.1)
-       ("taglib" ,taglib)
-       ("twolame" ,twolame)
-       ("unzip" ,unzip)
-       ("wayland" ,wayland)
-       ("wayland-protocols" ,wayland-protocols)
-       ("x265" ,x265)
-       ("xcb-util-keysyms" ,xcb-util-keysyms)))
+     (list alsa-lib
+           avahi
+           bash-minimal
+           dav1d
+           dbus
+           eudev
+           ffmpeg
+           flac
+           fontconfig
+           freetype
+           fribidi
+           gnutls
+           liba52
+           libarchive
+           libass
+           libavc1394
+           libbluray
+           libcaca
+           libcddb
+           libdca
+           libdvbpsi
+           libdvdnav
+           libdvdread
+           libebml
+           libgcrypt
+           libidn
+           libkate
+           libmad
+           libmatroska
+           libmicrodns
+           libmodplug
+           libmpeg2
+           libogg
+           libpng
+           libraw1394
+           (librsvg-for-system)
+           libsamplerate
+           libsecret
+           libssh2
+           libtheora
+           libupnp
+           libva
+           libvdpau
+           libvorbis
+           libvpx
+           libx264
+           libxext
+           libxi
+           libxinerama
+           libxml2
+           libxpm
+           livemedia-utils
+           lua-5.2
+           mesa
+           opus
+           perl
+           protobuf
+           pulseaudio
+           python-wrapper
+           qtbase-5
+           qtsvg
+           qtx11extras
+           samba
+           sdl
+           sdl-image
+           speex
+           speexdsp
+           srt
+           taglib
+           twolame
+           unzip
+           wayland
+           wayland-protocols
+           x265
+           xcb-util-keysyms))
     (arguments
      `(#:configure-flags
        `("BUILDCC=gcc"
@@ -2464,7 +2465,7 @@ YouTube.com and many more sites.")
 (define-public yt-dlp
   (package/inherit youtube-dl
     (name "yt-dlp")
-    (version "2022.05.18")
+    (version "2022.06.22.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/yt-dlp/yt-dlp/"
@@ -2472,7 +2473,7 @@ YouTube.com and many more sites.")
                                   version "/yt-dlp.tar.gz"))
               (sha256
                (base32
-                "0wiiwqj8m4z6lladmrsp9354ddwlhn2gf0b39j271001g6fyi82r"))
+                "1nr6g3dhvjc10jzhyvgjrrxqhsgi3hiw8bswp8bi6bscimd9vhps"))
               (snippet
                '(begin
                   ;; Delete the pre-generated files, except for the man page
@@ -4316,73 +4317,73 @@ tools for styling them, including a built-in real-time video preview.")
    ; src/MatroskaParser.(c|h) is under bsd-3 with permission from the author
 
 (define-public pitivi
-  ;; Pitivi switched to a non-semantic versioning scheme close before 1.0
-  (let ((latest-semver "0.999.0")
-        (%version "2021.05.0"))
-   (package
-     (name "pitivi")
-     (version (string-append latest-semver "-" %version))
-     (source
-      (origin
-        (method git-fetch)
-        (uri (git-reference
-              (url "https://gitlab.gnome.org/GNOME/pitivi.git")
-              (commit %version)))
-        (file-name (git-file-name name version))
-        (patches (search-patches "pitivi-fix-build-with-meson-0.60.patch"))
-        (sha256
-         (base32 "08x2fs2bak1fbmkvjijgx1dsawispv91bpv5j5gkqbv5dfgf7wah"))))
-     (build-system meson-build-system)
-     (inputs
-      (list glib
-            gst-editing-services
-            gstreamer
-            gst-plugins-base
-            gst-plugins-good
-            (gst-plugins/selection gst-plugins-bad #:plugins
-                                   '("debugutils" "transcode")
-                                   #:configure-flags
-                                   '("-Dintrospection=enabled"))
-            gst-libav
-            gsound
-            gtk+
-            librsvg
-            libpeas
-            libnotify
-            pango
-            python
-            python-gst
-            python-numpy
-            python-matplotlib
-            python-pycairo
-            python-pygobject))
+  (package
+    (name "pitivi")
+    (version "2022.06.0")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://gitlab.gnome.org/GNOME/pitivi.git")
+             (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1wgfi8srblqzd2y6528cyvn56rbdxpwlq0wmwqhabshdk28zyx8d"))))
+    (build-system meson-build-system)
     (native-inputs
-     `(("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin")
-       ("itstool" ,itstool)
-       ("pkg-config" ,pkg-config)))
-     (arguments
-      `(#:glib-or-gtk? #t
-        #:phases
-        (modify-phases %standard-phases
-          (add-after 'glib-or-gtk-wrap 'wrap-other-dependencies
-            (lambda* (#:key outputs #:allow-other-keys)
-              (let ((prog (string-append (assoc-ref outputs "out")
-                                         "/bin/pitivi")))
-                (wrap-program prog
-                  `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
-                  `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
-                  ;; We've only added inputs for what Pitivi deems either
-                  ;; necessary or optional.  Let the user's packages take
-                  ;; precedence in case they have e.g. the full gst-plugins-bad.
-                  `("GST_PLUGIN_SYSTEM_PATH" suffix
-                    (,(getenv "GST_PLUGIN_SYSTEM_PATH"))))))))))
-     (home-page "http://www.pitivi.org")
-     (synopsis "Video editor based on GStreamer Editing Services")
-     (description "Pitivi is a video editor built upon the GStreamer Editing
+     (list gettext-minimal
+           `(,glib "bin")
+           itstool
+           pkg-config))
+    (inputs
+     (list bash-minimal
+           glib
+           gst-editing-services
+           gstreamer
+           gst-plugins-base
+           gst-plugins-good
+           ;; TODO: Add the 'cvtracker' plugin after our gstreamer packages
+           ;; has been upgraded to version 1.20.
+           (gst-plugins/selection gst-plugins-bad #:plugins
+                                  '("debugutils" "transcode")
+                                  #:configure-flags
+                                  '("-Dintrospection=enabled"))
+           gst-libav
+           gsound
+           gtk+
+           libpeas
+           libnotify
+           pango
+           python
+           python-gst
+           python-librosa
+           python-numpy
+           python-matplotlib
+           python-pycairo
+           python-pygobject))
+    ;; Propagate librsvg so that is is registered in GDK_PIXBUF_MODULE_FILE,
+    ;; otherwise pitivi fails to launch.
+    (propagated-inputs (list librsvg))
+    (arguments
+     `(#:glib-or-gtk? #t
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'glib-or-gtk-wrap 'wrap-other-dependencies
+           (lambda* (#:key outputs #:allow-other-keys)
+             (wrap-program (search-input-file outputs "bin/pitivi")
+               `("GUIX_PYTHONPATH" = (,(getenv "GUIX_PYTHONPATH")))
+               `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH")))
+               ;; We've only added inputs for what Pitivi deems either
+               ;; necessary or optional.  Let the user's packages take
+               ;; precedence in case they have e.g. the full gst-plugins-bad.
+               `("GST_PLUGIN_SYSTEM_PATH" suffix
+                 (,(getenv "GST_PLUGIN_SYSTEM_PATH")))))))))
+    (home-page "http://www.pitivi.org")
+    (synopsis "Video editor based on GStreamer Editing Services")
+    (description "Pitivi is a video editor built upon the GStreamer Editing
 Services.  It aims to be an intuitive and flexible application that can appeal
 to newbies and professionals alike.")
-     (license license:lgpl2.1+))))
+    (license license:lgpl2.1+)))
 
 (define-public gavl
   (package