[FFmpeg-cvslog] x86/hevc: get rid off packusdw for ssse3 compatibility

Mickaël Raulet git at videolan.org
Sat Oct 4 21:21:09 CEST 2014


ffmpeg | branch: master | Mickaël Raulet <mraulet at insa-rennes.fr> | Mon Aug 25 10:03:49 2014 +0200| [4ba6371a83c914c978aa22b804f00fb876397d98] | committer: Michael Niedermayer

x86/hevc: get rid off packusdw for ssse3 compatibility

cherry picked from commit df8ebe304df453f26c28ff8f11d607f49b90a4c2

Fixes out of array access
Fixes: asan_stack-oob_1046454_9_asan_stack-oob_15a9e7c_170_WP_MAIN10_B_Toshiba_3.bit

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavcodec/x86/hevc_mc.asm |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/libavcodec/x86/hevc_mc.asm b/libavcodec/x86/hevc_mc.asm
index e126200..eaa070c 100644
--- a/libavcodec/x86/hevc_mc.asm
+++ b/libavcodec/x86/hevc_mc.asm
@@ -1203,11 +1203,12 @@ cglobal hevc_put_hevc_uni_w%1_%2, 6, 6, 7, dst, dststride, src, srcstride, heigh
     paddd             m0, m3
     paddd             m1, m3
 %endif
-    packusdw          m0, m1
+    packssdw          m0, m1
 %if %2 == 8
     packuswb          m0, m0
 %else
     pminsw            m0, [max_pixels_%2]
+    pmaxsw            m0, [zero]
 %endif
     PEL_%2STORE%1   dstq, m0, m1
     add             dstq, dststrideq             ; dst += dststride
@@ -1274,11 +1275,12 @@ cglobal hevc_put_hevc_bi_w%1_%2, 5, 7, 10, dst, dststride, src, srcstride, src2,
     psrad             m0, m5
     psrad             m1, m5
 %endif
-    packusdw          m0, m1
+    packssdw          m0, m1
 %if %2 == 8
     packuswb          m0, m0
 %else
     pminsw            m0, [max_pixels_%2]
+    pmaxsw            m0, [zero]
 %endif
     PEL_%2STORE%1   dstq, m0, m1
     add             dstq, dststrideq             ; dst += dststride



More information about the ffmpeg-cvslog mailing list