Commit Graph

3339 Commits

Author SHA1 Message Date
DreamPiggy 6c6b951845 Bumped version to 5.15.0
update CHANGELOG
2023-01-17 17:10:01 +08:00
DreamPiggy 975502b4a6
Merge pull request #3469 from dreampiggy/feat/animated_image_encode
Added encodeWithFrames API for animation encoding in custom coder, better for usage
2023-01-17 16:50:50 +08:00
DreamPiggy 9dd8b6c08b Update test case 2023-01-17 16:50:16 +08:00
DreamPiggy a01715e196
Merge pull request #3468 from dreampiggy/feat/decode_solution_change
Update the decode solution to allows CoreGraphics avoid using any UIKit method
2023-01-17 16:20:07 +08:00
DreamPiggy 0bdb7865c7 Change the immutable frames array 2023-01-17 16:18:17 +08:00
DreamPiggy 985c84be75 Opt the macOS legacy animated encode, with the weak assigned frames to avoid re-decode again
It's still recommended to use the new API
2023-01-17 16:16:09 +08:00
DreamPiggy 8ec3bc83d7 Added encodeWithFrames API for animation encoding in custom coder, better for usage
The exist API need wrap the frames into a new image and extract, consume RAM and CPU
2023-01-17 15:28:26 +08:00
DreamPiggy c0f7023472 Update the decode solution to allows CoreGraphics avoid using any UIKit method
This is back compatible to old version's RAM behavior
2023-01-17 15:27:36 +08:00
DreamPiggy 7c63bad41c
Merge pull request #3466 from dreampiggy/feat/encode_options
Added `SDWebImageContextImageEncodeOptions` to pass encode options like compression quality to SDImageCache storeImage API. Seperate the SDImageCache encode queue and IO queue to match waitStoreCache behavior
2023-01-12 16:35:50 +08:00
DreamPiggy 911a9a86a0 Fix the wrong test because now ioQueue and encodeQueue is different thing, we should not assume calling storeImage and queryDiskCache get the data (they are not guarded by the same serial queue) 2023-01-12 15:56:08 +08:00
DreamPiggy e083ab293f Fix the wrong behavior after 5.15.0 cache changes 2023-01-12 14:49:02 +08:00
DreamPiggy 78fa0a9cb5 Update test case test08ThatImageTransformerWork with encode options 2023-01-11 16:38:00 +08:00
DreamPiggy 08ec6cf253 Adjustment for manager && cache call, add deprecation 2023-01-11 16:00:16 +08:00
DreamPiggy 246cfa935d Change the cache's encoding in global queue to avoid block ioQueue for IO read/write, performance related 2023-01-11 15:32:04 +08:00
DreamPiggy d93a08fc91 Added `SDWebImageContextImageEncodeOptions` to pass encode options like compression quality to SDImageCache storeImage API 2023-01-11 15:08:31 +08:00
DreamPiggy 05f7fb9b0d
Merge pull request #3465 from dreampiggy/feat/callback_queue
Added context option `callbackQueue` and `SDCallbackQueue` wrapper for advanced user to control which queue to callback
2023-01-10 14:38:00 +08:00
DreamPiggy 720a0974d4 Fix SwiftPM issue 2023-01-10 12:49:20 +08:00
DreamPiggy 397f851240 Update test case 2023-01-09 22:14:53 +08:00
DreamPiggy e21e9f19e6 Update Carthage project 2023-01-09 22:08:48 +08:00
DreamPiggy e1e0841102 Rename the internal property to avoid misleading 2023-01-09 22:08:48 +08:00
DreamPiggy 007100d18f Supports the old store cache API without context, which does not supports callback queue customization 2023-01-09 22:08:48 +08:00
DreamPiggy 1b086711ae Fix the issue because of main queue label hack 2023-01-09 22:08:48 +08:00
DreamPiggy 43d74211c3 Added test case `testSDCallbackQueue` 2023-01-09 22:08:48 +08:00
DreamPiggy 90eeb4d830 Deprecate SDWebImagePrefetcher.delegateQueue, translate to use context[SDWebImageContextCallbackQueue] instead 2023-01-09 18:06:14 +08:00
DreamPiggy 5a4b4cf16d Change the asyncSafe to the queue level configuration, introduce SDCallbackPolicy 2023-01-09 18:06:14 +08:00
DreamPiggy 67520b9f55 Fix the new added storeCache API which passing callbackQueue 2023-01-06 19:49:35 +08:00
DreamPiggy fdd9a98210 Do not check nil block, useless in our use case 2023-01-06 19:36:03 +08:00
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