~ruther/guix-local

723e886656927f1290596407f2847bee254260d0 — Mark H Weaver 10 years ago 9ed5486
gnu: libvpx: Update to 1.4.0.

* gnu/packages/patches/libvpx-fix-armhf-link.patch,
  gnu/packages/patches/libvpx-fix-ssse3-quantize.patch,
  gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch: Remove files.
* gnu-system.am (dist_patch_DATA): Remove them.
* gnu/packages/video.scm (libvpx): Update to 1.4.0.  Remove patches.  Update
  source URI.
5 files changed, 5 insertions(+), 101 deletions(-)

M gnu-system.am
D gnu/packages/patches/libvpx-fix-armhf-link.patch
D gnu/packages/patches/libvpx-fix-ssse3-quantize.patch
D gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch
M gnu/packages/video.scm
M gnu-system.am => gnu-system.am +0 -3
@@ 515,9 515,6 @@ dist_patch_DATA =						\
  gnu/packages/patches/libtiff-CVE-2014-9655.patch		\
  gnu/packages/patches/libtool-skip-tests2.patch		\
  gnu/packages/patches/libssh-CVE-2014-0017.patch		\
  gnu/packages/patches/libvpx-fix-armhf-link.patch		\
  gnu/packages/patches/libvpx-fix-ssse3-quantize.patch		\
  gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch	\
  gnu/packages/patches/libwmf-CVE-2006-3376.patch		\
  gnu/packages/patches/libwmf-CVE-2009-1364.patch		\
  gnu/packages/patches/libwmf-CVE-2015-0848+4588+4695+4696.patch \

D gnu/packages/patches/libvpx-fix-armhf-link.patch => gnu/packages/patches/libvpx-fix-armhf-link.patch +0 -23
@@ 1,23 0,0 @@
This patch was copied from Debian.  It is needed on armhf.

--- a/build/make/configure.sh	2013-12-17 18:18:46.904410454 +0100
+++ b/build/make/configure.sh	2013-12-17 18:19:58.720758736 +0100
@@ -799,7 +799,6 @@
 
         case ${tgt_cc} in
         gcc)
-            CROSS=${CROSS:-arm-none-linux-gnueabi-}
             link_with_cc=gcc
             setup_gnu_toolchain
             arch_int=${tgt_isa##armv}
@@ -822,10 +821,6 @@
                     check_add_cflags -mfpu=neon #-ftree-vectorize
                     check_add_asflags -mfpu=neon
                 fi
-
-                if [ -z "${tune_cpu}" ]; then
-                    tune_cpu=cortex-a8
-                fi
             else
                 check_add_cflags -march=${tgt_isa}
                 check_add_asflags -march=${tgt_isa}

D gnu/packages/patches/libvpx-fix-ssse3-quantize.patch => gnu/packages/patches/libvpx-fix-ssse3-quantize.patch +0 -32
@@ 1,32 0,0 @@
commit 0d43bd77e5f429467fbd280a7b8f7fbc0bfe1809
Author: Yunqing Wang <yunqingwang@google.com>
Date:   Fri Feb 7 14:27:07 2014 -0800

    Bug fix in ssse3 quantize function
    
    A bug was reported in Issue 702: "SIGILL (Illegal instruction) when
    transcoding with vp9 - using FFmpeg". It was reproduced and fixed.
    
    Change-Id: Ie32c149a89af02856084aeaf289e848a905c7700

diff --git a/vp9/encoder/x86/vp9_quantize_ssse3.asm b/vp9/encoder/x86/vp9_quantize_ssse3.asm
index db30660..48ccef8 100644
--- a/vp9/encoder/x86/vp9_quantize_ssse3.asm
+++ b/vp9/encoder/x86/vp9_quantize_ssse3.asm
@@ -188,7 +188,8 @@ cglobal quantize_%1, 0, %2, 15, coeff, ncoeff, skip, zbin, round, quant, \
   pmaxsw                          m8, m7
   pshuflw                         m7, m8, 0x1
   pmaxsw                          m8, m7
-  pextrw                        [r2], m8, 0
+  pextrw                          r6, m8, 0
+  mov                             [r2], r6
   RET
 
   ; skip-block, i.e. just write all zeroes
@@ -214,5 +215,5 @@ cglobal quantize_%1, 0, %2, 15, coeff, ncoeff, skip, zbin, round, quant, \
 %endmacro
 
 INIT_XMM ssse3
-QUANTIZE_FN b, 6
+QUANTIZE_FN b, 7
 QUANTIZE_FN b_32x32, 7

D gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch => gnu/packages/patches/libvpx-vp9-out-of-bounds-access.patch +0 -35
@@ 1,35 0,0 @@
Copied from Debian.

# HG changeset patch
# User Ralph Giles <giles@mozilla.com>
# Date 1412209683 25200
# Node ID 6023f0b4f8ba49dd117106cc98cd8007c2142bf6
# Parent  8c431dcec0ffde13988d47eacf341113ea883245
Bug 1063327 - Reject vp9 frames with invalid tiles. r=kinetik, a=abillings

diff --git a/vp9/decoder/vp9_decodframe.c b/vp9/decoder/vp9_decodframe.c
--- a/vp9/decoder/vp9_decodframe.c
+++ b/vp9/decoder/vp9_decodframe.c
@@ -863,16 +863,21 @@ static size_t get_tile(const uint8_t *co
 
   if (!is_last) {
     if (!read_is_valid(*data, 4, data_end))
       vpx_internal_error(error_info, VPX_CODEC_CORRUPT_FRAME,
           "Truncated packet or corrupt tile length");
 
     size = read_be32(*data);
     *data += 4;
+
+    if (size > data_end - *data) {
+      vpx_internal_error(error_info, VPX_CODEC_CORRUPT_FRAME,
+          "Truncated packet or corrupt tile size");
+    }
   } else {
     size = data_end - *data;
   }
   return size;
 }
 
 typedef struct TileBuffer {
   const uint8_t *data;


M gnu/packages/video.scm => gnu/packages/video.scm +5 -8
@@ 802,18 802,15 @@ projects while introducing many more.")
(define-public libvpx
  (package
    (name "libvpx")
    (version "1.3.0")
    (version "1.4.0")
    (source (origin
              (method url-fetch)
              (uri (string-append "http://webm.googlecode.com/files/libvpx-v"
                                  version ".tar.bz2"))
              (uri (string-append "http://storage.googleapis.com/"
                                  "downloads.webmproject.org/releases/webm/"
                                  name "-" version ".tar.bz2"))
              (sha256
               (base32
                "1aai0h0z1bhp89pxmg4fkrwpmqq24k39fhr15cw6q77m9bccip6k"))
              (patches
               (list (search-patch "libvpx-vp9-out-of-bounds-access.patch")
                     (search-patch "libvpx-fix-ssse3-quantize.patch")
                     (search-patch "libvpx-fix-armhf-link.patch")))))
                "1r0ql5kgy0c8mh5w7iiqvsd7w5njl9f9cclc7m52ln8assrdk0pm"))))
    (build-system gnu-build-system)
    (arguments
     `(#:phases (alist-replace