[FFmpeg-cvslog] png: disable broken MMX/SIMD code for bpp <= 2

Vittorio Giovara git at videolan.org
Mon Aug 4 22:37:21 CEST 2014


ffmpeg | branch: master | Vittorio Giovara <vittorio.giovara at gmail.com> | Fri Aug  1 19:13:55 2014 +0100| [2257165bff243534982f4ddabae4e65e2a35f2ab] | committer: Vittorio Giovara

png: disable broken MMX/SIMD code for bpp <= 2

The decoder was producing different results when ASM was disabled.
Based on a long debug session with Kostya.

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

 libavcodec/pngdec.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
index 7bc2ad4..0c4c91a 100644
--- a/libavcodec/pngdec.c
+++ b/libavcodec/pngdec.c
@@ -240,7 +240,7 @@ static void png_filter_row(PNGDSPContext *dsp, uint8_t *dst, int filter_type,
             p      = last[i];
             dst[i] = p + src[i];
         }
-        if (bpp > 1 && size > 4) {
+        if (bpp > 2 && size > 4) {
             /* would write off the end of the array if we let it process
              * the last pixel with bpp=3 */
             int w = bpp == 4 ? size : size - 3;



More information about the ffmpeg-cvslog mailing list