SDL_image: Added AVIF support on Android

From cf28742c75972c86de08f2c03bd07fc1b71dbca2 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 9 May 2022 21:25:39 -0700
Subject: [PATCH] Added AVIF support on Android

---
 Android.mk       | 23 +++++++++++++++++++++--
 external/dav1d   |  2 +-
 external/libavif |  2 +-
 3 files changed, 23 insertions(+), 4 deletions(-)

diff --git a/Android.mk b/Android.mk
index 0cda641..a72383c 100644
--- a/Android.mk
+++ b/Android.mk
@@ -1,6 +1,12 @@
 SDL_IMAGE_LOCAL_PATH := $(call my-dir)
 
 
+# Enable this if you want to support loading AVIF images
+# The library path should be a relative path to this directory.
+SUPPORT_AVIF ?= true
+AVIF_LIBRARY_PATH := external/libavif
+DAV1D_LIBRARY_PATH := external/dav1d
+
 # Enable this if you want to support loading JPEG images
 # The library path should be a relative path to this directory.
 SUPPORT_JPG ?= true
@@ -18,6 +24,12 @@ SUPPORT_WEBP ?= true
 WEBP_LIBRARY_PATH := external/libwebp
 
 
+# Build the library
+ifeq ($(SUPPORT_AVIF),true)
+    include $(SDL_IMAGE_LOCAL_PATH)/$(AVIF_LIBRARY_PATH)/Android.mk
+    include $(SDL_IMAGE_LOCAL_PATH)/$(DAV1D_LIBRARY_PATH)/Android.mk
+endif
+
 # Build the library
 ifeq ($(SUPPORT_JPG),true)
     include $(SDL_IMAGE_LOCAL_PATH)/$(JPG_LIBRARY_PATH)/Android.mk
@@ -43,9 +55,11 @@ LOCAL_MODULE := SDL2_image
 
 LOCAL_SRC_FILES :=  \
     IMG.c           \
+    IMG_avif.c      \
     IMG_bmp.c       \
     IMG_gif.c       \
     IMG_jpg.c       \
+    IMG_jxl.c       \
     IMG_lbm.c       \
     IMG_pcx.c       \
     IMG_png.c       \
@@ -59,8 +73,6 @@ LOCAL_SRC_FILES :=  \
     IMG_xcf.c       \
     IMG_xpm.c.arm   \
     IMG_xv.c        \
-    IMG_avif.c      \
-    IMG_jxl.c       \
     IMG_stb.c       \
     IMG_xxx.c
 
@@ -71,6 +83,13 @@ LOCAL_LDLIBS :=
 LOCAL_STATIC_LIBRARIES :=
 LOCAL_SHARED_LIBRARIES := SDL2
 
+ifeq ($(SUPPORT_AVIF),true)
+    LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(AVIF_LIBRARY_PATH)/include
+    LOCAL_CFLAGS += -DLOAD_AVIF
+    LOCAL_STATIC_LIBRARIES += avif
+    LOCAL_WHOLE_STATIC_LIBRARIES += dav1d dav1d-8bit dav1d-16bit
+endif
+
 ifeq ($(SUPPORT_JPG),true)
     LOCAL_C_INCLUDES += $(LOCAL_PATH)/$(JPG_LIBRARY_PATH)
     LOCAL_CFLAGS += -DLOAD_JPG
diff --git a/external/dav1d b/external/dav1d
index 99172b1..52d0c1f 160000
--- a/external/dav1d
+++ b/external/dav1d
@@ -1 +1 @@
-Subproject commit 99172b11470776177939c3d2bc366fe8d904eab7
+Subproject commit 52d0c1f44eff76c3773636a9805f69ec26633037
diff --git a/external/libavif b/external/libavif
index f938f6b..a3e9315 160000
--- a/external/libavif
+++ b/external/libavif
@@ -1 +1 @@
-Subproject commit f938f6b7dd412ffcbdab1808a265b6375dc7b037
+Subproject commit a3e9315474deb60e39b6e3aad88798eee26dadea