Skip to content

Refactoring & fix a bug & add tests to increase code coverage. #18

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Mar 17, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Example/SDWebImageAVIFCoder.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -8052,6 +8052,7 @@
INFOPLIST_FILE = "Tests/Tests-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SDWebImageAVIFCoder_Example.app/SDWebImageAVIFCoder_Example";
WRAPPER_EXTENSION = xctest;
};
Expand All @@ -8072,7 +8073,9 @@
INFOPLIST_FILE = "Tests/Tests-Info.plist";
PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.${PRODUCT_NAME:rfc1034identifier}";
PRODUCT_NAME = "$(TARGET_NAME)";
SYSTEM_HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/SDWebImageAVIFCoder_Example.app/SDWebImageAVIFCoder_Example";
USER_HEADER_SEARCH_PATHS = "";
WRAPPER_EXTENSION = xctest;
};
name = Release;
Expand Down
116 changes: 116 additions & 0 deletions Example/Tests/Tests.m
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@
@import XCTest;

#import <SDWebImageAVIFCoder/SDImageAVIFCoder.h>
#import <SDWebImageAVIFCoder/Conversion.h>
#import <SDWebImageAVIFCoder/ColorSpace.h>

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

static avifNclxColourPrimaries const kNumPrimaries = AVIF_NCLX_COLOUR_PRIMARIES_EBU3213E;
static avifNclxTransferCharacteristics const kNumTransfers = AVIF_NCLX_TRANSFER_CHARACTERISTICS_BT2100_HLG;


// FIXME(ledyba-z): libavif does not respect MatrixCoefficients in AV1 Sequence Header.
// Instead, it uses ColorPrimaries to calculate MatrixCoefficients.
// This threashold can be less if libavif respects MatrixCoefficients...
Expand Down Expand Up @@ -152,6 +158,116 @@ - (void)testSpecialTest
expectedColor16:kSpecial16 expectedNumComponents16:3];
}

-(void)testAllColorSpaceSupportsOutput
{
for(avifNclxColourPrimaries primaries = 0; primaries < kNumPrimaries; ++primaries) {
for(avifNclxTransferCharacteristics transfer = 0; transfer < kNumTransfers; ++transfer) {
CGColorSpaceRef space = NULL;

space = SDAVIFCreateColorSpaceRGB(primaries, transfer);
XCTAssertTrue(CGColorSpaceSupportsOutput(space));
CGColorSpaceRelease(space);

space = SDAVIFCreateColorSpaceMono(primaries, transfer);
XCTAssertTrue(CGColorSpaceSupportsOutput(space));
CGColorSpaceRelease(space);
}

}
}

-(void)testCalcNCLXColorSpaceFromAVIFImage
{
avifImage* img = avifImageCreate(100, 100, 8, AVIF_PIXEL_FORMAT_YUV420);
for(avifNclxColourPrimaries primaries = 0; primaries < kNumPrimaries; ++primaries) {
for(avifNclxTransferCharacteristics transfer = 0; transfer < kNumTransfers; ++transfer) {
avifNclxColorProfile nclx;
nclx.colourPrimaries = primaries;
nclx.transferCharacteristics = transfer;
avifImageSetProfileNCLX(img, &nclx);
avifImageAllocatePlanes(img, AVIF_PLANES_YUV);

CGColorSpaceRef space = NULL;
BOOL shouldRelease = FALSE;

SDAVIFCalcColorSpaceRGB(img, &space, &shouldRelease);
XCTAssertTrue(CGColorSpaceSupportsOutput(space));
if(shouldRelease) {
CGColorSpaceRelease(space);
}

// monochrome
free(img->yuvPlanes[AVIF_CHAN_U]);
img->yuvPlanes[AVIF_CHAN_U] = NULL;
img->yuvRowBytes[AVIF_CHAN_U] = 0;
free(img->yuvPlanes[AVIF_CHAN_V]);
img->yuvPlanes[AVIF_CHAN_V] = NULL;
img->yuvRowBytes[AVIF_CHAN_V] = 0;

SDAVIFCalcColorSpaceMono(img, &space, &shouldRelease);
XCTAssertTrue(CGColorSpaceSupportsOutput(space));
if(shouldRelease) {
CGColorSpaceRelease(space);
}

avifImageFreePlanes(img, AVIF_PLANES_ALL);
}
}
avifImageDestroy(img);
}

