summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/gnuzilla.scm2
-rw-r--r--gnu/packages/gstreamer.scm4
-rw-r--r--gnu/packages/patches/gst-plugins-good-libvpx-compat.patch58
-rw-r--r--gnu/packages/video.scm28
5 files changed, 86 insertions, 7 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 1ea8069308..cf8d29e4ce 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -845,6 +845,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/grub-check-error-efibootmgr.patch	\
   %D%/packages/patches/gsl-test-i686.patch			\
   %D%/packages/patches/gspell-dash-test.patch			\
+  %D%/packages/patches/gst-plugins-good-libvpx-compat.patch	\
   %D%/packages/patches/guile-1.8-cpp-4.5.patch			\
   %D%/packages/patches/guile-2.2-default-utf8.patch		\
   %D%/packages/patches/guile-default-utf8.patch			\
diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
index ef88510a2a..1f299a2b13 100644
--- a/gnu/packages/gnuzilla.scm
+++ b/gnu/packages/gnuzilla.scm
@@ -827,7 +827,7 @@ from forcing GEXP-PROMISE."
        ("libxt" ,libxt)
        ("libffi" ,libffi)
        ("ffmpeg" ,ffmpeg)
-       ("libvpx" ,libvpx)
+       ("libvpx" ,libvpx-1.7)
        ("icu4c" ,icu4c)
        ("pixman" ,pixman)
        ("pulseaudio" ,pulseaudio)
diff --git a/gnu/packages/gstreamer.scm b/gnu/packages/gstreamer.scm
index 755904231b..48a4dffa46 100644
--- a/gnu/packages/gstreamer.scm
+++ b/gnu/packages/gstreamer.scm
@@ -216,6 +216,7 @@ for the GStreamer multimedia library.")
       (uri (string-append
             "https://gstreamer.freedesktop.org/src/" name "/"
             name "-" version ".tar.xz"))
+      (patches (search-patches "gst-plugins-good-libvpx-compat.patch"))
       (sha256
        (base32
         "0y89qynb4b6fry3h43z1r99qslmi3m8xhlq0i5baq2nbc0r5b2sz"))))
