SDL_image: Added AVIF support on Apple platforms

From b3dcd7c26946fbd023c7baed7c40dddfffeb3c41 Mon Sep 17 00:00:00 2001
From: Sam Lantinga <[EMAIL REDACTED]>
Date: Mon, 9 May 2022 15:51:03 -0700
Subject: [PATCH] Added AVIF support on Apple platforms

---
 Makefile.in                                   |   1 -
 Xcode/SDL_image.xcodeproj/project.pbxproj     |  85 ++
 Xcode/avif/avif.xcodeproj/project.pbxproj     | 856 ++++++++++++++++++
 Xcode/avif/dav1d/arm64/config.h               |  41 +
 Xcode/avif/dav1d/armv7/config.h               |  41 +
 Xcode/avif/dav1d/vcs_version.h                |   2 +
 Xcode/avif/dav1d/version.h                    |  34 +
 Xcode/avif/dav1d/x86_64/config.h              |  39 +
 .../showimage.xcodeproj/project.pbxproj       |  79 ++
 9 files changed, 1177 insertions(+), 1 deletion(-)
 create mode 100644 Xcode/avif/avif.xcodeproj/project.pbxproj
 create mode 100644 Xcode/avif/dav1d/arm64/config.h
 create mode 100644 Xcode/avif/dav1d/armv7/config.h
 create mode 100644 Xcode/avif/dav1d/vcs_version.h
 create mode 100644 Xcode/avif/dav1d/version.h
 create mode 100644 Xcode/avif/dav1d/x86_64/config.h

diff --git a/Makefile.in b/Makefile.in
index 60e4b95..ad22bc8 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -427,7 +427,6 @@ pdfdir = @pdfdir@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
-runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
diff --git a/Xcode/SDL_image.xcodeproj/project.pbxproj b/Xcode/SDL_image.xcodeproj/project.pbxproj
index d1d8df9..7d9d359 100644
--- a/Xcode/SDL_image.xcodeproj/project.pbxproj
+++ b/Xcode/SDL_image.xcodeproj/project.pbxproj
@@ -141,6 +141,8 @@
 		F307EEBE28282912003915D7 /* jmemansi.c in Sources */ = {isa = PBXBuildFile; fileRef = F307EEB828282912003915D7 /* jmemansi.c */; };
 		F354743E2828CA66007E9EDA /* IMG_jxl.c in Sources */ = {isa = PBXBuildFile; fileRef = F354743B2828CA66007E9EDA /* IMG_jxl.c */; };
 		F354743F2828CA66007E9EDA /* IMG_jxl.c in Sources */ = {isa = PBXBuildFile; fileRef = F354743B2828CA66007E9EDA /* IMG_jxl.c */; };
+		F35475FD2829BAF9007E9EDA /* IMG_avif.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475FC2829BAF9007E9EDA /* IMG_avif.c */; };
+		F35475FE2829BAF9007E9EDA /* IMG_avif.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475FC2829BAF9007E9EDA /* IMG_avif.c */; };
 		F3D87C04281DF8FC005DA540 /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3D87C03281DF8FC005DA540 /* SDL2.framework */; };
 		F3E1AAEB281CBABD00740E39 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3E1AAEA281CBABD00740E39 /* CoreGraphics.framework */; platformFilters = (ios, tvos, ); };
 		F3E1AAEC281CBB1F00740E39 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F3E1AAE8281CBA7B00740E39 /* ImageIO.framework */; platformFilters = (ios, tvos, ); };
@@ -163,6 +165,34 @@
 			remoteGlobalIDString = F307EEDC28288CCF003915D7;
 			remoteInfo = jxl;
 		};
