Skip to content

Commit 08ca46f

Browse files
authored
Merge pull request #18 from link-u/feature/refactor
Refactoring & fix a bug & add tests to increase code coverage.
2 parents 501b702 + 27372a5 commit 08ca46f

File tree

13 files changed

+1822
-1580
lines changed

13 files changed

+1822
-1580
lines changed

Example/SDWebImageAVIFCoder.xcodeproj/project.pbxproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8052,6 +8052,7 @@
80528052
INFOPLIST_FILE = "Tests/Tests-Info.plist";
80538053
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
80548054
PRODUCT_NAME = "$(TARGET_NAME)";
8055+
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private";
80558056
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SDWebImageAVIFCoder_Example.app/SDWebImageAVIFCoder_Example";
80568057
WRAPPER_EXTENSION = xctest;
80578058
};
@@ -8072,7 +8073,9 @@
80728073
INFOPLIST_FILE = "Tests/Tests-Info.plist";
80738074
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
80748075
PRODUCT_NAME = "$(TARGET_NAME)";
8076+
SYSTEM_HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private";
80758077
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SDWebImageAVIFCoder_Example.app/SDWebImageAVIFCoder_Example";
8078+
USER_HEADER_SEARCH_PATHS = "";
80768079
WRAPPER_EXTENSION = xctest;
80778080
};
80788081
name = Release;

Example/Tests/Tests.m

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
@import XCTest;
99

1010
#import <SDWebImageAVIFCoder/SDImageAVIFCoder.h>
11+
#import <SDWebImageAVIFCoder/Conversion.h>
12+
#import <SDWebImageAVIFCoder/ColorSpace.h>
1113

1214
static UInt8 kBlack8[] = {0,0,0};
1315
static UInt8 kGray8[] = {0x88,0x88,0x88};
@@ -25,6 +27,10 @@
2527
static UInt16 kBlue16[] = {0,0,65535};
2628
static UInt16 kSpecial16[] = {0xe4 << 8,0x7a << 8,0x8c << 8};
2729

30+
static avifNclxColourPrimaries const kNumPrimaries = AVIF_NCLX_COLOUR_PRIMARIES_EBU3213E;
31+
static avifNclxTransferCharacteristics const kNumTransfers = AVIF_NCLX_TRANSFER_CHARACTERISTICS_BT2100_HLG;
32+
33+
2834
// FIXME(ledyba-z): libavif does not respect MatrixCoefficients in AV1 Sequence Header.
2935
// Instead, it uses ColorPrimaries to calculate MatrixCoefficients.
3036
// This threashold can be less if libavif respects MatrixCoefficients...
@@ -152,6 +158,116 @@ - (void)testSpecialTest
152158
expectedColor16:kSpecial16 expectedNumComponents16:3];
153159
}
154160

