Commit Graph

3362 Commits

Author SHA1 Message Date
DreamPiggy 57403c9d3f Rename to use `dispatch_block_t` alias 2023-01-06 19:09:39 +08:00
DreamPiggy b5d712a378 Implements the Callback queue dispatch
Fix some missing components
2023-01-06 18:52:31 +08:00
DreamPiggy 43ec4726e1 Added context option `callbackQueue` for advanced user to control which queue to callback
This is used for user who call SDWebImage outside from main queue and need precise queue control, such as avoid chain queue blocking (like AVKit lazy load)
2023-01-04 18:47:50 +08:00
DreamPiggy 4178d12a44 Bumped version to 5.14.3
update CHANGELOG
2022-12-27 20:03:04 +08:00
DreamPiggy 8be9f2c3f9
Merge pull request #3461 from dreampiggy/bugfix/yuv420_jpeg_hevc
Fix the iOS 15+ force-decode hack break Apple's HEIF and JPEG YUV420 optimization
2022-12-27 19:57:48 +08:00
DreamPiggy d2221403e1 Removed the unused options for CGImageSourceCopyPropertiesAtIndex 2022-12-27 19:55:12 +08:00
DreamPiggy a53eb92988 Update the test case `test23ThatThumbnailEncodeCalculation`
This regression test should also been reverted
2022-12-27 19:23:58 +08:00
DreamPiggy a99c0de68d Fix the iOS 15+ force-decode hack break Apple's HEIF and JPEG YUV420 optimization
The lazyDecode logic effect the static image as well. Should roll back and only check for animated image
2022-12-27 18:58:21 +08:00
DreamPiggy 7bc087b081
Merge pull request #3460 from dreampiggy/feat/ioqueue_concurrent_config
Added `ioQueueAttributes` to use concurrent or control QoS for image cache internal IO Queue
2022-12-27 17:57:09 +08:00
DreamPiggy ffc91663bf Added test case `test48CacheUseConcurrentIOQueue` 2022-12-27 17:37:07 +08:00
DreamPiggy c60e6714dd Added `ioQueueAttributes` to use concurrent or control QoS for image cache internal IO Queue 2022-12-27 17:24:07 +08:00
DreamPiggy 0274aa85fe
Merge pull request #3452 from kinarobin/fetch-frame-early-for-animated-image-render
[Performance]when frame timestamp not reached, we should prefetch frame in advance for image render.
2022-12-27 16:51:54 +08:00
DreamPiggy 707db2e016
Merge pull request #3459 from dreampiggy/bugfix/player_cache_poster_image
The poster image should not trigger a frameChange callback
2022-12-27 15:47:17 +08:00
DreamPiggy 717461459f Hack the first frame to ensure it always displayed in first screen refresh 2022-12-26 19:05:39 +08:00
DreamPiggy b5db7fac68 The poster image should not trigger a frameChange callback 2022-12-26 18:53:55 +08:00
kinarobin a15f594869 prefetch image in advance 2022-12-02 21:24:36 +08:00
DreamPiggy 3312bf5e67 Bumped version to 5.14.2
update CHANGELOG
2022-11-14 18:49:54 +08:00
DreamPiggy 430ef4d73c
Merge pull request #3443 from dreampiggy/project/move_assert_check_to_demo_tests
Move the SD_CHECK_CGIMAGE_RETAIN_SOURCE assertion to SDWebImage Demo and Tests only
2022-11-14 18:47:05 +08:00
DreamPiggy 9c0c715d6a Move the SD_CHECK_CGIMAGE_RETAIN_SOURCE assertion to SDWebImage Demo and Tests only
This does not effects user who use this framework, only useful for ourselves to ensure Apple does not break our code
2022-11-14 17:07:29 +08:00
DreamPiggy 80683c20d8 Bumped version to 5.14.1
update CHANGELOG
2022-11-11 15:35:47 +08:00
DreamPiggy a97d502304
Merge pull request #3439 from dreampiggy/bugfix/thread_safe_callback
Fix the missing lock for callbackTokens which may cause thread-safe issue
2022-11-11 15:30:36 +08:00
DreamPiggy 736f3f41f7 Move block before sending to the main queue
This can avoid some life cycle issue and increase performance
2022-11-11 14:29:20 +08:00
DreamPiggy 384b2d7c8b Fix the missing lock for callbackTokens which may cause thread-safe issue 2022-11-11 14:22:49 +08:00
DreamPiggy bc3f09ccbd
Merge pull request #3436 from dreampiggy/bugfix/ios16_pdf_use_coregraphics
Use CoreGraphics to decode PDF instead of ImageIO to solve iOS 16's issue
2022-11-11 14:17:17 +08:00
DreamPiggy 30f165abd5 Change from instance method to class method 2022-11-11 00:07:32 +08:00
DreamPiggy f4706453d6 Use CoreGraphics to decode PDF instead of ImageIO to solve iOS 16's issue
We no longer use ImageIO to decode PDF, seems they don't maintain that kSDCGImageSourceRasterizationDPI
Copy the code from SDWebImagePDFCoder, need to update
2022-11-10 23:54:14 +08:00
DreamPiggy 8a26bb3f3d
Merge pull request #3434 from dreampiggy/bugfix/underlying_queue_crash_ios12
Fix the iOS 12 crash because the underlyingQueue is nil
2022-11-10 22:41:26 +08:00
DreamPiggy d96ea392d1 Fix the iOS 12 crash because the underlyingQueue is nil
Use NSOperation dependency to solve this issue
2022-11-10 22:03:12 +08:00
DreamPiggy b6aa428b7d Bumped version to 5.14.0
update CHANGELOG
2022-11-08 22:48:52 +08:00
DreamPiggy 35b28d4179
Merge pull request #3430 from dreampiggy/feat/add_is_thumbnail
Added the helper convenient API `sd_isThumbnail`
2022-11-08 22:42:00 +08:00
DreamPiggy bfa91a291b Added the helper convenient API `sd_isThumbnail`
Fix the metadata does not saved
2022-11-08 22:40:36 +08:00
DreamPiggy 03b46475eb Revert #2792, the autoreleasepool does not solve the issue 2022-11-08 21:49:26 +08:00
DreamPiggy 6ce59aa8c1
Merge pull request #3429 from dreampiggy/perf/remove_conforms_to_protocol
Replace conformsToProtocol call with appropriate respondsToSelector check to improve performance
2022-11-08 21:44:07 +08:00
DreamPiggy 7ddf3214e6 Fix the test case again on below iOS 15 2022-11-08 21:18:20 +08:00
DreamPiggy f8d353b50c Update test case `test06ThatUsingACustomDownloaderOperationWorks` 2022-11-08 20:04:36 +08:00
DreamPiggy 9aa27b61e8 Replace conformsToProtocol call with appropriate respondsToSelector check
This effect API called with multiple times, for some one-time setup and important check, the conformsToProtocol is remained
2022-11-08 20:04:15 +08:00
DreamPiggy 359036eae9
Merge pull request #3428 from dreampiggy/opt/avoid_store_again_when_origin_disk_exits
Avoid store again when origin disk cache hit during Thumbnail or Transformer with smaller pixel size
2022-11-08 19:16:05 +08:00
DreamPiggy 6a9b578369 Added test case `test21ThatQueryOriginalDiskCacheFromThumbnailShouldNotWriteBackDiskCache` 2022-11-08 18:51:47 +08:00
riv1r 9599a78ff9
Fix del redundant autoreleasepool (#3388)
* fix:del redundant autoreleasepool, because frameProperties is not a __autoreleasing reference object, for-Loop does not cause untimely release

* fix:del redundant autoreleasepool, because frame is strongly referenced by frames, for-Loop does not cause untimely release

* fix:del redundant autoreleasepool, because sourceTileImageRef is released by CGImageRelease, for-Loop does not cause untimely release

Co-authored-by: chendongran06039 <chendongran06039@hellobike.com>
Co-authored-by: DreamPiggy <lizhuoli1126@126.com>
2022-11-08 17:29:49 +08:00
DreamPiggy f93cf96832 Avoid store original disk cache again when using thumbnail or transformer from the full size data
This solve #3395
2022-11-08 16:44:40 +08:00
DreamPiggy 5a89f80816
Merge pull request #3427 from dreampiggy/bugfix/logic_nullable_check
Add the possible nullable logic check when the force-decode/copy failed
2022-11-08 16:41:40 +08:00
DreamPiggy cdd77d5ebe
Merge pull request #3426 from dreampiggy/bugfix/UTI_hint_ignore_dynamic_log
Ignore the dynamic UTI type hint to avoid extra log
2022-11-08 16:20:33 +08:00
DreamPiggy 0d1c603d50 Add the possible nullable logic check when the force-decode/copy failed 2022-11-08 16:19:49 +08:00
DreamPiggy c81aec4ccd Ignore the dynamic UTI type hint to avoid extra log 2022-11-08 16:15:25 +08:00
DreamPiggy f6769186b9
Merge pull request #3425 from dreampiggy/feature/imageio_force_decode_option_control
Added `SDImageCoderDecodeUseLazyDecoding` to control whether to use lazy-decoding for ImageIO. Introduce new workaround to strip CGImage retained CGImageSource on iOS 15
2022-11-08 14:36:55 +08:00
DreamPiggy 6c83696800 Update test case `test17ThatMinimumProgressIntervalWorks` to make it more stable 2022-11-07 18:39:33 +08:00
DreamPiggy 7c4649c7cc Update the test case `test23ThatThumbnailEncodeCalculation` 2022-11-07 15:25:52 +08:00
DreamPiggy 136d05fce8 Add extra check when user provide SDImageCoderDecodeUseLazyDecoding 2022-11-07 12:44:46 +08:00
DreamPiggy 3000dd5098 Fix the `sd_isDecoded` did not set after we use SDCGImageCreateCopy 2022-11-07 12:20:04 +08:00
DreamPiggy db25af9506 Recovery the assert check on only iPhone/TV simulator in debug mode 2022-11-07 12:10:22 +08:00