diff mbox series

[FFmpeg-devel] lavc/pngdec: actually use SIMD version for bpp<=2

Message ID 20210512050727.88456-1-ffmpeg@fratti.ch
State New
Headers show
Series [FFmpeg-devel] lavc/pngdec: actually use SIMD version for bpp<=2 | expand

Checks

Context Check Description
andriy/x86_make success Make finished
andriy/x86_make_fate fail Make fate failed
andriy/PPC64_make success Make finished
andriy/PPC64_make_fate warning Make fate failed

Commit Message

Nicolas Frattaroli May 12, 2021, 5:07 a.m. UTC
The SIMD version was only used by the bpp > 2 case. This patch
uses the SIMD version for both code paths.

Change has been tested to still work with a 1-bpp image that uses
paeth, to generate one:

pngnq-s9 input.png
optipng -f4 -force input-nq8.png
---
 libavcodec/pngdec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Michael Niedermayer May 12, 2021, 2:46 p.m. UTC | #1
On Wed, May 12, 2021 at 07:07:27AM +0200, Nicolas Frattaroli wrote:
> The SIMD version was only used by the bpp > 2 case. This patch
> uses the SIMD version for both code paths.
> 
> Change has been tested to still work with a 1-bpp image that uses
> paeth, to generate one:

change breaks fate
--- ./tests/ref/fate/lscr	2021-05-07 19:20:39.256076206 +0200
+++ tests/data/fate/lscr	2021-05-12 15:43:28.128017958 +0200
@@ -4,18 +4,18 @@
 #dimensions 0: 320x240
 #sar 0: 0/1
 0,          0,          0,        1,   230400, 0x07c93bd9
-0,          1,          1,        1,   230400, 0xdcacc274
-0,          2,          2,        1,   230400, 0x6115dc34
-0,          3,          3,        1,   230400, 0x7317f35c
-0,          4,          4,        1,   230400, 0xca18d9a6
-0,          5,          5,        1,   230400, 0x0c104d49
-0,          6,          6,        1,   230400, 0xc4c415cf
-0,          7,          7,        1,   230400, 0xd1e4149f
-0,          8,          8,        1,   230400, 0x5973ae25
-0,          9,          9,        1,   230400, 0xd77893e6
-0,         10,         10,        1,   230400, 0x7f9cac97
-0,         11,         11,        1,   230400, 0xc8f81940
-0,         12,         12,        1,   230400, 0xa2b6f5d4
-0,         13,         13,        1,   230400, 0x620c3222
-0,         14,         14,        1,   230400, 0x60d097a0
-0,         15,         15,        1,   230400, 0x47201c65
+0,          1,          1,        1,   230400, 0x5af5c26e
+0,          2,          2,        1,   230400, 0x115fdbbf
+0,          3,          3,        1,   230400, 0x5f290ac6
+0,          4,          4,        1,   230400, 0x93030c28
+0,          5,          5,        1,   230400, 0x37a8c4f0
+0,          6,          6,        1,   230400, 0xbaff9eb5
+0,          7,          7,        1,   230400, 0x89c4c6e9
+0,          8,          8,        1,   230400, 0x48dd646a
+0,          9,          9,        1,   230400, 0x31c944ac
+0,         10,         10,        1,   230400, 0x88ad9fd3
+0,         11,         11,        1,   230400, 0x0b1fb7b1
+0,         12,         12,        1,   230400, 0xe6abfaf6
+0,         13,         13,        1,   230400, 0xea3c3e53
+0,         14,         14,        1,   230400, 0xe8e443d3
+0,         15,         15,        1,   230400, 0x4c069712
Test lscr failed. Look at tests/data/fate/lscr.err for details.
tests/Makefile:254: recipe for target 'fate-lscr' failed
make: *** [fate-lscr] Error 1


[...]
diff mbox series

Patch

diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c
index f2e6f689b0..2cb7946b49 100644
--- a/libavcodec/pngdec.c
+++ b/libavcodec/pngdec.c
@@ -311,7 +311,7 @@  void ff_png_filter_row(PNGDSPContext *dsp, uint8_t *dst, int filter_type,
                 i = w;
             }
         }
-        ff_add_png_paeth_prediction(dst + i, src + i, last + i, size - i, bpp);
+        dsp->add_paeth_prediction(dst + i, src + i, last + i, size - i, bpp);
         break;
     }
 }