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.

Reply via email to