161+
-(void)testAllColorSpaceSupportsOutput
162+
{
163+
for(avifNclxColourPrimaries primaries = 0; primaries < kNumPrimaries; ++primaries) {
164+
for(avifNclxTransferCharacteristics transfer = 0; transfer < kNumTransfers; ++transfer) {
165+
CGColorSpaceRef space = NULL;
166+
167+
space = SDAVIFCreateColorSpaceRGB(primaries, transfer);
168+
XCTAssertTrue(CGColorSpaceSupportsOutput(space));
169+
CGColorSpaceRelease(space);
170+
171+
space = SDAVIFCreateColorSpaceMono(primaries, transfer);
172+
XCTAssertTrue(CGColorSpaceSupportsOutput(space));
173+
CGColorSpaceRelease(space);
174+
}
175+
176+
}
177+
}
178+
179+
-(void)testCalcNCLXColorSpaceFromAVIFImage
180+
{
181+
avifImage* img = avifImageCreate(100, 100, 8, AVIF_PIXEL_FORMAT_YUV420);
182+
for(avifNclxColourPrimaries primaries = 0; primaries < kNumPrimaries; ++primaries) {
183+
for(avifNclxTransferCharacteristics transfer = 0; transfer < kNumTransfers; ++transfer) {
184+
avifNclxColorProfile nclx;
185+
nclx.colourPrimaries = primaries;
186+
nclx.transferCharacteristics = transfer;
187+
avifImageSetProfileNCLX(img, &nclx);
188+
avifImageAllocatePlanes(img, AVIF_PLANES_YUV);
189+
190+
CGColorSpaceRef space = NULL;
191+
BOOL shouldRelease = FALSE;
192+
193+
SDAVIFCalcColorSpaceRGB(img, &space, &shouldRelease);
194+
XCTAssertTrue(CGColorSpaceSupportsOutput(space));
195+
if(shouldRelease) {
196+
CGColorSpaceRelease(space);
197+
}
198+
199+
// monochrome
200+
free(img->yuvPlanes[AVIF_CHAN_U]);
201+
img->yuvPlanes[AVIF_CHAN_U] = NULL;
202+
img->yuvRowBytes[AVIF_CHAN_U] = 0;
203+
free(img->yuvPlanes[AVIF_CHAN_V]);
204+
img->yuvPlanes[AVIF_CHAN_V] = NULL;
205+
img->yuvRowBytes[AVIF_CHAN_V] = 0;
206+
207+
SDAVIFCalcColorSpaceMono(img, &space, &shouldRelease);
208+
XCTAssertTrue(CGColorSpaceSupportsOutput(space));
209+
if(shouldRelease) {
210+
CGColorSpaceRelease(space);
211+
}
212+
213+
avifImageFreePlanes(img, AVIF_PLANES_ALL);
214+
}
215+
}
216+
avifImageDestroy(img);
217+
}
218+
219+
-(void)testCalcICCColorSpaceFromAVIFImage
220+
{
221+
NSData *iccProfile = (__bridge_transfer NSData *)CGColorSpaceCopyICCProfile([SDImageCoderHelper colorSpaceGetDeviceRGB]);
222+
avifImage* img = avifImageCreate(100, 100, 8, AVIF_PIXEL_FORMAT_YUV420);
223+
avifImageSetProfileICC(img, (uint8_t *)iccProfile.bytes, iccProfile.length);
224+
225+
avifImageAllocatePlanes(img, AVIF_PLANES_YUV);
226+
227+
CGColorSpaceRef space = NULL;
228+
BOOL shouldRelease = FALSE;
229+
230+
SDAVIFCalcColorSpaceRGB(img, &space, &shouldRelease);
231+
XCTAssertTrue(CGColorSpaceSupportsOutput(space));
232+
if(shouldRelease) {
233+
CGColorSpaceRelease(space);
234+
}
235+
236+
// monochrome
237+
free(img->yuvPlanes[AVIF_CHAN_U]);
238+
img->yuvPlanes[AVIF_CHAN_U] = NULL;
239+
img->yuvRowBytes[AVIF_CHAN_U] = 0;
240+
free(img->yuvPlanes[AVIF_CHAN_V]);
241+
img->yuvPlanes[AVIF_CHAN_V] = NULL;
242+
img->yuvRowBytes[AVIF_CHAN_V] = 0;
243+
244+
SDAVIFCalcColorSpaceMono(img, &space, &shouldRelease);
245+
XCTAssertTrue(CGColorSpaceSupportsOutput(space));
246+
if(shouldRelease) {
247+
CGColorSpaceRelease(space);
248+
}
249+
250+
avifImageFreePlanes(img, AVIF_PLANES_ALL);
251+
252+
avifImageDestroy(img);
253+
}
254+
255+
-(void)testEncodingAndDecoding
256+
{
257+
CGSize size = CGSizeMake(100, 100);
258+
UIGraphicsBeginImageContextWithOptions(size, YES, 0);
259+
[[UIColor redColor] setFill];
260+
UIRectFill(CGRectMake(0, 0, size.width, size.height));
261+
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
262+
UIGraphicsEndImageContext();
263+
NSData* encoded = [self->coder encodedDataWithImage:image format:SDImageFormatAVIF options:nil];
264+
image = nil;
265+
266+
XCTAssertTrue([self->coder canDecodeFromData:encoded]);
267+
268+
image = [self->coder decodedImageWithData:encoded options:nil];
269+
[self assertColor8:@"<in-memory>" img:image.CGImage expectedColor: kRed8];
270+
}
155271

156272
-(void)assertColor8: (NSString*)filename img:(CGImageRef)img expectedColor:(UInt8*)expectedColor
157273
{

Package.resolved

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ let package = Package(
2828
dependencies: ["SDWebImage", "libavif"],
2929
path: ".",
3030
sources: ["SDWebImageAVIFCoder/Classes"],
31-
publicHeadersPath: "SDWebImageAVIFCoder/Classes"
31+
publicHeadersPath: "SDWebImageAVIFCoder/Classes/Public"
3232
)
3333
]
3434
)

