GithubHelp home page GithubHelp logo

randy408 / libspng Goto Github PK

View Code? Open in Web Editor NEW
690.0 27.0 66.0 965 KB

Simple, modern libpng alternative

Home Page: https://libspng.org

License: BSD 2-Clause "Simplified" License

C 92.81% Meson 5.48% C++ 0.12% CMake 1.06% Shell 0.53%
libpng c c99 spng png decoding png-decoder optimized oss-fuzz cmake

libspng's People

Contributors

coeps-github avatar danieljennings avatar danielkrupinski avatar dimula73 avatar elitetk avatar jayschwa avatar johannesschaeufele avatar longlene avatar loobinex avatar mattparks avatar michaelmalonenz avatar neheb avatar ocpalo avatar pjanx avatar randy408 avatar shuffle2 avatar stadelmanma avatar tachi107 avatar timgates42 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

libspng's Issues

Breaking API changes for 1.0.0

This issue is for listing potentially breaking API changes for 1.0.0.

The API is guaranteed to be stable starting from 0.4.0 through 0.8.x and is tracked on ABI laboratory, note that it detects changes to the opaque type spng_ctx as breaks and needs manual verification.

So far no major mistakes have been made to warrant an incompatible API for 1.0.0

Streaming API improvements

The streaming API is similar to libpng's which is great when it comes porting code but it has some drawbacks, this issue is for listing potential improvements.

Simplified API

This issue tracks nice-to-have functions that can be implemented on top of existing functionality.

Decode from file

Similar to stbi_load()

int spng_decode_file(const char *filename, void **buf, struct spng_ihdr *ihdr, int fmt, int flags);

Depends on #47

This does not allow for a custom memory allocator nor context flags, which is a drawback.

New image format - PNG / RAW

PNG

SPNG_FMT_PNG would match the context's PNG image format in host-endian, 16-bit RGBA/GRAY images are converted to host endianness when decoding, indexed color images are unmodified palette indices, even if they're 1/2/4-bit, the same applies for >8-bit grayscale images.

Indexed color images could be handled multiple ways:

  1. output the palette indices, TRNS, GAMMA could be applied to a user-supplied palette

Other options which would break the simplicity of calculating the output image size based on just the format and dimensions:
2. expand to 8-bit RGB, only GAMMA has an effect and the transparency value becomes useless
3. default to palette indices, add a separate function to override the format
4. expand to 8-bit RGB, gamma correction would work and the TRNS flag would expand it to RGBA, this changes the output format with a flag and would only expand to 8-bit

Gamma correction (SPNG_DECODE_GAMMA) is supported with this format.

RAW

SPNG_FMT_RAW is the big-endian version of SPNG_FMT_PNG.

Gamma correction is not supported with this format.

Progress:

  • SPNG_FMT_RAW
  • SPNG_FMT_PNG

Tests error on s390x: invalid gamma correction

Some tests issues specifically happening on s390x:

