This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch libavif-loader
in repository legacy-imlib2.
View the commit online.
commit 3f2f3c1fdf0d08789efa4c6ffc3d3339c4d8b5f1
Author: NRK <n...@disroot.org>
AuthorDate: Wed Feb 26 03:52:32 2025 +0000
this and that
---
src/modules/loaders/loader_avif.c | 17 +++++++++++------
1 file changed, 11 insertions(+), 6 deletions(-)
diff --git a/src/modules/loaders/loader_avif.c b/src/modules/loaders/loader_avif.c
index 59bb83d..9473331 100644
--- a/src/modules/loaders/loader_avif.c
+++ b/src/modules/loaders/loader_avif.c
@@ -3,6 +3,8 @@
#include <avif/avif.h>
+#define DBG_PFX "LDR-avif"
+
static const char *const _formats[] = { "avif" };
static int
@@ -18,9 +20,12 @@ _load(ImlibImage *im, int load_data)
return LOAD_OOM;
if (avifDecoderSetIOMemory(dec, im->fi->fdata, im->fi->fsize) != AVIF_RESULT_OK)
QUIT_WITH_RC(LOAD_OOM);
- // TODO: could also be corrupted file (LOAD_BADIMAGE)
- if (avifDecoderParse(dec) != AVIF_RESULT_OK)
- QUIT_WITH_RC(LOAD_FAIL);
+ switch (avifDecoderParse(dec)) {
+ case AVIF_RESULT_OK: /* no-op */ break;
+ case AVIF_RESULT_OUT_OF_MEMORY: QUIT_WITH_RC(LOAD_OOM);
+ case AVIF_RESULT_BMFF_PARSE_FAILED: QUIT_WITH_RC(LOAD_BADIMAGE);
+ default: QUIT_WITH_RC(LOAD_FAIL);
+ }
if (avifDecoderNextImage(dec) != AVIF_RESULT_OK)
QUIT_WITH_RC(LOAD_BADIMAGE);
@@ -38,15 +43,15 @@ _load(ImlibImage *im, int load_data)
avifRGBImageSetDefaults(&rgb, dec->image);
rgb.depth = 8;
+ rgb.pixels = (uint8_t *)im->data;
+ rgb.rowBytes = im->w * 4;
#ifdef WORDS_BIGENDIAN // NOTE(NRK): untested on big endian
rgb.format = AVIF_RGB_FORMAT_ARGB;
#else
rgb.format = AVIF_RGB_FORMAT_BGRA;
#endif
- rgb.pixels = (uint8_t *)im->data;
- rgb.rowBytes = im->w * 4;
if (avifImageYUVToRGB(dec->image, &rgb) != AVIF_RESULT_OK)
- QUIT_WITH_RC(LOAD_BADIMAGE); // TODO
+ QUIT_WITH_RC(LOAD_BADIMAGE); // NOTE(NRK): shouldn't happen, i think
if (im->lc)
__imlib_LoadProgressRows(im, 0, im->h);
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.