summary refs log tree commit diff
path: root/gnu/packages/patches/libvpx-fix-ssse3-quantize.patch
diff options
context:
space:
mode:
authorMark H Weaver <mhw@netris.org>2015-02-02 00:22:51 -0500
committerMark H Weaver <mhw@netris.org>2015-02-02 03:54:42 -0500
commit3b02429c8a0b476120cb1bc63c9ddd4a3a44a37b (patch)
tree370417e7b1ba27396851ac22e503ec169019f9b0 /gnu/packages/patches/libvpx-fix-ssse3-quantize.patch
parent38012ed5cdf211050d64be7eb1f6164defcb9a68 (diff)
downloadguix-3b02429c8a0b476120cb1bc63c9ddd4a3a44a37b.tar.gz
gnu: libvpx: Apply bug fixes.
Fixes build on armhf.

* 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: New files.
* gnu-system.am (dist_patch_DATA): Add them.
* gnu/packages/video.scm (libvpx): Add patches.  On armhf, add additional
  configure flags to avoid requiring support for NEON.
Diffstat (limited to 'gnu/packages/patches/libvpx-fix-ssse3-quantize.patch')
-rw-r--r--gnu/packages/patches/libvpx-fix-ssse3-quantize.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/gnu/packages/patches/libvpx-fix-ssse3-quantize.patch b/gnu/packages/patches/libvpx-fix-ssse3-quantize.patch
new file mode 100644
index 0000000000..74138e8d49
--- /dev/null
+++ b/gnu/packages/patches/libvpx-fix-ssse3-quantize.patch
@@ -0,0 +1,32 @@
+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