+ /usr/bin/meson test -C s390x-redhat-linux-gnu --num-processes 4 --print-errorlogs
ninja: Entering directory `/builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu'
ninja: no work to do.
  1/203 info                                    OK       0.03 s 
  2/203 cpp_test                                OK       0.01 s 
  3/203 basi0g01                                OK       0.03 s 
  4/203 basi0g02                                OK       0.03 s 
  5/203 basi0g04                                OK       0.02 s 
  6/203 basi0g08                                OK       0.02 s 
  7/203 basi0g16                                EXPECTEDFAIL 0.01 s 
  8/203 basi2c08                                OK       0.01 s 
  9/203 basi2c16                                FAIL     0.01 s (exit status 1)
 10/203 basi3p01                                OK       0.01 s 
 11/203 basi3p02                                OK       0.02 s 
 12/203 basi3p04                                OK       0.02 s 
 13/203 basi3p08                                OK       0.02 s 
 14/203 basi4a08                                OK       0.01 s 
 15/203 basi4a16                                FAIL     0.02 s (exit status 1)
 16/203 basi6a08                                OK       0.01 s 
 17/203 basi6a16                                FAIL     0.02 s (exit status 1)
 18/203 basn0g01                                OK       0.01 s 
 19/203 basn0g02                                OK       0.01 s 
 20/203 basn0g04                                OK       0.01 s 
 21/203 basn0g08                                OK       0.01 s 
 22/203 basn0g16                                EXPECTEDFAIL 0.02 s 
 23/203 basn2c08                                OK       0.01 s 
 24/203 basn2c16                                FAIL     0.01 s (exit status 1)
 25/203 basn3p01                                OK       0.01 s 
 26/203 basn3p02                                OK       0.01 s 
 27/203 basn3p04                                OK       0.02 s 
 28/203 basn3p08                                OK       0.01 s 
 29/203 basn4a08                                OK       0.02 s 
 30/203 basn4a16                                FAIL     0.02 s (exit status 1)
 31/203 basn6a08                                OK       0.01 s 
 32/203 basn6a16                                FAIL     0.03 s (exit status 1)
 33/203 bgai4a08                                OK       0.01 s 
 34/203 bgai4a16                                FAIL     0.01 s (exit status 1)
 35/203 bgan6a08                                OK       0.01 s 
 36/203 bgan6a16                                FAIL     0.02 s (exit status 1)
 37/203 bgbn4a08                                OK       0.01 s 
 38/203 bggn4a16                                FAIL     0.01 s (exit status 1)
 39/203 bgwn6a08                                OK       0.02 s 
 40/203 bgyn6a16                                FAIL     0.02 s (exit status 1)
 41/203 ccwn2c08                                OK       0.02 s 
 42/203 ccwn3p08                                OK       0.02 s 
 43/203 cdfn2c08                                OK       0.01 s 
 44/203 cdhn2c08                                OK       0.02 s 
 45/203 cdsn2c08                                OK       0.01 s 
 46/203 cdun2c08                                OK       0.01 s 
 47/203 ch1n3p04                                OK       0.01 s 
 48/203 ch2n3p08                                OK       0.02 s 
 49/203 cm0n0g04                                OK       0.01 s 
 50/203 cm7n0g04                                OK       0.01 s 
 51/203 cm9n0g04                                OK       0.01 s 
 52/203 cs3n2c16                                FAIL     0.01 s (exit status 1)
 53/203 cs3n3p08                                OK       0.01 s 
 54/203 cs5n2c08                                OK       0.01 s 
 55/203 cs5n3p08                                OK       0.01 s 
 56/203 cs8n2c08                                OK       0.01 s 
 57/203 cs8n3p08                                OK       0.02 s 
 58/203 ct0n0g04                                OK       0.01 s 
 59/203 ct1n0g04                                OK       0.01 s 
 60/203 cten0g04                                OK       0.01 s 
 61/203 ctfn0g04                                OK       0.01 s 
 62/203 ctgn0g04                                OK       0.01 s 
 63/203 cthn0g04                                OK       0.02 s 
 64/203 ctjn0g04                                OK       0.02 s 
 65/203 ctzn0g04                                OK       0.01 s 
 66/203 exif2c08                                OK       0.01 s 
 67/203 f00n0g08                                OK       0.01 s 
 68/203 f00n2c08                                OK       0.01 s 
 69/203 f01n0g08                                OK       0.01 s 
 70/203 f01n2c08                                OK       0.01 s 
 71/203 f02n0g08                                OK       0.01 s 
 72/203 f02n2c08                                OK       0.01 s 
 73/203 f03n0g08                                OK       0.01 s 
 74/203 f03n2c08                                OK       0.01 s 
 75/203 f04n0g08                                OK       0.01 s 
 76/203 f04n2c08                                OK       0.01 s 
 77/203 f99n0g04                                OK       0.01 s 
 78/203 g03n0g16                                FAIL     0.01 s (exit status 1)
 79/203 g03n2c08                                OK       0.02 s 
 80/203 g03n3p04                                OK       0.01 s 
 81/203 g04n0g16                                OK       0.01 s 
 82/203 g04n2c08                                OK       0.02 s 
 83/203 g04n3p04                                OK       0.01 s 
 84/203 g05n0g16                                FAIL     0.02 s (exit status 1)
 85/203 g05n2c08                                OK       0.01 s 
 86/203 g05n3p04                                OK       0.01 s 
 87/203 g07n0g16                                FAIL     0.02 s (exit status 1)
 88/203 g07n2c08                                OK       0.01 s 
 89/203 g07n3p04                                OK       0.01 s 
 90/203 g10n0g16                                FAIL     0.02 s (exit status 1)
 91/203 g10n2c08                                OK       0.01 s 
 92/203 g10n3p04                                OK       0.01 s 
 93/203 g25n0g16                                FAIL     0.01 s (exit status 1)
 94/203 g25n2c08                                OK       0.01 s 
 95/203 g25n3p04                                OK       0.01 s 
 96/203 oi1n0g16                                EXPECTEDFAIL 0.01 s 
 97/203 oi1n2c16                                FAIL     0.02 s (exit status 1)
 98/203 oi2n0g16                                EXPECTEDFAIL 0.01 s 
 99/203 oi2n2c16                                FAIL     0.02 s (exit status 1)
100/203 oi4n0g16                                EXPECTEDFAIL 0.02 s 
101/203 oi4n2c16                                FAIL     0.02 s (exit status 1)
102/203 oi9n0g16                                EXPECTEDFAIL 0.02 s 
103/203 oi9n2c16                                FAIL     0.02 s (exit status 1)
104/203 pp0n2c16                                FAIL     0.02 s (exit status 1)
105/203 pp0n6a08                                OK       0.01 s 
106/203 ps1n0g08                                OK       0.01 s 
107/203 ps1n2c16                                FAIL     0.02 s (exit status 1)
108/203 ps2n0g08                                OK       0.02 s 
109/203 ps2n2c16                                FAIL     0.02 s (exit status 1)
110/203 s01i3p01                                OK       0.01 s 
111/203 s01n3p01                                OK       0.02 s 
112/203 s02i3p01                                OK       0.02 s 
113/203 s02n3p01                                OK       0.02 s 
114/203 s03i3p01                                OK       0.01 s 
115/203 s03n3p01                                OK       0.01 s 
116/203 s04i3p01                                OK       0.02 s 
117/203 s04n3p01                                OK       0.01 s 
118/203 s05i3p02                                OK       0.02 s 
119/203 s05n3p02                                OK       0.01 s 
120/203 s06i3p02                                OK       0.01 s 
121/203 s06n3p02                                OK       0.01 s 
122/203 s07i3p02                                OK       0.01 s 
123/203 s07n3p02                                OK       0.02 s 
124/203 s08i3p02                                OK       0.02 s 
125/203 s08n3p02                                OK       0.01 s 
126/203 s09i3p02                                OK       0.01 s 
127/203 s09n3p02                                OK       0.01 s 
128/203 s32i3p04                                OK       0.02 s 
129/203 s32n3p04                                OK       0.02 s 
130/203 s33i3p04                                OK       0.01 s 
131/203 s33n3p04                                OK       0.02 s 
132/203 s34i3p04                                OK       0.01 s 
133/203 s34n3p04                                OK       0.01 s 
134/203 s35i3p04                                OK       0.01 s 
135/203 s35n3p04                                OK       0.02 s 
136/203 s36i3p04                                OK       0.01 s 
137/203 s36n3p04                                OK       0.01 s 
138/203 s37i3p04                                OK       0.01 s 
139/203 s37n3p04                                OK       0.01 s 
140/203 s38i3p04                                OK       0.01 s 
141/203 s38n3p04                                OK       0.01 s 
142/203 s39i3p04                                OK       0.02 s 
143/203 s39n3p04                                OK       0.02 s 
144/203 s40i3p04                                OK       0.01 s 
145/203 s40n3p04                                OK       0.01 s 
146/203 tbbn0g04                                OK       0.02 s 
147/203 tbbn2c16                                FAIL     0.01 s (exit status 1)
148/203 tbbn3p08                                FAIL     0.01 s (exit status 1)
149/203 tbgn2c16                                FAIL     0.02 s (exit status 1)
150/203 tbgn3p08                                FAIL     0.01 s (exit status 1)
151/203 tbrn2c08                                OK       0.01 s 
152/203 tbwn0g16                                FAIL     0.02 s (exit status 1)
153/203 tbwn3p08                                OK       0.01 s 
154/203 tbyn3p08                                FAIL     0.01 s (exit status 1)
155/203 tm3n3p02                                OK       0.01 s 
156/203 tp0n0g08                                OK       0.02 s 
157/203 tp0n2c08                                OK       0.01 s 
158/203 tp0n3p08                                OK       0.02 s 
159/203 tp1n3p08                                OK       0.02 s 
160/203 xc1n0g08                                EXPECTEDFAIL 0.01 s 
161/203 xc9n2c08                                EXPECTEDFAIL 0.01 s 
162/203 xcrn0g04                                EXPECTEDFAIL 0.01 s 
163/203 xcsn0g01                                EXPECTEDFAIL 0.01 s 
164/203 xd0n2c08                                EXPECTEDFAIL 0.01 s 
165/203 xd3n2c08                                EXPECTEDFAIL 0.01 s 
166/203 xd9n2c08                                EXPECTEDFAIL 0.01 s 
167/203 xdtn0g01                                EXPECTEDFAIL 0.01 s 
168/203 xhdn0g08                                EXPECTEDFAIL 0.01 s 
169/203 xlfn0g04                                EXPECTEDFAIL 0.01 s 
170/203 xs1n0g01                                EXPECTEDFAIL 0.01 s 
171/203 xs2n0g01                                EXPECTEDFAIL 0.01 s 
172/203 xs4n0g01                                EXPECTEDFAIL 0.01 s 
173/203 xs7n0g01                                EXPECTEDFAIL 0.02 s 
174/203 z00n2c08                                OK       0.01 s 
175/203 z03n2c08                                OK       0.01 s 
176/203 z06n2c08                                OK       0.02 s 
177/203 z09n2c08                                OK       0.01 s 
178/203 badadler                                EXPECTEDFAIL 0.02 s 
179/203 badcrc                                  EXPECTEDFAIL 0.01 s 
180/203 bad_iccp                                EXPECTEDFAIL 0.01 s 
181/203 empty_ancillary                         EXPECTEDFAIL 0.01 s 
182/203 huge_bkgd                               EXPECTEDFAIL 0.01 s 
183/203 huge_chrm                               EXPECTEDFAIL 0.01 s 
184/203 huge_exif                               EXPECTEDFAIL 0.01 s 
185/203 huge_gama                               EXPECTEDFAIL 0.02 s 
186/203 huge_hist                               EXPECTEDFAIL 0.01 s 
187/203 huge_iccp                               EXPECTEDFAIL 0.01 s 
188/203 huge_idat                               EXPECTEDFAIL 0.01 s 
189/203 huge_itxt                               EXPECTEDFAIL 0.01 s 
190/203 huge_junk_safe_to_copy                  EXPECTEDFAIL 0.01 s 
191/203 huge_junk_unsafe_to_copy                EXPECTEDFAIL 0.01 s 
192/203 huge_pcal                               EXPECTEDFAIL 0.01 s 
193/203 huge_phys                               EXPECTEDFAIL 0.01 s 
194/203 huge_scal                               EXPECTEDFAIL 0.01 s 
195/203 huge_splt                               EXPECTEDFAIL 0.02 s 
196/203 huge_srgb                               EXPECTEDFAIL 0.01 s 
197/203 huge_ster                               EXPECTEDFAIL 0.02 s 
198/203 huge_text                               EXPECTEDFAIL 0.01 s 
199/203 huge_time                               EXPECTEDFAIL 0.01 s 
200/203 huge_ztxt                               EXPECTEDFAIL 0.01 s 
201/203 zero_width                              EXPECTEDFAIL 0.01 s 
202/203 zero_gama                               EXPECTEDFAIL 0.01 s 
203/203 invalid_gray_alpha_sbit                 EXPECTEDFAIL 0.01 s 
Ok:                  128
Expected Fail:        46
Fail:                 29
Unexpected Pass:       0
Skipped:               0
Timeout:               0
The output from 10 first failed tests:
  9/203 basi2c16                                FAIL     0.01 s (exit status 1)
--- command ---
/builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/tests/testsuite /builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/../tests/images/basi2c16.png
--- Listing only the last 100 lines from a long log. ---
invalid gamma correction at x: 28 y:28, spng: 22670 22670 59430 png: 36440 36440 9960
invalid gamma correction at x: 29 y:28, spng: 18854 22670 60499 png: 42569 36440 21484
invalid gamma correction at x: 30 y:28, spng: 13758 22670 61546 png: 48949 36440 27376
invalid gamma correction at x: 31 y:28, spng: 0 22670 62572 png: 0 36440 27892
invalid gamma correction at x: 0 y:29, spng: 65535 18854 0 png: 65535 42569 0
invalid gamma correction at x: 1 y:29, spng: 64565 18854 0 png: 13820 42569 0
invalid gamma correction at x: 2 y:29, spng: 63578 18854 0 png: 23288 42569 0
invalid gamma correction at x: 3 y:29, spng: 62572 18854 13758 png: 27892 42569 48949
invalid gamma correction at x: 4 y:29, spng: 61546 18854 18854 png: 27376 42569 42569
invalid gamma correction at x: 5 y:29, spng: 60499 18854 22670 png: 21484 42569 36440
invalid gamma correction at x: 6 y:29, spng: 59430 18854 25837 png: 9960 42569 60772
invalid gamma correction at x: 7 y:29, spng: 58337 18854 28595 png: 58083 42569 45935
invalid gamma correction at x: 8 y:29, spng: 57220 18854 31065 png: 34015 42569 23161
invalid gamma correction at x: 9 y:29, spng: 56075 18854 33320 png: 3291 42569 10370
invalid gamma correction at x: 10 y:29, spng: 54902 18854 35405 png: 30422 42569 20106
invalid gamma correction at x: 11 y:29, spng: 53698 18854 37352 png: 49873 42569 59793
invalid gamma correction at x: 12 y:29, spng: 52460 18854 39185 png: 60876 42569 4505
invalid gamma correction at x: 13 y:29, spng: 51187 18854 40920 png: 62407 42569 55455
invalid gamma correction at x: 14 y:29, spng: 49874 18854 42571 png: 53954 42569 19366
invalid gamma correction at x: 15 y:29, spng: 48518 18854 44148 png: 34749 42569 29868
invalid gamma correction at x: 16 y:29, spng: 47115 18854 45661 png: 3256 42569 23986
invalid gamma correction at x: 17 y:29, spng: 45661 18854 47115 png: 23986 42569 3256
invalid gamma correction at x: 18 y:29, spng: 44148 18854 48518 png: 29868 42569 34749
invalid gamma correction at x: 19 y:29, spng: 42571 18854 49874 png: 19366 42569 53954
invalid gamma correction at x: 20 y:29, spng: 40920 18854 51187 png: 55455 42569 62407
invalid gamma correction at x: 21 y:29, spng: 39185 18854 52460 png: 4505 42569 60876
invalid gamma correction at x: 22 y:29, spng: 37352 18854 53698 png: 59793 42569 49873
invalid gamma correction at x: 23 y:29, spng: 35405 18854 54902 png: 20106 42569 30422
invalid gamma correction at x: 24 y:29, spng: 33320 18854 56075 png: 10370 42569 3291
invalid gamma correction at x: 25 y:29, spng: 31065 18854 57220 png: 23161 42569 34015
invalid gamma correction at x: 26 y:29, spng: 28595 18854 58337 png: 45935 42569 58083
invalid gamma correction at x: 27 y:29, spng: 25837 18854 59430 png: 60772 42569 9960
invalid gamma correction at x: 28 y:29, spng: 22670 18854 60499 png: 36440 42569 21484
invalid gamma correction at x: 29 y:29, spng: 18854 18854 61546 png: 42569 42569 27376
invalid gamma correction at x: 30 y:29, spng: 13758 18854 62572 png: 48949 42569 27892
invalid gamma correction at x: 31 y:29, spng: 0 18854 63578 png: 0 42569 23288
invalid gamma correction at x: 0 y:30, spng: 65535 13758 0 png: 65535 48949 0
invalid gamma correction at x: 1 y:30, spng: 64565 13758 0 png: 13820 48949 0
invalid gamma correction at x: 2 y:30, spng: 63578 13758 13758 png: 23288 48949 48949
invalid gamma correction at x: 3 y:30, spng: 62572 13758 18854 png: 27892 48949 42569
invalid gamma correction at x: 4 y:30, spng: 61546 13758 22670 png: 27376 48949 36440
invalid gamma correction at x: 5 y:30, spng: 60499 13758 25837 png: 21484 48949 60772
invalid gamma correction at x: 6 y:30, spng: 59430 13758 28595 png: 9960 48949 45935
invalid gamma correction at x: 7 y:30, spng: 58337 13758 31065 png: 58083 48949 23161
invalid gamma correction at x: 8 y:30, spng: 57220 13758 33320 png: 34015 48949 10370
invalid gamma correction at x: 9 y:30, spng: 56075 13758 35405 png: 3291 48949 20106
invalid gamma correction at x: 10 y:30, spng: 54902 13758 37352 png: 30422 48949 59793
invalid gamma correction at x: 11 y:30, spng: 53698 13758 39185 png: 49873 48949 4505
invalid gamma correction at x: 12 y:30, spng: 52460 13758 40920 png: 60876 48949 55455
invalid gamma correction at x: 13 y:30, spng: 51187 13758 42571 png: 62407 48949 19366
invalid gamma correction at x: 14 y:30, spng: 49874 13758 44148 png: 53954 48949 29868
invalid gamma correction at x: 15 y:30, spng: 48518 13758 45661 png: 34749 48949 23986
invalid gamma correction at x: 16 y:30, spng: 47115 13758 47115 png: 3256 48949 3256
invalid gamma correction at x: 17 y:30, spng: 45661 13758 48518 png: 23986 48949 34749
invalid gamma correction at x: 18 y:30, spng: 44148 13758 49874 png: 29868 48949 53954
invalid gamma correction at x: 19 y:30, spng: 42571 13758 51187 png: 19366 48949 62407
invalid gamma correction at x: 20 y:30, spng: 40920 13758 52460 png: 55455 48949 60876
invalid gamma correction at x: 21 y:30, spng: 39185 13758 53698 png: 4505 48949 49873
invalid gamma correction at x: 22 y:30, spng: 37352 13758 54902 png: 59793 48949 30422
invalid gamma correction at x: 23 y:30, spng: 35405 13758 56075 png: 20106 48949 3291
invalid gamma correction at x: 24 y:30, spng: 33320 13758 57220 png: 10370 48949 34015
invalid gamma correction at x: 25 y:30, spng: 31065 13758 58337 png: 23161 48949 58083
invalid gamma correction at x: 26 y:30, spng: 28595 13758 59430 png: 45935 48949 9960
invalid gamma correction at x: 27 y:30, spng: 25837 13758 60499 png: 60772 48949 21484
invalid gamma correction at x: 28 y:30, spng: 22670 13758 61546 png: 36440 48949 27376
invalid gamma correction at x: 29 y:30, spng: 18854 13758 62572 png: 42569 48949 27892
invalid gamma correction at x: 30 y:30, spng: 13758 13758 63578 png: 48949 48949 23288
invalid gamma correction at x: 31 y:30, spng: 0 13758 64565 png: 0 48949 13820
invalid gamma correction at x: 1 y:31, spng: 64565 0 13758 png: 13820 0 48949
invalid gamma correction at x: 2 y:31, spng: 63578 0 18854 png: 23288 0 42569
invalid gamma correction at x: 3 y:31, spng: 62572 0 22670 png: 27892 0 36440
invalid gamma correction at x: 4 y:31, spng: 61546 0 25837 png: 27376 0 60772
invalid gamma correction at x: 5 y:31, spng: 60499 0 28595 png: 21484 0 45935
invalid gamma correction at x: 6 y:31, spng: 59430 0 31065 png: 9960 0 23161
invalid gamma correction at x: 7 y:31, spng: 58337 0 33320 png: 58083 0 10370
invalid gamma correction at x: 8 y:31, spng: 57220 0 35405 png: 34015 0 20106
invalid gamma correction at x: 9 y:31, spng: 56075 0 37352 png: 3291 0 59793
invalid gamma correction at x: 10 y:31, spng: 54902 0 39185 png: 30422 0 4505
invalid gamma correction at x: 11 y:31, spng: 53698 0 40920 png: 49873 0 55455
invalid gamma correction at x: 12 y:31, spng: 52460 0 42571 png: 60876 0 19366
invalid gamma correction at x: 13 y:31, spng: 51187 0 44148 png: 62407 0 29868
invalid gamma correction at x: 14 y:31, spng: 49874 0 45661 png: 53954 0 23986
invalid gamma correction at x: 15 y:31, spng: 48518 0 47115 png: 34749 0 3256
invalid gamma correction at x: 16 y:31, spng: 47115 0 48518 png: 3256 0 34749
invalid gamma correction at x: 17 y:31, spng: 45661 0 49874 png: 23986 0 53954
invalid gamma correction at x: 18 y:31, spng: 44148 0 51187 png: 29868 0 62407
invalid gamma correction at x: 19 y:31, spng: 42571 0 52460 png: 19366 0 60876
invalid gamma correction at x: 20 y:31, spng: 40920 0 53698 png: 55455 0 49873
invalid gamma correction at x: 21 y:31, spng: 39185 0 54902 png: 4505 0 30422
invalid gamma correction at x: 22 y:31, spng: 37352 0 56075 png: 59793 0 3291
invalid gamma correction at x: 23 y:31, spng: 35405 0 57220 png: 20106 0 34015
invalid gamma correction at x: 24 y:31, spng: 33320 0 58337 png: 10370 0 58083
invalid gamma correction at x: 25 y:31, spng: 31065 0 59430 png: 23161 0 9960
invalid gamma correction at x: 26 y:31, spng: 28595 0 60499 png: 45935 0 21484
invalid gamma correction at x: 27 y:31, spng: 25837 0 61546 png: 60772 0 27376
invalid gamma correction at x: 28 y:31, spng: 22670 0 62572 png: 36440 0 27892
invalid gamma correction at x: 29 y:31, spng: 18854 0 63578 png: 42569 0 23288
invalid gamma correction at x: 30 y:31, spng: 13758 0 64565 png: 48949 0 13820
-------
 15/203 basi4a16                                FAIL     0.02 s (exit status 1)
--- command ---
/builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/tests/testsuite /builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/../tests/images/basi4a16.png
--- Listing only the last 100 lines from a long log. ---
alpha mismatch at x:24 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 24 y:29, spng: 41725 41725 41725 png: 64930 64930 64930
alpha mismatch at x:25 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 25 y:29, spng: 37699 37699 37699 png: 17555 17555 17555
alpha mismatch at x:26 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 26 y:29, spng: 33079 33079 33079 png: 14209 14209 14209
alpha mismatch at x:27 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 27 y:29, spng: 27510 27510 27510 png: 30315 30315 30315
alpha mismatch at x:28 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 28 y:29, spng: 20075 20075 20075 png: 27470 27470 27470
alpha mismatch at x:29 y:29, spng: 8457 png: 2337
alpha mismatch at x:30 y:29, spng: 4229 png: 34064
invalid gamma correction at x: 30 y:29, spng: 19433 19433 19433 png: 59723 59723 59723
invalid gamma correction at x: 31 y:29, spng: 25837 25837 25837 png: 60772 60772 60772
invalid gamma correction at x: 0 y:30, spng: 18854 18854 18854 png: 42569 42569 42569
alpha mismatch at x:1 y:30, spng: 4229 png: 34064
alpha mismatch at x:2 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 2 y:30, spng: 19433 19433 19433 png: 59723 59723 59723
alpha mismatch at x:3 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 3 y:30, spng: 26632 26632 26632 png: 2152 2152 2152
alpha mismatch at x:4 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 4 y:30, spng: 32021 32021 32021 png: 5501 5501 5501
alpha mismatch at x:5 y:30, spng: 4229 png: 34064
alpha mismatch at x:6 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 6 y:30, spng: 40391 40391 40391 png: 51101 51101 51101
alpha mismatch at x:7 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 7 y:30, spng: 43881 43881 43881 png: 27051 27051 27051
alpha mismatch at x:8 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 8 y:30, spng: 47066 47066 47066 png: 55991 55991 55991
alpha mismatch at x:9 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 9 y:30, spng: 50011 50011 50011 png: 23747 23747 23747
alpha mismatch at x:10 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 10 y:30, spng: 52761 52761 52761 png: 6862 6862 6862
alpha mismatch at x:11 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 11 y:30, spng: 55350 55350 55350 png: 14040 14040 14040
alpha mismatch at x:12 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 12 y:30, spng: 57801 57801 57801 png: 51681 51681 51681
alpha mismatch at x:13 y:30, spng: 4229 png: 34064
alpha mismatch at x:14 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 14 y:30, spng: 62361 62361 62361 png: 39411 39411 39411
alpha mismatch at x:15 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 15 y:30, spng: 64497 64497 64497 png: 62203 62203 62203
alpha mismatch at x:16 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 16 y:30, spng: 64497 64497 64497 png: 62203 62203 62203
alpha mismatch at x:17 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 17 y:30, spng: 62361 62361 62361 png: 39411 39411 39411
alpha mismatch at x:18 y:30, spng: 4229 png: 34064
alpha mismatch at x:19 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 19 y:30, spng: 57801 57801 57801 png: 51681 51681 51681
alpha mismatch at x:20 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 20 y:30, spng: 55350 55350 55350 png: 14040 14040 14040
alpha mismatch at x:21 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 21 y:30, spng: 52761 52761 52761 png: 6862 6862 6862
alpha mismatch at x:22 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 22 y:30, spng: 50011 50011 50011 png: 23747 23747 23747
alpha mismatch at x:23 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 23 y:30, spng: 47066 47066 47066 png: 55991 55991 55991
alpha mismatch at x:24 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 24 y:30, spng: 43881 43881 43881 png: 27051 27051 27051
alpha mismatch at x:25 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 25 y:30, spng: 40391 40391 40391 png: 51101 51101 51101
alpha mismatch at x:26 y:30, spng: 4229 png: 34064
alpha mismatch at x:27 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 27 y:30, spng: 32021 32021 32021 png: 5501 5501 5501
alpha mismatch at x:28 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 28 y:30, spng: 26632 26632 26632 png: 2152 2152 2152
alpha mismatch at x:29 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 29 y:30, spng: 19433 19433 19433 png: 59723 59723 59723
alpha mismatch at x:30 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 31 y:30, spng: 18854 18854 18854 png: 42569 42569 42569
invalid gamma correction at x: 1 y:31, spng: 18854 18854 18854 png: 42569 42569 42569
invalid gamma correction at x: 2 y:31, spng: 25837 25837 25837 png: 60772 60772 60772
invalid gamma correction at x: 3 y:31, spng: 31065 31065 31065 png: 23161 23161 23161
invalid gamma correction at x: 4 y:31, spng: 35405 35405 35405 png: 20106 20106 20106
invalid gamma correction at x: 5 y:31, spng: 39185 39185 39185 png: 4505 4505 4505
invalid gamma correction at x: 6 y:31, spng: 42571 42571 42571 png: 19366 19366 19366
invalid gamma correction at x: 7 y:31, spng: 45661 45661 45661 png: 23986 23986 23986
invalid gamma correction at x: 8 y:31, spng: 48518 48518 48518 png: 34493 34493 34493
invalid gamma correction at x: 9 y:31, spng: 51186 51186 51186 png: 62407 62407 62407
invalid gamma correction at x: 10 y:31, spng: 53697 53697 53697 png: 49873 49873 49873
invalid gamma correction at x: 11 y:31, spng: 56075 56075 56075 png: 3035 3035 3035
invalid gamma correction at x: 13 y:31, spng: 60499 60499 60499 png: 21484 21484 21484
invalid gamma correction at x: 14 y:31, spng: 62571 62571 62571 png: 27892 27892 27892
invalid gamma correction at x: 15 y:31, spng: 64565 64565 64565 png: 13820 13820 13820
invalid gamma correction at x: 16 y:31, spng: 64565 64565 64565 png: 13820 13820 13820
invalid gamma correction at x: 17 y:31, spng: 62571 62571 62571 png: 27892 27892 27892
invalid gamma correction at x: 18 y:31, spng: 60499 60499 60499 png: 21484 21484 21484
invalid gamma correction at x: 20 y:31, spng: 56075 56075 56075 png: 3035 3035 3035
invalid gamma correction at x: 21 y:31, spng: 53697 53697 53697 png: 49873 49873 49873
invalid gamma correction at x: 22 y:31, spng: 51186 51186 51186 png: 62407 62407 62407
invalid gamma correction at x: 23 y:31, spng: 48518 48518 48518 png: 34493 34493 34493
invalid gamma correction at x: 24 y:31, spng: 45661 45661 45661 png: 23986 23986 23986
invalid gamma correction at x: 25 y:31, spng: 42571 42571 42571 png: 19366 19366 19366
invalid gamma correction at x: 26 y:31, spng: 39185 39185 39185 png: 4505 4505 4505
invalid gamma correction at x: 27 y:31, spng: 35405 35405 35405 png: 20106 20106 20106
invalid gamma correction at x: 28 y:31, spng: 31065 31065 31065 png: 23161 23161 23161
invalid gamma correction at x: 29 y:31, spng: 25837 25837 25837 png: 60772 60772 60772
invalid gamma correction at x: 30 y:31, spng: 18854 18854 18854 png: 42569 42569 42569
-------
 17/203 basi6a16                                FAIL     0.02 s (exit status 1)
--- command ---
/builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/tests/testsuite /builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/../tests/images/basi6a16.png
--- Listing only the last 100 lines from a long log. ---
alpha mismatch at x:27 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 27 y:29, spng: 20075 0 63281 png: 27470 0 13047
alpha mismatch at x:28 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 28 y:29, spng: 14649 0 64419 png: 14905 0 42235
alpha mismatch at x:29 y:29, spng: 8457 png: 2337
alpha mismatch at x:30 y:29, spng: 4229 png: 34064
invalid gamma correction at x: 30 y:29, spng: 0 14179 64497 png: 0 25655 62203
invalid gamma correction at x: 31 y:29, spng: 0 18854 63577 png: 0 42569 23288
invalid gamma correction at x: 0 y:30, spng: 65535 13758 0 png: 65535 48949 0
alpha mismatch at x:1 y:30, spng: 4229 png: 34064
alpha mismatch at x:2 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 2 y:30, spng: 64497 0 14179 png: 62203 0 25655
alpha mismatch at x:3 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 3 y:30, spng: 63440 0 19433 png: 53495 0 59723
alpha mismatch at x:4 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 4 y:30, spng: 62361 0 23367 png: 39411 0 18267
alpha mismatch at x:5 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 5 y:30, spng: 61259 0 26632 png: 19439 0 2152
alpha mismatch at x:6 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 6 y:30, spng: 60132 0 29475 png: 58858 0 9075
alpha mismatch at x:7 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 7 y:30, spng: 58981 0 32021 png: 26086 0 5501
alpha mismatch at x:8 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 8 y:30, spng: 57801 0 34345 png: 51681 0 10630
alpha mismatch at x:9 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 9 y:30, spng: 56591 0 36495 png: 4317 0 36750
alpha mismatch at x:10 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 10 y:30, spng: 55350 0 38502 png: 14040 0 26262
alpha mismatch at x:11 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 11 y:30, spng: 54074 0 40391 png: 15315 0 51101
alpha mismatch at x:12 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 12 y:30, spng: 52761 0 42179 png: 6862 0 50340
alpha mismatch at x:13 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 13 y:30, spng: 51409 0 43881 png: 53704 0 27051
alpha mismatch at x:14 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 14 y:30, spng: 50011 0 45507 png: 23747 0 50097
alpha mismatch at x:15 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 15 y:30, spng: 48565 0 47066 png: 46781 0 55991
alpha mismatch at x:16 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 16 y:30, spng: 47066 0 48565 png: 55991 0 46781
alpha mismatch at x:17 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 17 y:30, spng: 45507 0 50011 png: 50097 0 23747
alpha mismatch at x:18 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 18 y:30, spng: 43881 0 51409 png: 27051 0 53704
alpha mismatch at x:19 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 19 y:30, spng: 42179 0 52761 png: 50340 0 6862
alpha mismatch at x:20 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 20 y:30, spng: 40391 0 54074 png: 51101 0 15315
alpha mismatch at x:21 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 21 y:30, spng: 38502 0 55350 png: 26262 0 14040
alpha mismatch at x:22 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 22 y:30, spng: 36495 0 56591 png: 36750 0 4317
alpha mismatch at x:23 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 23 y:30, spng: 34345 0 57801 png: 10630 0 51681
alpha mismatch at x:24 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 24 y:30, spng: 32021 0 58981 png: 5501 0 26086
alpha mismatch at x:25 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 25 y:30, spng: 29475 0 60132 png: 9075 0 58858
alpha mismatch at x:26 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 26 y:30, spng: 26632 0 61259 png: 2152 0 19439
alpha mismatch at x:27 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 27 y:30, spng: 23367 0 62361 png: 18267 0 39411
alpha mismatch at x:28 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 28 y:30, spng: 19433 0 63440 png: 59723 0 53495
alpha mismatch at x:29 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 29 y:30, spng: 14179 0 64497 png: 25655 0 62203
alpha mismatch at x:30 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 31 y:30, spng: 0 13758 64565 png: 0 48949 13820
invalid gamma correction at x: 1 y:31, spng: 64565 0 13758 png: 13820 0 48949
invalid gamma correction at x: 2 y:31, spng: 63577 0 18854 png: 23288 0 42569
invalid gamma correction at x: 3 y:31, spng: 62571 0 22670 png: 27892 0 36440
invalid gamma correction at x: 4 y:31, spng: 61545 0 25837 png: 27376 0 60772
invalid gamma correction at x: 5 y:31, spng: 60499 0 28595 png: 21484 0 45935
invalid gamma correction at x: 6 y:31, spng: 59430 0 31065 png: 9960 0 23161
invalid gamma correction at x: 7 y:31, spng: 58337 0 33320 png: 57827 0 10370
invalid gamma correction at x: 8 y:31, spng: 57219 0 35405 png: 34015 0 20106
invalid gamma correction at x: 9 y:31, spng: 56075 0 37352 png: 3035 0 59793
invalid gamma correction at x: 10 y:31, spng: 54901 0 39185 png: 30422 0 4505
invalid gamma correction at x: 11 y:31, spng: 53697 0 40920 png: 49873 0 55455
invalid gamma correction at x: 12 y:31, spng: 52460 0 42571 png: 60620 0 19366
invalid gamma correction at x: 13 y:31, spng: 51186 0 44148 png: 62407 0 29868
invalid gamma correction at x: 14 y:31, spng: 49873 0 45661 png: 53954 0 23986
invalid gamma correction at x: 15 y:31, spng: 48518 0 47115 png: 34493 0 3256
invalid gamma correction at x: 16 y:31, spng: 47115 0 48518 png: 3256 0 34493
invalid gamma correction at x: 17 y:31, spng: 45661 0 49873 png: 23986 0 53954
invalid gamma correction at x: 18 y:31, spng: 44148 0 51186 png: 29868 0 62407
invalid gamma correction at x: 19 y:31, spng: 42571 0 52460 png: 19366 0 60620
invalid gamma correction at x: 20 y:31, spng: 40920 0 53697 png: 55455 0 49873
invalid gamma correction at x: 21 y:31, spng: 39185 0 54901 png: 4505 0 30422
invalid gamma correction at x: 22 y:31, spng: 37352 0 56075 png: 59793 0 3035
invalid gamma correction at x: 23 y:31, spng: 35405 0 57219 png: 20106 0 34015
invalid gamma correction at x: 24 y:31, spng: 33320 0 58337 png: 10370 0 57827
invalid gamma correction at x: 25 y:31, spng: 31065 0 59430 png: 23161 0 9960
invalid gamma correction at x: 26 y:31, spng: 28595 0 60499 png: 45935 0 21484
invalid gamma correction at x: 27 y:31, spng: 25837 0 61545 png: 60772 0 27376
invalid gamma correction at x: 28 y:31, spng: 22670 0 62571 png: 36440 0 27892
invalid gamma correction at x: 29 y:31, spng: 18854 0 63577 png: 42569 0 23288
invalid gamma correction at x: 30 y:31, spng: 13758 0 64565 png: 48949 0 13820
-------
 24/203 basn2c16                                FAIL     0.01 s (exit status 1)
--- command ---
/builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/tests/testsuite /builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/../tests/images/basn2c16.png
--- Listing only the last 100 lines from a long log. ---
invalid gamma correction at x: 28 y:28, spng: 22670 22670 59430 png: 36440 36440 9960
invalid gamma correction at x: 29 y:28, spng: 18854 22670 60499 png: 42569 36440 21484
invalid gamma correction at x: 30 y:28, spng: 13758 22670 61546 png: 48949 36440 27376
invalid gamma correction at x: 31 y:28, spng: 0 22670 62572 png: 0 36440 27892
invalid gamma correction at x: 0 y:29, spng: 65535 18854 0 png: 65535 42569 0
invalid gamma correction at x: 1 y:29, spng: 64565 18854 0 png: 13820 42569 0
invalid gamma correction at x: 2 y:29, spng: 63578 18854 0 png: 23288 42569 0
invalid gamma correction at x: 3 y:29, spng: 62572 18854 13758 png: 27892 42569 48949
invalid gamma correction at x: 4 y:29, spng: 61546 18854 18854 png: 27376 42569 42569
invalid gamma correction at x: 5 y:29, spng: 60499 18854 22670 png: 21484 42569 36440
invalid gamma correction at x: 6 y:29, spng: 59430 18854 25837 png: 9960 42569 60772
invalid gamma correction at x: 7 y:29, spng: 58337 18854 28595 png: 58083 42569 45935
invalid gamma correction at x: 8 y:29, spng: 57220 18854 31065 png: 34015 42569 23161
invalid gamma correction at x: 9 y:29, spng: 56075 18854 33320 png: 3291 42569 10370
invalid gamma correction at x: 10 y:29, spng: 54902 18854 35405 png: 30422 42569 20106
invalid gamma correction at x: 11 y:29, spng: 53698 18854 37352 png: 49873 42569 59793
invalid gamma correction at x: 12 y:29, spng: 52460 18854 39185 png: 60876 42569 4505
invalid gamma correction at x: 13 y:29, spng: 51187 18854 40920 png: 62407 42569 55455
invalid gamma correction at x: 14 y:29, spng: 49874 18854 42571 png: 53954 42569 19366
invalid gamma correction at x: 15 y:29, spng: 48518 18854 44148 png: 34749 42569 29868
invalid gamma correction at x: 16 y:29, spng: 47115 18854 45661 png: 3256 42569 23986
invalid gamma correction at x: 17 y:29, spng: 45661 18854 47115 png: 23986 42569 3256
invalid gamma correction at x: 18 y:29, spng: 44148 18854 48518 png: 29868 42569 34749
invalid gamma correction at x: 19 y:29, spng: 42571 18854 49874 png: 19366 42569 53954
invalid gamma correction at x: 20 y:29, spng: 40920 18854 51187 png: 55455 42569 62407
invalid gamma correction at x: 21 y:29, spng: 39185 18854 52460 png: 4505 42569 60876
invalid gamma correction at x: 22 y:29, spng: 37352 18854 53698 png: 59793 42569 49873
invalid gamma correction at x: 23 y:29, spng: 35405 18854 54902 png: 20106 42569 30422
invalid gamma correction at x: 24 y:29, spng: 33320 18854 56075 png: 10370 42569 3291
invalid gamma correction at x: 25 y:29, spng: 31065 18854 57220 png: 23161 42569 34015
invalid gamma correction at x: 26 y:29, spng: 28595 18854 58337 png: 45935 42569 58083
invalid gamma correction at x: 27 y:29, spng: 25837 18854 59430 png: 60772 42569 9960
invalid gamma correction at x: 28 y:29, spng: 22670 18854 60499 png: 36440 42569 21484
invalid gamma correction at x: 29 y:29, spng: 18854 18854 61546 png: 42569 42569 27376
invalid gamma correction at x: 30 y:29, spng: 13758 18854 62572 png: 48949 42569 27892
invalid gamma correction at x: 31 y:29, spng: 0 18854 63578 png: 0 42569 23288
invalid gamma correction at x: 0 y:30, spng: 65535 13758 0 png: 65535 48949 0
invalid gamma correction at x: 1 y:30, spng: 64565 13758 0 png: 13820 48949 0
invalid gamma correction at x: 2 y:30, spng: 63578 13758 13758 png: 23288 48949 48949
invalid gamma correction at x: 3 y:30, spng: 62572 13758 18854 png: 27892 48949 42569
invalid gamma correction at x: 4 y:30, spng: 61546 13758 22670 png: 27376 48949 36440
invalid gamma correction at x: 5 y:30, spng: 60499 13758 25837 png: 21484 48949 60772
invalid gamma correction at x: 6 y:30, spng: 59430 13758 28595 png: 9960 48949 45935
invalid gamma correction at x: 7 y:30, spng: 58337 13758 31065 png: 58083 48949 23161
invalid gamma correction at x: 8 y:30, spng: 57220 13758 33320 png: 34015 48949 10370
invalid gamma correction at x: 9 y:30, spng: 56075 13758 35405 png: 3291 48949 20106
invalid gamma correction at x: 10 y:30, spng: 54902 13758 37352 png: 30422 48949 59793
invalid gamma correction at x: 11 y:30, spng: 53698 13758 39185 png: 49873 48949 4505
invalid gamma correction at x: 12 y:30, spng: 52460 13758 40920 png: 60876 48949 55455
invalid gamma correction at x: 13 y:30, spng: 51187 13758 42571 png: 62407 48949 19366
invalid gamma correction at x: 14 y:30, spng: 49874 13758 44148 png: 53954 48949 29868
invalid gamma correction at x: 15 y:30, spng: 48518 13758 45661 png: 34749 48949 23986
invalid gamma correction at x: 16 y:30, spng: 47115 13758 47115 png: 3256 48949 3256
invalid gamma correction at x: 17 y:30, spng: 45661 13758 48518 png: 23986 48949 34749
invalid gamma correction at x: 18 y:30, spng: 44148 13758 49874 png: 29868 48949 53954
invalid gamma correction at x: 19 y:30, spng: 42571 13758 51187 png: 19366 48949 62407
invalid gamma correction at x: 20 y:30, spng: 40920 13758 52460 png: 55455 48949 60876
invalid gamma correction at x: 21 y:30, spng: 39185 13758 53698 png: 4505 48949 49873
invalid gamma correction at x: 22 y:30, spng: 37352 13758 54902 png: 59793 48949 30422
invalid gamma correction at x: 23 y:30, spng: 35405 13758 56075 png: 20106 48949 3291
invalid gamma correction at x: 24 y:30, spng: 33320 13758 57220 png: 10370 48949 34015
invalid gamma correction at x: 25 y:30, spng: 31065 13758 58337 png: 23161 48949 58083
invalid gamma correction at x: 26 y:30, spng: 28595 13758 59430 png: 45935 48949 9960
invalid gamma correction at x: 27 y:30, spng: 25837 13758 60499 png: 60772 48949 21484
invalid gamma correction at x: 28 y:30, spng: 22670 13758 61546 png: 36440 48949 27376
invalid gamma correction at x: 29 y:30, spng: 18854 13758 62572 png: 42569 48949 27892
invalid gamma correction at x: 30 y:30, spng: 13758 13758 63578 png: 48949 48949 23288
invalid gamma correction at x: 31 y:30, spng: 0 13758 64565 png: 0 48949 13820
invalid gamma correction at x: 1 y:31, spng: 64565 0 13758 png: 13820 0 48949
invalid gamma correction at x: 2 y:31, spng: 63578 0 18854 png: 23288 0 42569
invalid gamma correction at x: 3 y:31, spng: 62572 0 22670 png: 27892 0 36440
invalid gamma correction at x: 4 y:31, spng: 61546 0 25837 png: 27376 0 60772
invalid gamma correction at x: 5 y:31, spng: 60499 0 28595 png: 21484 0 45935
invalid gamma correction at x: 6 y:31, spng: 59430 0 31065 png: 9960 0 23161
invalid gamma correction at x: 7 y:31, spng: 58337 0 33320 png: 58083 0 10370
invalid gamma correction at x: 8 y:31, spng: 57220 0 35405 png: 34015 0 20106
invalid gamma correction at x: 9 y:31, spng: 56075 0 37352 png: 3291 0 59793
invalid gamma correction at x: 10 y:31, spng: 54902 0 39185 png: 30422 0 4505
invalid gamma correction at x: 11 y:31, spng: 53698 0 40920 png: 49873 0 55455
invalid gamma correction at x: 12 y:31, spng: 52460 0 42571 png: 60876 0 19366
invalid gamma correction at x: 13 y:31, spng: 51187 0 44148 png: 62407 0 29868
invalid gamma correction at x: 14 y:31, spng: 49874 0 45661 png: 53954 0 23986
invalid gamma correction at x: 15 y:31, spng: 48518 0 47115 png: 34749 0 3256
invalid gamma correction at x: 16 y:31, spng: 47115 0 48518 png: 3256 0 34749
invalid gamma correction at x: 17 y:31, spng: 45661 0 49874 png: 23986 0 53954
invalid gamma correction at x: 18 y:31, spng: 44148 0 51187 png: 29868 0 62407
invalid gamma correction at x: 19 y:31, spng: 42571 0 52460 png: 19366 0 60876
invalid gamma correction at x: 20 y:31, spng: 40920 0 53698 png: 55455 0 49873
invalid gamma correction at x: 21 y:31, spng: 39185 0 54902 png: 4505 0 30422
invalid gamma correction at x: 22 y:31, spng: 37352 0 56075 png: 59793 0 3291
invalid gamma correction at x: 23 y:31, spng: 35405 0 57220 png: 20106 0 34015
invalid gamma correction at x: 24 y:31, spng: 33320 0 58337 png: 10370 0 58083
invalid gamma correction at x: 25 y:31, spng: 31065 0 59430 png: 23161 0 9960
invalid gamma correction at x: 26 y:31, spng: 28595 0 60499 png: 45935 0 21484
invalid gamma correction at x: 27 y:31, spng: 25837 0 61546 png: 60772 0 27376
invalid gamma correction at x: 28 y:31, spng: 22670 0 62572 png: 36440 0 27892
invalid gamma correction at x: 29 y:31, spng: 18854 0 63578 png: 42569 0 23288
invalid gamma correction at x: 30 y:31, spng: 13758 0 64565 png: 48949 0 13820
-------
 30/203 basn4a16                                FAIL     0.02 s (exit status 1)
--- command ---
/builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/tests/testsuite /builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/../tests/images/basn4a16.png
--- Listing only the last 100 lines from a long log. ---
alpha mismatch at x:24 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 24 y:29, spng: 41725 41725 41725 png: 64930 64930 64930
alpha mismatch at x:25 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 25 y:29, spng: 37699 37699 37699 png: 17555 17555 17555
alpha mismatch at x:26 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 26 y:29, spng: 33079 33079 33079 png: 14209 14209 14209
alpha mismatch at x:27 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 27 y:29, spng: 27510 27510 27510 png: 30315 30315 30315
alpha mismatch at x:28 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 28 y:29, spng: 20075 20075 20075 png: 27470 27470 27470
alpha mismatch at x:29 y:29, spng: 8457 png: 2337
alpha mismatch at x:30 y:29, spng: 4229 png: 34064
invalid gamma correction at x: 30 y:29, spng: 19433 19433 19433 png: 59723 59723 59723
invalid gamma correction at x: 31 y:29, spng: 25837 25837 25837 png: 60772 60772 60772
invalid gamma correction at x: 0 y:30, spng: 18854 18854 18854 png: 42569 42569 42569
alpha mismatch at x:1 y:30, spng: 4229 png: 34064
alpha mismatch at x:2 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 2 y:30, spng: 19433 19433 19433 png: 59723 59723 59723
alpha mismatch at x:3 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 3 y:30, spng: 26632 26632 26632 png: 2152 2152 2152
alpha mismatch at x:4 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 4 y:30, spng: 32021 32021 32021 png: 5501 5501 5501
alpha mismatch at x:5 y:30, spng: 4229 png: 34064
alpha mismatch at x:6 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 6 y:30, spng: 40391 40391 40391 png: 51101 51101 51101
alpha mismatch at x:7 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 7 y:30, spng: 43881 43881 43881 png: 27051 27051 27051
alpha mismatch at x:8 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 8 y:30, spng: 47066 47066 47066 png: 55991 55991 55991
alpha mismatch at x:9 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 9 y:30, spng: 50011 50011 50011 png: 23747 23747 23747
alpha mismatch at x:10 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 10 y:30, spng: 52761 52761 52761 png: 6862 6862 6862
alpha mismatch at x:11 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 11 y:30, spng: 55350 55350 55350 png: 14040 14040 14040
alpha mismatch at x:12 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 12 y:30, spng: 57801 57801 57801 png: 51681 51681 51681
alpha mismatch at x:13 y:30, spng: 4229 png: 34064
alpha mismatch at x:14 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 14 y:30, spng: 62361 62361 62361 png: 39411 39411 39411
alpha mismatch at x:15 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 15 y:30, spng: 64497 64497 64497 png: 62203 62203 62203
alpha mismatch at x:16 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 16 y:30, spng: 64497 64497 64497 png: 62203 62203 62203
alpha mismatch at x:17 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 17 y:30, spng: 62361 62361 62361 png: 39411 39411 39411
alpha mismatch at x:18 y:30, spng: 4229 png: 34064
alpha mismatch at x:19 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 19 y:30, spng: 57801 57801 57801 png: 51681 51681 51681
alpha mismatch at x:20 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 20 y:30, spng: 55350 55350 55350 png: 14040 14040 14040
alpha mismatch at x:21 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 21 y:30, spng: 52761 52761 52761 png: 6862 6862 6862
alpha mismatch at x:22 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 22 y:30, spng: 50011 50011 50011 png: 23747 23747 23747
alpha mismatch at x:23 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 23 y:30, spng: 47066 47066 47066 png: 55991 55991 55991
alpha mismatch at x:24 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 24 y:30, spng: 43881 43881 43881 png: 27051 27051 27051
alpha mismatch at x:25 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 25 y:30, spng: 40391 40391 40391 png: 51101 51101 51101
alpha mismatch at x:26 y:30, spng: 4229 png: 34064
alpha mismatch at x:27 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 27 y:30, spng: 32021 32021 32021 png: 5501 5501 5501
alpha mismatch at x:28 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 28 y:30, spng: 26632 26632 26632 png: 2152 2152 2152
alpha mismatch at x:29 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 29 y:30, spng: 19433 19433 19433 png: 59723 59723 59723
alpha mismatch at x:30 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 31 y:30, spng: 18854 18854 18854 png: 42569 42569 42569
invalid gamma correction at x: 1 y:31, spng: 18854 18854 18854 png: 42569 42569 42569
invalid gamma correction at x: 2 y:31, spng: 25837 25837 25837 png: 60772 60772 60772
invalid gamma correction at x: 3 y:31, spng: 31065 31065 31065 png: 23161 23161 23161
invalid gamma correction at x: 4 y:31, spng: 35405 35405 35405 png: 20106 20106 20106
invalid gamma correction at x: 5 y:31, spng: 39185 39185 39185 png: 4505 4505 4505
invalid gamma correction at x: 6 y:31, spng: 42571 42571 42571 png: 19366 19366 19366
invalid gamma correction at x: 7 y:31, spng: 45661 45661 45661 png: 23986 23986 23986
invalid gamma correction at x: 8 y:31, spng: 48518 48518 48518 png: 34493 34493 34493
invalid gamma correction at x: 9 y:31, spng: 51186 51186 51186 png: 62407 62407 62407
invalid gamma correction at x: 10 y:31, spng: 53697 53697 53697 png: 49873 49873 49873
invalid gamma correction at x: 11 y:31, spng: 56075 56075 56075 png: 3035 3035 3035
invalid gamma correction at x: 13 y:31, spng: 60499 60499 60499 png: 21484 21484 21484
invalid gamma correction at x: 14 y:31, spng: 62571 62571 62571 png: 27892 27892 27892
invalid gamma correction at x: 15 y:31, spng: 64565 64565 64565 png: 13820 13820 13820
invalid gamma correction at x: 16 y:31, spng: 64565 64565 64565 png: 13820 13820 13820
invalid gamma correction at x: 17 y:31, spng: 62571 62571 62571 png: 27892 27892 27892
invalid gamma correction at x: 18 y:31, spng: 60499 60499 60499 png: 21484 21484 21484
invalid gamma correction at x: 20 y:31, spng: 56075 56075 56075 png: 3035 3035 3035
invalid gamma correction at x: 21 y:31, spng: 53697 53697 53697 png: 49873 49873 49873
invalid gamma correction at x: 22 y:31, spng: 51186 51186 51186 png: 62407 62407 62407
invalid gamma correction at x: 23 y:31, spng: 48518 48518 48518 png: 34493 34493 34493
invalid gamma correction at x: 24 y:31, spng: 45661 45661 45661 png: 23986 23986 23986
invalid gamma correction at x: 25 y:31, spng: 42571 42571 42571 png: 19366 19366 19366
invalid gamma correction at x: 26 y:31, spng: 39185 39185 39185 png: 4505 4505 4505
invalid gamma correction at x: 27 y:31, spng: 35405 35405 35405 png: 20106 20106 20106
invalid gamma correction at x: 28 y:31, spng: 31065 31065 31065 png: 23161 23161 23161
invalid gamma correction at x: 29 y:31, spng: 25837 25837 25837 png: 60772 60772 60772
invalid gamma correction at x: 30 y:31, spng: 18854 18854 18854 png: 42569 42569 42569
-------
 32/203 basn6a16                                FAIL     0.03 s (exit status 1)
--- command ---
/builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/tests/testsuite /builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/../tests/images/basn6a16.png
--- Listing only the last 100 lines from a long log. ---
alpha mismatch at x:27 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 27 y:29, spng: 20075 0 63281 png: 27470 0 13047
alpha mismatch at x:28 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 28 y:29, spng: 14649 0 64419 png: 14905 0 42235
alpha mismatch at x:29 y:29, spng: 8457 png: 2337
alpha mismatch at x:30 y:29, spng: 4229 png: 34064
invalid gamma correction at x: 30 y:29, spng: 0 14179 64497 png: 0 25655 62203
invalid gamma correction at x: 31 y:29, spng: 0 18854 63577 png: 0 42569 23288
invalid gamma correction at x: 0 y:30, spng: 65535 13758 0 png: 65535 48949 0
alpha mismatch at x:1 y:30, spng: 4229 png: 34064
alpha mismatch at x:2 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 2 y:30, spng: 64497 0 14179 png: 62203 0 25655
alpha mismatch at x:3 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 3 y:30, spng: 63440 0 19433 png: 53495 0 59723
alpha mismatch at x:4 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 4 y:30, spng: 62361 0 23367 png: 39411 0 18267
alpha mismatch at x:5 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 5 y:30, spng: 61259 0 26632 png: 19439 0 2152
alpha mismatch at x:6 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 6 y:30, spng: 60132 0 29475 png: 58858 0 9075
alpha mismatch at x:7 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 7 y:30, spng: 58981 0 32021 png: 26086 0 5501
alpha mismatch at x:8 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 8 y:30, spng: 57801 0 34345 png: 51681 0 10630
alpha mismatch at x:9 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 9 y:30, spng: 56591 0 36495 png: 4317 0 36750
alpha mismatch at x:10 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 10 y:30, spng: 55350 0 38502 png: 14040 0 26262
alpha mismatch at x:11 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 11 y:30, spng: 54074 0 40391 png: 15315 0 51101
alpha mismatch at x:12 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 12 y:30, spng: 52761 0 42179 png: 6862 0 50340
alpha mismatch at x:13 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 13 y:30, spng: 51409 0 43881 png: 53704 0 27051
alpha mismatch at x:14 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 14 y:30, spng: 50011 0 45507 png: 23747 0 50097
alpha mismatch at x:15 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 15 y:30, spng: 48565 0 47066 png: 46781 0 55991
alpha mismatch at x:16 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 16 y:30, spng: 47066 0 48565 png: 55991 0 46781
alpha mismatch at x:17 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 17 y:30, spng: 45507 0 50011 png: 50097 0 23747
alpha mismatch at x:18 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 18 y:30, spng: 43881 0 51409 png: 27051 0 53704
alpha mismatch at x:19 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 19 y:30, spng: 42179 0 52761 png: 50340 0 6862
alpha mismatch at x:20 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 20 y:30, spng: 40391 0 54074 png: 51101 0 15315
alpha mismatch at x:21 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 21 y:30, spng: 38502 0 55350 png: 26262 0 14040
alpha mismatch at x:22 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 22 y:30, spng: 36495 0 56591 png: 36750 0 4317
alpha mismatch at x:23 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 23 y:30, spng: 34345 0 57801 png: 10630 0 51681
alpha mismatch at x:24 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 24 y:30, spng: 32021 0 58981 png: 5501 0 26086
alpha mismatch at x:25 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 25 y:30, spng: 29475 0 60132 png: 9075 0 58858
alpha mismatch at x:26 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 26 y:30, spng: 26632 0 61259 png: 2152 0 19439
alpha mismatch at x:27 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 27 y:30, spng: 23367 0 62361 png: 18267 0 39411
alpha mismatch at x:28 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 28 y:30, spng: 19433 0 63440 png: 59723 0 53495
alpha mismatch at x:29 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 29 y:30, spng: 14179 0 64497 png: 25655 0 62203
alpha mismatch at x:30 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 31 y:30, spng: 0 13758 64565 png: 0 48949 13820
invalid gamma correction at x: 1 y:31, spng: 64565 0 13758 png: 13820 0 48949
invalid gamma correction at x: 2 y:31, spng: 63577 0 18854 png: 23288 0 42569
invalid gamma correction at x: 3 y:31, spng: 62571 0 22670 png: 27892 0 36440
invalid gamma correction at x: 4 y:31, spng: 61545 0 25837 png: 27376 0 60772
invalid gamma correction at x: 5 y:31, spng: 60499 0 28595 png: 21484 0 45935
invalid gamma correction at x: 6 y:31, spng: 59430 0 31065 png: 9960 0 23161
invalid gamma correction at x: 7 y:31, spng: 58337 0 33320 png: 57827 0 10370
invalid gamma correction at x: 8 y:31, spng: 57219 0 35405 png: 34015 0 20106
invalid gamma correction at x: 9 y:31, spng: 56075 0 37352 png: 3035 0 59793
invalid gamma correction at x: 10 y:31, spng: 54901 0 39185 png: 30422 0 4505
invalid gamma correction at x: 11 y:31, spng: 53697 0 40920 png: 49873 0 55455
invalid gamma correction at x: 12 y:31, spng: 52460 0 42571 png: 60620 0 19366
invalid gamma correction at x: 13 y:31, spng: 51186 0 44148 png: 62407 0 29868
invalid gamma correction at x: 14 y:31, spng: 49873 0 45661 png: 53954 0 23986
invalid gamma correction at x: 15 y:31, spng: 48518 0 47115 png: 34493 0 3256
invalid gamma correction at x: 16 y:31, spng: 47115 0 48518 png: 3256 0 34493
invalid gamma correction at x: 17 y:31, spng: 45661 0 49873 png: 23986 0 53954
invalid gamma correction at x: 18 y:31, spng: 44148 0 51186 png: 29868 0 62407
invalid gamma correction at x: 19 y:31, spng: 42571 0 52460 png: 19366 0 60620
invalid gamma correction at x: 20 y:31, spng: 40920 0 53697 png: 55455 0 49873
invalid gamma correction at x: 21 y:31, spng: 39185 0 54901 png: 4505 0 30422
invalid gamma correction at x: 22 y:31, spng: 37352 0 56075 png: 59793 0 3035
invalid gamma correction at x: 23 y:31, spng: 35405 0 57219 png: 20106 0 34015
invalid gamma correction at x: 24 y:31, spng: 33320 0 58337 png: 10370 0 57827
invalid gamma correction at x: 25 y:31, spng: 31065 0 59430 png: 23161 0 9960
invalid gamma correction at x: 26 y:31, spng: 28595 0 60499 png: 45935 0 21484
invalid gamma correction at x: 27 y:31, spng: 25837 0 61545 png: 60772 0 27376
invalid gamma correction at x: 28 y:31, spng: 22670 0 62571 png: 36440 0 27892
invalid gamma correction at x: 29 y:31, spng: 18854 0 63577 png: 42569 0 23288
invalid gamma correction at x: 30 y:31, spng: 13758 0 64565 png: 48949 0 13820
-------
 34/203 bgai4a16                                FAIL     0.01 s (exit status 1)
--- command ---
/builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/tests/testsuite /builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/../tests/images/bgai4a16.png
--- Listing only the last 100 lines from a long log. ---
alpha mismatch at x:24 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 24 y:29, spng: 41725 41725 41725 png: 64930 64930 64930
alpha mismatch at x:25 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 25 y:29, spng: 37699 37699 37699 png: 17555 17555 17555
alpha mismatch at x:26 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 26 y:29, spng: 33079 33079 33079 png: 14209 14209 14209
alpha mismatch at x:27 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 27 y:29, spng: 27510 27510 27510 png: 30315 30315 30315
alpha mismatch at x:28 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 28 y:29, spng: 20075 20075 20075 png: 27470 27470 27470
alpha mismatch at x:29 y:29, spng: 8457 png: 2337
alpha mismatch at x:30 y:29, spng: 4229 png: 34064
invalid gamma correction at x: 30 y:29, spng: 19433 19433 19433 png: 59723 59723 59723
invalid gamma correction at x: 31 y:29, spng: 25837 25837 25837 png: 60772 60772 60772
invalid gamma correction at x: 0 y:30, spng: 18854 18854 18854 png: 42569 42569 42569
alpha mismatch at x:1 y:30, spng: 4229 png: 34064
alpha mismatch at x:2 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 2 y:30, spng: 19433 19433 19433 png: 59723 59723 59723
alpha mismatch at x:3 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 3 y:30, spng: 26632 26632 26632 png: 2152 2152 2152
alpha mismatch at x:4 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 4 y:30, spng: 32021 32021 32021 png: 5501 5501 5501
alpha mismatch at x:5 y:30, spng: 4229 png: 34064
alpha mismatch at x:6 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 6 y:30, spng: 40391 40391 40391 png: 51101 51101 51101
alpha mismatch at x:7 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 7 y:30, spng: 43881 43881 43881 png: 27051 27051 27051
alpha mismatch at x:8 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 8 y:30, spng: 47066 47066 47066 png: 55991 55991 55991
alpha mismatch at x:9 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 9 y:30, spng: 50011 50011 50011 png: 23747 23747 23747
alpha mismatch at x:10 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 10 y:30, spng: 52761 52761 52761 png: 6862 6862 6862
alpha mismatch at x:11 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 11 y:30, spng: 55350 55350 55350 png: 14040 14040 14040
alpha mismatch at x:12 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 12 y:30, spng: 57801 57801 57801 png: 51681 51681 51681
alpha mismatch at x:13 y:30, spng: 4229 png: 34064
alpha mismatch at x:14 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 14 y:30, spng: 62361 62361 62361 png: 39411 39411 39411
alpha mismatch at x:15 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 15 y:30, spng: 64497 64497 64497 png: 62203 62203 62203
alpha mismatch at x:16 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 16 y:30, spng: 64497 64497 64497 png: 62203 62203 62203
alpha mismatch at x:17 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 17 y:30, spng: 62361 62361 62361 png: 39411 39411 39411
alpha mismatch at x:18 y:30, spng: 4229 png: 34064
alpha mismatch at x:19 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 19 y:30, spng: 57801 57801 57801 png: 51681 51681 51681
alpha mismatch at x:20 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 20 y:30, spng: 55350 55350 55350 png: 14040 14040 14040
alpha mismatch at x:21 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 21 y:30, spng: 52761 52761 52761 png: 6862 6862 6862
alpha mismatch at x:22 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 22 y:30, spng: 50011 50011 50011 png: 23747 23747 23747
alpha mismatch at x:23 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 23 y:30, spng: 47066 47066 47066 png: 55991 55991 55991
alpha mismatch at x:24 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 24 y:30, spng: 43881 43881 43881 png: 27051 27051 27051
alpha mismatch at x:25 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 25 y:30, spng: 40391 40391 40391 png: 51101 51101 51101
alpha mismatch at x:26 y:30, spng: 4229 png: 34064
alpha mismatch at x:27 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 27 y:30, spng: 32021 32021 32021 png: 5501 5501 5501
alpha mismatch at x:28 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 28 y:30, spng: 26632 26632 26632 png: 2152 2152 2152
alpha mismatch at x:29 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 29 y:30, spng: 19433 19433 19433 png: 59723 59723 59723
alpha mismatch at x:30 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 31 y:30, spng: 18854 18854 18854 png: 42569 42569 42569
invalid gamma correction at x: 1 y:31, spng: 18854 18854 18854 png: 42569 42569 42569
invalid gamma correction at x: 2 y:31, spng: 25837 25837 25837 png: 60772 60772 60772
invalid gamma correction at x: 3 y:31, spng: 31065 31065 31065 png: 23161 23161 23161
invalid gamma correction at x: 4 y:31, spng: 35405 35405 35405 png: 20106 20106 20106
invalid gamma correction at x: 5 y:31, spng: 39185 39185 39185 png: 4505 4505 4505
invalid gamma correction at x: 6 y:31, spng: 42571 42571 42571 png: 19366 19366 19366
invalid gamma correction at x: 7 y:31, spng: 45661 45661 45661 png: 23986 23986 23986
invalid gamma correction at x: 8 y:31, spng: 48518 48518 48518 png: 34493 34493 34493
invalid gamma correction at x: 9 y:31, spng: 51186 51186 51186 png: 62407 62407 62407
invalid gamma correction at x: 10 y:31, spng: 53697 53697 53697 png: 49873 49873 49873
invalid gamma correction at x: 11 y:31, spng: 56075 56075 56075 png: 3035 3035 3035
invalid gamma correction at x: 13 y:31, spng: 60499 60499 60499 png: 21484 21484 21484
invalid gamma correction at x: 14 y:31, spng: 62571 62571 62571 png: 27892 27892 27892
invalid gamma correction at x: 15 y:31, spng: 64565 64565 64565 png: 13820 13820 13820
invalid gamma correction at x: 16 y:31, spng: 64565 64565 64565 png: 13820 13820 13820
invalid gamma correction at x: 17 y:31, spng: 62571 62571 62571 png: 27892 27892 27892
invalid gamma correction at x: 18 y:31, spng: 60499 60499 60499 png: 21484 21484 21484
invalid gamma correction at x: 20 y:31, spng: 56075 56075 56075 png: 3035 3035 3035
invalid gamma correction at x: 21 y:31, spng: 53697 53697 53697 png: 49873 49873 49873
invalid gamma correction at x: 22 y:31, spng: 51186 51186 51186 png: 62407 62407 62407
invalid gamma correction at x: 23 y:31, spng: 48518 48518 48518 png: 34493 34493 34493
invalid gamma correction at x: 24 y:31, spng: 45661 45661 45661 png: 23986 23986 23986
invalid gamma correction at x: 25 y:31, spng: 42571 42571 42571 png: 19366 19366 19366
invalid gamma correction at x: 26 y:31, spng: 39185 39185 39185 png: 4505 4505 4505
invalid gamma correction at x: 27 y:31, spng: 35405 35405 35405 png: 20106 20106 20106
invalid gamma correction at x: 28 y:31, spng: 31065 31065 31065 png: 23161 23161 23161
invalid gamma correction at x: 29 y:31, spng: 25837 25837 25837 png: 60772 60772 60772
invalid gamma correction at x: 30 y:31, spng: 18854 18854 18854 png: 42569 42569 42569
-------
 36/203 bgan6a16                                FAIL     0.02 s (exit status 1)
--- command ---
/builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/tests/testsuite /builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/../tests/images/bgan6a16.png
--- Listing only the last 100 lines from a long log. ---
alpha mismatch at x:27 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 27 y:29, spng: 20075 0 63281 png: 27470 0 13047
alpha mismatch at x:28 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 28 y:29, spng: 14649 0 64419 png: 14905 0 42235
alpha mismatch at x:29 y:29, spng: 8457 png: 2337
alpha mismatch at x:30 y:29, spng: 4229 png: 34064
invalid gamma correction at x: 30 y:29, spng: 0 14179 64497 png: 0 25655 62203
invalid gamma correction at x: 31 y:29, spng: 0 18854 63577 png: 0 42569 23288
invalid gamma correction at x: 0 y:30, spng: 65535 13758 0 png: 65535 48949 0
alpha mismatch at x:1 y:30, spng: 4229 png: 34064
alpha mismatch at x:2 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 2 y:30, spng: 64497 0 14179 png: 62203 0 25655
alpha mismatch at x:3 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 3 y:30, spng: 63440 0 19433 png: 53495 0 59723
alpha mismatch at x:4 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 4 y:30, spng: 62361 0 23367 png: 39411 0 18267
alpha mismatch at x:5 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 5 y:30, spng: 61259 0 26632 png: 19439 0 2152
alpha mismatch at x:6 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 6 y:30, spng: 60132 0 29475 png: 58858 0 9075
alpha mismatch at x:7 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 7 y:30, spng: 58981 0 32021 png: 26086 0 5501
alpha mismatch at x:8 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 8 y:30, spng: 57801 0 34345 png: 51681 0 10630
alpha mismatch at x:9 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 9 y:30, spng: 56591 0 36495 png: 4317 0 36750
alpha mismatch at x:10 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 10 y:30, spng: 55350 0 38502 png: 14040 0 26262
alpha mismatch at x:11 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 11 y:30, spng: 54074 0 40391 png: 15315 0 51101
alpha mismatch at x:12 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 12 y:30, spng: 52761 0 42179 png: 6862 0 50340
alpha mismatch at x:13 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 13 y:30, spng: 51409 0 43881 png: 53704 0 27051
alpha mismatch at x:14 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 14 y:30, spng: 50011 0 45507 png: 23747 0 50097
alpha mismatch at x:15 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 15 y:30, spng: 48565 0 47066 png: 46781 0 55991
alpha mismatch at x:16 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 16 y:30, spng: 47066 0 48565 png: 55991 0 46781
alpha mismatch at x:17 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 17 y:30, spng: 45507 0 50011 png: 50097 0 23747
alpha mismatch at x:18 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 18 y:30, spng: 43881 0 51409 png: 27051 0 53704
alpha mismatch at x:19 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 19 y:30, spng: 42179 0 52761 png: 50340 0 6862
alpha mismatch at x:20 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 20 y:30, spng: 40391 0 54074 png: 51101 0 15315
alpha mismatch at x:21 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 21 y:30, spng: 38502 0 55350 png: 26262 0 14040
alpha mismatch at x:22 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 22 y:30, spng: 36495 0 56591 png: 36750 0 4317
alpha mismatch at x:23 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 23 y:30, spng: 34345 0 57801 png: 10630 0 51681
alpha mismatch at x:24 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 24 y:30, spng: 32021 0 58981 png: 5501 0 26086
alpha mismatch at x:25 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 25 y:30, spng: 29475 0 60132 png: 9075 0 58858
alpha mismatch at x:26 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 26 y:30, spng: 26632 0 61259 png: 2152 0 19439
alpha mismatch at x:27 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 27 y:30, spng: 23367 0 62361 png: 18267 0 39411
alpha mismatch at x:28 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 28 y:30, spng: 19433 0 63440 png: 59723 0 53495
alpha mismatch at x:29 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 29 y:30, spng: 14179 0 64497 png: 25655 0 62203
alpha mismatch at x:30 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 31 y:30, spng: 0 13758 64565 png: 0 48949 13820
invalid gamma correction at x: 1 y:31, spng: 64565 0 13758 png: 13820 0 48949
invalid gamma correction at x: 2 y:31, spng: 63577 0 18854 png: 23288 0 42569
invalid gamma correction at x: 3 y:31, spng: 62571 0 22670 png: 27892 0 36440
invalid gamma correction at x: 4 y:31, spng: 61545 0 25837 png: 27376 0 60772
invalid gamma correction at x: 5 y:31, spng: 60499 0 28595 png: 21484 0 45935
invalid gamma correction at x: 6 y:31, spng: 59430 0 31065 png: 9960 0 23161
invalid gamma correction at x: 7 y:31, spng: 58337 0 33320 png: 57827 0 10370
invalid gamma correction at x: 8 y:31, spng: 57219 0 35405 png: 34015 0 20106
invalid gamma correction at x: 9 y:31, spng: 56075 0 37352 png: 3035 0 59793
invalid gamma correction at x: 10 y:31, spng: 54901 0 39185 png: 30422 0 4505
invalid gamma correction at x: 11 y:31, spng: 53697 0 40920 png: 49873 0 55455
invalid gamma correction at x: 12 y:31, spng: 52460 0 42571 png: 60620 0 19366
invalid gamma correction at x: 13 y:31, spng: 51186 0 44148 png: 62407 0 29868
invalid gamma correction at x: 14 y:31, spng: 49873 0 45661 png: 53954 0 23986
invalid gamma correction at x: 15 y:31, spng: 48518 0 47115 png: 34493 0 3256
invalid gamma correction at x: 16 y:31, spng: 47115 0 48518 png: 3256 0 34493
invalid gamma correction at x: 17 y:31, spng: 45661 0 49873 png: 23986 0 53954
invalid gamma correction at x: 18 y:31, spng: 44148 0 51186 png: 29868 0 62407
invalid gamma correction at x: 19 y:31, spng: 42571 0 52460 png: 19366 0 60620
invalid gamma correction at x: 20 y:31, spng: 40920 0 53697 png: 55455 0 49873
invalid gamma correction at x: 21 y:31, spng: 39185 0 54901 png: 4505 0 30422
invalid gamma correction at x: 22 y:31, spng: 37352 0 56075 png: 59793 0 3035
invalid gamma correction at x: 23 y:31, spng: 35405 0 57219 png: 20106 0 34015
invalid gamma correction at x: 24 y:31, spng: 33320 0 58337 png: 10370 0 57827
invalid gamma correction at x: 25 y:31, spng: 31065 0 59430 png: 23161 0 9960
invalid gamma correction at x: 26 y:31, spng: 28595 0 60499 png: 45935 0 21484
invalid gamma correction at x: 27 y:31, spng: 25837 0 61545 png: 60772 0 27376
invalid gamma correction at x: 28 y:31, spng: 22670 0 62571 png: 36440 0 27892
invalid gamma correction at x: 29 y:31, spng: 18854 0 63577 png: 42569 0 23288
invalid gamma correction at x: 30 y:31, spng: 13758 0 64565 png: 48949 0 13820
-------
 38/203 bggn4a16                                FAIL     0.01 s (exit status 1)
--- command ---
/builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/tests/testsuite /builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/../tests/images/bggn4a16.png
--- Listing only the last 100 lines from a long log. ---
alpha mismatch at x:24 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 24 y:29, spng: 41725 41725 41725 png: 64930 64930 64930
alpha mismatch at x:25 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 25 y:29, spng: 37699 37699 37699 png: 17555 17555 17555
alpha mismatch at x:26 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 26 y:29, spng: 33079 33079 33079 png: 14209 14209 14209
alpha mismatch at x:27 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 27 y:29, spng: 27510 27510 27510 png: 30315 30315 30315
alpha mismatch at x:28 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 28 y:29, spng: 20075 20075 20075 png: 27470 27470 27470
alpha mismatch at x:29 y:29, spng: 8457 png: 2337
alpha mismatch at x:30 y:29, spng: 4229 png: 34064
invalid gamma correction at x: 30 y:29, spng: 19433 19433 19433 png: 59723 59723 59723
invalid gamma correction at x: 31 y:29, spng: 25837 25837 25837 png: 60772 60772 60772
invalid gamma correction at x: 0 y:30, spng: 18854 18854 18854 png: 42569 42569 42569
alpha mismatch at x:1 y:30, spng: 4229 png: 34064
alpha mismatch at x:2 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 2 y:30, spng: 19433 19433 19433 png: 59723 59723 59723
alpha mismatch at x:3 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 3 y:30, spng: 26632 26632 26632 png: 2152 2152 2152
alpha mismatch at x:4 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 4 y:30, spng: 32021 32021 32021 png: 5501 5501 5501
alpha mismatch at x:5 y:30, spng: 4229 png: 34064
alpha mismatch at x:6 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 6 y:30, spng: 40391 40391 40391 png: 51101 51101 51101
alpha mismatch at x:7 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 7 y:30, spng: 43881 43881 43881 png: 27051 27051 27051
alpha mismatch at x:8 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 8 y:30, spng: 47066 47066 47066 png: 55991 55991 55991
alpha mismatch at x:9 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 9 y:30, spng: 50011 50011 50011 png: 23747 23747 23747
alpha mismatch at x:10 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 10 y:30, spng: 52761 52761 52761 png: 6862 6862 6862
alpha mismatch at x:11 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 11 y:30, spng: 55350 55350 55350 png: 14040 14040 14040
alpha mismatch at x:12 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 12 y:30, spng: 57801 57801 57801 png: 51681 51681 51681
alpha mismatch at x:13 y:30, spng: 4229 png: 34064
alpha mismatch at x:14 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 14 y:30, spng: 62361 62361 62361 png: 39411 39411 39411
alpha mismatch at x:15 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 15 y:30, spng: 64497 64497 64497 png: 62203 62203 62203
alpha mismatch at x:16 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 16 y:30, spng: 64497 64497 64497 png: 62203 62203 62203
alpha mismatch at x:17 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 17 y:30, spng: 62361 62361 62361 png: 39411 39411 39411
alpha mismatch at x:18 y:30, spng: 4229 png: 34064
alpha mismatch at x:19 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 19 y:30, spng: 57801 57801 57801 png: 51681 51681 51681
alpha mismatch at x:20 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 20 y:30, spng: 55350 55350 55350 png: 14040 14040 14040
alpha mismatch at x:21 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 21 y:30, spng: 52761 52761 52761 png: 6862 6862 6862
alpha mismatch at x:22 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 22 y:30, spng: 50011 50011 50011 png: 23747 23747 23747
alpha mismatch at x:23 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 23 y:30, spng: 47066 47066 47066 png: 55991 55991 55991
alpha mismatch at x:24 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 24 y:30, spng: 43881 43881 43881 png: 27051 27051 27051
alpha mismatch at x:25 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 25 y:30, spng: 40391 40391 40391 png: 51101 51101 51101
alpha mismatch at x:26 y:30, spng: 4229 png: 34064
alpha mismatch at x:27 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 27 y:30, spng: 32021 32021 32021 png: 5501 5501 5501
alpha mismatch at x:28 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 28 y:30, spng: 26632 26632 26632 png: 2152 2152 2152
alpha mismatch at x:29 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 29 y:30, spng: 19433 19433 19433 png: 59723 59723 59723
alpha mismatch at x:30 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 31 y:30, spng: 18854 18854 18854 png: 42569 42569 42569
invalid gamma correction at x: 1 y:31, spng: 18854 18854 18854 png: 42569 42569 42569
invalid gamma correction at x: 2 y:31, spng: 25837 25837 25837 png: 60772 60772 60772
invalid gamma correction at x: 3 y:31, spng: 31065 31065 31065 png: 23161 23161 23161
invalid gamma correction at x: 4 y:31, spng: 35405 35405 35405 png: 20106 20106 20106
invalid gamma correction at x: 5 y:31, spng: 39185 39185 39185 png: 4505 4505 4505
invalid gamma correction at x: 6 y:31, spng: 42571 42571 42571 png: 19366 19366 19366
invalid gamma correction at x: 7 y:31, spng: 45661 45661 45661 png: 23986 23986 23986
invalid gamma correction at x: 8 y:31, spng: 48518 48518 48518 png: 34493 34493 34493
invalid gamma correction at x: 9 y:31, spng: 51186 51186 51186 png: 62407 62407 62407
invalid gamma correction at x: 10 y:31, spng: 53697 53697 53697 png: 49873 49873 49873
invalid gamma correction at x: 11 y:31, spng: 56075 56075 56075 png: 3035 3035 3035
invalid gamma correction at x: 13 y:31, spng: 60499 60499 60499 png: 21484 21484 21484
invalid gamma correction at x: 14 y:31, spng: 62571 62571 62571 png: 27892 27892 27892
invalid gamma correction at x: 15 y:31, spng: 64565 64565 64565 png: 13820 13820 13820
invalid gamma correction at x: 16 y:31, spng: 64565 64565 64565 png: 13820 13820 13820
invalid gamma correction at x: 17 y:31, spng: 62571 62571 62571 png: 27892 27892 27892
invalid gamma correction at x: 18 y:31, spng: 60499 60499 60499 png: 21484 21484 21484
invalid gamma correction at x: 20 y:31, spng: 56075 56075 56075 png: 3035 3035 3035
invalid gamma correction at x: 21 y:31, spng: 53697 53697 53697 png: 49873 49873 49873
invalid gamma correction at x: 22 y:31, spng: 51186 51186 51186 png: 62407 62407 62407
invalid gamma correction at x: 23 y:31, spng: 48518 48518 48518 png: 34493 34493 34493
invalid gamma correction at x: 24 y:31, spng: 45661 45661 45661 png: 23986 23986 23986
invalid gamma correction at x: 25 y:31, spng: 42571 42571 42571 png: 19366 19366 19366
invalid gamma correction at x: 26 y:31, spng: 39185 39185 39185 png: 4505 4505 4505
invalid gamma correction at x: 27 y:31, spng: 35405 35405 35405 png: 20106 20106 20106
invalid gamma correction at x: 28 y:31, spng: 31065 31065 31065 png: 23161 23161 23161
invalid gamma correction at x: 29 y:31, spng: 25837 25837 25837 png: 60772 60772 60772
invalid gamma correction at x: 30 y:31, spng: 18854 18854 18854 png: 42569 42569 42569
-------
 40/203 bgyn6a16                                FAIL     0.02 s (exit status 1)
--- command ---
/builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/tests/testsuite /builddir/build/BUILD/libspng-0.5.0/s390x-redhat-linux-gnu/../tests/images/bgyn6a16.png
--- Listing only the last 100 lines from a long log. ---
alpha mismatch at x:27 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 27 y:29, spng: 20075 0 63281 png: 27470 0 13047
alpha mismatch at x:28 y:29, spng: 8457 png: 2337
invalid gamma correction at x: 28 y:29, spng: 14649 0 64419 png: 14905 0 42235
alpha mismatch at x:29 y:29, spng: 8457 png: 2337
alpha mismatch at x:30 y:29, spng: 4229 png: 34064
invalid gamma correction at x: 30 y:29, spng: 0 14179 64497 png: 0 25655 62203
invalid gamma correction at x: 31 y:29, spng: 0 18854 63577 png: 0 42569 23288
invalid gamma correction at x: 0 y:30, spng: 65535 13758 0 png: 65535 48949 0
alpha mismatch at x:1 y:30, spng: 4229 png: 34064
alpha mismatch at x:2 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 2 y:30, spng: 64497 0 14179 png: 62203 0 25655
alpha mismatch at x:3 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 3 y:30, spng: 63440 0 19433 png: 53495 0 59723
alpha mismatch at x:4 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 4 y:30, spng: 62361 0 23367 png: 39411 0 18267
alpha mismatch at x:5 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 5 y:30, spng: 61259 0 26632 png: 19439 0 2152
alpha mismatch at x:6 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 6 y:30, spng: 60132 0 29475 png: 58858 0 9075
alpha mismatch at x:7 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 7 y:30, spng: 58981 0 32021 png: 26086 0 5501
alpha mismatch at x:8 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 8 y:30, spng: 57801 0 34345 png: 51681 0 10630
alpha mismatch at x:9 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 9 y:30, spng: 56591 0 36495 png: 4317 0 36750
alpha mismatch at x:10 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 10 y:30, spng: 55350 0 38502 png: 14040 0 26262
alpha mismatch at x:11 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 11 y:30, spng: 54074 0 40391 png: 15315 0 51101
alpha mismatch at x:12 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 12 y:30, spng: 52761 0 42179 png: 6862 0 50340
alpha mismatch at x:13 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 13 y:30, spng: 51409 0 43881 png: 53704 0 27051
alpha mismatch at x:14 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 14 y:30, spng: 50011 0 45507 png: 23747 0 50097
alpha mismatch at x:15 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 15 y:30, spng: 48565 0 47066 png: 46781 0 55991
alpha mismatch at x:16 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 16 y:30, spng: 47066 0 48565 png: 55991 0 46781
alpha mismatch at x:17 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 17 y:30, spng: 45507 0 50011 png: 50097 0 23747
alpha mismatch at x:18 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 18 y:30, spng: 43881 0 51409 png: 27051 0 53704
alpha mismatch at x:19 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 19 y:30, spng: 42179 0 52761 png: 50340 0 6862
alpha mismatch at x:20 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 20 y:30, spng: 40391 0 54074 png: 51101 0 15315
alpha mismatch at x:21 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 21 y:30, spng: 38502 0 55350 png: 26262 0 14040
alpha mismatch at x:22 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 22 y:30, spng: 36495 0 56591 png: 36750 0 4317
alpha mismatch at x:23 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 23 y:30, spng: 34345 0 57801 png: 10630 0 51681
alpha mismatch at x:24 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 24 y:30, spng: 32021 0 58981 png: 5501 0 26086
alpha mismatch at x:25 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 25 y:30, spng: 29475 0 60132 png: 9075 0 58858
alpha mismatch at x:26 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 26 y:30, spng: 26632 0 61259 png: 2152 0 19439
alpha mismatch at x:27 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 27 y:30, spng: 23367 0 62361 png: 18267 0 39411
alpha mismatch at x:28 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 28 y:30, spng: 19433 0 63440 png: 59723 0 53495
alpha mismatch at x:29 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 29 y:30, spng: 14179 0 64497 png: 25655 0 62203
alpha mismatch at x:30 y:30, spng: 4229 png: 34064
invalid gamma correction at x: 31 y:30, spng: 0 13758 64565 png: 0 48949 13820
invalid gamma correction at x: 1 y:31, spng: 64565 0 13758 png: 13820 0 48949
invalid gamma correction at x: 2 y:31, spng: 63577 0 18854 png: 23288 0 42569
invalid gamma correction at x: 3 y:31, spng: 62571 0 22670 png: 27892 0 36440
invalid gamma correction at x: 4 y:31, spng: 61545 0 25837 png: 27376 0 60772
invalid gamma correction at x: 5 y:31, spng: 60499 0 28595 png: 21484 0 45935
invalid gamma correction at x: 6 y:31, spng: 59430 0 31065 png: 9960 0 23161
invalid gamma correction at x: 7 y:31, spng: 58337 0 33320 png: 57827 0 10370
invalid gamma correction at x: 8 y:31, spng: 57219 0 35405 png: 34015 0 20106
invalid gamma correction at x: 9 y:31, spng: 56075 0 37352 png: 3035 0 59793
invalid gamma correction at x: 10 y:31, spng: 54901 0 39185 png: 30422 0 4505
invalid gamma correction at x: 11 y:31, spng: 53697 0 40920 png: 49873 0 55455
invalid gamma correction at x: 12 y:31, spng: 52460 0 42571 png: 60620 0 19366
invalid gamma correction at x: 13 y:31, spng: 51186 0 44148 png: 62407 0 29868
invalid gamma correction at x: 14 y:31, spng: 49873 0 45661 png: 53954 0 23986
invalid gamma correction at x: 15 y:31, spng: 48518 0 47115 png: 34493 0 3256
invalid gamma correction at x: 16 y:31, spng: 47115 0 48518 png: 3256 0 34493
invalid gamma correction at x: 17 y:31, spng: 45661 0 49873 png: 23986 0 53954
invalid gamma correction at x: 18 y:31, spng: 44148 0 51186 png: 29868 0 62407
invalid gamma correction at x: 19 y:31, spng: 42571 0 52460 png: 19366 0 60620
invalid gamma correction at x: 20 y:31, spng: 40920 0 53697 png: 55455 0 49873
invalid gamma correction at x: 21 y:31, spng: 39185 0 54901 png: 4505 0 30422
invalid gamma correction at x: 22 y:31, spng: 37352 0 56075 png: 59793 0 3035
invalid gamma correction at x: 23 y:31, spng: 35405 0 57219 png: 20106 0 34015
invalid gamma correction at x: 24 y:31, spng: 33320 0 58337 png: 10370 0 57827
invalid gamma correction at x: 25 y:31, spng: 31065 0 59430 png: 23161 0 9960
invalid gamma correction at x: 26 y:31, spng: 28595 0 60499 png: 45935 0 21484
invalid gamma correction at x: 27 y:31, spng: 25837 0 61545 png: 60772 0 27376
invalid gamma correction at x: 28 y:31, spng: 22670 0 62571 png: 36440 0 27892
invalid gamma correction at x: 29 y:31, spng: 18854 0 63577 png: 42569 0 23288
invalid gamma correction at x: 30 y:31, spng: 13758 0 64565 png: 48949 0 13820

Logs: https://koji.fedoraproject.org/koji/taskinfo?taskID=37290442

Miscellaneous encoder features

Implement features:

  • png_set_compression_level

  • png_set_compression_strategy

  • png_set_compression_window_bits

  • png_set_filter

  • png_set_text_compression_level

  • png_set_text_compression_strategy

Support miniz as a zlib drop-in replacement

miniz is a single C source file zlib-replacement library, supporting its minimal zlib api would enable libspng to be usable with just 4 files: spng.c/h and miniz.c/h.

  • Create a Meson wrap for miniz (pending: mesonbuild/mesonwrap#115)

  • Add the miniz wrap

  • Add Meson build option

  • Fix interop issues

  • Add compile and interop tests

  • Document miniz support

Some gamma-corrected images don't match libpng's output

basi0g16, basn0g16, oi1n0g16, oi2n0g16, oi4n0g16, oi9n0g16 tests fail with the same error message:

Decode and compare RGBA8, FLAGS: USE_TRNS USE_GAMA invalid gamma correction at x: 31 y:31, spng: 0 0 0 png: 19 19 19

Without gamma correction both pixels at 0,0 and 31,31 are decoded to rgb 0 0 0 for both libraries.
On libpng's gamma-corrected output the pixel at 0,0 is rgb 0 0 0 but at 31,31 it's rgb 19 19 19.

libpng bug report

Unindexing indexed pngs

There is no example for unindexing images, is there a preimplemented function I didn't see?

I found that to obtain the color map I should do:

	struct spng_plte color_map;
	spng_get_plte(ctx, &color_map);

But how do I know the size of each channel and the amount of channels? There is such info in spng_plte.

Integrate spngt

Integrate spngt into the project:

  • Merge the benchmark executable

  • Add new option that enables benchmarks (disabled by default)

Consider adding comparison tests for lodepng, stb_image as test cases and/or as a sanity check for benchmarks

Encode support

  • PNG / RAW format support - #24

  • Encoding of images in every color type and bit depth combination:

    • 8-bit truecolor (alpha)

    • 16-bit truecolor (alpha)

    • 1, 2, 4 and 8-bit indexed color

    • 1, 2 and 4-bit grayscale

    • 8-bit grayscale (alpha)

    • 16-bit grayscale (alpha)

  • Interlacing

  • Filtering

  • Adaptive image filtering: https://www.w3.org/TR/2003/REC-PNG-20031110/#12Filter-selection

  • Encoding of all standard ancillary chunks:

    • Transparency information: tRNS

    • Color space information: cHRM, gAMA, iCCP, sBIT, sRGB

    • Textual information: tEXt, zTXt, iTXt

    • Miscellaneous information: bKGD, hIST pHYs, sPLT, tIME

    • Currently supported extensions: oFFs, eXIf

Testing

  • Implement the COMPARE_CHUNKS test flag, this should be done before any chunk write support is implemented

  • Add ENCODE_ROUNDTRIP test flag, after a successful decode the image would be:

    • Reencoded with both libraries to the same format with all chunks

    • Decoded and compared against libpng

Documentation

  • Document all new functions

  • Basic usage

  • Example code

Functions for configuring filtering/compression is tracked by #25.

This issue depends on #21, #38, partially on #5

Decoding callbacks (info/chunk/row)

This feature may be limited to only work with push mode decoding, this should be implemented with APNG support (frame callbacks?) in mind.

Row callbacks would be issued when there is enough data to decode the image and spng_decode_scanline() / spng_decode_row() would have to be called inside the callback.

Text / color profile chunk read support

Text and color profile chunks contain compressed data, support for these chunks was removed because it was vulnerable to decompression bombs. With the introduction of chunk size and cache limits in v0.5.0 this could be solved two ways:

  1. Store chunk data as-is, decompress and validate on spng_get_*(), the chunk cache or some other limit would still apply, this uses more memory.

  2. Decompress the data progressively with a small buffer and discard the chunk if decompression would exceed the cache limit, this would bypass the chunk size limit

Depends partially on #10

Some images fail to decode

All images from libpng/contrib/testpngs (excluding the the crashers directory) fail to decode with SPNG_EZLIB as error. zlib returns Z_DATA_ERROR.

Fails to access an indexed color image palette read from disk

The function used to access an indexed color image's palette spng_get_plte seems to not be functional when trying to access a non-user provided color palette. I modified the code in examples/example.c to print out a few levels of the palette when an indexed color image is loaded and it will always return ERR #73 - chunk not available.

I believe this occurs because when the color palette is read only ctx->file.plte = 1 is set, whereas for most chunks processed in read_chunks_before_idat it appears that ctx->stored.plte = 1 gets set as well.

My chosen test image was: tests/images/basn3p08.png

Testing code added to examples/example.c (~around line 100)

    if(ihdr.color_type == SPNG_COLOR_TYPE_INDEXED) {
        struct spng_plte color_map;
        r = spng_get_plte(ctx, &color_map);
        if(r) {
            printf("ERR #%d - %s\n", r, spng_strerror(r));
            goto err;
        }
        printf("%hhu %hhu %hhu\n", color_map.entries[0].red,
                                   color_map.entries[0].green,
                                   color_map.entries[0].blue);
        printf("%hhu %hhu %hhu\n", color_map.entries[127].red,
                                   color_map.entries[127].green,
                                   color_map.entries[127].blue);
        printf("%hhu %hhu %hhu\n", color_map.entries[255].red,
                                   color_map.entries[255].green,
                                   color_map.entries[255].blue);
   }

cmake build with -DSPNG_SHARED=off fails

I ran into a cmake error when trying to disable the shared library:

CMake Error at CMakeLists.txt:33 (target_link_libraries):
  Cannot specify link libraries for target "spng" which is not built by this
  project.

I'm not too familiar with cmake, but maybe a diff like the following would do the job?

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a9af461..bee0c10 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -24,15 +24,15 @@ endif()
 
 if(SPNG_SHARED)
 	add_library(spng SHARED ${spng_SOURCES})
+	target_link_libraries(spng ${ZLIB_LIBRARIES})
+	install(TARGETS spng DESTINATION lib)
 endif()
 
 if(SPNG_STATIC)
 	add_library(spng_static STATIC ${spng_SOURCES})
+	install(TARGETS spng_static DESTINATION lib)
 endif()
 
-target_link_libraries(spng ${ZLIB_LIBRARIES})
-
-install(TARGETS spng DESTINATION lib)
 install(FILES spng.h DESTINATION include)

PNG editor support

libspng should be able to edit/reencode PNG's in a standard conformant way: #99

There are at least two ways to implement this:

  • Define context types: decoder, encoder and editor, a single context can only serve one of three functions, this determined by the source type (input png, spng_ctx or none for plain encoders), in this case:
  • Calling spng_set_*() will be an error for decoders
  • Encoders will not be able to encode from a PNG, only from image buffers in a SPNG_FMT_* format
  • Editor contexts would require a "source context" that is configured for decoding, add a new function e.g. spng_set_src_ctx().
  • Currently the spng_set_*() functions discard existing chunk data for that type, this behavior would be limited to editor contexts
  1. Provide editor support within the same context, this was the initial plan but now it seems unnecessarily complicated, the semantics of spng_get/set_*() was created with this in mind but it's a usability nightmare and could also lead to security vulnerablities.

Depends on #2, #21, #10

Testsuite improvements

Increase code coverage:

  • All _get functions should be tested
  • All _set functions should be tested
  • Compare standard chunk values against libpng
  • Add more valid test files with: iCCP, sRGB, oFFs chunks
  • Add more invalid test files: zero-length PLTE
  • Test set_image_limits()

Error handling

There have been issues with error handling which lead to some tests to silently pass, outputting a TAP stream would mitigate this, Meson is a TAP consumer so this shouldn't require too much effort.

  • Write a TAP stream
  • Switch the unit tests' protocol to TAP

libpng dependency

Once encode support is done round-trip encode->decode->compare tests will make the libpng dependency unnecessary in most cases.

  • Tests should be available without the -Ddev_build option, it would still control comparison tests against libpng

Command-line tool

Initially it would just print machine-readable information about PNGs:

  • Everything example.c prints

  • Pass info if interlaced - depends on #49

  • What standard chunks are present

  • Standard chunk data

Nice-to-have features:

  • Supported chunk information

  • Unknown chunk information (#10)

  • Warnings for non-conformant PNG's (requires new API)

Potential names: spnginfo, spngutil, spngtool or just spng

Improve CI

Currently CI is done on the original repo and appveyor.

  • Migrate from GitLab CI to Actions/Travis (gcc, clang, scan-build, tests with ASan/UBsan, coverage build, codecov trigger and Coverity Scan) Not needed, GitLab can run on PRs now.

  • Fuzz builds with corpus from OSS-Fuzz

  • ARM64 builds with sanitizers.

  • Windows build tests: static and dynamic

  • Windows embedded source build test: the dllimport/dllexport mess shouldn't cause issues

Set up big endian CI, travis supports this: https://blog.travis-ci.com/2019-11-12-multi-cpu-architecture-ibm-power-ibm-z Travis is no longer free, no obvious alternatives.

  • Run tests with MemorySanitizer, needs newer compiler(?): #61

  • Run tests with multiple values for SPNG_SSE

Decode without alpha?

Thank you for all your hard work in making libspng!

Do you have any plans to support decoding without the alpha channel?

Reading in streaming mode can result in chunks not loading properly

read_idat_bytes is used to read data chunk bytes. However, when used in streaming mode, the amount of data to read can be incorrect, which results in an error being returned by read_chunk_bytes when attempting to read data from the chunk, which in turns results in an error being returned during the spng_decode_image call.

Changing the line
if(len > ctx->current_chunk.length) len = ctx->current_chunk.length;
to
if(len > ctx->cur_chunk_bytes_left) len = ctx->cur_chunk_bytes_left;
in read_idat_bytes fixes the issue.

This was observed on v0.5.0

Zero-copy decoding

Zero-copy decoding consists of decompressing scanlines directly to the output buffer, this would be limited to non-interlaced images with the following PNG format -> output format combinations:

  • RGBA8->RGBA8
  • RGBA16->RGBA16
  • PNG -> PNG (#24)
  • GA16 -> RGBA8 with some tweaks
Format Bytes per pixel
Indexed/Gray 1/2/4bit 1
Gray 8-bit 1
Gray 16-bit 2
Gray alpha 8-bit 2
Gray alpha 16-bit 4
RGB 8-bit 3
RGB 16-bit 6
RGBA 8-bit 4
RGBA 16-bit 8

This may reduce performance (or not work, depending on optimizations and platform) because the scanlines are not always aligned.

Standard conformance vs libpng compatibility

This is a meta-issue is for all libpng compatibility issues caused by strict conformance checks.

libspng is very strict with parsing PNG's, almost any deviation from the standard results in an error. This can cause issues because libpng's implementation is the de facto PNG standard which is a lot more loose with checks, it will issue warnings/skip invalid chunks as long as the image can be decoded.

libspng should be able to decode PNG's that aren't standard conformant but are decoded by libpng in most cases, this should be the default behavior with an option to reenable these checks if there is demand for it.

Animated PNG (APNG) read support

APNG is an unofficial extension by Mozilla, it allows for animated PNG files that work similarly to animated GIF files, while supporting 24-bit images and 8-bit transparency not available for GIFs.

This issue depends on #40 (row- and chunk callbacks)
This would be implemented without callbacks, it should be possible to reuse spng_decode_image() for decoding the APNG frames.

Implementation

  • Parse and validate acTL, fcTL chunks

  • Implement frame decoding / fdAT parsing

  • API

Testing

  • Create a libpng-apng repository: https://github.com/randy408/libpng-apng (update to v1.6.39) Went with another approach

  • Modify libpng's meson.build to enable APNG support

  • Replace the current libpng Meson wrap

  • Add APNG test images

  • Frame and metadata comparison tests against libpng

Other

  • Update seed corpus

  • Update fuzz target

Documentation

  • API Documentation

  • Document the new testsuite requirements for distro packagers

  • Update migration guide

  • Usage example

Depends on #10, #38

Multithreaded / pipelined decoding

Decompression can be its own pipeline with the rest of the processing happening on a separate thread, combined with zero-copy decoding(#26) this would only require height bytes of overhead.

Implement context states

Inspired by sfpng, this would enable functions (e.g. spng_get_ihdr(), spng_decode_image()) to parse less data before returning.

Push mode decoding

Introduce a feature similar to libpng's push mode (png_process_data()), this could implemented on top of the existing codepaths but will require some refactoring to support incremental decoding.

Depends on #38

APNG write support

Depends on #4

  • Implementation, API

  • Round-trip encode tests against libpng

Documentation

  • Update migration guide

  • Usage example

New feature - decode from file

Introduce new functions:

int spng_set_png_file(spng_ctx *ctx, FILE *f); // will not call fclose()

int spng_set_png_path(spng_ctx *ctx, const char *path); // calls fopen(), fclose() on spng_ctx_free()

spng_set_png_path() may not be necessary.

Progressive image read support

The code is already structured to handle row callbacks, this depends on #10, the testsuite also needs some refactoring before tests can be added for this.

Performance

This issue is for discussing performance in general.

spng_get_*() / spng_set_*() semantics

The semantics of spng_get_*() / spng_set_*() get awkward with encode and editor/reencode support, figure out somekind of non-confusing behavior for these.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.