Bug #81217 [Com]: imageavif() fails - Segmentation Fault or No codec available

From: Date: Mon, 05 Feb 2024 10:36:40 +0000
Subject: Bug #81217 [Com]: imageavif() fails - Segmentation Fault or No codec available
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-246406@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=81217&edit=1 ID: 81217 Comment by: mlocati at gmail dot com Reported by: mlocati at gmail dot com Summary: imageavif() fails - Segmentation Fault or No codec available Status: Not a bug Type: Bug Package: GD related Operating System: Debian Buster and Alpine Linux PHP Version: 8.1.0alpha2 Assigned To: cmb Block user comment: N Private report: N New Comment: Update: on Debian 12 (Bookworm) we can use the system-provided libraries: apt-get install libavif-dev libaom-dev libdav1d-dev This can't be done on previous Debian versions: invoking imageavif() was leading to this error Error 2: imageavif(): avif error - Could not encode image: No codec available Previous Comments: ------------------------------------------------------------------------ [2022-11-02 21:43:47] mlocati at gmail dot com Just an update on this issue. Alpine Linux offers the pre-compiled libraries avif/aom/dav1d. With Alpine up to 3.14, by using these libraries we had this error: imageavif(): avif error - Could not encode image: No codec available But since Alpine 3.15 and later, it seems we can use them without problems, that is: apk add libavif-dev aom-dev dav1d-dev ------------------------------------------------------------------------ [2021-10-15 17:35:05] cmb@php.net > So, it seems that the root cause of this issue is that the > libaom versions currently provided by Debian APT and Alpine APK > systems are not functional […] Right. Closing as not a (PHP) bug. ------------------------------------------------------------------------ [2021-10-08 10:12:36] mlocati at gmail dot com So, it seems that the root cause of this issue is that the libaom versions currently provided by Debian APT and Alpine APK systems are not functional (AFAIK they are compiled without the required BUILD_SHARED_LIBS=1, but I may be wrong here). So, in order to make imageavif() and imagecreatefromavif() work, you need to do everything by hand: 1. compile and install libaom 2. compile and install libdav1d (to decode AV1) 3. compile and install libyuv (used by libavif to better handle YUV decoding) 4. compile and install libavif 5. compile and install the gd PHP extension (with the --with-avif flag) For an example about how that can be done in Debian (so, Ubuntu too) and Alpine, you can take a look at https://github.com/mlocati/docker-php-extension-installer ------------------------------------------------------------------------ [2021-09-28 00:05:06] apostnikov at gmail dot com I filed MR to upgrade libavif in Alpinelinex 3.14 but looks it needs major version bump for libaom, meantime it should be working in alpine:edge ------------------------------------------------------------------------ [2021-09-27 17:47:27] morss at google dot com I think this is the same thing that Pierre kindly fixed here: https://github.com/libgd/libgd/issues/770 ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=81217 -- Edit this bug report at https://bugs.php.net/bug.php?id=81217&edit=1

« previous php.bugs (#246406) next »