SDL_image: IMG_avif.c: call avifResultToString() to get a proper error string. (45f2a)

From 45f2a322110cacd0a546291e08a15f108a302f10 Mon Sep 17 00:00:00 2001
From: Ozkan Sezer <[EMAIL REDACTED]>
Date: Sat, 4 Mar 2023 14:10:00 +0300
Subject: [PATCH] IMG_avif.c: call avifResultToString() to get a proper error
 string.

---
 IMG_avif.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/IMG_avif.c b/IMG_avif.c
index 7f8d4e2e..b7545044 100644
--- a/IMG_avif.c
+++ b/IMG_avif.c
@@ -39,6 +39,7 @@ static struct {
     avifResult (*avifDecoderParse)(avifDecoder * decoder);
     avifResult (*avifDecoderNextImage)(avifDecoder * decoder);
     avifResult (*avifImageYUVToRGB)(const avifImage * image, avifRGBImage * rgb);
+    const char * (*avifResultToString)(avifResult res);
 } lib;
 
 #ifdef LOAD_AVIF_DYNAMIC
@@ -67,6 +68,7 @@ int IMG_InitAVIF()
         FUNCTION_LOADER(avifDecoderParse, avifResult (*)(avifDecoder * decoder))
         FUNCTION_LOADER(avifDecoderNextImage, avifResult (*)(avifDecoder * decoder))
         FUNCTION_LOADER(avifImageYUVToRGB, avifResult (*)(const avifImage * image, avifRGBImage * rgb))
+        FUNCTION_LOADER(avifResultToString, const char *(*)(avifResult res))
     }
     ++lib.loaded;
 
@@ -267,13 +269,13 @@ SDL_Surface *IMG_LoadAVIF_RW(SDL_RWops *src)
 
     result = lib.avifDecoderParse(decoder);
     if (result != AVIF_RESULT_OK) {
-        IMG_SetError("Couldn't parse AVIF image: %d", result);
+        IMG_SetError("Couldn't parse AVIF image: %s", lib.avifResultToString(result));
         goto done;
     }
 
     result = lib.avifDecoderNextImage(decoder);
     if (result != AVIF_RESULT_OK) {
-        IMG_SetError("Couldn't get AVIF image: %d", result);
+        IMG_SetError("Couldn't get AVIF image: %s", lib.avifResultToString(result));
         goto done;
     }
 
@@ -295,7 +297,7 @@ SDL_Surface *IMG_LoadAVIF_RW(SDL_RWops *src)
     rgb.rowBytes = (uint32_t)surface->pitch;
     result = lib.avifImageYUVToRGB(decoder->image, &rgb);
     if (result != AVIF_RESULT_OK) {
-        IMG_SetError("Couldn't convert AVIF image to RGB: %d", result);
+        IMG_SetError("Couldn't convert AVIF image to RGB: %s", lib.avifResultToString(result));
         SDL_DestroySurface(surface);
         surface = NULL;
         goto done;