SDWebImageAVIFCoder.podspec

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@ Which is built based on the open-sourced libavif codec.
3434
s.watchos.deployment_target = '2.0'
3535

3636
s.source_files = 'SDWebImageAVIFCoder/Classes/**/*', 'SDWebImageAVIFCoder/Module/SDWebImageAVIFCoder.h'
37+
s.public_header_files = 'SDWebImageAVIFCoder/Classes/Public/*.{h,m}'
38+
s.private_header_files = 'SDWebImageAVIFCoder/Classes/Private/*.{h,m}'
3739

3840
s.dependency 'SDWebImage', '~> 5.0'
3941
s.dependency 'libavif', '~> 0.6'

SDWebImageAVIFCoder.xcodeproj/project.pbxproj

Lines changed: 66 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,33 @@
1212
3237D42422639480001D069D /* SDWebImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 3237D42122639480001D069D /* SDWebImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
1313
3237D42522639480001D069D /* SDWebImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 3237D42122639480001D069D /* SDWebImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
1414
3237D42622639480001D069D /* SDWebImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 3237D42122639480001D069D /* SDWebImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
15-
3237D427226394D1001D069D /* SDImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 32C2B19C22638A7100EA889C /* SDImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
1615
3237D428226394D1001D069D /* SDImageAVIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 32C2B19A22638A7100EA889C /* SDImageAVIFCoder.m */; };
17-
3237D429226394D1001D069D /* SDImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 32C2B19C22638A7100EA889C /* SDImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
1816
3237D42A226394D1001D069D /* SDImageAVIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 32C2B19A22638A7100EA889C /* SDImageAVIFCoder.m */; };
19-
3237D42B226394D2001D069D /* SDImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 32C2B19C22638A7100EA889C /* SDImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
2017
3237D42C226394D2001D069D /* SDImageAVIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 32C2B19A22638A7100EA889C /* SDImageAVIFCoder.m */; };
2118
3237D42E22639517001D069D /* libavif.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3237D42D22639516001D069D /* libavif.framework */; };
2219
3237D43022639525001D069D /* libavif.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3237D42F22639525001D069D /* libavif.framework */; };
2320
3237D43222639530001D069D /* libavif.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3237D43122639530001D069D /* libavif.framework */; };
2421
32C2B19D22638A7100EA889C /* SDImageAVIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 32C2B19A22638A7100EA889C /* SDImageAVIFCoder.m */; };
25-
32C2B19F22638A7100EA889C /* SDImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 32C2B19C22638A7100EA889C /* SDImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
22+
6DD0A1BB241E594E0066E0EE /* Conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B5241E594E0066E0EE /* Conversion.h */; settings = {ATTRIBUTES = (Private, ); }; };
23+
6DD0A1BC241E594E0066E0EE /* Conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B5241E594E0066E0EE /* Conversion.h */; settings = {ATTRIBUTES = (Private, ); }; };
24+
6DD0A1BD241E594E0066E0EE /* Conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B5241E594E0066E0EE /* Conversion.h */; settings = {ATTRIBUTES = (Private, ); }; };
25+
6DD0A1BE241E594E0066E0EE /* Conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B5241E594E0066E0EE /* Conversion.h */; settings = {ATTRIBUTES = (Private, ); }; };
26+
6DD0A1BF241E594E0066E0EE /* ColorSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B6241E594E0066E0EE /* ColorSpace.h */; settings = {ATTRIBUTES = (Private, ); }; };
27+
6DD0A1C0241E594E0066E0EE /* ColorSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B6241E594E0066E0EE /* ColorSpace.h */; settings = {ATTRIBUTES = (Private, ); }; };
28+
6DD0A1C1241E594E0066E0EE /* ColorSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B6241E594E0066E0EE /* ColorSpace.h */; settings = {ATTRIBUTES = (Private, ); }; };
29+
6DD0A1C2241E594E0066E0EE /* ColorSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B6241E594E0066E0EE /* ColorSpace.h */; settings = {ATTRIBUTES = (Private, ); }; };
30+
6DD0A1C3241E594E0066E0EE /* ColorSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0A1B7241E594E0066E0EE /* ColorSpace.m */; };
31+
6DD0A1C4241E594E0066E0EE /* ColorSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0A1B7241E594E0066E0EE /* ColorSpace.m */; };
32+
6DD0A1C5241E594E0066E0EE /* ColorSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0A1B7241E594E0066E0EE /* ColorSpace.m */; };
33+
6DD0A1C6241E594E0066E0EE /* ColorSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0A1B7241E594E0066E0EE /* ColorSpace.m */; };
34+
6DD0A1C7241E594E0066E0EE /* SDImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B9241E594E0066E0EE /* SDImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
35+
6DD0A1C8241E594E0066E0EE /* SDImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B9241E594E0066E0EE /* SDImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
36+
6DD0A1C9241E594E0066E0EE /* SDImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B9241E594E0066E0EE /* SDImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
37+
6DD0A1CA241E594E0066E0EE /* SDImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B9241E594E0066E0EE /* SDImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
38+
6DD0A1CB241E594E0066E0EE /* Conversion.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0A1BA241E594E0066E0EE /* Conversion.m */; };
39+
6DD0A1CC241E594E0066E0EE /* Conversion.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0A1BA241E594E0066E0EE /* Conversion.m */; };
40+
6DD0A1CD241E594E0066E0EE /* Conversion.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0A1BA241E594E0066E0EE /* Conversion.m */; };
41+
6DD0A1CE241E594E0066E0EE /* Conversion.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0A1BA241E594E0066E0EE /* Conversion.m */; };
2642
/* End PBXBuildFile section */
2743