-(void)testCalcICCColorSpaceFromAVIFImage
{
NSData *iccProfile = (__bridge_transfer NSData *)CGColorSpaceCopyICCProfile([SDImageCoderHelper colorSpaceGetDeviceRGB]);
avifImage* img = avifImageCreate(100, 100, 8, AVIF_PIXEL_FORMAT_YUV420);
avifImageSetProfileICC(img, (uint8_t *)iccProfile.bytes, iccProfile.length);

avifImageAllocatePlanes(img, AVIF_PLANES_YUV);

CGColorSpaceRef space = NULL;
BOOL shouldRelease = FALSE;

SDAVIFCalcColorSpaceRGB(img, &space, &shouldRelease);
XCTAssertTrue(CGColorSpaceSupportsOutput(space));
if(shouldRelease) {
CGColorSpaceRelease(space);
}

// monochrome
free(img->yuvPlanes[AVIF_CHAN_U]);
img->yuvPlanes[AVIF_CHAN_U] = NULL;
img->yuvRowBytes[AVIF_CHAN_U] = 0;
free(img->yuvPlanes[AVIF_CHAN_V]);
img->yuvPlanes[AVIF_CHAN_V] = NULL;
img->yuvRowBytes[AVIF_CHAN_V] = 0;

SDAVIFCalcColorSpaceMono(img, &space, &shouldRelease);
XCTAssertTrue(CGColorSpaceSupportsOutput(space));
if(shouldRelease) {
CGColorSpaceRelease(space);
}

avifImageFreePlanes(img, AVIF_PLANES_ALL);

avifImageDestroy(img);
}

-(void)testEncodingAndDecoding
{
CGSize size = CGSizeMake(100, 100);
UIGraphicsBeginImageContextWithOptions(size, YES, 0);
[[UIColor redColor] setFill];
UIRectFill(CGRectMake(0, 0, size.width, size.height));
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
NSData* encoded = [self->coder encodedDataWithImage:image format:SDImageFormatAVIF options:nil];
image = nil;

XCTAssertTrue([self->coder canDecodeFromData:encoded]);

image = [self->coder decodedImageWithData:encoded options:nil];
[self assertColor8:@"<in-memory>" img:image.CGImage expectedColor: kRed8];
}

-(void)assertColor8: (NSString*)filename img:(CGImageRef)img expectedColor:(UInt8*)expectedColor
{
Expand Down
8 changes: 4 additions & 4 deletions Package.resolved

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ let package = Package(
dependencies: ["SDWebImage", "libavif"],
path: ".",
sources: ["SDWebImageAVIFCoder/Classes"],
publicHeadersPath: "SDWebImageAVIFCoder/Classes"
publicHeadersPath: "SDWebImageAVIFCoder/Classes/Public"
)
]
)
2 changes: 2 additions & 0 deletions SDWebImageAVIFCoder.podspec
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ Which is built based on the open-sourced libavif codec.
s.watchos.deployment_target = '2.0'

s.source_files = 'SDWebImageAVIFCoder/Classes/**/*', 'SDWebImageAVIFCoder/Module/SDWebImageAVIFCoder.h'
s.public_header_files = 'SDWebImageAVIFCoder/Classes/Public/*.{h,m}'
s.private_header_files = 'SDWebImageAVIFCoder/Classes/Private/*.{h,m}'

