gnu: mplayer: Adjust inputs.
[jackhill/guix/guix.git] / gnu / packages / video.scm
index fd1d98d..cd367c2 100644 (file)
@@ -204,6 +204,32 @@ In fact, there is no graphical output possible.  AA-lib replaces those
 old-fashioned output methods with powerful ascii-art renderer.")
     (license license:lgpl2.0+)))
 
+(define-public celluloid
+  (package
+    (name "celluloid")
+    (version "0.17")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/celluloid-player/celluloid/releases"
+                           "/download/v" version "/celluloid-" version ".tar.xz"))
+       (sha256
+        (base32 "0a3bhvs38gxjplygb0q9cx5djl5y0bmnxgaq0sd65j610a60f5h0"))))
+    (build-system glib-or-gtk-build-system)
+    (native-inputs
+     `(("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("gtk+" ,gtk+)
+       ("libepoxy" ,libepoxy)
+       ("mpv" ,mpv)))
+    (home-page "https://github.com/celluloid-player/celluloid")
+    (synopsis "GTK+ frontend for the mpv media player")
+    (description "Celluloid is a simple GTK+ frontend for the mpv media player.
+It interacts with mpv via the client API exported by libmpv, allowing access to
+mpv's powerful playback capabilities.")
+    (license license:gpl3+)))
+
 (define-public liba52
   (package
     (name "liba52")
@@ -289,6 +315,8 @@ a shared library and encoder and decoder command-line executables.")
               ;; because the SourceForge project is misconfigured.
               (uri (string-append "http://libmpeg2.sourceforge.net/files/"
                                   name "-" version ".tar.gz"))
+              (patches (search-patches "libmpeg2-arm-private-symbols.patch"
+                                       "libmpeg2-global-symbol-test.patch"))
               (sha256
                (base32
                 "1m3i322n2fwgrvbs1yck7g5md1dbg22bhq5xdqmjpz5m7j4jxqny"))))
@@ -480,7 +508,7 @@ H.264 (MPEG-4 AVC) video streams.")
 (define-public x265
   (package
     (name "x265")
-    (version "3.1.2")
+    (version "3.2.1")
     (outputs '("out" "static"))
     (source
       (origin
@@ -490,8 +518,7 @@ H.264 (MPEG-4 AVC) video streams.")
                    (string-append "https://download.videolan.org/videolan/x265/"
                                   "x265_" version ".tar.gz")))
         (sha256
-         (base32
-          "1ajr59gjj47gnczfb2qhmzclj746pdiq9a1d81b0mq22k8f5yy3g"))
+         (base32 "1k5vijsy6cgcghw69f5275xfmbjjx7js0nlbgxbd6krnjb7sv6zv"))
         (patches (search-patches "x265-arm-flags.patch"))
         (modules '((guix build utils)))
         (snippet '(begin
@@ -660,8 +687,8 @@ streams.")
     (source (origin
               (method url-fetch)
               (uri (string-append
-                    "mirror://sourceforge/" name "/" name "/"
-                    version "/" name "-" version ".tar.gz"))
+                    "mirror://sourceforge/libdv/libdv/"
+                    version "/libdv-" version ".tar.gz"))
               (sha256
                (base32
                 "1fl96f2xh2slkv1i1ix7kqk576a0ak1d33cylm0mbhm96d0761d3"))))
@@ -1061,20 +1088,26 @@ videoformats depend on the configuration flags of ffmpeg.")
     (name "vlc")
     (version "3.0.8")
     (source (origin
-             (method url-fetch)
-             (uri (string-append
-                   "https://download.videolan.org/pub/videolan/vlc/"
-                   (car (string-split version #\-))
-                   "/vlc-" version ".tar.xz"))
-             (sha256
-              (base32
-               "1xmxjpyzdhabchwncz6lvx3kzvl7fz9c42bkv3nbj68albs9w570"))))
+              (method url-fetch)
+              (uri (string-append
+                    "https://download.videolan.org/pub/videolan/vlc/"
+                    (car (string-split version #\-))
+                    "/vlc-" version ".tar.xz"))
+              (sha256
+               (base32
+                "1xmxjpyzdhabchwncz6lvx3kzvl7fz9c42bkv3nbj68albs9w570"))
+              (patches
+               (search-patches
+                ;; TODO: The test "libvlc_slaves" fails.  Applied upstream as
+                ;; <https://git.videolan.org/?p=vlc.git;a=commit;h=4186c94104ee528abd6860611b49515f3e6ec644>.
+                ;; Try removing it in 3.0.9.
+                "vlc-fix-test_libvlc_slaves.patch"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("flex" ,flex)
        ("bison" ,bison)
        ("gettext" ,gettext-minimal)
-       ("git" ,git) ; needed for a test
+       ("git" ,git)                     ; needed for a test
        ("pkg-config" ,pkg-config)))
     ;; FIXME: Add optional inputs once available.
     (inputs
@@ -1152,11 +1185,10 @@ videoformats depend on the configuration flags of ffmpeg.")
        ("xcb-util-keysyms" ,xcb-util-keysyms)))
     (arguments
      `(#:configure-flags
-       `("CXXFLAGS=-std=gnu++11"
-         "BUILDCC=gcc"
+       `("BUILDCC=gcc"
          ,(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
@@ -1207,11 +1239,11 @@ videoformats depend on the configuration flags of ffmpeg.")
                (invoke cachegen plugindir))))
          (add-after 'install 'wrap-executable
            (lambda* (#:key outputs #:allow-other-keys)
-            (let ((out (assoc-ref outputs "out"))
-                  (plugin-path (getenv "QT_PLUGIN_PATH")))
-              (wrap-program (string-append out "/bin/vlc")
-                `("QT_PLUGIN_PATH" ":" prefix (,plugin-path))))
-            #t)))))
+             (let ((out (assoc-ref outputs "out"))
+                   (plugin-path (getenv "QT_PLUGIN_PATH")))
+               (wrap-program (string-append out "/bin/vlc")
+                 `("QT_PLUGIN_PATH" ":" prefix (,plugin-path))))
+             #t)))))
     (home-page "https://www.videolan.org/")
     (synopsis "Audio and video framework")
     (description "VLC is a cross-platform multimedia player and framework
@@ -1234,7 +1266,8 @@ streaming protocols.")
     (build-system gnu-build-system)
     ;; FIXME: Add additional inputs once available.
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)
+       ("yasm" ,yasm)))
     (inputs
      `(("alsa-lib" ,alsa-lib)
        ("cdparanoia" ,cdparanoia)
@@ -1265,7 +1298,6 @@ streaming protocols.")
        ("python" ,python-wrapper)
        ("sdl" ,sdl)
        ("speex" ,speex)
-       ("yasm" ,yasm)
        ("zlib" ,zlib)))
     (arguments
      `(#:tests? #f ; no test target
@@ -1315,7 +1347,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
 (define-public mpv
   (package
     (name "mpv")
-    (version "0.29.1")
+    (version "0.30.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1324,7 +1356,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "138921kx8g6qprim558xin09xximjhsj9ss8b71ifg2m6kclym8m"))))
+                "17mxjgcfljlv6h0ik3332xsqbs0ybvk6dkwflyl0cjh15vl1iv6f"))))
     (build-system waf-build-system)
     (native-inputs
      `(("perl" ,perl) ; for zsh completion file
@@ -1390,9 +1422,7 @@ SVCD, DVD, 3ivx, DivX 3/4/5, WMV and H.264 movies.")
             #t)))
        #:configure-flags (list "--enable-libmpv-shared"
                                "--enable-cdda"
-                               "--enable-dvdread"
                                "--enable-dvdnav"
-                               "--enable-zsh-comp"
                                "--disable-build-date")
        ;; No check function defined.
        #:tests? #f))
@@ -1404,32 +1434,7 @@ projects while introducing many more.")
     (license license:gpl2+)))
 
 (define-public gnome-mpv
-  (package
-    (name "gnome-mpv")
-    (version "0.16")
-    (source
-     (origin
-       (method url-fetch)
-       (uri (string-append "https://github.com/gnome-mpv/gnome-mpv/releases"
-                           "/download/v" version "/gnome-mpv-" version
-                           ".tar.xz"))
-       (sha256
-        (base32
-         "0jzdzvhcqp5jp1inwk2466zf7r8iimk3x69066gl8mzaay98mk92"))))
-    (native-inputs
-     `(("intltool" ,intltool)
-       ("pkg-config" ,pkg-config)))
-    (inputs
-     `(("gtk+" ,gtk+)
-       ("libepoxy" ,libepoxy)
-       ("mpv" ,mpv)))
-    (build-system glib-or-gtk-build-system)
-    (home-page "https://github.com/gnome-mpv/gnome-mpv")
-    (synopsis "GTK+ frontend for the mpv media player")
-    (description "GNOME MPV is a simple GTK+ frontend for the mpv media player.
-GNOME MPV interacts with mpv via the client API exported by libmpv, allowing
-access to mpv's powerful playback capabilities.")
-    (license license:gpl3+)))
+  (deprecated-package "gnome-mpv" celluloid))
 
 (define-public libvpx
   (package
@@ -1492,7 +1497,7 @@ access to mpv's powerful playback capabilities.")
 (define-public youtube-dl
   (package
     (name "youtube-dl")
-    (version "2019.09.12")
+    (version "2019.11.22")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://github.com/ytdl-org/youtube-dl/"
@@ -1500,7 +1505,7 @@ access to mpv's powerful playback capabilities.")
                                   version ".tar.gz"))
               (sha256
                (base32
-                "0wmc0rl4l08hnz3agh69ld1pcmjs7czg0d2k7mnnlxhwlwi38w56"))))
+                "0avdlp0dc9p3lm68mfnic21x6blxmr0zvlxa4br5vj4y4sckq2m8"))))
     (build-system python-build-system)
     (arguments
      ;; The problem here is that the directory for the man page and completion
@@ -1670,7 +1675,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.5.4")
+    (version "3.5.8")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -1679,7 +1684,7 @@ audio, images) from the Web.  It can use either mpv or vlc for playback.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1j782m9rximybamd0qsc43hi7hgk333x9gy3ypzb61s0sifs0i6m"))))
+                "0zz0r3vd2pg9zzykhrq0vnvqp5842dbgsg8cfygw9vzb9j8mlq0a"))))
     (build-system perl-build-system)
     (native-inputs
      `(("perl-module-build" ,perl-module-build)))
@@ -1797,7 +1802,7 @@ players, like VLC or MPlayer.")
 (define-public libdvdread
   (package
     (name "libdvdread")
-    (version "6.0.1")
+    (version "6.0.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.videolan.org/videolan/"
@@ -1805,7 +1810,7 @@ players, like VLC or MPlayer.")
                                   "libdvdread-" version ".tar.bz2"))
               (sha256
                (base32
-                "1gfmh8ii3s2fw1c8vn57piwxc0smd3va4h7xgp9s8g48cc04zki8"))))
+                "1c7yqqn67m3y3n7nfrgrnzz034zjaw5caijbwbfrq89v46ph257r"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--with-libdvdcss=yes")))
@@ -1853,15 +1858,15 @@ MPEG-2 stream containing VOB packets.")
 (define-public libdvdnav
   (package
     (name "libdvdnav")
-    (version "6.0.0")
+    (version "6.0.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.videolan.org/videolan/"
-                                  name "/" version "/"
-                                  name "-" version ".tar.bz2"))
+                                  "libdvdnav/" version "/"
+                                  "libdvdnav-" version ".tar.bz2"))
               (sha256
                (base32
-                "062njcksmpgw9yv3737qkf93r2pzhaxi9szqjabpa8d010dp38ph"))))
+                "0cv7j8irsv1n2dadlnhr6i1b8pann2ah6xpxic41f04my6ba6rp5"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -1926,7 +1931,7 @@ for use with HTML5 video.")
 (define-public avidemux
   (package
     (name "avidemux")
-    (version "2.7.3")
+    (version "2.7.4")
     (source (origin
              (method url-fetch)
              (uri (string-append
@@ -1934,11 +1939,15 @@ for use with HTML5 video.")
                    "avidemux_" version ".tar.gz"))
              (sha256
               (base32
-               "17x2mnnr5h8pp764p55l1xcn2ljnzhbj8cykajlllvk4rc4qwxld"))
+               "1acdb3m37vdzzbm8mwyibcn8msi7birb5v30qfi7jli5r00src3x"))
              (patches (search-patches "avidemux-install-to-lib.patch"))))
     (build-system cmake-build-system)
     (native-inputs
-     `(("pkg-config" ,pkg-config)))
+     `(("perl" ,perl)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-wrapper)
+       ("qttools" ,qttools)
+       ("yasm" ,yasm)))
     ;; FIXME: Once packaged, add libraries not found during the build.
     (inputs
      `(("alsa-lib" ,alsa-lib)
@@ -1953,21 +1962,16 @@ for use with HTML5 video.")
        ("libvorbis" ,libvorbis)
        ("libvpx" ,libvpx)
        ("libxv" ,libxv)
-       ("perl" ,perl)
        ("pulseaudio" ,pulseaudio)
-       ("python" ,python-wrapper)
        ("qtbase" ,qtbase)
-       ("qttools" ,qttools)
-       ("sdl" ,sdl)
        ("sqlite" ,sqlite)
-       ("yasm" ,yasm)
        ("zlib" ,zlib)))
     (arguments
      `(#:tests? #f                      ; no check target
        #:phases
        ;; Make sure files inside the included ffmpeg tarball are
        ;; patch-shebanged.
-       (let ((ffmpeg "ffmpeg-4.1.1"))
+       (let ((ffmpeg "ffmpeg-4.1.4"))
          (modify-phases %standard-phases
            (add-before 'patch-source-shebangs 'unpack-ffmpeg
              (lambda _
@@ -1997,7 +2001,6 @@ for use with HTML5 video.")
                (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)))
@@ -2010,8 +2013,6 @@ for use with HTML5 video.")
                                     (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)
@@ -2049,7 +2050,7 @@ capabilities.")
 (define-public vapoursynth
   (package
     (name "vapoursynth")
-    (version "37")
+    (version "48")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2058,7 +2059,7 @@ capabilities.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1ma2s7dxk6y6l04qj1jvgwia4xj7999ny3a1yx2vbk5l83giam2p"))))
+                "1i6163bidlp0p9zcnxpsphr44ayfzd51fig4ri7vbrbl9lw9jaih"))))
     (build-system gnu-build-system)
     (native-inputs
      `(("autoconf" ,autoconf)
@@ -2203,7 +2204,7 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
 (define-public mlt
   (package
     (name "mlt")
-    (version "6.16.0")
+    (version "6.18.0")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2212,11 +2213,11 @@ from sites like Twitch.tv and pipes them into a video player of choice.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "1362fv63p34kza9v4b71b6wakgvsa2vdx9y0g28x3yh4cp4k97kx"))))
+                "0iiqym15n8kbnjzj0asmm86gs23yykz0va5b475cc4v2vv5admgx"))))
     (build-system gnu-build-system)
     (arguments
      `(#:tests? #f                      ; no tests
-       #:make-flags '("CC=gcc" "CXX=g++ -std=gnu++11")
+       #:make-flags '("CC=gcc" "CXX=g++")
        #:configure-flags
        (list "--enable-gpl3"
              "--enable-gpl")
@@ -2275,8 +2276,7 @@ tools, XML authoring components, and an extensible plug-in based API.")
      '(#:configure-flags
        (list (string-append "--with-udevdir="
                             (assoc-ref %outputs "out")
-                            "/lib/udev")
-             "CXXFLAGS=-std=gnu++11")))
+                            "/lib/udev"))))
     (native-inputs
      `(("perl" ,perl)
        ("pkg-config" ,pkg-config)))
@@ -2297,7 +2297,7 @@ be used for realtime video capture via Linux-specific APIs.")
 (define-public obs
   (package
     (name "obs")
-    (version "24.0.1")
+    (version "24.0.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -2306,7 +2306,7 @@ be used for realtime video capture via Linux-specific APIs.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "056s0hs1ds3c57sc0gy39dxaxvwlakl3w25jxgawh0fs99211ar5"))))
+                "0g8nzs696f3myz4hvygav85b0jgjmn6dicy50axmapdv8miff9xa"))))
     (build-system cmake-build-system)
     (arguments
      `(#:tests? #f))                    ; no tests
@@ -2516,6 +2516,10 @@ Other features include a live preview and live streaming.")
                (base32
                 "18yfkr70lr1x1hc8snn2ldnbzdcc7b64xmkqrfk8w59gpg7sl1xn"))))
     (build-system gnu-build-system)
