Na, kicsit nyomoztam, ez az APNG tökre felejtős, mert a referencia imlementáció libpng nem tudja és faszkalapok miatt valszeg soha nem is fogja tudni rendesen.
A vicc az, hogy valaki már megcsinálta a libpng-be, másvalaki beküldte issuera (sok-sok évvel ezelőtt), de a png fejlesztők sértett kis primadonna picsákként reagáltak rá.
Aztán, a mostani W3C frissítéssel egyidőben megint megcsinálta valaki, de a png fejlesztők újfent össze-vissza picsogtak és két hete konkrétan használhatatlanságig szétbaszták a már működő kódot (kitörölték az összes szükséges API-t, unknown chunk-ba rakták az APNG chunkokat, azaz teljesen kiherélték és használhatatlan innentől, mert a png_read_image() nem kezeli).
A legviccessebb az, hogy közben önellentmondásos baromságokkal írták tele a saját forráskódjukat, pl mint ez: these chunk names violate the chunk name recommendations because the chunk definitions have no signature. Namármost akárki elolvashatja a specet, és látni fogja, hogy a chunkok nagyon is megfelelnek neki, másrészről nem tudom, mire gondoltak "signature" alatt, de tekintettel arra, hogy az fdAT chunk bitre ugyanaz, mint az IDAT, csak épp van benne egy sequence number is, tutira dettó faszság az egész érvelés, az biztos...
JÓSLAT: gyanítom, W3C nyomására csak bele fog kerülni végül, de biztos jó szar lesz és ott gáncsolják majd a png fejlesztők, ahol csak tudják (különösen ez a jbowler tűnik egy igazi sértődött kis fruskának). Eredmény: marad a GIF meg a WEBP.
ps: kipróbáltam a legfrissebb libpng-t, mást is elkúrtak benne, nem lehet pl. már a text kommentet kiolvasni, mert nem include-olhatod a pnginfo.h-t direktben (amiben a text struct-ja van), csak a png.h-t behúzva meg " invalid use of incomplete typedef ‘png_info’ {aka ‘struct png_info_def’}" hibát dob. Ha ezt kapjuk egy állítólag fullosan támogatott chunk esetén, mégis mire számítsunk egy olyannál, amire még fújnak is...?