s.dependency 'SDWebImage', '~> 5.0'
s.dependency 'libavif', '~> 0.6'
Expand Down
76 changes: 66 additions & 10 deletions SDWebImageAVIFCoder.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,33 @@
3237D42422639480001D069D /* SDWebImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 3237D42122639480001D069D /* SDWebImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
3237D42522639480001D069D /* SDWebImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 3237D42122639480001D069D /* SDWebImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
3237D42622639480001D069D /* SDWebImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 3237D42122639480001D069D /* SDWebImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
3237D427226394D1001D069D /* SDImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 32C2B19C22638A7100EA889C /* SDImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
3237D428226394D1001D069D /* SDImageAVIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 32C2B19A22638A7100EA889C /* SDImageAVIFCoder.m */; };
3237D429226394D1001D069D /* SDImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 32C2B19C22638A7100EA889C /* SDImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
3237D42A226394D1001D069D /* SDImageAVIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 32C2B19A22638A7100EA889C /* SDImageAVIFCoder.m */; };
3237D42B226394D2001D069D /* SDImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 32C2B19C22638A7100EA889C /* SDImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
3237D42C226394D2001D069D /* SDImageAVIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 32C2B19A22638A7100EA889C /* SDImageAVIFCoder.m */; };
3237D42E22639517001D069D /* libavif.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3237D42D22639516001D069D /* libavif.framework */; };
3237D43022639525001D069D /* libavif.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3237D42F22639525001D069D /* libavif.framework */; };
3237D43222639530001D069D /* libavif.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3237D43122639530001D069D /* libavif.framework */; };
32C2B19D22638A7100EA889C /* SDImageAVIFCoder.m in Sources */ = {isa = PBXBuildFile; fileRef = 32C2B19A22638A7100EA889C /* SDImageAVIFCoder.m */; };
32C2B19F22638A7100EA889C /* SDImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 32C2B19C22638A7100EA889C /* SDImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
6DD0A1BB241E594E0066E0EE /* Conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B5241E594E0066E0EE /* Conversion.h */; settings = {ATTRIBUTES = (Private, ); }; };
6DD0A1BC241E594E0066E0EE /* Conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B5241E594E0066E0EE /* Conversion.h */; settings = {ATTRIBUTES = (Private, ); }; };
6DD0A1BD241E594E0066E0EE /* Conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B5241E594E0066E0EE /* Conversion.h */; settings = {ATTRIBUTES = (Private, ); }; };
6DD0A1BE241E594E0066E0EE /* Conversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B5241E594E0066E0EE /* Conversion.h */; settings = {ATTRIBUTES = (Private, ); }; };
6DD0A1BF241E594E0066E0EE /* ColorSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B6241E594E0066E0EE /* ColorSpace.h */; settings = {ATTRIBUTES = (Private, ); }; };
6DD0A1C0241E594E0066E0EE /* ColorSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B6241E594E0066E0EE /* ColorSpace.h */; settings = {ATTRIBUTES = (Private, ); }; };
6DD0A1C1241E594E0066E0EE /* ColorSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B6241E594E0066E0EE /* ColorSpace.h */; settings = {ATTRIBUTES = (Private, ); }; };
6DD0A1C2241E594E0066E0EE /* ColorSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B6241E594E0066E0EE /* ColorSpace.h */; settings = {ATTRIBUTES = (Private, ); }; };
6DD0A1C3241E594E0066E0EE /* ColorSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0A1B7241E594E0066E0EE /* ColorSpace.m */; };
6DD0A1C4241E594E0066E0EE /* ColorSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0A1B7241E594E0066E0EE /* ColorSpace.m */; };
6DD0A1C5241E594E0066E0EE /* ColorSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0A1B7241E594E0066E0EE /* ColorSpace.m */; };
6DD0A1C6241E594E0066E0EE /* ColorSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0A1B7241E594E0066E0EE /* ColorSpace.m */; };
6DD0A1C7241E594E0066E0EE /* SDImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B9241E594E0066E0EE /* SDImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
6DD0A1C8241E594E0066E0EE /* SDImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B9241E594E0066E0EE /* SDImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
6DD0A1C9241E594E0066E0EE /* SDImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B9241E594E0066E0EE /* SDImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
6DD0A1CA241E594E0066E0EE /* SDImageAVIFCoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 6DD0A1B9241E594E0066E0EE /* SDImageAVIFCoder.h */; settings = {ATTRIBUTES = (Public, ); }; };
6DD0A1CB241E594E0066E0EE /* Conversion.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0A1BA241E594E0066E0EE /* Conversion.m */; };
6DD0A1CC241E594E0066E0EE /* Conversion.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0A1BA241E594E0066E0EE /* Conversion.m */; };
6DD0A1CD241E594E0066E0EE /* Conversion.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0A1BA241E594E0066E0EE /* Conversion.m */; };
6DD0A1CE241E594E0066E0EE /* Conversion.m in Sources */ = {isa = PBXBuildFile; fileRef = 6DD0A1BA241E594E0066E0EE /* Conversion.m */; };
/* End PBXBuildFile section */

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