2844
/* Begin PBXFileReference section */
@@ -38,7 +54,11 @@
3854
3237D43322639BA5001D069D /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = Module/Info.plist; sourceTree = "<group>"; };
3955
32C2B18E2263879300EA889C /* SDWebImageAVIFCoder.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SDWebImageAVIFCoder.framework; sourceTree = BUILT_PRODUCTS_DIR; };
4056
32C2B19A22638A7100EA889C /* SDImageAVIFCoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDImageAVIFCoder.m; sourceTree = "<group>"; };
41-
32C2B19C22638A7100EA889C /* SDImageAVIFCoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDImageAVIFCoder.h; sourceTree = "<group>"; };
57+
6DD0A1B5241E594E0066E0EE /* Conversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Conversion.h; sourceTree = "<group>"; };
58+
6DD0A1B6241E594E0066E0EE /* ColorSpace.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ColorSpace.h; sourceTree = "<group>"; };
59+
6DD0A1B7241E594E0066E0EE /* ColorSpace.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ColorSpace.m; sourceTree = "<group>"; };
60+
6DD0A1B9241E594E0066E0EE /* SDImageAVIFCoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDImageAVIFCoder.h; sourceTree = "<group>"; };
61+
6DD0A1BA241E594E0066E0EE /* Conversion.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Conversion.m; sourceTree = "<group>"; };
4262
/* End PBXFileReference section */
4363

4464
/* Begin PBXFrameworksBuildPhase section */
@@ -122,12 +142,32 @@
122142
32C2B19922638A7100EA889C /* Classes */ = {
123143
isa = PBXGroup;
124144
children = (
125-
32C2B19C22638A7100EA889C /* SDImageAVIFCoder.h */,
145+
6DD0A1CF241E5A0E0066E0EE /* Public */,
146+
6DD0A1B4241E594E0066E0EE /* Private */,
147+
6DD0A1B7241E594E0066E0EE /* ColorSpace.m */,
148+
6DD0A1BA241E594E0066E0EE /* Conversion.m */,
126149
32C2B19A22638A7100EA889C /* SDImageAVIFCoder.m */,
127150
);
128151
path = Classes;
129152
sourceTree = "<group>";
130153
};
154+
6DD0A1B4241E594E0066E0EE /* Private */ = {
155+
isa = PBXGroup;
156+
children = (
157+
6DD0A1B5241E594E0066E0EE /* Conversion.h */,
158+
6DD0A1B6241E594E0066E0EE /* ColorSpace.h */,
159+
);
160+
path = Private;
161+
sourceTree = "<group>";
162+
};
163+
6DD0A1CF241E5A0E0066E0EE /* Public */ = {
164+
isa = PBXGroup;
165+
children = (
166+
6DD0A1B9241E594E0066E0EE /* SDImageAVIFCoder.h */,
167+
);
168+
path = Public;
169+
sourceTree = "<group>";
170+
};
131171
/* End PBXGroup section */
132172

