[FFmpeg-cvslog] vp9: remove one optimization branch in iadst16 which causes overflows.

Ronald S. Bultje git at videolan.org
Sat May 16 00:16:07 CEST 2015


ffmpeg | branch: release/2.6 | Ronald S. Bultje <rsbultje at gmail.com> | Wed Apr 22 14:53:01 2015 -0400| [2ac7a0d999f1086d31b18102007eca347d73cc9c] | committer: Michael Niedermayer

vp9: remove one optimization branch in iadst16 which causes overflows.

See sample vp90-2-14-resize-fp-tiles-16-8-4-2-1.webm from the vp9 test
vector set which reproduces the issue. This probably costs a few cycles,
but I don't think there's an easy way to workaround that.

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
(cherry picked from commit d02d04a18f300ebe97319ca6e91fc943cb14f58b)

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2ac7a0d999f1086d31b18102007eca347d73cc9c
---

 libavcodec/x86/vp9itxfm.asm |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libavcodec/x86/vp9itxfm.asm b/libavcodec/x86/vp9itxfm.asm
index bfe427f..a9d45a4 100644
--- a/libavcodec/x86/vp9itxfm.asm
+++ b/libavcodec/x86/vp9itxfm.asm
@@ -1699,7 +1699,9 @@ VP9_IDCT_IDCT_16x16_ADD_XMM avx
     SUMSUB_BA                w,  5,  7,  4
     PSIGNW                  m5, [pw_m1]                     ; m12=out15[w], m8=t3[w]
 
-%if cpuflag(ssse3)
+    ; unfortunately, the code below overflows in some cases, e.g.
+    ; http://downloads.webmproject.org/test_data/libvpx/vp90-2-14-resize-fp-tiles-16-8-4-2-1.webm
+%if 0 ; cpuflag(ssse3)
     SUMSUB_BA               w,   7,  6,  4
     pmulhrsw                m7, [pw_m11585x2]               ; m8=out7[w]
     pmulhrsw                m6, [pw_11585x2]                ; m1=out8[w]



More information about the ffmpeg-cvslog mailing list