/* Begin PBXFrameworksBuildPhase section */
Expand Down Expand Up @@ -122,12 +142,32 @@
32C2B19922638A7100EA889C /* Classes */ = {
isa = PBXGroup;
children = (
32C2B19C22638A7100EA889C /* SDImageAVIFCoder.h */,
6DD0A1CF241E5A0E0066E0EE /* Public */,
6DD0A1B4241E594E0066E0EE /* Private */,
6DD0A1B7241E594E0066E0EE /* ColorSpace.m */,
6DD0A1BA241E594E0066E0EE /* Conversion.m */,
32C2B19A22638A7100EA889C /* SDImageAVIFCoder.m */,
);
path = Classes;
sourceTree = "<group>";
};
6DD0A1B4241E594E0066E0EE /* Private */ = {
isa = PBXGroup;
children = (
6DD0A1B5241E594E0066E0EE /* Conversion.h */,
6DD0A1B6241E594E0066E0EE /* ColorSpace.h */,
);
path = Private;
sourceTree = "<group>";
};
6DD0A1CF241E5A0E0066E0EE /* Public */ = {
isa = PBXGroup;
children = (
6DD0A1B9241E594E0066E0EE /* SDImageAVIFCoder.h */,
);
path = Public;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
Expand All @@ -136,7 +176,9 @@
buildActionMask = 2147483647;
files = (
3237D42422639480001D069D /* SDWebImageAVIFCoder.h in Headers */,
3237D427226394D1001D069D /* SDImageAVIFCoder.h in Headers */,
6DD0A1C0241E594E0066E0EE /* ColorSpace.h in Headers */,
6DD0A1C8241E594E0066E0EE /* SDImageAVIFCoder.h in Headers */,
6DD0A1BC241E594E0066E0EE /* Conversion.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -145,7 +187,9 @@
buildActionMask = 2147483647;
files = (
3237D42522639480001D069D /* SDWebImageAVIFCoder.h in Headers */,
3237D429226394D1001D069D /* SDImageAVIFCoder.h in Headers */,
6DD0A1C1241E594E0066E0EE /* ColorSpace.h in Headers */,
6DD0A1C9241E594E0066E0EE /* SDImageAVIFCoder.h in Headers */,
6DD0A1BD241E594E0066E0EE /* Conversion.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -154,7 +198,9 @@
buildActionMask = 2147483647;
files = (
3237D42622639480001D069D /* SDWebImageAVIFCoder.h in Headers */,
3237D42B226394D2001D069D /* SDImageAVIFCoder.h in Headers */,
6DD0A1C2241E594E0066E0EE /* ColorSpace.h in Headers */,
6DD0A1CA241E594E0066E0EE /* SDImageAVIFCoder.h in Headers */,
6DD0A1BE241E594E0066E0EE /* Conversion.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -163,7 +209,9 @@
buildActionMask = 2147483647;
files = (
3237D42322639480001D069D /* SDWebImageAVIFCoder.h in Headers */,
32C2B19F22638A7100EA889C /* SDImageAVIFCoder.h in Headers */,
6DD0A1BF241E594E0066E0EE /* ColorSpace.h in Headers */,
6DD0A1C7241E594E0066E0EE /* SDImageAVIFCoder.h in Headers */,
6DD0A1BB241E594E0066E0EE /* Conversion.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -321,6 +369,8 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6DD0A1CC241E594E0066E0EE /* Conversion.m in Sources */,
6DD0A1C4241E594E0066E0EE /* ColorSpace.m in Sources */,
3237D428226394D1001D069D /* SDImageAVIFCoder.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand All @@ -329,6 +379,8 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6DD0A1CD241E594E0066E0EE /* Conversion.m in Sources */,
6DD0A1C5241E594E0066E0EE /* ColorSpace.m in Sources */,
3237D42A226394D1001D069D /* SDImageAVIFCoder.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand All @@ -337,6 +389,8 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6DD0A1CE241E594E0066E0EE /* Conversion.m in Sources */,
6DD0A1C6241E594E0066E0EE /* ColorSpace.m in Sources */,
3237D42C226394D2001D069D /* SDImageAVIFCoder.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand All @@ -345,6 +399,8 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
6DD0A1CB241E594E0066E0EE /* Conversion.m in Sources */,
6DD0A1C3241E594E0066E0EE /* ColorSpace.m in Sources */,
32C2B19D22638A7100EA889C /* SDImageAVIFCoder.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
Expand Down
Loading