kean / Nuke

Image loading system
https://kean.blog/nuke
MIT License
8.05k stars 525 forks source link

AVIF Plugin feature #522

Closed delneg closed 2 years ago

delneg commented 2 years ago

Hello, I've a WIP project of AVIF plugin for Nuke, as of now it's mostly working & tested (incremental loading can sometimes be buggy) It's based on the WebP plugin and can be used via SwiftPM (I"m planning on publishing it to cocoapods but it's a difficult process) https://github.com/delneg/Nuke-AVIF-Plugin

kean commented 2 years ago

Hey, @delneg. That's fantastic! I'd love to feature it in the main repo as soon as you think it's ready.

I think Nuke is the only project that I have that still supports CocoaPods. But not of the "satellite" projects, like Alamofire Plugin do. They are SPM only.

delneg commented 2 years ago

Currently, cocoapods works fine but this new spm stuff doesn't want to work at all despite all my struggling. It's easy for swift-only packages, but seems to be very hard to get right for avif package because it has objc wrapper over c code. Still trying, though.

P.S. Also, in SPM there's no such thing as 'subspecs' from cocoapods, so the user will be stuck with libaom without the possibility to choose between libaom, libdav1d, libgav1, librav1e, svt-av1 codecs.

delneg commented 2 years ago

@kean Looks like I finally managed to get it to work, tested at https://github.com/delneg/ImageFrameworksBenchmark/tree/avif-spm Lessons learned:

Version 0.9.3 should work (the version corresponds to libavif version used)

I encourage anyone to try it and report issues encountered, if any.

kean commented 2 years ago

I added the reference to the REAMDE file. Thanks for building this.

By the way, was there a particular reason to fork https://github.com/delneg/libavif-XCode? I'd suggest using directly https://github.com/SDWebImage/libavif-Xcode.

I also added to the trello board a task to write a guide for integrating with SDWebImage codecs. They've done the work – it would be great to use it. Unfortunately, they all have SDWebImage as a dependency. But this shouldn't be too much of a problem.

delneg commented 2 years ago

By the way, was there a particular reason to fork https://github.com/delneg/libavif-XCode? I'd suggest using directly https://github.com/SDWebImage/libavif-Xcode.

Yes, the main reason for forking is the name conflict when installed via SPM (hence the rename) Also I updated the libavif version to 0.9.3 (the most up-to-date currently)

Thanks a lot for the reference in the README. I'll also check out the trello board.

obrhoff commented 2 years ago

Afaik iOS16 supports AVIF now out of the box. Is this plugin now deprecated?

delneg commented 1 year ago

AFAIK, it's only supported in WebKit (Safari), not out of the box. https://github.com/WebKit/WebKit/pull/1717/files

obrhoff commented 1 year ago

Weird. The same applies for the Opus Audio Codec. Thats really sad.

lucasecf commented 1 year ago

Just leaving an update here in case someone stumble to this issue like me.

I just tried and .avif images worked fine for me out of the box with Nuke on latest version (12.1.6 at this moment), no need to use a plugin or anything.

To be sure, I downloaded both an iOS 15.X simulator - as expected, images were not loading, and the one with exactly iOS 16.0 - then the avif images started to work/load without problems.