+		F35475DB2829BA80007E9EDA /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F35475D42829BA80007E9EDA /* avif.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = F35474682829A8B3007E9EDA;
+			remoteInfo = avif;
+		};
+		F35475DD2829BA80007E9EDA /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F35475D42829BA80007E9EDA /* avif.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = F354757D2829B82B007E9EDA;
+			remoteInfo = dav1d;
+		};
+		F35475DF2829BA80007E9EDA /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F35475D42829BA80007E9EDA /* avif.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = F354758A2829B839007E9EDA;
+			remoteInfo = "dav1d-8bit";
+		};
+		F35475E12829BA80007E9EDA /* PBXContainerItemProxy */ = {
+			isa = PBXContainerItemProxy;
+			containerPortal = F35475D42829BA80007E9EDA /* avif.xcodeproj */;
+			proxyType = 2;
+			remoteGlobalIDString = F35475972829B847007E9EDA;
+			remoteInfo = "dav1d-16bit";
+		};
 		F3D87D23281EA9D8005DA540 /* PBXContainerItemProxy */ = {
 			isa = PBXContainerItemProxy;
 			containerPortal = F3D87D15281EA88F005DA540 /* webp.xcodeproj */;
@@ -259,6 +289,8 @@
 		F307EEB828282912003915D7 /* jmemansi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jmemansi.c; path = ../external/jpeg/jmemansi.c; sourceTree = "<group>"; };
 		F307EFA82828C8FA003915D7 /* jxl.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = jxl.xcodeproj; path = jxl/jxl.xcodeproj; sourceTree = "<group>"; };
 		F354743B2828CA66007E9EDA /* IMG_jxl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_jxl.c; path = ../IMG_jxl.c; sourceTree = "<group>"; };
+		F35475D42829BA80007E9EDA /* avif.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = avif.xcodeproj; path = avif/avif.xcodeproj; sourceTree = "<group>"; };
+		F35475FC2829BAF9007E9EDA /* IMG_avif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IMG_avif.c; path = ../IMG_avif.c; sourceTree = "<group>"; };
 		F3D87C03281DF8FC005DA540 /* SDL2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL2.framework; path = macOS/SDL2.framework; sourceTree = "<group>"; };
 		F3D87D15281EA88F005DA540 /* webp.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = webp.xcodeproj; path = webp/webp.xcodeproj; sourceTree = "<group>"; };
 		F3E1AAE8281CBA7B00740E39 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = System/Library/Frameworks/ImageIO.framework; sourceTree = SDKROOT; };
@@ -318,6 +350,7 @@
 		0867D691FE84028FC02AAC07 /* SDL_imageFramework */ = {
 			isa = PBXGroup;
 			children = (
+				F35475D42829BA80007E9EDA /* avif.xcodeproj */,
 				F307EFA82828C8FA003915D7 /* jxl.xcodeproj */,
 				F3D87D15281EA88F005DA540 /* webp.xcodeproj */,
 				F59C70FC00D5CB5801000001 /* pkg-support */,
@@ -343,6 +376,7 @@
 				F307EE2E28282608003915D7 /* jpeg */,
 				AA579DF1161C07E6005F809B /* IMG.c */,
 				AA579DE4161C07E6005F809B /* IMG_ImageIO.m */,
+				F35475FC2829BAF9007E9EDA /* IMG_avif.c */,
 				AA579DE2161C07E6005F809B /* IMG_bmp.c */,
 				AA579DE3161C07E6005F809B /* IMG_gif.c */,
 				AA579DE5161C07E6005F809B /* IMG_jpg.c */,
@@ -447,6 +481,17 @@
 			name = Products;
 			sourceTree = "<group>";
 		};
+		F35475D52829BA80007E9EDA /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				F35475DC2829BA80007E9EDA /* avif.framework */,
+				F35475DE2829BA80007E9EDA /* libdav1d.a */,
+				F35475E02829BA80007E9EDA /* libdav1d-8bit.a */,
+				F35475E22829BA80007E9EDA /* libdav1d-16bit.a */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
 		F3D87D16281EA88F005DA540 /* Products */ = {
 			isa = PBXGroup;
 			children = (
@@ -575,6 +620,10 @@
 			productRefGroup = 034768DDFF38A45A11DB9C8B /* Products */;
 			projectDirPath = "";
 			projectReferences = (
+				{
+					ProductGroup = F35475D52829BA80007E9EDA /* Products */;
+					ProjectRef = F35475D42829BA80007E9EDA /* avif.xcodeproj */;
+				},
 				{
 					ProductGroup = F307EFA92828C8FA003915D7 /* Products */;
 					ProjectRef = F307EFA82828C8FA003915D7 /* jxl.xcodeproj */;
@@ -601,6 +650,34 @@
 			remoteRef = F307EFAC2828C8FA003915D7 /* PBXContainerItemProxy */;
 			sourceTree = BUILT_PRODUCTS_DIR;
 		};
+		F35475DC2829BA80007E9EDA /* avif.framework */ = {
+			isa = PBXReferenceProxy;
+			fileType = wrapper.framework;
+			path = avif.framework;
+			remoteRef = F35475DB2829BA80007E9EDA /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		F35475DE2829BA80007E9EDA /* libdav1d.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = libdav1d.a;
+			remoteRef = F35475DD2829BA80007E9EDA /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		F35475E02829BA80007E9EDA /* libdav1d-8bit.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = "libdav1d-8bit.a";
+			remoteRef = F35475DF2829BA80007E9EDA /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
+		F35475E22829BA80007E9EDA /* libdav1d-16bit.a */ = {
+			isa = PBXReferenceProxy;
+			fileType = archive.ar;
+			path = "libdav1d-16bit.a";
+			remoteRef = F35475E12829BA80007E9EDA /* PBXContainerItemProxy */;
+			sourceTree = BUILT_PRODUCTS_DIR;
+		};
 		F3D87D24281EA9D8005DA540 /* webp.framework */ = {
 			isa = PBXReferenceProxy;
 			fileType = wrapper.framework;
@@ -701,6 +778,7 @@
 				F307EE3D2828264D003915D7 /* jcapistd.c in Sources */,
 				F307EE432828264D003915D7 /* jcdctmgr.c in Sources */,
 				AA579E02161C07E7005F809B /* IMG_tga.c in Sources */,
+				F35475FD2829BAF9007E9EDA /* IMG_avif.c in Sources */,
 				F307EE76282826FC003915D7 /* jfdctint.c in Sources */,
 				F307EEA0282826FC003915D7 /* jcprepct.c in Sources */,
 				F307EEB2282826FC003915D7 /* jquant2.c in Sources */,
@@ -773,6 +851,7 @@
 				F307EE3E2828264D003915D7 /* jcapistd.c in Sources */,
 				F307EE442828264D003915D7 /* jcdctmgr.c in Sources */,
 				AA579E03161C07E7005F809B /* IMG_tga.c in Sources */,
+				F35475FE2829BAF9007E9EDA /* IMG_avif.c in Sources */,
 				F307EE77282826FC003915D7 /* jfdctint.c in Sources */,
 				F307EEA1282826FC003915D7 /* jcprepct.c in Sources */,
 				F307EEB3282826FC003915D7 /* jquant2.c in Sources */,
@@ -831,6 +910,7 @@
 				FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/$(PLATFORM)\"";
 				GCC_OPTIMIZATION_LEVEL = 0;
 				GCC_PREPROCESSOR_DEFINITIONS = (
+					LOAD_AVIF,
 					LOAD_BMP,
 					LOAD_GIF,
 					LOAD_JPG,
@@ -877,6 +957,8 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				OTHER_LDFLAGS = (
+					"-weak_framework",
+					avif,
 					"-weak_framework",
 					jxl,
 					"-weak_framework",
@@ -923,6 +1005,7 @@
 				FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/$(PLATFORM)\"";
 				GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
 				GCC_PREPROCESSOR_DEFINITIONS = (
+					LOAD_AVIF,
 					LOAD_BMP,
 					LOAD_GIF,
 					LOAD_JPG,
@@ -968,6 +1051,8 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				OTHER_LDFLAGS = (
+					"-weak_framework",
+					avif,
 					"-weak_framework",
 					jxl,
 					"-weak_framework",
diff --git a/Xcode/avif/avif.xcodeproj/project.pbxproj b/Xcode/avif/avif.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..5d471ff
--- /dev/null
+++ b/Xcode/avif/avif.xcodeproj/project.pbxproj
@@ -0,0 +1,856 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 55;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		F35474862829A9CB007E9EDA /* alpha.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474772829A9CB007E9EDA /* alpha.c */; };
+		F35474872829A9CB007E9EDA /* avif.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474782829A9CB007E9EDA /* avif.c */; };
+		F35474882829A9CB007E9EDA /* scale.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474792829A9CB007E9EDA /* scale.c */; };
+		F35474892829A9CB007E9EDA /* colr.c in Sources */ = {isa = PBXBuildFile; fileRef = F354747A2829A9CB007E9EDA /* colr.c */; };
+		F354748A2829A9CB007E9EDA /* diag.c in Sources */ = {isa = PBXBuildFile; fileRef = F354747B2829A9CB007E9EDA /* diag.c */; };
+		F354748B2829A9CB007E9EDA /* rawdata.c in Sources */ = {isa = PBXBuildFile; fileRef = F354747C2829A9CB007E9EDA /* rawdata.c */; };
+		F354748C2829A9CB007E9EDA /* reformat.c in Sources */ = {isa = PBXBuildFile; fileRef = F354747D2829A9CB007E9EDA /* reformat.c */; };
+		F354748D2829A9CB007E9EDA /* reformat_libyuv.c in Sources */ = {isa = PBXBuildFile; fileRef = F354747E2829A9CB007E9EDA /* reformat_libyuv.c */; };
+		F354748E2829A9CB007E9EDA /* io.c in Sources */ = {isa = PBXBuildFile; fileRef = F354747F2829A9CB007E9EDA /* io.c */; };
+		F354748F2829A9CB007E9EDA /* utils.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474802829A9CB007E9EDA /* utils.c */; };
+		F35474902829A9CB007E9EDA /* obu.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474812829A9CB007E9EDA /* obu.c */; };
+		F35474912829A9CB007E9EDA /* write.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474822829A9CB007E9EDA /* write.c */; };
+		F35474922829A9CB007E9EDA /* mem.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474832829A9CB007E9EDA /* mem.c */; };
+		F35474932829A9CB007E9EDA /* stream.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474842829A9CB007E9EDA /* stream.c */; };
+		F35474942829A9CB007E9EDA /* read.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474852829A9CB007E9EDA /* read.c */; };
+		F35474962829A9E0007E9EDA /* codec_dav1d.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474952829A9E0007E9EDA /* codec_dav1d.c */; };
+		F35474C02829ABC5007E9EDA /* avif.h in Headers */ = {isa = PBXBuildFile; fileRef = F35474BF2829ABC5007E9EDA /* avif.h */; settings = {ATTRIBUTES = (Public, ); }; };
+		F35475A02829B867007E9EDA /* cdef_apply_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475332829B08D007E9EDA /* cdef_apply_tmpl.c */; };
+		F35475A12829B867007E9EDA /* cdef_apply_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475332829B08D007E9EDA /* cdef_apply_tmpl.c */; };
+		F35475A22829B86C007E9EDA /* cdef_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475352829B08D007E9EDA /* cdef_tmpl.c */; };
+		F35475A32829B86C007E9EDA /* cdef_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475352829B08D007E9EDA /* cdef_tmpl.c */; };
+		F35475A42829B876007E9EDA /* cdf.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474D02829AF7D007E9EDA /* cdf.c */; };
+		F35475A52829B87B007E9EDA /* cpu.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474C72829AF7D007E9EDA /* cpu.c */; };
+		F35475A62829B87D007E9EDA /* data.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474C22829AF7D007E9EDA /* data.c */; };
+		F35475A72829B880007E9EDA /* decode.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474CB2829AF7D007E9EDA /* decode.c */; };
+		F35475A82829B883007E9EDA /* dequant_tables.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474C82829AF7D007E9EDA /* dequant_tables.c */; };
+		F35475A92829B886007E9EDA /* fg_apply_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475302829B08D007E9EDA /* fg_apply_tmpl.c */; };
+		F35475AA2829B886007E9EDA /* fg_apply_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475302829B08D007E9EDA /* fg_apply_tmpl.c */; };
+		F35475AB2829B889007E9EDA /* filmgrain_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475372829B08D007E9EDA /* filmgrain_tmpl.c */; };
+		F35475AC2829B88A007E9EDA /* filmgrain_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475372829B08D007E9EDA /* filmgrain_tmpl.c */; };
+		F35475AD2829B88C007E9EDA /* getbits.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474CF2829AF7D007E9EDA /* getbits.c */; };
+		F35475AE2829B890007E9EDA /* intra_edge.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474C92829AF7D007E9EDA /* intra_edge.c */; };
+		F35475AF2829B893007E9EDA /* ipred_prepare_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F354753C2829B08D007E9EDA /* ipred_prepare_tmpl.c */; };
+		F35475B02829B893007E9EDA /* ipred_prepare_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F354753C2829B08D007E9EDA /* ipred_prepare_tmpl.c */; };
+		F35475B12829B897007E9EDA /* ipred_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475322829B08D007E9EDA /* ipred_tmpl.c */; };
+		F35475B22829B897007E9EDA /* ipred_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475322829B08D007E9EDA /* ipred_tmpl.c */; };
+		F35475B32829B89A007E9EDA /* itx_1d.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474CA2829AF7D007E9EDA /* itx_1d.c */; };
+		F35475B42829B89D007E9EDA /* itx_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F354753A2829B08D007E9EDA /* itx_tmpl.c */; };
+		F35475B52829B89E007E9EDA /* itx_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F354753A2829B08D007E9EDA /* itx_tmpl.c */; };
+		F35475B62829B8A3007E9EDA /* lf_apply_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475392829B08D007E9EDA /* lf_apply_tmpl.c */; };
+		F35475B72829B8A3007E9EDA /* lf_apply_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475392829B08D007E9EDA /* lf_apply_tmpl.c */; };
+		F35475B82829B8A6007E9EDA /* lf_mask.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474C42829AF7D007E9EDA /* lf_mask.c */; };
+		F35475B92829B8A8007E9EDA /* lib.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474EC2829AFB0007E9EDA /* lib.c */; };
+		F35475BA2829B8AB007E9EDA /* log.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474C12829AF7D007E9EDA /* log.c */; };
+		F35475BB2829B8AD007E9EDA /* loopfilter_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475382829B08D007E9EDA /* loopfilter_tmpl.c */; };
+		F35475BC2829B8AE007E9EDA /* loopfilter_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475382829B08D007E9EDA /* loopfilter_tmpl.c */; };
+		F35475BD2829B8B0007E9EDA /* looprestoration_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475312829B08D007E9EDA /* looprestoration_tmpl.c */; };
+		F35475BE2829B8B1007E9EDA /* looprestoration_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475312829B08D007E9EDA /* looprestoration_tmpl.c */; };
+		F35475BF2829B8B4007E9EDA /* lr_apply_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475362829B08D007E9EDA /* lr_apply_tmpl.c */; };
+		F35475C02829B8B5007E9EDA /* lr_apply_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475362829B08D007E9EDA /* lr_apply_tmpl.c */; };
+		F35475C12829B8B7007E9EDA /* mc_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F354753B2829B08D007E9EDA /* mc_tmpl.c */; };
+		F35475C22829B8B8007E9EDA /* mc_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F354753B2829B08D007E9EDA /* mc_tmpl.c */; };
+		F35475C32829B8BA007E9EDA /* mem.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474C52829AF7D007E9EDA /* mem.c */; };
+		F35475C42829B8BC007E9EDA /* msac.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474D22829AF7D007E9EDA /* msac.c */; };
+		F35475C52829B8BE007E9EDA /* obu.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474CC2829AF7D007E9EDA /* obu.c */; };
+		F35475C62829B8C0007E9EDA /* picture.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474D52829AF7D007E9EDA /* picture.c */; };
+		F35475C72829B8C3007E9EDA /* qm.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474CD2829AF7D007E9EDA /* qm.c */; };
+		F35475C82829B8C6007E9EDA /* recon_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475342829B08D007E9EDA /* recon_tmpl.c */; };
+		F35475C92829B8C6007E9EDA /* recon_tmpl.c in Sources */ = {isa = PBXBuildFile; fileRef = F35475342829B08D007E9EDA /* recon_tmpl.c */; };
+		F35475CA2829B8C9007E9EDA /* ref.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474CE2829AF7D007E9EDA /* ref.c */; };
+		F35475CB2829B8CC007E9EDA /* refmvs.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474D12829AF7D007E9EDA /* refmvs.c */; };
+		F35475CC2829B8CE007E9EDA /* scan.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474C32829AF7D007E9EDA /* scan.c */; };
+		F35475CD2829B8D1007E9EDA /* tables.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474C62829AF7D007E9EDA /* tables.c */; };
+		F35475CE2829B8D3007E9EDA /* thread_task.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474EB2829AFB0007E9EDA /* thread_task.c */; };
+		F35475CF2829B8D6007E9EDA /* warpmv.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474D32829AF7D007E9EDA /* warpmv.c */; };
+		F35475D02829B8D9007E9EDA /* wedge.c in Sources */ = {isa = PBXBuildFile; fileRef = F35474D42829AF7D007E9EDA /* wedge.c */; };
+		F35475D12829B956007E9EDA /* libdav1d.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F354757D2829B82B007E9EDA /* libdav1d.a */; };
+		F35475D22829B958007E9EDA /* libdav1d-8bit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F354758A2829B839007E9EDA /* libdav1d-8bit.a */; };
+		F35475D32829B95A007E9EDA /* libdav1d-16bit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F35475972829B847007E9EDA /* libdav1d-16bit.a */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		F354757B2829B82B007E9EDA /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "include/$(PRODUCT_NAME)";
+			dstSubfolderSpec = 16;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F35475882829B839007E9EDA /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "include/$(PRODUCT_NAME)";
+			dstSubfolderSpec = 16;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+		F35475952829B847007E9EDA /* CopyFiles */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "include/$(PRODUCT_NAME)";
+			dstSubfolderSpec = 16;
+			files = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		F35474682829A8B3007E9EDA /* avif.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = avif.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+		F35474772829A9CB007E9EDA /* alpha.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = alpha.c; path = ../../external/libavif/src/alpha.c; sourceTree = "<group>"; };
+		F35474782829A9CB007E9EDA /* avif.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = avif.c; path = ../../external/libavif/src/avif.c; sourceTree = "<group>"; };
+		F35474792829A9CB007E9EDA /* scale.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = scale.c; path = ../../external/libavif/src/scale.c; sourceTree = "<group>"; };
+		F354747A2829A9CB007E9EDA /* colr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = colr.c; path = ../../external/libavif/src/colr.c; sourceTree = "<group>"; };
+		F354747B2829A9CB007E9EDA /* diag.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = diag.c; path = ../../external/libavif/src/diag.c; sourceTree = "<group>"; };
+		F354747C2829A9CB007E9EDA /* rawdata.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = rawdata.c; path = ../../external/libavif/src/rawdata.c; sourceTree = "<group>"; };
+		F354747D2829A9CB007E9EDA /* reformat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = reformat.c; path = ../../external/libavif/src/reformat.c; sourceTree = "<group>"; };
+		F354747E2829A9CB007E9EDA /* reformat_libyuv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = reformat_libyuv.c; path = ../../external/libavif/src/reformat_libyuv.c; sourceTree = "<group>"; };
+		F354747F2829A9CB007E9EDA /* io.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = io.c; path = ../../external/libavif/src/io.c; sourceTree = "<group>"; };
+		F35474802829A9CB007E9EDA /* utils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = utils.c; path = ../../external/libavif/src/utils.c; sourceTree = "<group>"; };
+		F35474812829A9CB007E9EDA /* obu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = obu.c; path = ../../external/libavif/src/obu.c; sourceTree = "<group>"; };
+		F35474822829A9CB007E9EDA /* write.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = write.c; path = ../../external/libavif/src/write.c; sourceTree = "<group>"; };
+		F35474832829A9CB007E9EDA /* mem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mem.c; path = ../../external/libavif/src/mem.c; sourceTree = "<group>"; };
+		F35474842829A9CB007E9EDA /* stream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = stream.c; path = ../../external/libavif/src/stream.c; sourceTree = "<group>"; };
+		F35474852829A9CB007E9EDA /* read.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = read.c; path = ../../external/libavif/src/read.c; sourceTree = "<group>"; };
+		F35474952829A9E0007E9EDA /* codec_dav1d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = codec_dav1d.c; path = ../../external/libavif/src/codec_dav1d.c; sourceTree = "<group>"; };
+		F35474BF2829ABC5007E9EDA /* avif.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = avif.h; path = ../../external/libavif/include/avif/avif.h; sourceTree = "<group>"; };
+		F35474C12829AF7D007E9EDA /* log.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = log.c; path = ../../../external/dav1d/src/log.c; sourceTree = "<group>"; };
+		F35474C22829AF7D007E9EDA /* data.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = data.c; path = ../../../external/dav1d/src/data.c; sourceTree = "<group>"; };
+		F35474C32829AF7D007E9EDA /* scan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = scan.c; path = ../../../external/dav1d/src/scan.c; sourceTree = "<group>"; };
+		F35474C42829AF7D007E9EDA /* lf_mask.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lf_mask.c; path = ../../../external/dav1d/src/lf_mask.c; sourceTree = "<group>"; };
+		F35474C52829AF7D007E9EDA /* mem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mem.c; path = ../../../external/dav1d/src/mem.c; sourceTree = "<group>"; };
+		F35474C62829AF7D007E9EDA /* tables.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = tables.c; path = ../../../external/dav1d/src/tables.c; sourceTree = "<group>"; };
+		F35474C72829AF7D007E9EDA /* cpu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cpu.c; path = ../../../external/dav1d/src/cpu.c; sourceTree = "<group>"; };
+		F35474C82829AF7D007E9EDA /* dequant_tables.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = dequant_tables.c; path = ../../../external/dav1d/src/dequant_tables.c; sourceTree = "<group>"; };
+		F35474C92829AF7D007E9EDA /* intra_edge.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = intra_edge.c; path = ../../../external/dav1d/src/intra_edge.c; sourceTree = "<group>"; };
+		F35474CA2829AF7D007E9EDA /* itx_1d.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = itx_1d.c; path = ../../../external/dav1d/src/itx_1d.c; sourceTree = "<group>"; };
+		F35474CB2829AF7D007E9EDA /* decode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = decode.c; path = ../../../external/dav1d/src/decode.c; sourceTree = "<group>"; };
+		F35474CC2829AF7D007E9EDA /* obu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = obu.c; path = ../../../external/dav1d/src/obu.c; sourceTree = "<group>"; };
+		F35474CD2829AF7D007E9EDA /* qm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = qm.c; path = ../../../external/dav1d/src/qm.c; sourceTree = "<group>"; };
+		F35474CE2829AF7D007E9EDA /* ref.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ref.c; path = ../../../external/dav1d/src/ref.c; sourceTree = "<group>"; };
+		F35474CF2829AF7D007E9EDA /* getbits.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = getbits.c; path = ../../../external/dav1d/src/getbits.c; sourceTree = "<group>"; };
+		F35474D02829AF7D007E9EDA /* cdf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cdf.c; path = ../../../external/dav1d/src/cdf.c; sourceTree = "<group>"; };
+		F35474D12829AF7D007E9EDA /* refmvs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = refmvs.c; path = ../../../external/dav1d/src/refmvs.c; sourceTree = "<group>"; };
+		F35474D22829AF7D007E9EDA /* msac.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = msac.c; path = ../../../external/dav1d/src/msac.c; sourceTree = "<group>"; };
+		F35474D32829AF7D007E9EDA /* warpmv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = warpmv.c; path = ../../../external/dav1d/src/warpmv.c; sourceTree = "<group>"; };
+		F35474D42829AF7D007E9EDA /* wedge.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = wedge.c; path = ../../../external/dav1d/src/wedge.c; sourceTree = "<group>"; };
+		F35474D52829AF7D007E9EDA /* picture.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = picture.c; path = ../../../external/dav1d/src/picture.c; sourceTree = "<group>"; };
+		F35474EB2829AFB0007E9EDA /* thread_task.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = thread_task.c; path = ../../../external/dav1d/src/thread_task.c; sourceTree = "<group>"; };
+		F35474EC2829AFB0007E9EDA /* lib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lib.c; path = ../../../external/dav1d/src/lib.c; sourceTree = "<group>"; };
+		F35475302829B08D007E9EDA /* fg_apply_tmpl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = fg_apply_tmpl.c; path = ../../../external/dav1d/src/fg_apply_tmpl.c; sourceTree = "<group>"; };
+		F35475312829B08D007E9EDA /* looprestoration_tmpl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = looprestoration_tmpl.c; path = ../../../external/dav1d/src/looprestoration_tmpl.c; sourceTree = "<group>"; };
+		F35475322829B08D007E9EDA /* ipred_tmpl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ipred_tmpl.c; path = ../../../external/dav1d/src/ipred_tmpl.c; sourceTree = "<group>"; };
+		F35475332829B08D007E9EDA /* cdef_apply_tmpl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cdef_apply_tmpl.c; path = ../../../external/dav1d/src/cdef_apply_tmpl.c; sourceTree = "<group>"; };
+		F35475342829B08D007E9EDA /* recon_tmpl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = recon_tmpl.c; path = ../../../external/dav1d/src/recon_tmpl.c; sourceTree = "<group>"; };
+		F35475352829B08D007E9EDA /* cdef_tmpl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cdef_tmpl.c; path = ../../../external/dav1d/src/cdef_tmpl.c; sourceTree = "<group>"; };
+		F35475362829B08D007E9EDA /* lr_apply_tmpl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = lr_apply_tmpl.c; path = ../../../external/dav1d/src/lr_apply_tmpl.c; sourceTree = "<group>"; };
+		F35475372829B08D007E9EDA /* filmgrain_tmpl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = filmgrain_tmpl.c; path = ../../../external/dav1d/src/filmgrain_tmpl.c; sourceTree = "<group>"; };
+		F35475382829B08D007E9EDA /* loopfilter_tmpl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = loopfilter_tmpl.c; pa

(Patch may be truncated, please check the link at the top of this post.)