fix crashes on VP9 encoding on certain Intel cpus (bz1079468)
This commit is contained in:
parent
a0a00eef6e
commit
ed7cb6f704
32
Bug-fix-in-ssse3-quantize-function.patch
Normal file
32
Bug-fix-in-ssse3-quantize-function.patch
Normal file
@ -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
|
@ -6,12 +6,13 @@ Name: libvpx
|
|||||||
Summary: VP8 Video Codec SDK
|
Summary: VP8 Video Codec SDK
|
||||||
Version: %{majorver}.%{minorver}.%{tinyver}
|
Version: %{majorver}.%{minorver}.%{tinyver}
|
||||||
%global soversion %{version}
|
%global soversion %{version}
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}
|
||||||
License: BSD
|
License: BSD
|
||||||
Group: System Environment/Libraries
|
Group: System Environment/Libraries
|
||||||
Source0: http://webm.googlecode.com/files/%{name}-v%{version}.tar.bz2
|
Source0: http://webm.googlecode.com/files/%{name}-v%{version}.tar.bz2
|
||||||
# Thanks to debian.
|
# Thanks to debian.
|
||||||
Source2: libvpx.ver
|
Source2: libvpx.ver
|
||||||
|
Patch0: Bug-fix-in-ssse3-quantize-function.patch
|
||||||
URL: http://www.webmproject.org/tools/vp8-sdk/
|
URL: http://www.webmproject.org/tools/vp8-sdk/
|
||||||
%ifarch %{ix86} x86_64
|
%ifarch %{ix86} x86_64
|
||||||
BuildRequires: yasm
|
BuildRequires: yasm
|
||||||
@ -43,6 +44,7 @@ and decoder.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q -n %{name}-v%{version}
|
%setup -q -n %{name}-v%{version}
|
||||||
|
%patch0 -p1 -b .patch0
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%ifarch %{ix86}
|
%ifarch %{ix86}
|
||||||
@ -169,6 +171,9 @@ popd
|
|||||||
%{_bindir}/*
|
%{_bindir}/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Mar 20 2014 Wim Taymans <wtaymans@redhat.com> - 1.3.0-4
|
||||||
|
- fix Illegal Instruction abort
|
||||||
|
|
||||||
* Thu Feb 13 2014 Dan Horák <dan[at]danny.cz> - 1.3.0-3
|
* Thu Feb 13 2014 Dan Horák <dan[at]danny.cz> - 1.3.0-3
|
||||||
- update library symbol list for 1.3.0 from Debian
|
- update library symbol list for 1.3.0 from Debian
|
||||||
|
|
||||||
|
@ -23,6 +23,7 @@ vpx_codec_peek_stream_info;
|
|||||||
vpx_codec_register_put_frame_cb;
|
vpx_codec_register_put_frame_cb;
|
||||||
vpx_codec_register_put_slice_cb;
|
vpx_codec_register_put_slice_cb;
|
||||||
vpx_codec_set_cx_data_buf;
|
vpx_codec_set_cx_data_buf;
|
||||||
|
vpx_codec_set_frame_buffer_functions;
|
||||||
vpx_codec_set_mem_map;
|
vpx_codec_set_mem_map;
|
||||||
vpx_codec_version;
|
vpx_codec_version;
|
||||||
vpx_codec_version_extra_str;
|
vpx_codec_version_extra_str;
|
||||||
@ -64,7 +65,10 @@ vpx_svc_encode;
|
|||||||
vpx_svc_get_buffer;
|
vpx_svc_get_buffer;
|
||||||
vpx_svc_get_encode_frame_count;
|
vpx_svc_get_encode_frame_count;
|
||||||
vpx_svc_get_frame_size;
|
vpx_svc_get_frame_size;
|
||||||
|
vpx_svc_get_layer_resolution;
|
||||||
vpx_svc_get_message;
|
vpx_svc_get_message;
|
||||||
|
vpx_svc_get_rc_stats_buffer;
|
||||||
|
vpx_svc_get_rc_stats_buffer_size;
|
||||||
vpx_svc_init;
|
vpx_svc_init;
|
||||||
vpx_svc_is_keyframe;
|
vpx_svc_is_keyframe;
|
||||||
vpx_svc_release;
|
vpx_svc_release;
|
||||||
|
Loading…
Reference in New Issue
Block a user