@@ -249,7 +250,8 @@ for the GStreamer multimedia library.")
        ("pkg-config" ,pkg-config)
        ("python-wrapper" ,python-wrapper)))
     (arguments
-     `(#:phases
+     `(#:make-flags '("CFLAGS=-DHAVE_VPX_1_8")   ;XXX: Remove for >1.14.
+       #:phases
        (modify-phases %standard-phases
          (add-after
           'unpack 'disable-failing-tests
diff --git a/gnu/packages/patches/gst-plugins-good-libvpx-compat.patch b/gnu/packages/patches/gst-plugins-good-libvpx-compat.patch
new file mode 100644
index 0000000000..8306c79e56
--- /dev/null
+++ b/gnu/packages/patches/gst-plugins-good-libvpx-compat.patch
@@ -0,0 +1,58 @@
+Fix build with libvpx 1.8.
+
+Taken from this upstream commit:
+https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/commit/b6e6f1ae73375ef66a5748069843aaed1a83e6a6
+
+Note: Remove the HAVE_VPX_1_8 build flag with this patch.  It was added
+to avoid re-creating the configure script.
+
+diff --git a/configure.ac b/configure.ac
+index 5e4cff126..8c20e5081 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1054,6 +1054,10 @@ AG_GST_CHECK_FEATURE(VPX, [VPX decoder], vpx, [
+       AC_DEFINE(HAVE_VPX_1_4, 1, [Defined if the VPX library version is 1.4 or bigger])
+     ], [true])
+ 
++    PKG_CHECK_MODULES(VPX_180, vpx >= 1.8.0, [
++      AC_DEFINE(HAVE_VPX_1_8, 1, [Defined if the VPX library version is 1.8 or bigger])
++    ], [true])
++
+     LIBS="$OLD_LIBS"
+     CFLAGS="$OLD_CFLAGS"
+   fi
+diff --git a/ext/vpx/gstvpxdec.c b/ext/vpx/gstvpxdec.c
+index c3f0f625f..da4322513 100644
+--- a/ext/vpx/gstvpxdec.c
++++ b/ext/vpx/gstvpxdec.c
+@@ -62,6 +62,7 @@ gst_vpx_dec_post_processing_flags_get_type (void)
+     {C_FLAGS (VP8_DEBLOCK), "Deblock", "deblock"},
+     {C_FLAGS (VP8_DEMACROBLOCK), "Demacroblock", "demacroblock"},
+     {C_FLAGS (VP8_ADDNOISE), "Add noise", "addnoise"},
++#ifndef HAVE_VPX_1_8
+     {C_FLAGS (VP8_DEBUG_TXT_FRAME_INFO),
+           "Print frame information",
+         "visualize-frame-info"},
+@@ -74,6 +75,7 @@ gst_vpx_dec_post_processing_flags_get_type (void)
+     {C_FLAGS (VP8_DEBUG_TXT_RATE_INFO),
+           "Print video rate info",
+         "visualize-rate-info"},
++#endif
+     {C_FLAGS (VP8_MFQE), "Multi-frame quality enhancement", "mfqe"},
+     {0, NULL, NULL}
+   };
+diff --git a/ext/vpx/meson.build b/ext/vpx/meson.build
+index 6ed440728..0d2340b32 100644
+--- a/ext/vpx/meson.build
++++ b/ext/vpx/meson.build
+@@ -48,6 +48,10 @@ if vpx_dep.found()
+     vpx_args += '-DHAVE_VPX_1_4'
+   endif
+ 
++  if dependency('vpx', version : '>=1.8.0', required : false).found()
++    vpx_args += '-DHAVE_VPX_1_8'
++  endif
++
+   gstvpx = library('gstvpx',
+     vpx_sources,
+     c_args : gst_plugins_good_args + vpx_args,
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index f98b6e796c..c0f439ea93 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -23,7 +23,7 @@
 ;;; Copyright © 2017 Gregor Giesen <giesen@zaehlwerk.net>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2018 Roel Janssen <roel@gnu.org>
-;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2018, 2019 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2018 Leo Famulari <leo@famulari.name>
 ;;; Copyright © 2018 Brendan Tildesley <brendan.tildesley@openmailbox.org>
@@ -1301,7 +1301,7 @@ access to mpv's powerful playback capabilities.")
 (define-public libvpx
   (package
     (name "libvpx")
-    (version "1.7.0")
+    (version "1.8.0")
     (source (origin
               ;; XXX: Upstream does not provide tarballs for > 1.6.1.
               (method git-fetch)
@@ -1311,9 +1311,8 @@ access to mpv's powerful playback capabilities.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0vvh89hvp8qg9an9vcmwb7d9k3nixhxaz6zi65qdjnd0i56kkcz6"))
-              (patches (search-patches "libvpx-use-after-free-in-postproc.patch"
-                                       "libvpx-CVE-2016-2818.patch"))))
+                "079pb80am08lj8y5rx99vdr99mdqis9067f172zq12alkz849n93"))
+              (patches (search-patches "libvpx-CVE-2016-2818.patch"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags (list "--enable-shared"
@@ -1338,6 +1337,25 @@ access to mpv's powerful playback capabilities.")
     (license license:bsd-3)
     (home-page "https://www.webmproject.org/")))
 
+;; GNU IceCat fails to build against 1.8.0, so keep this version for now.
+(define-public libvpx-1.7
+  (package
+    (inherit libvpx)
+    (version "1.7.0")
+    (source (origin
+              (inherit (package-source libvpx))
+              (uri (git-reference
+                    (url "https://chromium.googlesource.com/webm/libvpx")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name "libvpx" version))
+              (sha256
+               (base32
+                "0vvh89hvp8qg9an9vcmwb7d9k3nixhxaz6zi65qdjnd0i56kkcz6"))
+              (patches
+               (append
+                (origin-patches (package-source libvpx))
+                (search-patches "libvpx-use-after-free-in-postproc.patch")))))))
+
 (define-public youtube-dl
   (package
     (name "youtube-dl")