[FFmpeg-cvslog] png: add support for bpp>4 to paeth x86 SIMD code.
Ronald S. Bultje
git at videolan.org
Tue Jan 31 03:36:05 CET 2012
ffmpeg | branch: master | Ronald S. Bultje <rsbultje at gmail.com> | Fri Jan 27 23:28:28 2012 +0800| [af79a0c48a41fd99b674b39ac509ae442974715d] | committer: Ronald S. Bultje
png: add support for bpp>4 to paeth x86 SIMD code.
This fixes playback of e.g. RGB48 (bpp=6) content on x86 CPUs. Fixes
bug 214.
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=af79a0c48a41fd99b674b39ac509ae442974715d
---
libavcodec/x86/pngdsp.asm | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/libavcodec/x86/pngdsp.asm b/libavcodec/x86/pngdsp.asm
index bff76e0..8c4cb19 100644
--- a/libavcodec/x86/pngdsp.asm
+++ b/libavcodec/x86/pngdsp.asm
@@ -2,6 +2,7 @@
;* x86 optimizations for PNG decoding
;*
;* Copyright (c) 2008 Loren Merritt <lorenm at u.washington.edu>
+;* Copyright (c) 2012 Ronald S. Bultje <rsbultje at gmail.com>
;*
;* This file is part of Libav.
;*
@@ -100,6 +101,12 @@ cglobal add_png_paeth_prediction, 5, 7, %1, dst, src, top, w, bpp, end, cntr
sub srcq, dstq
sub dstq, bppq
pxor m7, m7
+
+ PUSH dstq
+ lea cntrq, [bppq-1]
+ shr cntrq, 2 + mmsize/16
+.bpp_loop:
+ lea dstq, [dstq+cntrq*(mmsize/2)]
movh m0, [dstq]
movh m1, [topq+dstq]
punpcklbw m0, m7
@@ -152,7 +159,12 @@ cglobal add_png_paeth_prediction, 5, 7, %1, dst, src, top, w, bpp, end, cntr
add dstq, bppq
cmp dstq, endq
jle .loop
- REP_RET
+
+ mov dstq, [rsp]
+ dec cntrq
+ jge .bpp_loop
+ POP dstq
+ RET
%endmacro
INIT_MMX mmx2
More information about the ffmpeg-cvslog
mailing list