133173
/* Begin PBXHeadersBuildPhase section */
@@ -136,7 +176,9 @@
136176
buildActionMask = 2147483647;
137177
files = (
138178
3237D42422639480001D069D /* SDWebImageAVIFCoder.h in Headers */,
139-
3237D427226394D1001D069D /* SDImageAVIFCoder.h in Headers */,
179+
6DD0A1C0241E594E0066E0EE /* ColorSpace.h in Headers */,
180+
6DD0A1C8241E594E0066E0EE /* SDImageAVIFCoder.h in Headers */,
181+
6DD0A1BC241E594E0066E0EE /* Conversion.h in Headers */,
140182
);
141183
runOnlyForDeploymentPostprocessing = 0;
142184
};
@@ -145,7 +187,9 @@
145187
buildActionMask = 2147483647;
146188
files = (
147189
3237D42522639480001D069D /* SDWebImageAVIFCoder.h in Headers */,
148-
3237D429226394D1001D069D /* SDImageAVIFCoder.h in Headers */,
190+
6DD0A1C1241E594E0066E0EE /* ColorSpace.h in Headers */,
191+
6DD0A1C9241E594E0066E0EE /* SDImageAVIFCoder.h in Headers */,
192+
6DD0A1BD241E594E0066E0EE /* Conversion.h in Headers */,
149193
);
150194
runOnlyForDeploymentPostprocessing = 0;
151195
};
@@ -154,7 +198,9 @@
154198
buildActionMask = 2147483647;
155199
files = (
156200
3237D42622639480001D069D /* SDWebImageAVIFCoder.h in Headers */,
157-
3237D42B226394D2001D069D /* SDImageAVIFCoder.h in Headers */,
201+
6DD0A1C2241E594E0066E0EE /* ColorSpace.h in Headers */,
202+
6DD0A1CA241E594E0066E0EE /* SDImageAVIFCoder.h in Headers */,
203+
6DD0A1BE241E594E0066E0EE /* Conversion.h in Headers */,
158204
);
159205
runOnlyForDeploymentPostprocessing = 0;
160206
};
@@ -163,7 +209,9 @@
163209
buildActionMask = 2147483647;
164210
files = (
165211
3237D42322639480001D069D /* SDWebImageAVIFCoder.h in Headers */,
166-
32C2B19F22638A7100EA889C /* SDImageAVIFCoder.h in Headers */,
212+
6DD0A1BF241E594E0066E0EE /* ColorSpace.h in Headers */,
213+
6DD0A1C7241E594E0066E0EE /* SDImageAVIFCoder.h in Headers */,
214+
6DD0A1BB241E594E0066E0EE /* Conversion.h in Headers */,
167215
);
168216
runOnlyForDeploymentPostprocessing = 0;
169217
};
@@ -321,6 +369,8 @@
321369
isa = PBXSourcesBuildPhase;
322370
buildActionMask = 2147483647;
323371
files = (
372+
6DD0A1CC241E594E0066E0EE /* Conversion.m in Sources */,
373+
6DD0A1C4241E594E0066E0EE /* ColorSpace.m in Sources */,
324374
3237D428226394D1001D069D /* SDImageAVIFCoder.m in Sources */,
325375
);
326376
runOnlyForDeploymentPostprocessing = 0;
@@ -329,6 +379,8 @@
329379
isa = PBXSourcesBuildPhase;
330380
buildActionMask = 2147483647;
331381
files = (
382+
6DD0A1CD241E594E0066E0EE /* Conversion.m in Sources */,
383+
6DD0A1C5241E594E0066E0EE /* ColorSpace.m in Sources */,
332384
3237D42A226394D1001D069D /* SDImageAVIFCoder.m in Sources */,
333385
);
334386
runOnlyForDeploymentPostprocessing = 0;
@@ -337,6 +389,8 @@
337389
isa = PBXSourcesBuildPhase;
338390
buildActionMask = 2147483647;
339391
files = (
392+
6DD0A1CE241E594E0066E0EE /* Conversion.m in Sources */,
393+
6DD0A1C6241E594E0066E0EE /* ColorSpace.m in Sources */,
340394
3237D42C226394D2001D069D /* SDImageAVIFCoder.m in Sources */,
341395
);
342396
runOnlyForDeploymentPostprocessing = 0;
@@ -345,6 +399,8 @@
345399
isa = PBXSourcesBuildPhase;
346400
buildActionMask = 2147483647;
347401
files = (
402+
6DD0A1CB241E594E0066E0EE /* Conversion.m in Sources */,
403+
6DD0A1C3241E594E0066E0EE /* ColorSpace.m in Sources */,
348404
32C2B19D22638A7100EA889C /* SDImageAVIFCoder.m in Sources */,
349405
);
350406
runOnlyForDeploymentPostprocessing = 0;

0 commit comments

Comments
 (0)