+    (arguments
+     ;; libsmpeg fails to build with -std=c++11, which is the default with
+     ;; GCC 7.  Also, 'configure' does CXXFLAGS=$CFLAGS, hence this hack.
+     '(#:configure-flags '("CFLAGS=-O2 -g -std=c++03")))
     (native-inputs
      `(("autoconf" ,autoconf)
        ("automake" ,automake)))
@@ -2632,14 +2636,14 @@ supported players in addition to this package.")
 (define-public handbrake
   (package
     (name "handbrake")
-    (version "1.1.2")
+    (version "1.2.2")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://download.handbrake.fr/releases/"
                                   version "/HandBrake-" version "-source.tar.bz2"))
               (sha256
                (base32
-                "0bny0hwlr55g2c69rsamv0xvwmfh1s4a582b9vq20xv5ly84m6ms"))
+                "0k2yaqy7zi06k8mkp9az2mn9dlgj3a1339vacakfh2nn2zsics6z"))
               (modules '((guix build utils)))
               (snippet
                ;; Remove "contrib" and source not necessary for
@@ -2653,11 +2657,13 @@ supported players in addition to this package.")
                     ;; which would lead to fetching and building of these
                     ;; libraries.  Use our own instead.
                     (("MODULES \\+= contrib") "# MODULES += contrib"))
-                  #t))))
+                  #t))
+              (patches (search-patches "handbrake-opt-in-nvenc.patch"))))
     (build-system  glib-or-gtk-build-system)
     (native-inputs
      `(("automake" ,automake)           ;gui subpackage must be bootstrapped
        ("autoconf" ,autoconf)
+       ("cmake" ,cmake-minimal) ;TODO: could probably strip check from make/configure.py
        ("curl" ,curl)                   ;not actually used, but tested for
        ("intltool" ,intltool)
        ("libtool" ,libtool)
@@ -2690,12 +2696,14 @@ supported players in addition to this package.")
        ("libvpx" ,libvpx)
        ("libxml2" ,libxml2)
        ("libx264" ,libx264)
+       ("speex" ,speex)
        ("x265" ,x265)
        ("zlib" ,zlib)))
     (arguments
      `(#:tests? #f             ;tests require Ruby and claim to be unsupported
        #:configure-flags
-       (list (string-append "CPPFLAGS=-I"
+       (list "--disable-gtk-update-checks"
+             (string-append "CPPFLAGS=-I"
                             (assoc-ref %build-inputs "libxml2")
                             "/include/libxml2")
              "LDFLAGS=-lx265")
@@ -2822,6 +2830,7 @@ post-processing of video formats like MPEG2, H.264/AVC, and VC-1.")
                            "code-archive-downloads/v2/"
                            "code.google.com/mp4v2/mp4v2-" version ".tar.bz2"))
        (file-name (string-append name "-" version ".tar.bz2"))
+       (patches (search-patches "libmp4v2-c++11.patch"))
        (sha256
         (base32
          "0f438bimimsvxjbdp4vsr8hjw2nwggmhaxgcw07g2z361fkbj683"))))
@@ -3534,20 +3543,15 @@ transitions, and effects and then export your film to many common formats.")
 (define-public dav1d
   (package
     (name "dav1d")
-    (version "0.4.0")
+    (version "0.5.1")
     (source
       (origin
         (method url-fetch)
-        (uri (list ;; The canonical download site.
-                   (string-append "https://downloads.videolan.org/pub/videolan/"
-                                  "dav1d/" version "/dav1d-" version ".tar.xz")
-
-                   ;; Auto-generated tarballs from the Git repo?
-                   (string-append "https://code.videolan.org/videolan/dav1d/-/"
-                                  "archive/" version "/dav1d-" version ".tar.bz2")))
+        (uri (string-append "https://downloads.videolan.org/pub/videolan"
+                            "/dav1d/" version "/dav1d-" version ".tar.xz"))
         (sha256
          (base32
-          "08yqml01lbcpflrshdpvn88jv3xd8gm559qikiwyrh41a3kb4lr5"))))
+          "03cf6f9if45prq97qp7llzi1p71dyw9ymc87hc225iy89kmzjsdd"))))
     (build-system meson-build-system)
     (native-inputs `(("nasm" ,nasm)))
     (home-page "https://code.videolan.org/videolan/dav1d")