From 73b3a9775768f3eca22ba490b3cdb74a94f1912a Mon Sep 17 00:00:00 2001
From: Anonymous Maarten <[EMAIL REDACTED]>
Date: Sun, 3 May 2026 18:31:33 +0200
Subject: [PATCH] upgrade vendored libavif to v1.1.1
(cherry picked from commit 9d85c3548fd4c8ce334b7ef4ffa56e8d46a6cec0)
---
.gitmodules | 2 +-
CMakeLists.txt | 15 ++++++++++-----
Xcode/avif/avif.xcodeproj/project.pbxproj | 4 ++++
external/aom | 2 +-
external/dav1d | 2 +-
external/libavif | 2 +-
external/libwebp | 2 +-
7 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/.gitmodules b/.gitmodules
index 5f743781d..963b76f12 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -25,7 +25,7 @@
[submodule "external/libavif"]
path = external/libavif
url = https://github.com/libsdl-org/libavif.git
- branch = v1.0.4-SDL
+ branch = v1.1.1-SDL
[submodule "external/dav1d"]
path = external/dav1d
url = https://github.com/libsdl-org/dav1d.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 08d754621..889996baf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -551,15 +551,20 @@ if(SDLIMAGE_AVIF)
set(SDLIMAGE_AVIF_ENABLED TRUE)
message(STATUS "${PROJECT_NAME}: Using vendored libavif")
sdl_check_project_in_subfolder(external/libavif libavif SDLIMAGE_VENDORED)
+ set(LIBAVIF_SDLIMAGE_BUILD TRUE)
set(SKIP_INSTALL_LIBRARIES TRUE)
set(BUILD_SHARED_LIBS ${SDLIMAGE_AVIF_SHARED})
- set(AVIF_CODEC_DAV1D ON CACHE BOOL "Use dav1d codec for decoding" FORCE)
- set(AVIF_LOCAL_DAV1D OFF CACHE BOOL "Build dav1d by libavif" FORCE)
- set(AVIF_CODEC_AOM ON CACHE BOOL "Use aom codec for decoding" FORCE)
- set(AVIF_LOCAL_AOM OFF CACHE BOOL "Build aom by libavif" FORCE)
+ set(AVIF_CODEC_LIBGAV1 OFF CACHE STRING "Use libgav1 for avif" FORCE)
+ if(SDLIMAGE_WEBP)
+ set(AVIF_LIBSHARPYUV SYSTEM CACHE STRING "Use sharpyuv for avif (re-use sharpyuv built by libwebp)" FORCE)
+ else()
+ set(AVIF_LIBSHARPYUV OFF CACHE STRING "Use sharpyuv for avif" FORCE)
+ endif()
+ set(AVIF_LIBYUV OFF CACHE BOOL "Use libyuv for avif" FORCE)
+ set(AVIF_CODEC_DAV1D "SYSTEM" CACHE STRING "Use dav1d codec for decoding" FORCE)
+ set(AVIF_CODEC_AOM "SYSTEM" CACHE STRING "Use aom codec for decoding" FORCE)
set(AVIF_CODEC_AOM_ENCODE ON CACHE BOOL "Enable aom encoder" FORCE)
set(AVIF_CODEC_AOM_DECODE OFF CACHE BOOL "Enable aom decoder" FORCE)
- set(LIBAVIF_WITH_SHARPYUV_SDLIMAGE ${SDLIMAGE_WEBP} CACHE BOOL "Build libavif with sharpyuv support (re-use sharpyuv built by libwebp)" FORCE)
set(BUILD_SHARED_LIBS ${SDLIMAGE_AVIF_SHARED})
set(AOM_LIBRARIES "aom" CACHE STRING "aom libraries" FORCE)
add_subdirectory(external/libavif external/libavif-build EXCLUDE_FROM_ALL)
diff --git a/Xcode/avif/avif.xcodeproj/project.pbxproj b/Xcode/avif/avif.xcodeproj/project.pbxproj
index db87fba89..08aa73f77 100644
--- a/Xcode/avif/avif.xcodeproj/project.pbxproj
+++ b/Xcode/avif/avif.xcodeproj/project.pbxproj
@@ -21,6 +21,7 @@
/* End PBXAggregateTarget section */
/* Begin PBXBuildFile section */
+ 634AC2862FA7F0F200DAC6F0 /* colrconvert.c in Sources */ = {isa = PBXBuildFile; fileRef = 634AC2852FA7F0F200DAC6F0 /* colrconvert.c */; };
F313F5A02ADDB009008B58D6 /* exif.c in Sources */ = {isa = PBXBuildFile; fileRef = F313F59F2ADDB009008B58D6 /* exif.c */; };
F313F5A22ADDB03F008B58D6 /* reformat_libsharpyuv.c in Sources */ = {isa = PBXBuildFile; fileRef = F313F5A12ADDB03F008B58D6 /* reformat_libsharpyuv.c */; };
F314CA602CB4C6A5008F776B /* planar_functions.c in Sources */ = {isa = PBXBuildFile; fileRef = F314CA5B2CB4C6A5008F776B /* planar_functions.c */; };
@@ -516,6 +517,7 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
+ 634AC2852FA7F0F200DAC6F0 /* colrconvert.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = colrconvert.c; path = ../../external/libavif/src/colrconvert.c; sourceTree = SOURCE_ROOT; };
F313F59F2ADDB009008B58D6 /* exif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = exif.c; path = ../../external/libavif/src/exif.c; sourceTree = "<group>"; };
F313F5A12ADDB03F008B58D6 /* reformat_libsharpyuv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = reformat_libsharpyuv.c; path = ../../external/libavif/src/reformat_libsharpyuv.c; sourceTree = "<group>"; };
F314CA5B2CB4C6A5008F776B /* planar_functions.c */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.c; path = planar_functions.c; sourceTree = "<group>"; };
@@ -1435,6 +1437,7 @@
F314F1A72B62C7F90006624D /* codec_aom.c */,
F35474952829A9E0007E9EDA /* codec_dav1d.c */,
F354747A2829A9CB007E9EDA /* colr.c */,
+ 634AC2852FA7F0F200DAC6F0 /* colrconvert.c */,
F354747B2829A9CB007E9EDA /* diag.c */,
F313F59F2ADDB009008B58D6 /* exif.c */,
F354747F2829A9CB007E9EDA /* io.c */,
@@ -2116,6 +2119,7 @@
F354748C2829A9CB007E9EDA /* reformat.c in Sources */,
F354748E2829A9CB007E9EDA /* io.c in Sources */,
F35474892829A9CB007E9EDA /* colr.c in Sources */,
+ 634AC2862FA7F0F200DAC6F0 /* colrconvert.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
diff --git a/external/aom b/external/aom
index 216ec22b2..83ddea79d 160000
--- a/external/aom
+++ b/external/aom
@@ -1 +1 @@
-Subproject commit 216ec22b26386722ea9facd969a6d111d131a55d
+Subproject commit 83ddea79d7188d1f0b5695d6b561cf2634ba7e31
diff --git a/external/dav1d b/external/dav1d
index 527d4cb44..a6b395b47 160000
--- a/external/dav1d
+++ b/external/dav1d
@@ -1 +1 @@
-Subproject commit 527d4cb4442b6fafdbd92b60b0dc09647c4f4dfe
+Subproject commit a6b395b472c2b1911a49936840e18535b071c1bd
diff --git a/external/libavif b/external/libavif
index 5bcd7d031..62cfd0858 160000
--- a/external/libavif
+++ b/external/libavif
@@ -1 +1 @@
-Subproject commit 5bcd7d031e058b171364916a4dbef5fc5d6a28e2
+Subproject commit 62cfd08583e85d77b88b2cb6ccd76ce5fbe46dbf
diff --git a/external/libwebp b/external/libwebp
index 42611dee8..0b4545ee8 160000
--- a/external/libwebp
+++ b/external/libwebp
@@ -1 +1 @@
-Subproject commit 42611dee80e9dd744e6fca13c11c682d36463b9d
+Subproject commit 0b4545ee8210ff72ec47ab1ad56c2e7460663d11