Skip to content
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

Fix the iOS 12 crash because the underlyingQueue is nil #3434

Merged

Conversation

dreampiggy
Copy link
Contributor

New Pull Request Checklist

  • I have read and understood the CONTRIBUTING guide

  • I have read the Documentation

  • I have searched for a similar pull request in the project and found none

  • I have updated this branch with the latest master to avoid conflicts (via merge from master or rebase)

  • I have added the required tests to prove the fix/feature I am adding

  • I have updated the documentation (if necessary)

  • I have run the tests and they pass

  • I have run the lint and it passes (pod lib lint)

This merge request fixes #3433

Pull Request Description

Use NSOperation dependency to solve this issue

@dreampiggy dreampiggy force-pushed the bugfix/underlying_queue_crash_ios12 branch from 8a1c18f to 5c9746c Compare November 10, 2022 11:59
Use NSOperation dependency to solve this issue
@dreampiggy dreampiggy force-pushed the bugfix/underlying_queue_crash_ios12 branch from 5c9746c to d96ea39 Compare November 10, 2022 14:03
@dreampiggy dreampiggy added the fix label Nov 10, 2022
@dreampiggy dreampiggy added this to the 5.14.1 milestone Nov 10, 2022
@dreampiggy dreampiggy merged commit 8a26bb3 into SDWebImage:master Nov 10, 2022
@dreampiggy dreampiggy deleted the bugfix/underlying_queue_crash_ios12 branch November 10, 2022 14:41
yonatanreiss-lightricks added a commit to yonatanreiss-lightricks/SDWebImage that referenced this pull request Apr 3, 2023
Squashed commit of the following:
commit fb50c1d20f24db5322b2f8f379de3618f75fe08e
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Mar 3 23:12:01 2023 +0800

    Bumped version to 5.15.5

    update CHANGELOG

commit 4a3ce34c27d6b85cbd1cdd6b5b2cda8fe7c51639
Merge: 14b36f80 e0b7cc52
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Mar 3 23:10:53 2023 +0800

    Merge pull request #3506 from dreampiggy/bugfix/fix_blur_effect

    Fix the blur effect logic by avoid color convert and always use three box-blur methodology

commit e0b7cc524113637c6334ef5e558aba685e0754dc
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Mar 3 18:54:08 2023 +0800

    Fix the blur effect logic by avoid color convert and always use three box-blur methodology

commit 14b36f8096ac14785c3fc556a3b71e14a9022384
Merge: a812079a 8d09564f
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Mar 3 15:29:17 2023 +0800

    Merge pull request #3505 from dreampiggy/bugfix/cache_nil_key

    Protect the disk operation when input key is nil

commit 8d09564f27884bfd50632b8f57dfdd8989fbb76e
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Mar 3 15:10:42 2023 +0800

    Protect the disk operation when input key is nil

commit a812079ae91a7f2e627364c42ea7b98abfa366ed
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 21 21:14:53 2023 +0800

    GravatarBumped version to 5.15.4

    update CHANGELOG

commit 011fe7403101031cd6996ff15867752c4ced383f
Merge: 554e05a4 5bb64eae
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 21 21:09:42 2023 +0800

    Merge pull request #3500 from dreampiggy/bugfix/sd_callbackqueue_escaping

    Fix the wrong declaration of SDCallbackQueue's block, should be escaping to match GCD block

commit 5bb64eae39ff6cad6be6422b80250d7d86a533f6
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 21 19:12:12 2023 +0800

    Fix the wrong declaration of SDCallbackQueue's block, should be escaping to match GCD block

    This may cause the wrong lifecycle for block (earily release)

commit 554e05a4415fe20add53531c21e593c403685c3d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Feb 18 19:49:14 2023 +0800

    Bumped version to 5.15.3

    update CHANGELOG

commit 748def0a0c5d6cd589a411451cd4e2ea29b3ee4f
Merge: 940f991c 856ecd62
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Feb 18 19:36:15 2023 +0800

    Merge pull request #3496 from dreampiggy/temp/try_fix_promotion

    Try to fix the SDAnimatedImageView playback speed issue in Promotion devices (iPhone Pro)

commit 856ecd6235186fffb70f0125987518bcce374c11
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Feb 18 18:07:07 2023 +0800

    Fix leak of display mode

commit 3440b7c0fbea6ba00acc5e8d0a4a59dc81ce5645
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Feb 18 17:56:34 2023 +0800

    Update test case for display link and revert the protect code

commit 940f991ca1d6724aec2610af07d5e58608515997
Merge: 9cf8d125 9bc52079
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Feb 18 17:57:14 2023 +0800

    Merge pull request #3497 from dreampiggy/bugfix/same_url_failed_callback_times

    Fix the issue when multiple request for same url failed, the completedBlock will callback more times

commit 9bc52079792f2ab63bdb98d56578e42777ee4dff
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Feb 18 17:33:59 2023 +0800

    Added test case `test31ThatMultipleRequestForSameURLFailedCallback` to ensure behavior

commit b25864cc71560f5a0070b871ce337fde751431c0
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Feb 18 17:27:13 2023 +0800

    Fix the issue when multiple request for same url failed, the completedBlock will callback more times

commit 9cf8d125f522df0a7c3956f3828522ef2b6975fc
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Feb 18 17:02:34 2023 +0800

    Update README.md

    Added the explanation for SD prefix

commit 271e8d8b12569b3af3c428ff2f8ca6913f6604d9
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Feb 12 02:51:55 2023 +0800

    Try to fix display link callback duration calculation issue, using next timestamp for iOS 10+ / watchOS, previous timestamp for iOS 9

commit 8bd4e72c331ff082a3add70a6e2dab206fcd6c08
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Feb 12 02:46:50 2023 +0800

    Fix macOS Demo applicationDidFinishLaunching not called

commit a47bc00770240901a1c99a26c0dad638fa899917
Merge: 7ccdcb02 205b57cc
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 7 21:08:22 2023 +0800

    Merge pull request #3489 from SDWebImage/ci

    Try to fix codecov upload issue using token

commit 205b57cc1df07c6f825c3739ad630a95913cbc6e
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 7 16:13:32 2023 +0800

    Try to fix codecov upload issue using token

commit 7ccdcb02fb0ab47409a6602769cea0486be2a209
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 7 15:20:33 2023 +0800

    Bumped version to 5.15.2

    update CHANGELOG

commit 2382c58421f86cd226a0b1eb4d590ef8f8d7a09a
Merge: 6b25d985 f2d76101
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 7 15:00:02 2023 +0800

    Merge pull request #3484 from dreampiggy/garden/objc_bool_yes_no

    Code garden to change Objc bool from true/false to YES/NO

commit 6b25d9854aef0a8a9df29d9ac69d8786a8f26f8d
Merge: 1f48e5a3 7cec27ba
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 7 14:59:20 2023 +0800

    Merge pull request #3483 from dreampiggy/bugfix/atomic_logic_fix

    Fix the atomic logic between downloader and operation again

commit f2d76101815904b9f82665f6ea7f1dbb4b5339a8
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 7 02:32:11 2023 +0800

    Change Objc BOOL true/false into correct YES/NO

commit 7cec27bab922dc91a310dbb7ba5f3eb61a237ad3
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 7 02:16:00 2023 +0800

    Fix the atomic logic between downloader and operation again

    Remove the wrong logic to modify queue priority when re-use operation

commit 1f48e5a37959de4ea240c12b68227c10f6c4d6e2
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 21:57:16 2023 +0800

    Bumped version to 5.15.1

    update CHANGELOG

commit eecc7e43800da45cc34e2814a99c298218c5b7ab
Merge: 247cbcfd fbe8880a
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 21:50:28 2023 +0800

    Merge pull request #3480 from dreampiggy/bugfix/data_copy_crash

    Remove the unused extra copy for `SDAnimatedImage` data initializer

commit 247cbcfd9729a4e9d1e06366be081bdaa9387b75
Merge: a0521643 02969011
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 21:49:43 2023 +0800

    Merge pull request #3479 from dreampiggy/bugfix/fix_async_block_operation_race

    Try to fix the SDAsyncBlockOperation's race condition

commit fbe8880ab7277df8f4f54cc5ba6a41e3313db152
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 21:11:59 2023 +0800

    Remove the unused extra copy for `SDAnimatedImage` data initializer

commit 02969011b09a4af9a0d1dc0c45cd655fd599f82c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 18:07:00 2023 +0800

    Try to fix the SDAsyncBlockOperation's race condition

    Use the correct way for subclassing NSOperation

commit a052164350a6542eb7245ed1341972b4d84623e0
Merge: f25cc6bb 1ec6cd06
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 20:41:10 2023 +0800

    Merge pull request #3477 from dreampiggy/bugfix/ensure_downloader_callback_atomic

    Ensure the Downloader and DownloaderOperation callback the completion in atomic and never miss one

commit 1ec6cd06f70110daadffaeb7671fd15ee6f3d881
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 18:54:56 2023 +0800

    Change all placeholder.com sample from http into https

commit b6910be155de74fecd43992fceb99cd65157bd51
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 17:29:08 2023 +0800

    Added test case `test31ThatMultipleRequestForSameURLNeverSkipCallback` to ensure all download request for same url always callback

commit 0c94e540bcded53fef6aba0ad3882844ab72a1ce
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 16:09:07 2023 +0800

    Revert back the NSOperationQueue, seems has better performance on this cases (may dispatch multiple block but not important, one finished is OK)

commit 6e1fee7834276add072674f0802a824f8b040a41
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 15:06:54 2023 +0800

    Try not introduce new public API for operation, attach the `isCompleted` property using associated object from downloader, ensure compatibility

commit 43b94130c7f94a497f39001f17a4fa2499c3874c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Feb 3 19:02:07 2023 +0800

    Ensure the DownloaderOperation callback the completion in atomic and never miss one

    The downloader will now check and ignore a `transferedDataFinished` operation (which is callbacking its own completion), because it's not safe in multi-thread environment, create new network request instead

commit f25cc6bb1c595ef0165039360534d587e451ff8a
Merge: 8a6dcf88 a66ff8e5
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jan 22 14:12:35 2023 +0800

    Merge pull request #3474 from dreampiggy/bugfix/atomic_fix

    Avoid compiler generate the wrong property attribute with non-atomic

commit a66ff8e5c9bfa32067c9f5c840efdb89d9104bad
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jan 22 11:45:19 2023 +0800

    Avoid compiler generate the wrong property attribute with non-atomic

commit 8a6dcf88820754e529e22c054c160089ded6fece
Merge: 6f8121c6 a80af99d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jan 22 11:43:31 2023 +0800

    Merge pull request #3473 from dreampiggy/bugfix/create_options

    Fix the issue the fallback logic of ImageIO Source should avoid passing any UTI hint

commit a80af99d0af5873bf017ff15a89072ca1f20add9
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jan 22 11:23:18 2023 +0800

    Fix the issue the fallback logic of ImageIO Source should avoid passing any UTI hint

commit 6f8121c604ce580c5968f117f8829ef0a83d3071
Merge: 6c6b9518 5b34168e
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jan 19 12:08:08 2023 +0800

    Merge pull request #3471 from GiddyGoatGaming/patch-1

    Bump actions/checkout to v3

commit 5b34168e645618f4d97f46d5fd6c8d40b2834b98
Author: Spencer Comfort <109806759+GiddyGoatGaming@users.noreply.github.com>
Date:   Tue Jan 17 06:50:50 2023 -0500

    Bump actions/checkout to v3

commit 6c6b951845a520fa7e8356e28adb5339c0f008d3
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 17 17:10:01 2023 +0800

    Bumped version to 5.15.0

    update CHANGELOG

commit 975502b4a6dc9629027fc08ff085bc97efb1d7d6
Merge: a01715e1 9dd8b6c0
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 17 16:50:50 2023 +0800

    Merge pull request #3469 from dreampiggy/feat/animated_image_encode

    Added encodeWithFrames API for animation encoding in custom coder, better for usage

commit 9dd8b6c08b2d70103741044bfbee78eac2f7bacf
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 17 16:50:16 2023 +0800

    Update test case

commit a01715e19605bc8d657174d553fd3781c01a74ef
Merge: 7c63bad4 c0f70234
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 17 16:20:07 2023 +0800

    Merge pull request #3468 from dreampiggy/feat/decode_solution_change

    Update the decode solution to allows CoreGraphics avoid using any UIKit method

commit 0bdb7865c77599803a55966816d232a02576096f
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 17 16:18:17 2023 +0800

    Change the immutable frames array

commit 985c84be75530dc18e999cc42b050ba700d08226
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 17 16:16:09 2023 +0800

    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

commit 8ec3bc83d7c13828abed5efb63fb2dc212ca69da
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 17 15:24:39 2023 +0800

    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

commit c0f70234725b7a9f49a3489c17b66e8834f26687
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 17 14:38:00 2023 +0800

    Update the decode solution to allows CoreGraphics avoid using any UIKit method

    This is back compatible to old version's RAM behavior

commit 7c63bad41c0cde5ccc023f70a61ef434c726da4c
Merge: 05f7fb9b 911a9a86
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jan 12 16:35:50 2023 +0800

    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

commit 911a9a86a0392231155990b4b67f7b29c9ef51d3
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jan 12 15:20:51 2023 +0800

    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)

commit e083ab293fc591526805d95d1ae9f431252747e6
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jan 12 14:49:02 2023 +0800

    Fix the wrong behavior after 5.15.0 cache changes

commit 78fa0a9cb5a7eedfe82a0a5b3aea2ebff0ed5100
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jan 11 16:38:00 2023 +0800

    Update test case test08ThatImageTransformerWork with encode options

commit 08ec6cf2534388b5d41f90501e9b1a20301213a8
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jan 11 16:00:16 2023 +0800

    Adjustment for manager && cache call, add deprecation

commit 246cfa935d326ee7dc8a6898f4377c814175e942
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jan 11 15:32:04 2023 +0800

    Change the cache's encoding in global queue to avoid block ioQueue for IO read/write, performance related

commit d93a08fc917e251497173388a8e2b0744f96a5da
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jan 11 15:08:31 2023 +0800

    Added `SDWebImageContextImageEncodeOptions` to pass encode options like compression quality to SDImageCache storeImage API

commit 05f7fb9b0d96696e31bdbb0bd3928183f151dbef
Merge: 4178d12a 720a0974
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 10 14:38:00 2023 +0800

    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

commit 720a0974d48e83797a1d654191d585eaef74f01d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 10 12:49:20 2023 +0800

    Fix SwiftPM issue

commit 397f8512403e28f0f79e9fa20e3f2d256b2ed0fd
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jan 9 22:14:53 2023 +0800

    Update test case

commit e21e9f19e61efcf29bb2edf0ded2b77ee5c8002a
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jan 9 21:56:15 2023 +0800

    Update Carthage project

commit e1e0841102c60101ebd37acee6dbe1837ebd9a42
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jan 9 21:46:20 2023 +0800

    Rename the internal property to avoid misleading

commit 007100d18ff5aec992a81581ab23ab9f774e80d5
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jan 9 21:42:32 2023 +0800

    Supports the old store cache API without context, which does not supports callback queue customization

commit 1b086711aedc4a66c80ae39cb3fd3d794190396f
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jan 9 18:44:33 2023 +0800

    Fix the issue because of main queue label hack

commit 43d74211c3bce2964f28668e9d0f5c4498280851
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jan 9 18:31:56 2023 +0800

    Added test case `testSDCallbackQueue`

commit 90eeb4d8306470eb178bafce8c3a0be7b6e4a82d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jan 9 17:45:52 2023 +0800

    Deprecate SDWebImagePrefetcher.delegateQueue, translate to use context[SDWebImageContextCallbackQueue] instead

commit 5a4b4cf16db34328b4e6ddad41fa3e095c3f8efb
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jan 9 17:24:13 2023 +0800

    Change the asyncSafe to the queue level configuration, introduce SDCallbackPolicy

commit 67520b9f55b064ab8e63d55eddd0e97a2bf34e58
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Jan 6 19:49:35 2023 +0800

    Fix the new added storeCache API which passing callbackQueue

commit fdd9a98210f2591901a57eff51c539d61bbcc06f
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Jan 6 19:34:37 2023 +0800

    Do not check nil block, useless in our use case

commit 57403c9d3fb5ebf14dbfad843e0fa9cf026917f2
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Jan 6 19:09:39 2023 +0800

    Rename to use `dispatch_block_t` alias

commit b5d712a3783911ed427faef1903c6aa54fd0aa56
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Jan 6 18:41:29 2023 +0800

    Implements the Callback queue dispatch

    Fix some missing components

commit 43ec4726e112ce7cb85b28b3751f1e07492801ef
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jan 4 18:47:50 2023 +0800

    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)

commit 4178d12a44691182c2eb79c70281b14cb73f4cbf
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 20:03:04 2022 +0800

    Bumped version to 5.14.3

    update CHANGELOG

commit 8be9f2c3f93142362e94117ef2cdbf019dbb4976
Merge: 7bc087b0 d2221403
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 19:57:48 2022 +0800

    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

commit d2221403e10fb9c6d8f10141db98aaaaf1f88679
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 19:55:12 2022 +0800

    Removed the unused options for CGImageSourceCopyPropertiesAtIndex

commit a53eb929886b11658bac15f5908021c61ee340c1
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 19:23:58 2022 +0800

    Update the test case `test23ThatThumbnailEncodeCalculation`

    This regression test should also been reverted

commit a99c0de68d58cb68257b449c2c835ebdabb2f61a
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 18:14:13 2022 +0800

    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

commit 7bc087b081e28cf42b65ef10c3c718ce1697df44
Merge: 0274aa85 ffc91663
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 17:57:09 2022 +0800

    Merge pull request #3460 from dreampiggy/feat/ioqueue_concurrent_config

    Added `ioQueueAttributes` to use concurrent or control QoS for image cache internal IO Queue

commit ffc91663bf6c85e54faecd5f8dd2196b56e529fe
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 17:37:07 2022 +0800

    Added test case `test48CacheUseConcurrentIOQueue`

commit c60e6714dd34af904065bad943ea868dbd3a40b2
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 17:24:07 2022 +0800

    Added `ioQueueAttributes` to use concurrent or control QoS for image cache internal IO Queue

commit 0274aa85fe69a997eae3a4de9275225762d56a22
Merge: 707db2e0 a15f5948
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 16:51:54 2022 +0800

    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.

commit 707db2e01669605602d72e50a8454e7782a4e789
Merge: 3312bf5e 71746145
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 15:47:17 2022 +0800

    Merge pull request #3459 from dreampiggy/bugfix/player_cache_poster_image

    The poster image should not trigger a frameChange callback

commit 717461459fe51ad7eda1f804e50d3c417c92cbfd
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Dec 26 19:05:39 2022 +0800

    Hack the first frame to ensure it always displayed in first screen refresh

commit b5db7fac682c3c4d7af8a9188cafce20f301a47d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Dec 26 18:50:05 2022 +0800

    The poster image should not trigger a frameChange callback

commit a15f594869f8ea56f86d77a30fc7678d5f8bd01d
Author: kinarobin <kinarobin@outlook.com>
Date:   Fri Dec 2 21:24:36 2022 +0800

    prefetch image in advance

commit 3312bf5e67b52fbce7c3caf431b0cda721a9f7bb
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Nov 14 18:49:54 2022 +0800

    Bumped version to 5.14.2

    update CHANGELOG

commit 430ef4d73ca268d8efcefad08d3ac020af91c750
Merge: 80683c20 9c0c715d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Nov 14 18:47:05 2022 +0800

    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

commit 9c0c715d6aba8bfaec5f5440c4e2cd581b321bae
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Nov 14 17:07:29 2022 +0800

    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

commit 80683c20d8f15e10ac1ce605cca5008a295846bd
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Nov 11 15:35:47 2022 +0800

    Bumped version to 5.14.1

    update CHANGELOG

commit a97d5023041ff0cf59f25d07dfbf78fd68d90036
Merge: bc3f09cc 736f3f41
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Nov 11 15:30:36 2022 +0800

    Merge pull request #3439 from dreampiggy/bugfix/thread_safe_callback

    Fix the missing lock for callbackTokens which may cause thread-safe issue

commit 736f3f41f74c70a5c82546238cc25d377cb51436
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Nov 11 14:29:20 2022 +0800

    Move block before sending to the main queue

    This can avoid some life cycle issue and increase performance

commit 384b2d7c8be97bb52eed789662b4b97f5a58ab17
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Nov 11 14:22:49 2022 +0800

    Fix the missing lock for callbackTokens which may cause thread-safe issue

commit bc3f09ccbd4b09d343c86e9071029946ac34313f
Merge: 8a26bb3f 30f165ab
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Nov 11 14:17:17 2022 +0800

    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

commit 30f165abd5444cf83a8e30f239139c820dd926e6
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Nov 11 00:07:32 2022 +0800

    Change from instance method to class method

commit f4706453d6de61b2b397e1fee26d517cd9f4e6b3
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Nov 10 23:47:34 2022 +0800

    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

commit 8a26bb3f3d22dd503052834fb6c82eff98b4f7aa
Merge: b6aa428b d96ea392
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Nov 10 22:41:26 2022 +0800

    Merge pull request #3434 from dreampiggy/bugfix/underlying_queue_crash_ios12

    Fix the iOS 12 crash because the underlyingQueue is nil

commit d96ea392d16b509a9c63ccee61ae6d28b0b36d08
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Nov 10 19:55:18 2022 +0800

    Fix the iOS 12 crash because the underlyingQueue is nil

    Use NSOperation dependency to solve this issue

commit b6aa428b7d01a36e7857b09b4acb320ad7ee5170
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 22:48:52 2022 +0800

    Bumped version to 5.14.0

    update CHANGELOG

commit 35b28d417938a712b2e4af4fcf5331d43349e16c
Merge: 03b46475 bfa91a29
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 22:42:00 2022 +0800

    Merge pull request #3430 from dreampiggy/feat/add_is_thumbnail

    Added the helper convenient API `sd_isThumbnail`

commit bfa91a291bd530048f8546e782d9f45941550e55
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 22:39:57 2022 +0800

    Added the helper convenient API `sd_isThumbnail`

    Fix the metadata does not saved

commit 03b46475eb95d96cc7159f7ae47de3507fa1c603
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 21:49:26 2022 +0800

    Revert #2792, the autoreleasepool does not solve the issue

commit 6ce59aa8c118c19a497f712a7bc97e7479238ee7
Merge: 359036ea 7ddf3214
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 21:44:07 2022 +0800

    Merge pull request #3429 from dreampiggy/perf/remove_conforms_to_protocol

    Replace conformsToProtocol call with appropriate respondsToSelector check to improve performance

commit 7ddf3214e6529471c352dc61db26ad8fb3c957c6
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 21:18:20 2022 +0800

    Fix the test case again on below iOS 15

commit f8d353b50ca1356e385ba9e3b3751bd1f7fe3875
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 20:04:36 2022 +0800

    Update test case `test06ThatUsingACustomDownloaderOperationWorks`

commit 9aa27b61e8573fac9259fa6e99d2feb299a109ae
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 19:45:21 2022 +0800

    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

commit 359036eae97b456cceedfa2b0fa101820bb4040c
Merge: 9599a78f 6a9b5783
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 19:16:05 2022 +0800

    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

commit 6a9b578369595eea596abc2f2c5c94dcf5de298a
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 17:08:34 2022 +0800

    Added test case `test21ThatQueryOriginalDiskCacheFromThumbnailShouldNotWriteBackDiskCache`

commit 9599a78ff99b32021c012a014397e5562399c4da
Author: riv1r <514068775@qq.com>
Date:   Tue Nov 8 17:29:49 2022 +0800

    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>

commit f93cf968327635b61bf0a9fac5cc0de0dcc398ec
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 16:44:40 2022 +0800

    Avoid store original disk cache again when using thumbnail  or transformer from the full size data

    This solve #3395

commit 5a89f80816729be295915e9edad2712d748f4438
Merge: cdd77d5e 0d1c603d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 16:41:40 2022 +0800

    Merge pull request #3427 from dreampiggy/bugfix/logic_nullable_check

    Add the possible nullable logic check when the force-decode/copy failed

commit cdd77d5ebeab885b85f8df1342480eeeab295a52
Merge: f6769186 c81aec4c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 16:20:33 2022 +0800

    Merge pull request #3426 from dreampiggy/bugfix/UTI_hint_ignore_dynamic_log

    Ignore the dynamic UTI type hint to avoid extra log

commit 0d1c603d5068ed7ab6761d3e5cc794fa8bdb5bf7
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 16:19:49 2022 +0800

    Add the possible nullable logic check when the force-decode/copy failed

commit c81aec4ccda5d34fd729a59132e40f200e708406
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 14:57:18 2022 +0800

    Ignore the dynamic UTI type hint to avoid extra log

commit f6769186b9952c00aa3c1d9d201db88e4bdca9db
Merge: ddcf347c 6c836968
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 14:36:55 2022 +0800

    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

commit 6c836968008e2316730fcbbdaef82112dfbce205
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Nov 7 18:39:33 2022 +0800

    Update test case `test17ThatMinimumProgressIntervalWorks` to make it more stable

commit 7c4649c7cc7bfd1656e01b075809650c3aa5f657
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Nov 7 15:25:52 2022 +0800

    Update the test case `test23ThatThumbnailEncodeCalculation`

commit 136d05fce8713155823aaaaa3aa721c3312a32d1
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Nov 7 12:42:32 2022 +0800

    Add extra check when user provide SDImageCoderDecodeUseLazyDecoding

commit 3000dd5098158f2575d695270b99a67469425a5d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Nov 7 12:20:04 2022 +0800

    Fix the `sd_isDecoded` did not set after we use SDCGImageCreateCopy

commit db25af95060acf6fc759134efd07a1b2cf510fdf
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Nov 3 19:16:30 2022 +0800

    Recovery the assert check on only iPhone/TV simulator in debug mode

commit abc06f020ad619c76ad8cd4ba152fe3a8cf32706
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Nov 3 19:10:12 2022 +0800

    Added `SDImageCoderDecodeUseLazyDecoding` to control whether to use lazy-decoding for ImageIO or not

    Defaults to NO for animated image coder but YES for static image coder to match current behavior
    This also use another way to solve iOS 15+'s CGImageGetImageSource issue

commit ddcf347c7dfaad3e8d6d81ac79e72b99118b48eb
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 1 14:20:44 2022 +0800

    Update README about GitHub action status

commit 5ee6ac2476ac59e3f36ed75fb0f5ca4106b269ad
Merge: 4a72e4fe 279f636a
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 1 00:14:17 2022 +0800

    Merge pull request #3423 from dreampiggy/feature/refactor_thumbnail_hack_with_decode_options

    Refactor the hack for multiple thumbnail image request at the same time

commit 279f636ac561ff5bcf3eb4c9539fa93115980976
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Oct 31 23:41:46 2022 +0800

    Minor check the logic that UTI has high priority than path extension

commit e3c6cfa066a0cab867e5f7877d5ace6258e873b2
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Oct 31 23:03:29 2022 +0800

    Update test case to make clear that transformed image and thumbnailed image will callback without data

commit 980e0dd14adf46378b18065b905b04ee62b91345
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Oct 31 22:54:38 2022 +0800

    Added test case test30ThatDifferentThumbnailLoadShouldCallbackDifferentSize

commit 2fd75638fe4723677ed2abee64a3f50795404132
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Oct 31 19:58:35 2022 +0800

    Refactor the hack for multiple thumbnail image request at the same time

    1. Put the hack logic into SDWebImageDownloadOperation, each different thumbnail image request will have its callback with desired size of image using different decoding call.
    2. Progressive Thumbnail decoding (use together) does not have this behavior, because I think progressive thumbnail is really rare and tolerant, people just use the first thumbnail size image for preview and OK.
    3. The manager logic refactor with separate steps, focus on clear to understand the complicated logic and maintainess
    4. The thumbnail decode/transformed will callback valid image, but with nil data, this matches the behavior as wiki pages.

commit 4a72e4fee29c8600053eee760a297e06e80e5939
Merge: b014808d 851b60e0
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Oct 30 18:34:30 2022 +0800

    Merge pull request #3421 from dreampiggy/feature/decode_options_in_from_loader_instead

    Introduce SDWebImageContextImageDecodeOptions, deprecate SDImageCoderWebImageContext

commit 851b60e0f3c1fc98af8301e143bbff1e5937bb54
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Oct 30 17:54:03 2022 +0800

    Added test case `test20ThatContextPassDecodeOptionsWorks`

commit 2f3652dc2e17f32ae12a9eef3bdf542b6bd3c5ae
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Oct 29 19:09:08 2022 +0800

    Feature: Introduce SDWebImageContextImageDecodeOptions, deprecate SDImageCoderWebImageContext

    This can solve the retain cycle from the scratch, instead of hacking

commit b014808ddd52dc3ac70bcb24817a3c651928be10
Merge: 3a52ef5a 318cca55
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Oct 29 20:40:00 2022 +0800

    Merge branch '5.13.x' of github.com:SDWebImage/SDWebImage

    # Conflicts:
    #	SDWebImage/Core/SDImageCacheDefine.m

commit 318cca556b0489aede0cd98d8d0c7f1408ab7bd6
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Oct 29 20:34:04 2022 +0800

    Fix the issue that progressive decode logic does not get updated

commit 55a380941296727c5042f2d365b8104f726bc46c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Oct 29 20:26:05 2022 +0800

    Bumped version to 5.13.5

    update CHANGELOG

commit 34f2a9b823927520ad7a214d698d694d39f62f7a
Merge: 9248fe56 b46fe38c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Oct 29 20:22:21 2022 +0800

    Merge pull request #3420 from dreampiggy/fix_5.13_retain_cycle_web_context

    Quick fix the issue that UIImage.sd_decodeOptions cause retain cycle when pass custom cache in context option

commit b46fe38c7257a534d02311192411e6dae43beca6
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Oct 29 19:50:45 2022 +0800

    Quick fix the issue that UIImage.sd_decodeOptions cause retain cycle when pass custom cache in context option

    Now the SDImageCoderWebImageContext does not pass the built-in options, only custom options will be passed, and deprecated in 5.14.0

commit 3a52ef5aeb3ce89b1f0b37359e7f39b460e1df10
Merge: 9248fe56 8dd6e25c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Oct 29 18:34:56 2022 +0800

    Merge pull request #3419 from dreampiggy/feature/tiff_uti_hint

    Support use url.path or custom UTI hint passed to ImageIO, solve the TIFF/NEF/SRW raw image decoding with wrong size

commit 8dd6e25cd86556178c22a33e97013fcbdad6a2da
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Oct 29 18:13:36 2022 +0800

    Added NEF test case, as well as BMP type enum

    The file extension hint works on iOS/macOS for current

commit b1b16a17b36c3ecd5f81bf43cf115c8c9f30f375
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Oct 27 11:09:29 2022 +0800

    Support use url.path or custom UTI hint passed to ImageIO, solve the TIFF/NEF/SRW raw image decoding with wrong size

    This is because file extension will cause ImageIO use different codec, which does not support all of them without context

commit 9248fe561a2a153916fb9597e3af4434784c6d32
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 26 20:57:44 2022 +0800

    Bumped version to 5.13.4

    update CHANGELOG

commit 3c7c949637cecb4eef79cd543309a2d5b261e46f
Merge: 484bc774 364034d1
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 26 20:55:27 2022 +0800

    Merge pull request #3408 from dreampiggy/threadsafe_fix_imageio_incremental_animation

    Fix the potential out of bounds crash for ImageIO incremental animation decoding (like GIF)

commit 364034d11aaa6415e8611faaa1739e24c6fb0383
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 26 18:43:26 2022 +0800

    Fix test cases `test15CancelQueryShouldCallbackOnceInSync`

commit 080db1afb916e68edbe5e7c3089fbfaae58bf831
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 26 18:24:41 2022 +0800

    Try to investigate test case failure issue

commit 9b2ddc9ea84434741c1491bce6440f80d86612fa
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 26 17:34:55 2022 +0800

    [NFC] A little optimization for MutableArray creation

commit 347cf1d1cc4feed24971e78dd68763fb132c1950
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 26 17:32:25 2022 +0800

    Fix the potential out of bounds crash for ImageIO incremental animation decoding (like GIF)

    This patch from the SDWebImageWebPCoder/pull/68

commit 484bc774e1091f622c4856e576ff957b29403676
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 18:35:34 2022 +0800

    Bumped version to 5.13.3

    update CHANGELOG

commit 9f9d226083875af45f3624393882f49f915eb75d
Merge: 524d4f53 ea9f5737
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 18:30:51 2022 +0800

    Merge pull request #3387 from dreampiggy/thread_safe_ios15_animation_cgimage_retain_source

    Try to workaround iOS 15+ crash that CGImage retain the CGImageSource during animation image playing

commit ea9f573744810f7bd4ac390b639136b40a6a98bb
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 18:29:57 2022 +0800

    Remove the temp assert code (for debugging usage)

commit 89178a7d89ecde64a79df11faa496bddf6c656c4
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Aug 26 17:48:51 2022 +0800

    Update to force decode CGImage before any UIImage initialization on iOS 15+

commit 3994006cb46eb5e20517d66bb59c673769ec7e23
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Aug 11 14:51:02 2022 +0800

    Try to workaround iOS 15+ crash that CGImage retain the CGImageSource during animation image playing

    This used to work on iOS 14

commit 524d4f53ebbbbbddaf830ebd9467b0b724f645f2
Merge: 122c3d7c 6b8075a2
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 18:20:06 2022 +0800

    Merge pull request #3403 from dreampiggy/revert_isCancelled_block_with_recursive

    Fix the crash because of SDWebImageCombinedOperation recursive lock

commit 6b8075a2e1849ffff5bde0496f3cd841e16364ec
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 17:33:04 2022 +0800

    Using the same synchornized to guard _cancelled status, which need recursive lock

    DO NOT USE SD_LOCK (os_unfair_lock), which not support recursive

commit ad592765cbbd3b4dcc12fa014062625630c83104
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 17:28:38 2022 +0800

    Revert "Synchronise getter and setter of the cancelled property of the SDWebImageCombinedOperation in order to eliminate data race."

    This reverts commit 5a18c84529dd5cd9cd45c8689d55b62d3b73b54a.

commit 122c3d7ca57a21650c01b61f3ea42e5de4168f91
Merge: d3b111de 61c3c5ba
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 17:23:56 2022 +0800

    Merge pull request #3402 from dreampiggy/fix_macOS_animatedview_render

    Fix the switching from animated image rendering to static image does not works on macOS 11+

commit 61c3c5ba2d3c6b94e79fa4195fcccd9d5568db73
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 16:27:21 2022 +0800

    Fix the switching from animated image rendering to static image does not works on macOS 11+

    We should always provide a fallback solution to handle built-in NSImageView logic

commit d3b111deb10fc8ecb87e82a3fff5c2cf9dabcefb
Merge: 3a6e01ab 6eb74a17
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 14:30:03 2022 +0800

    Merge pull request #3401 from dreampiggy/fix_unlock_unbalanced

    Fix the unbalanced lock which cause crash

commit 6eb74a177fffc6991b283ddcfbf1884e046ff620
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 12:05:41 2022 +0800

    Fix the unbalanced lock which cause crash

commit 3a6e01ab20b5b93b763b285e670e720510a30f7a
Merge: 3e48cb68 5a18c845
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Sep 9 18:15:44 2022 +0800

    Merge pull request #3393 from alexander-gaidukov/synchronize_operation_cancellation

    Synchronise getter and setter of the cancelled property of the SDWebImageCombinedOperation

commit 5a18c84529dd5cd9cd45c8689d55b62d3b73b54a
Author: Alexander Gaidukov <alexander.gaidukov@gmail.com>
Date:   Mon Sep 5 16:32:32 2022 +0700

    Synchronise getter and setter of the cancelled property of the SDWebImageCombinedOperation in order to eliminate data race.

commit 3e48cb68d8e668d146dc59c73fb98cb628616236
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 23 23:09:12 2022 +0800

    Bumped version to 5.13.2

    update CHANGELOG

commit 7d7debbd262ddac7c75c9d40c78e929839dcbad0
Merge: b88d576f bcaf918b
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 23 23:04:55 2022 +0800

    Merge pull request #3380 from dreampiggy/bugfix_edge_case_cancel_cache_callback_twice

    Fix the rare case when cancel an async disk cache query may cause twice callback

commit bcaf918b8393dc13917a39be49929e44a08b2491
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 23 22:43:01 2022 +0800

    Fix the old test case warning

commit 62e3a8f52a9ce7b38c641118328c5593468a641e
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 23 22:05:49 2022 +0800

    Update test case about the cacheOperation and loaderOperation

commit 3d1197b820d29200e49d194e8e965b9c7419df71
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 23 21:59:14 2022 +0800

    When download start, mark the query cache operation finished to avoid bug behavior

commit 2729096221edcd7eeea1add6f5e9ea6273950c95
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 23 21:26:18 2022 +0800

    Added test case `test15CancelQueryShouldCallbackOnceInSync`

commit 0643cb81c37f54384325fe6caff3ac118affff42
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 23 21:08:55 2022 +0800

    Fix the rare case when cancel an async disk cache query may cause twice callback

    One is sync and another is async

commit b88d576f756e0ad27a926df155d44f74377bd639
Merge: cc1995b7 2bad528b
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 23 16:39:13 2022 +0800

    Merge pull request #3379 from amonshiz/patch-1

    Fix pragma mark typo

commit 2bad528bfb907cc8182e596115fe222f1a29848f
Author: Andrew Monshizadeh <1282845+amonshiz@users.noreply.github.com>
Date:   Fri Jul 22 21:49:09 2022 -0600

    Fix pragma mark typo

    Built and noticed this warning
    ```
    external/SDWebImage/SDWebImage/Core/NSButton+WebCache.m:152:9: warning: unknown pragma ignored [-Wunknown-pragmas]
    #pragma mar - Private
            ^
    ```

commit cc1995b73883a1f97931366879d862c53a32bf82
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 16 19:51:48 2022 +0800

    Bumped version to 5.13.1

    update CHANGELOG

commit 7269107908da3ddeca360adce36f66032bba3662
Merge: d0f3c393 07572418
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 16 19:46:17 2022 +0800

    Merge pull request #3373 from dreampiggy/fix_clang_analyze_issue

    Fix the clang analyze issue

commit 0757241822ea079faffe82b6a9e30a6f03cc11e9
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 16 19:43:48 2022 +0800

    Fix the clang analyze issue

commit d0f3c393350c1cdc0e2e307bed9f9327eade2d0a
Merge: 3277824d a88e6694
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 16 19:33:46 2022 +0800

    Merge pull request #3368 from dreampiggy/optimize_force_decode_solution

    Added `SDImageCoder.defaultDecodeSolution` to control the force decode solution. Automatic by default

commit a88e6694229b627ef32c2cfdee956a8999eb1159
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 16 16:27:30 2022 +0800

    Added SDImageCoderDecodeSolutionAutomatic, which check image format as well

    This avoid the unwanted CMPhoto log

commit 213a8b8def68d594338d34c067d9d47e221f14ef
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jul 11 16:28:10 2022 +0800

    Added `SDImageCoder.defaultDecodeSolution`  to control the force decode solution, defaults to CoreGraphics (the same as 5.12)

    For user who want new UIKit solution, you can opt-in to change the `defaultDecodeSolution` case

commit ff6b3b9bb59613d1acde21258d45bfe83bd44fab
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jul 11 15:50:55 2022 +0800

    Change only ImageIO decoded CGImage should enter the `Force Decode` logic

    Others coder, like WebP, should not use this approach

commit 3277824d431a0d35e596f28487765746978328e3
Merge: 4d4e6311 1ed76f4f
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 16 18:01:54 2022 +0800

    Merge pull request #3372 from dreampiggy/bugfix_color_at_point_grayscale

    Fix sd_colorAtPoint and sd_colorsWithRect support for grayscale image (white and alpha)

commit 1ed76f4f47d52aacdb690f34549a2d436ee83e99
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 16 17:43:48 2022 +0800

    Fix the bitmapInfo support for greyscale color, update test case

commit 34236ac5221fa20e06ecca328c918a398d095791
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 16 17:27:04 2022 +0800

    Fix sd_colorAtPoint and sd_colorsWithRect support for grayscale image (white and alpha)

    This fix the test cases for #3368

commit 4d4e631183d2e3a9f4e59f6458ea080eda028335
Merge: c4b8660b 2fe3879b
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jul 14 15:24:11 2022 +0800

    Merge pull request #3370 from dreampiggy/bugfix_pdf_draw_bitmap_dpi

    Fix the PDF image without thumbnailPixelSize will result huge bitmap size, now fixed into 72 DPI matching PDFKit

commit 2fe3879b1582e455044d2903fcbaa03415676028
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jul 14 14:52:26 2022 +0800

    Fix the case that provided DPI cause `kCGImagePropertyPixelWidth` return non-zero value

    This will cause re-check thumbnail, and may result the wrong pixel size

commit f1fe4ca8b85928b458437d10e035995e192fdd67
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jul 13 18:18:21 2022 +0800

    Calculate the DPI based on PDF mediaBox, support thumbnailPixelSize

    Move the vector code from ImageIOAnimatedCoder to ImageIOCoder, since it's not animatable :)

commit f91d35ef8d703a861644d7c406e717a6b21ae112
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jul 13 16:04:29 2022 +0800

    Fix the PDF image without thumbnailPixelSize will result huge bitmap size, now fixed into 72 DPI matching PDFKit

commit c4b8660bb3ef543fe4bdcaac0db956b32dc5583f
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 27 02:37:44 2022 +0800

    Bumped version to 5.13.0

    update CHANGELOG

commit 0805bc0f4d3c0c2af15f305ad2da215d3413f114
Merge: 16cf1576 3358859b
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 27 02:33:45 2022 +0800

    Merge pull request #3364 from dreampiggy/bugfix_thumbnail_full_loading_same_time_cache_issue

    Fix the issue when thumbnail and full size loading at the same time, the thumbnail image will write to memory with wrong key

commit 3358859b468fef42e7916eba6e2fe57c1899546d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 27 01:26:03 2022 +0800

    Fix the issue when thumbnail first and full size loading at the same time, the thumbnail image will write to memory with wrong key

    The disk cache key is correct and does not get effected by this issue

commit 282714883e32f73c5285319c7445ce24bf6a4b8d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 26 23:55:12 2022 +0800

    Update the Demo project

commit 16cf157658b48eab413a8783df0759861e54245b
Merge: d58a1006 ad953cdc
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 26 23:52:55 2022 +0800

    Merge pull request #3363 from dreampiggy/fix_multiple_cancel_cache_callback_order

    Fix the case when user cancel the image loading for same URL in sequence cause placeholder mass

commit ad953cdcc5e57c2dcc8003aea0d5aae66fa8f436
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 26 19:51:51 2022 +0800

    Fix the case when user cancel the image loading for same URL in sequence cause placeholder mass

    This PR introduce 2 API changes:
    1. Cache query now return cache token and callback sync when called from main queue, unlike NSOperation always callback async
    2. Expose the set image operation, and update the documentation behavior about that `SDWebImageDelayPlaceholder`

commit d58a1006c21a20ef1e37c36ea31d49a5bc33a988
Merge: 0b661344 071a8934
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 26 15:29:55 2022 +0800

    Merge pull request #3362 from dreampiggy/behavior_thumbnail_store_cache

    Feature: Change thumbnail cache behavior as expected, share cache through different loading pipeline without extra download

commit 071a8934e3b15082b19d2fe12ba2e318d02143fc
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jun 25 23:41:36 2022 +0800

    Fix the assert case when loader callback nil image data

commit 69acd5a15873b69891261a498b33747536364b4c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jun 25 23:20:36 2022 +0800

    Added all the 3 test cases

    test17ThatThumbnailCacheQueryNotWriteToWrongKey
    test18ThatThumbnailLoadingCanUseFullSizeCache
    test19ThatDifferentThumbnailLoadShouldCallbackDifferentSize

commit 31c4a09430caa27eb6c5ac1a59bec46b2069dd1a
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jun 25 22:59:16 2022 +0800

    Fix one bug that callback the wrong cache type

commit c47158362d04e09cd83b09d82097c693462770eb
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jun 25 22:52:48 2022 +0800

    Limit the re-deocde case only when image was downloaded, avoid when thumbnail hit cache

commit ecac56b7263f341bf06b93d980dc3c84afc216b2
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jun 25 22:13:24 2022 +0800

    Use the new solution, store the original decode options, when multiple loading pipeline share the same URL callback, check it and re-decode if needed

commit 911328c1b4c149c5a4bf7adef675c1abe3ba162c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jun 23 19:37:13 2022 +0800

    Fix the case when previous pipeline use thumbnail transformer use together, second pipeline use the full size loading

commit 2c9290f109b91dc36133668e68f47345b4bd10ee
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jun 23 18:46:21 2022 +0800

    Added sd_isThumbnail to mark metadata, avoid the case when full size image request re-use the image from thumbnail decoding for the same URL

    I think this is a temp workaround

commit e7e9268a7e9c2f1157f1cea1b88465bc1589b4f9
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jun 23 17:54:27 2022 +0800

    Fix the case that query full size key with thumbnail, cause the write back of thumnail to memory cache with wrong key

commit 613a2bf98890b283ec7e39a2efeb889b00c51e7e
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jun 23 02:50:30 2022 +0800

    Opt the thumbnail cache behavior, now it prefers to store/query original data from disk, thumbnail image from memory

    Separate the thumbnail from transformer, they are for different use case

commit 0b661344fe83e1c8e3d8716527f727ee6210260c
Merge: 19b4b47c 1f3ee8e9
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jun 22 17:56:22 2022 +0800

    Merge pull request #3359 from dreampiggy/api_thumbnail_scale_calculation

    Added new API for custom coder better handling the thumbnail size

commit 1f3ee8e9d5a7e181db41759c0975b2a5dcb375b1
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jun 22 16:53:40 2022 +0800

    Added new API for custom coder better handling the thumbnail size

    The current WebP/HEIF/AVIF coder both copy paste the same code multiple times and have to fix one by one

commit 19b4b47c6063184ff65b353c3d9aeabec07ecfe7
Merge: 3746c5d4 018cf32a
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 20 21:01:07 2022 +0800

    Merge pull request #3357 from dreampiggy/bugfix_encode_max_pixel_size

    Fix the encodeMaxPixelSize logic

commit 018cf32ab3c7e9ec814bf413e08d3a11468cbcbf
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 20 18:20:34 2022 +0800

    Added test23ThatThumbnailEncodeCalculation test case

commit fcb53cb5ff8b2480e495947ec8c25df30c4a15cc
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 20 18:02:38 2022 +0800

    Fix the encodeMaxPixelSize logic

    Allows user to provide size which one dimension is larger than image size size
    Example - maxPixelSize: (200, 200), imageSize: (100, 400), result: (50, 200)

commit 3746c5d4c6f1741bae5ebeab18a92ead3b149247
Merge: b729cc14 9362505a
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 20 17:33:00 2022 +0800

    Merge branch 'master' of https://github.com/SDWebImage/SDWebImage

commit 9362505aeb0255177dea2b2e055801ece3e34366
Merge: 8743cdd6 a66972bd
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 20 17:18:42 2022 +0800

    Merge pull request #3336 from Insofan/feat/store_data

    feat: store image data

commit 8743cdd6333388a7e3d04b6a929b2808a69f4235
Merge: eeb25d6e 9b9fc6fc
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 20 17:17:10 2022 +0800

    Merge pull request #3355 from dreampiggy/feature_support_uiimage_preparefordisplay

    Support using iOS 15 UIImage new API imageByPreparingForDisplay for faster force decoding

commit b729cc14f65e1412efc781a4cc46bd7f4720a3ae
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 12 18:28:19 2022 +0800

    Bumped version to 5.12.6

    update CHANGELOG

commit 9b9fc6fc9bbd5bee2a431062ead34176eb34135c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 12 18:13:30 2022 +0800

    Support using iOS 15 UIImage new API imageByPreparingForDisplay for faster force decoding

    This API seems support both async/sync version, SD use sync version here because we already call them on global queue
    The API mark available on watchOS, but header does not pass that __has_include, a little strange

commit eeb25d6e9c1ecedbcbdc6694a6e40eaa8dcddbb5
Merge: 91c9966d 3b0b2326
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 12 17:11:14 2022 +0800

    Merge pull request #3354 from dreampiggy/bugfix_thumbnail_calculate

    Fix the thumbnail pixel size calculation when preserveAspectRatio is true

commit a66972bdc830103cd556c465599dc704d8ec5053
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 12 17:10:23 2022 +0800

    Update SDImageCache.m

    Little logic check for nil value

commit 754de4d7c8b07d39dcd8e8886f9547e53e370254
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 12 17:04:52 2022 +0800

    Update SDImageCache.m

    Remove extra toDisk param

commit 2fc131c44bf8af283561dcb0b77d42d96b8ea28b
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 12 17:03:04 2022 +0800

    Update SDImageCache.h

    Remove extra toDisk param

commit 3b0b2326165cc2e4b34f8c301b58a99d96dc1df6
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 12 16:44:21 2022 +0800

    Added test case test22ThatThumbnailPreserveAspectRatio

commit f90373ce14341da40c5bd730bd5c241d1d2e8405
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 12 16:32:33 2022 +0800

    Fix the thumbnail pixel size calculation when preserveAspectRatio is true

commit 91c9966d77d8f82219fbf5e59f3f22c9fbfd828c
Merge: 362ba2d4 c2313209
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jun 8 23:08:20 2022 +0800

    Merge pull request #3353 from amonshiz/amonshiz/fix-3352

    Fix #3352 Include necessary CoreImage import

commit c2313209136a735147a3807423bbbccf00b47853
Author: Andrew Monshizadeh <amonshiz@thebrowser.company>
Date:   Tue Jun 7 14:33:18 2022 -0400

    Include necessary CoreImage import

commit 362ba2d43f7ac410819859dbd728db5ea471e133
Merge: fda0a57d 24d4cda8
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jun 1 14:46:44 2022 +0800

    Merge pull request #3349 from turrisxyz/Pinned-Dependencies-GitHub

    chore: Set permissions for GitHub actions

commit 24d4cda885335374d6d34f7205cefc3c3d01bbbe
Author: naveen <172697+naveensrinivasan@users.noreply.github.com>
Date:   Wed Jun 1 00:29:19 2022 +0000

    chore: Set permissions for GitHub actions

     Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

    - Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

    https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions

    https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

    [Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

    Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>

commit fda0a57de98d391e8244cc0f80c583e2c67d9e8f
Merge: d01eb3f8 484de40e
Author: Kinarobin <kinarobin@outlook.com>
Date:   Tue May 17 14:13:43 2022 +0800

    Merge pull request #3346 from timonus/faster-file-url

    Small performance improvement to generating file URLs in SDDiskCache -setData:forKey:

commit 484de40e3b803a09fceca3351c2fbc8820776cfd
Author: Tim Johnsen <tim@patreon.com>
Date:   Thu May 12 15:42:17 2022 -0700

    Small performance improvement to generating file URLs in SDDiskCache -setData:forKey:.

commit d01eb3f8aca843146f17b5530cef49be8bd01b78
Merge: 2e63d006 30c95635
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Apr 2 17:48:17 2022 +0800

    Merge pull request #3337 from GetToSet/ethanwong/nsscreen-thread

    Fix a crash of accessing -[NSScreen backingScaleFactor] from background thread.

commit 30c95635112836059f4b76d287913484631563b8
Author: Ethan Wong <e1hanw0ng@gmail.com>
Date:   Mon Mar 28 20:17:53 2022 +0800

    Fix crash of accessing mainScreen from background thread on 10.11.

commit 7c66265ee82fdffe72c851395f8d61211f02bdc6
Author: Inso <insofan3156@gmail.com>
Date:   Wed Mar 30 15:24:32 2022 +0800

    refactor: refactor store data to memory cache logic

commit 6a2eaf707e82bb3adb16884b799906600096f85d
Author: Inso <insofan3156@gmail.com>
Date:   Mon Mar 28 12:41:22 2022 +0800

    feat: store image data

commit 2e63d0061da449ad0ed130768d05dceb1496de44
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Mar 16 15:58:50 2022 +0800

    Bumped version to 5.12.5

    update CHANGELOG

commit 4974524a47e6c169cfc5340e4f6ab3428824263a
Merge: 02283906 874b674c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Mar 16 15:55:31 2022 +0800

    Merge pull request #3334 from dreampiggy/bugfix_force_decode_use_image_renderer_and_argb8888

    Workaround iOS 15+ force decode again using Image Renderer(preferred) and RGB888

commit 874b674cb648c533f2401ab3e124510176538fcd
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Mar 16 14:56:34 2022 +0800

    Unify the colorspace on macOS/watchOS choosen for draw to use sRGB firstly

    Remove the unused OS version check

commit 368825eff64e6bac3b7b36a8be54abd1a406ea1b
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Mar 15 22:56:03 2022 +0800

    Update the test case, now when using force decode, the image orientation is always UP

commit c0cc2456323cfa6ee736b24bf630cf7823962a53
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Mar 15 22:35:52 2022 +0800

    Update AppKit SDGraphics convenient API to use main screen colorspace

    Update macOS demo URL as well

commit fce270631f412376438761d203fe9cedbe1ab663
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Mar 15 22:01:49 2022 +0800

    Use RGBX8888 for non-alpha image force decoding, which workaround iOS 15+ issue

commit 51d1b50ef4b396dfa45183bdd1fb21fd8905dea3
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Mar 15 17:54:44 2022 +0800

    Fix the false decode implementation using the ImageRenderer instead of directly create CGContext

commit 02283906996de3de7e582c885d98e4aff60f18b0
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Tue Mar 8 15:26:41 2022 +0800

    Bumped version to 5.12.4

    update CHANGELOG

commit ba66c41fd672435132c1aa53677925ff82227978
Merge: 020481d5 3eb553d2
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Mar 8 15:17:04 2022 +0800

    Merge pull request #3332 from dreampiggy/workaround_prefer_input_cgimage_bitmap_info

    Workaround the iOS 15+ Force Decode may return black image because of CoreGraphics

commit 3eb553d251a336aa0d18149078540286c328cb88
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Fri Mar 4 17:55:07 2022 +0800

    Update the test case again for checking non-blank image

commit 6dcbec2b87487df99946c329f7283e1a8d0b61fb
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Thu Mar 3 22:06:04 2022 +0800

    Update the test case and use Xcode 13.2.1 with iOS 15.3+ simulator

commit 64902962e38d0c793e6548c5664c2e9815d79e2e
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Thu Mar 3 21:49:49 2022 +0800

    Fix the test case by adding a little inaccuracy for blur effect result

commit 1b0fdd8cb65fd71e86a773a541dcee546625bff4
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Thu Mar 3 20:49:57 2022 +0800

    Fix the iOS 15+ draw image blank because that CoreGraphics may not transcode on BGRX8888 pixel format context

commit 4589048fdd926f3c1518e3246fb2d13f4fbb8338
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Thu Mar 3 19:35:35 2022 +0800

    Fix the some transform test case does not check the color hex

commit 020481d5c8cbc153652de778541665821be5c5fa
Merge: 2c53f531 4302777c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Mar 3 18:27:06 2022 +0800

    Merge pull request #3327 from soondl/fix/imageView_blink_diskDataSync

    Fix imageView blinks with option 'SDImageCacheQueryDiskDataSync'

commit 4302777c6f66e713fac20705aa956481a8bb0088
Author: soondl <soondl@gmail.com>
Date:   Sun Feb 20 19:01:12 2022 +0900

    Add test case `testUIImageViewSetImageWithURLDiskSync`

commit 8445f2b1a702678b9831be1cc9c3c76b701555ec
Author: soondl <soondl@gmail.com>
Date:   Sun Feb 20 16:08:40 2022 +0900

    Fix imageView blinks with option 'SDImageCacheQueryDiskDataSync'

commit 2c53f531f1bedd253f55d85105409c28ed4a922c
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Thu Jan 27 21:46:56 2022 +0800

    Bumped version to 5.12.3

    update CHANGELOG

commit 81ea1c9a9cb81a5f732b889361ab37dc07cda699
Merge: 0cd9a648 33ff352d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jan 27 21:34:48 2022 +0800

    Merge pull request #3321 from ty0x2333/fix_scale_down_image

    Fix #3320 `decodedAndScaledDownImageWithImage` does not render the image completely

commit 33ff352d4ecc2cf05ffae0e6378615f85c1e3c98
Author: ty0x2333 <luckytianyiyan@gmail.com>
Date:   Wed Jan 26 15:46:21 2022 +0800

    Add test case: test07ThatDecodeAndScaleDownAlwaysCompleteRendering

commit 8ce13403bc13e1b0aede614328228a6f64017db7
Author: ty0x2333 <luckytianyiyan@gmail.com>
Date:   Wed Jan 26 07:12:35 2022 +0800

    Fix the bug that `decodedAndScaledDownImageWithImage` does not render the image completely due to the loss of precision.

commit 0cd9a6485acb6964330cce773fc93be7452ac2c8
Merge: 0fff0d75 aa99c377
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jan 19 15:01:01 2022 +0800

    Merge pull request #3318 from zakishaheen/patch-1

    update URL for SDWebImageSVGKitPlugin in readme

commit aa99c377990bf2a140e377d34cf99069e8e527f7
Author: Zaki <zakishaheen@users.noreply.github.com>
Date:   Tue Jan 18 16:53:30 2022 -0800

    update URL for SDWebImageSVGKitPlugin

commit 0fff0d7505b5306348263ea64fcc561253bbeb21
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Fri Dec 31 17:21:57 2021 +0800

    GravatarBumped version to 5.12.2

    update CHANGELOG

commit 89313b997ebab1fe6062bd291160e534287d1e6f
Merge: 8d558cb7 cecc984e
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Dec 31 16:28:32 2021 +0800

    Merge pull request #3312 from JPlay/fix_animated_image_total_duration_calculate

    fix: Eliminates accumulated floating point errors.

commit cecc984e3f08ede8dd940f504f572e60d1dbe3a4
Author: zhuoyan <zhuoyan@gaoding.com>
Date:   Thu Dec 30 11:31:54 2021 +0800

    fix: Eliminates accumulated floating point errors.

commit 8d558cb79f44c00bc75e71a509021b9551941aed
Merge: 602af159 b02f6f9e
Author: Kinarobin <kinarobin@outlook.com>
Date:   Fri Nov 26 10:07:39 2021 +0800

    Merge pull request #3304 from mmdock/patch-2

    Don't copy image data

commit b02f6f9e45eff0685f04d224defc274fb7ba7098
Author: Morgan Dock <mmdock@users.noreply.github.com>
Date:   Thu Nov 25 00:17:08 2021 -0600

    Don't copy image data

commit 602af15947106c9c7a6066138b4e907df91c8acb
Merge: a72df484 c0fbe7e3
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Oct 19 11:15:56 2021 +0800

    Merge pull request #3293 from dreampiggy/bugfix_image_loaders_can_request

    Fix the support for `SDImageLoadersManager` for canRequest API check, should be compatible with both old and new API

commit c0fbe7e3efa7f88389f746a36b39d525ae3652f8
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Mon Oct 18 21:44:01 2021 +0800

    Update test case

commit 4274158949e67ce15d9c92abba1460359c8d3997
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Mon Oct 18 21:30:34 2021 +0800

    Fix the support for `SDImageLoadersManager` for canRequest API check, should be com…
yonatanreiss-lightricks added a commit to yonatanreiss-lightricks/SDWebImage that referenced this pull request Apr 3, 2023
commit fb50c1d20f24db5322b2f8f379de3618f75fe08e
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Mar 3 23:12:01 2023 +0800

    Bumped version to 5.15.5

    update CHANGELOG

commit 4a3ce34c27d6b85cbd1cdd6b5b2cda8fe7c51639
Merge: 14b36f80 e0b7cc52
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Mar 3 23:10:53 2023 +0800

    Merge pull request #3506 from dreampiggy/bugfix/fix_blur_effect

    Fix the blur effect logic by avoid color convert and always use three box-blur methodology

commit e0b7cc524113637c6334ef5e558aba685e0754dc
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Mar 3 18:54:08 2023 +0800

    Fix the blur effect logic by avoid color convert and always use three box-blur methodology

commit 14b36f8096ac14785c3fc556a3b71e14a9022384
Merge: a812079a 8d09564f
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Mar 3 15:29:17 2023 +0800

    Merge pull request #3505 from dreampiggy/bugfix/cache_nil_key

    Protect the disk operation when input key is nil

commit 8d09564f27884bfd50632b8f57dfdd8989fbb76e
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Mar 3 15:10:42 2023 +0800

    Protect the disk operation when input key is nil

commit a812079ae91a7f2e627364c42ea7b98abfa366ed
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 21 21:14:53 2023 +0800

    GravatarBumped version to 5.15.4

    update CHANGELOG

commit 011fe7403101031cd6996ff15867752c4ced383f
Merge: 554e05a4 5bb64eae
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 21 21:09:42 2023 +0800

    Merge pull request #3500 from dreampiggy/bugfix/sd_callbackqueue_escaping

    Fix the wrong declaration of SDCallbackQueue's block, should be escaping to match GCD block

commit 5bb64eae39ff6cad6be6422b80250d7d86a533f6
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 21 19:12:12 2023 +0800

    Fix the wrong declaration of SDCallbackQueue's block, should be escaping to match GCD block

    This may cause the wrong lifecycle for block (earily release)

commit 554e05a4415fe20add53531c21e593c403685c3d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Feb 18 19:49:14 2023 +0800

    Bumped version to 5.15.3

    update CHANGELOG

commit 748def0a0c5d6cd589a411451cd4e2ea29b3ee4f
Merge: 940f991c 856ecd62
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Feb 18 19:36:15 2023 +0800

    Merge pull request #3496 from dreampiggy/temp/try_fix_promotion

    Try to fix the SDAnimatedImageView playback speed issue in Promotion devices (iPhone Pro)

commit 856ecd6235186fffb70f0125987518bcce374c11
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Feb 18 18:07:07 2023 +0800

    Fix leak of display mode

commit 3440b7c0fbea6ba00acc5e8d0a4a59dc81ce5645
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Feb 18 17:56:34 2023 +0800

    Update test case for display link and revert the protect code

commit 940f991ca1d6724aec2610af07d5e58608515997
Merge: 9cf8d125 9bc52079
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Feb 18 17:57:14 2023 +0800

    Merge pull request #3497 from dreampiggy/bugfix/same_url_failed_callback_times

    Fix the issue when multiple request for same url failed, the completedBlock will callback more times

commit 9bc52079792f2ab63bdb98d56578e42777ee4dff
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Feb 18 17:33:59 2023 +0800

    Added test case `test31ThatMultipleRequestForSameURLFailedCallback` to ensure behavior

commit b25864cc71560f5a0070b871ce337fde751431c0
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Feb 18 17:27:13 2023 +0800

    Fix the issue when multiple request for same url failed, the completedBlock will callback more times

commit 9cf8d125f522df0a7c3956f3828522ef2b6975fc
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Feb 18 17:02:34 2023 +0800

    Update README.md

    Added the explanation for SD prefix

commit 271e8d8b12569b3af3c428ff2f8ca6913f6604d9
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Feb 12 02:51:55 2023 +0800

    Try to fix display link callback duration calculation issue, using next timestamp for iOS 10+ / watchOS, previous timestamp for iOS 9

commit 8bd4e72c331ff082a3add70a6e2dab206fcd6c08
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Feb 12 02:46:50 2023 +0800

    Fix macOS Demo applicationDidFinishLaunching not called

commit a47bc00770240901a1c99a26c0dad638fa899917
Merge: 7ccdcb02 205b57cc
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 7 21:08:22 2023 +0800

    Merge pull request #3489 from SDWebImage/ci

    Try to fix codecov upload issue using token

commit 205b57cc1df07c6f825c3739ad630a95913cbc6e
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 7 16:13:32 2023 +0800

    Try to fix codecov upload issue using token

commit 7ccdcb02fb0ab47409a6602769cea0486be2a209
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 7 15:20:33 2023 +0800

    Bumped version to 5.15.2

    update CHANGELOG

commit 2382c58421f86cd226a0b1eb4d590ef8f8d7a09a
Merge: 6b25d985 f2d76101
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 7 15:00:02 2023 +0800

    Merge pull request #3484 from dreampiggy/garden/objc_bool_yes_no

    Code garden to change Objc bool from true/false to YES/NO

commit 6b25d9854aef0a8a9df29d9ac69d8786a8f26f8d
Merge: 1f48e5a3 7cec27ba
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 7 14:59:20 2023 +0800

    Merge pull request #3483 from dreampiggy/bugfix/atomic_logic_fix

    Fix the atomic logic between downloader and operation again

commit f2d76101815904b9f82665f6ea7f1dbb4b5339a8
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 7 02:32:11 2023 +0800

    Change Objc BOOL true/false into correct YES/NO

commit 7cec27bab922dc91a310dbb7ba5f3eb61a237ad3
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Feb 7 02:16:00 2023 +0800

    Fix the atomic logic between downloader and operation again

    Remove the wrong logic to modify queue priority when re-use operation

commit 1f48e5a37959de4ea240c12b68227c10f6c4d6e2
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 21:57:16 2023 +0800

    Bumped version to 5.15.1

    update CHANGELOG

commit eecc7e43800da45cc34e2814a99c298218c5b7ab
Merge: 247cbcfd fbe8880a
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 21:50:28 2023 +0800

    Merge pull request #3480 from dreampiggy/bugfix/data_copy_crash

    Remove the unused extra copy for `SDAnimatedImage` data initializer

commit 247cbcfd9729a4e9d1e06366be081bdaa9387b75
Merge: a0521643 02969011
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 21:49:43 2023 +0800

    Merge pull request #3479 from dreampiggy/bugfix/fix_async_block_operation_race

    Try to fix the SDAsyncBlockOperation's race condition

commit fbe8880ab7277df8f4f54cc5ba6a41e3313db152
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 21:11:59 2023 +0800

    Remove the unused extra copy for `SDAnimatedImage` data initializer

commit 02969011b09a4af9a0d1dc0c45cd655fd599f82c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 18:07:00 2023 +0800

    Try to fix the SDAsyncBlockOperation's race condition

    Use the correct way for subclassing NSOperation

commit a052164350a6542eb7245ed1341972b4d84623e0
Merge: f25cc6bb 1ec6cd06
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 20:41:10 2023 +0800

    Merge pull request #3477 from dreampiggy/bugfix/ensure_downloader_callback_atomic

    Ensure the Downloader and DownloaderOperation callback the completion in atomic and never miss one

commit 1ec6cd06f70110daadffaeb7671fd15ee6f3d881
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 18:54:56 2023 +0800

    Change all placeholder.com sample from http into https

commit b6910be155de74fecd43992fceb99cd65157bd51
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 17:29:08 2023 +0800

    Added test case `test31ThatMultipleRequestForSameURLNeverSkipCallback` to ensure all download request for same url always callback

commit 0c94e540bcded53fef6aba0ad3882844ab72a1ce
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 16:09:07 2023 +0800

    Revert back the NSOperationQueue, seems has better performance on this cases (may dispatch multiple block but not important, one finished is OK)

commit 6e1fee7834276add072674f0802a824f8b040a41
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Feb 6 15:06:54 2023 +0800

    Try not introduce new public API for operation, attach the `isCompleted` property using associated object from downloader, ensure compatibility

commit 43b94130c7f94a497f39001f17a4fa2499c3874c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Feb 3 19:02:07 2023 +0800

    Ensure the DownloaderOperation callback the completion in atomic and never miss one

    The downloader will now check and ignore a `transferedDataFinished` operation (which is callbacking its own completion), because it's not safe in multi-thread environment, create new network request instead

commit f25cc6bb1c595ef0165039360534d587e451ff8a
Merge: 8a6dcf88 a66ff8e5
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jan 22 14:12:35 2023 +0800

    Merge pull request #3474 from dreampiggy/bugfix/atomic_fix

    Avoid compiler generate the wrong property attribute with non-atomic

commit a66ff8e5c9bfa32067c9f5c840efdb89d9104bad
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jan 22 11:45:19 2023 +0800

    Avoid compiler generate the wrong property attribute with non-atomic

commit 8a6dcf88820754e529e22c054c160089ded6fece
Merge: 6f8121c6 a80af99d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jan 22 11:43:31 2023 +0800

    Merge pull request #3473 from dreampiggy/bugfix/create_options

    Fix the issue the fallback logic of ImageIO Source should avoid passing any UTI hint

commit a80af99d0af5873bf017ff15a89072ca1f20add9
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jan 22 11:23:18 2023 +0800

    Fix the issue the fallback logic of ImageIO Source should avoid passing any UTI hint

commit 6f8121c604ce580c5968f117f8829ef0a83d3071
Merge: 6c6b9518 5b34168e
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jan 19 12:08:08 2023 +0800

    Merge pull request #3471 from GiddyGoatGaming/patch-1

    Bump actions/checkout to v3

commit 5b34168e645618f4d97f46d5fd6c8d40b2834b98
Author: Spencer Comfort <109806759+GiddyGoatGaming@users.noreply.github.com>
Date:   Tue Jan 17 06:50:50 2023 -0500

    Bump actions/checkout to v3

commit 6c6b951845a520fa7e8356e28adb5339c0f008d3
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 17 17:10:01 2023 +0800

    Bumped version to 5.15.0

    update CHANGELOG

commit 975502b4a6dc9629027fc08ff085bc97efb1d7d6
Merge: a01715e1 9dd8b6c0
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 17 16:50:50 2023 +0800

    Merge pull request #3469 from dreampiggy/feat/animated_image_encode

    Added encodeWithFrames API for animation encoding in custom coder, better for usage

commit 9dd8b6c08b2d70103741044bfbee78eac2f7bacf
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 17 16:50:16 2023 +0800

    Update test case

commit a01715e19605bc8d657174d553fd3781c01a74ef
Merge: 7c63bad4 c0f70234
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 17 16:20:07 2023 +0800

    Merge pull request #3468 from dreampiggy/feat/decode_solution_change

    Update the decode solution to allows CoreGraphics avoid using any UIKit method

commit 0bdb7865c77599803a55966816d232a02576096f
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 17 16:18:17 2023 +0800

    Change the immutable frames array

commit 985c84be75530dc18e999cc42b050ba700d08226
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 17 16:16:09 2023 +0800

    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

commit 8ec3bc83d7c13828abed5efb63fb2dc212ca69da
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 17 15:24:39 2023 +0800

    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

commit c0f70234725b7a9f49a3489c17b66e8834f26687
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 17 14:38:00 2023 +0800

    Update the decode solution to allows CoreGraphics avoid using any UIKit method

    This is back compatible to old version's RAM behavior

commit 7c63bad41c0cde5ccc023f70a61ef434c726da4c
Merge: 05f7fb9b 911a9a86
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jan 12 16:35:50 2023 +0800

    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

commit 911a9a86a0392231155990b4b67f7b29c9ef51d3
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jan 12 15:20:51 2023 +0800

    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)

commit e083ab293fc591526805d95d1ae9f431252747e6
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jan 12 14:49:02 2023 +0800

    Fix the wrong behavior after 5.15.0 cache changes

commit 78fa0a9cb5a7eedfe82a0a5b3aea2ebff0ed5100
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jan 11 16:38:00 2023 +0800

    Update test case test08ThatImageTransformerWork with encode options

commit 08ec6cf2534388b5d41f90501e9b1a20301213a8
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jan 11 16:00:16 2023 +0800

    Adjustment for manager && cache call, add deprecation

commit 246cfa935d326ee7dc8a6898f4377c814175e942
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jan 11 15:32:04 2023 +0800

    Change the cache's encoding in global queue to avoid block ioQueue for IO read/write, performance related

commit d93a08fc917e251497173388a8e2b0744f96a5da
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jan 11 15:08:31 2023 +0800

    Added `SDWebImageContextImageEncodeOptions` to pass encode options like compression quality to SDImageCache storeImage API

commit 05f7fb9b0d96696e31bdbb0bd3928183f151dbef
Merge: 4178d12a 720a0974
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 10 14:38:00 2023 +0800

    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

commit 720a0974d48e83797a1d654191d585eaef74f01d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Jan 10 12:49:20 2023 +0800

    Fix SwiftPM issue

commit 397f8512403e28f0f79e9fa20e3f2d256b2ed0fd
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jan 9 22:14:53 2023 +0800

    Update test case

commit e21e9f19e61efcf29bb2edf0ded2b77ee5c8002a
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jan 9 21:56:15 2023 +0800

    Update Carthage project

commit e1e0841102c60101ebd37acee6dbe1837ebd9a42
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jan 9 21:46:20 2023 +0800

    Rename the internal property to avoid misleading

commit 007100d18ff5aec992a81581ab23ab9f774e80d5
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jan 9 21:42:32 2023 +0800

    Supports the old store cache API without context, which does not supports callback queue customization

commit 1b086711aedc4a66c80ae39cb3fd3d794190396f
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jan 9 18:44:33 2023 +0800

    Fix the issue because of main queue label hack

commit 43d74211c3bce2964f28668e9d0f5c4498280851
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jan 9 18:31:56 2023 +0800

    Added test case `testSDCallbackQueue`

commit 90eeb4d8306470eb178bafce8c3a0be7b6e4a82d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jan 9 17:45:52 2023 +0800

    Deprecate SDWebImagePrefetcher.delegateQueue, translate to use context[SDWebImageContextCallbackQueue] instead

commit 5a4b4cf16db34328b4e6ddad41fa3e095c3f8efb
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jan 9 17:24:13 2023 +0800

    Change the asyncSafe to the queue level configuration, introduce SDCallbackPolicy

commit 67520b9f55b064ab8e63d55eddd0e97a2bf34e58
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Jan 6 19:49:35 2023 +0800

    Fix the new added storeCache API which passing callbackQueue

commit fdd9a98210f2591901a57eff51c539d61bbcc06f
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Jan 6 19:34:37 2023 +0800

    Do not check nil block, useless in our use case

commit 57403c9d3fb5ebf14dbfad843e0fa9cf026917f2
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Jan 6 19:09:39 2023 +0800

    Rename to use `dispatch_block_t` alias

commit b5d712a3783911ed427faef1903c6aa54fd0aa56
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Jan 6 18:41:29 2023 +0800

    Implements the Callback queue dispatch

    Fix some missing components

commit 43ec4726e112ce7cb85b28b3751f1e07492801ef
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jan 4 18:47:50 2023 +0800

    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)

commit 4178d12a44691182c2eb79c70281b14cb73f4cbf
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 20:03:04 2022 +0800

    Bumped version to 5.14.3

    update CHANGELOG

commit 8be9f2c3f93142362e94117ef2cdbf019dbb4976
Merge: 7bc087b0 d2221403
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 19:57:48 2022 +0800

    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

commit d2221403e10fb9c6d8f10141db98aaaaf1f88679
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 19:55:12 2022 +0800

    Removed the unused options for CGImageSourceCopyPropertiesAtIndex

commit a53eb929886b11658bac15f5908021c61ee340c1
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 19:23:58 2022 +0800

    Update the test case `test23ThatThumbnailEncodeCalculation`

    This regression test should also been reverted

commit a99c0de68d58cb68257b449c2c835ebdabb2f61a
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 18:14:13 2022 +0800

    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

commit 7bc087b081e28cf42b65ef10c3c718ce1697df44
Merge: 0274aa85 ffc91663
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 17:57:09 2022 +0800

    Merge pull request #3460 from dreampiggy/feat/ioqueue_concurrent_config

    Added `ioQueueAttributes` to use concurrent or control QoS for image cache internal IO Queue

commit ffc91663bf6c85e54faecd5f8dd2196b56e529fe
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 17:37:07 2022 +0800

    Added test case `test48CacheUseConcurrentIOQueue`

commit c60e6714dd34af904065bad943ea868dbd3a40b2
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 17:24:07 2022 +0800

    Added `ioQueueAttributes` to use concurrent or control QoS for image cache internal IO Queue

commit 0274aa85fe69a997eae3a4de9275225762d56a22
Merge: 707db2e0 a15f5948
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 16:51:54 2022 +0800

    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.

commit 707db2e01669605602d72e50a8454e7782a4e789
Merge: 3312bf5e 71746145
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Dec 27 15:47:17 2022 +0800

    Merge pull request #3459 from dreampiggy/bugfix/player_cache_poster_image

    The poster image should not trigger a frameChange callback

commit 717461459fe51ad7eda1f804e50d3c417c92cbfd
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Dec 26 19:05:39 2022 +0800

    Hack the first frame to ensure it always displayed in first screen refresh

commit b5db7fac682c3c4d7af8a9188cafce20f301a47d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Dec 26 18:50:05 2022 +0800

    The poster image should not trigger a frameChange callback

commit a15f594869f8ea56f86d77a30fc7678d5f8bd01d
Author: kinarobin <kinarobin@outlook.com>
Date:   Fri Dec 2 21:24:36 2022 +0800

    prefetch image in advance

commit 3312bf5e67b52fbce7c3caf431b0cda721a9f7bb
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Nov 14 18:49:54 2022 +0800

    Bumped version to 5.14.2

    update CHANGELOG

commit 430ef4d73ca268d8efcefad08d3ac020af91c750
Merge: 80683c20 9c0c715d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Nov 14 18:47:05 2022 +0800

    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

commit 9c0c715d6aba8bfaec5f5440c4e2cd581b321bae
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Nov 14 17:07:29 2022 +0800

    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

commit 80683c20d8f15e10ac1ce605cca5008a295846bd
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Nov 11 15:35:47 2022 +0800

    Bumped version to 5.14.1

    update CHANGELOG

commit a97d5023041ff0cf59f25d07dfbf78fd68d90036
Merge: bc3f09cc 736f3f41
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Nov 11 15:30:36 2022 +0800

    Merge pull request #3439 from dreampiggy/bugfix/thread_safe_callback

    Fix the missing lock for callbackTokens which may cause thread-safe issue

commit 736f3f41f74c70a5c82546238cc25d377cb51436
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Nov 11 14:29:20 2022 +0800

    Move block before sending to the main queue

    This can avoid some life cycle issue and increase performance

commit 384b2d7c8be97bb52eed789662b4b97f5a58ab17
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Nov 11 14:22:49 2022 +0800

    Fix the missing lock for callbackTokens which may cause thread-safe issue

commit bc3f09ccbd4b09d343c86e9071029946ac34313f
Merge: 8a26bb3f 30f165ab
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Nov 11 14:17:17 2022 +0800

    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

commit 30f165abd5444cf83a8e30f239139c820dd926e6
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Nov 11 00:07:32 2022 +0800

    Change from instance method to class method

commit f4706453d6de61b2b397e1fee26d517cd9f4e6b3
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Nov 10 23:47:34 2022 +0800

    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

commit 8a26bb3f3d22dd503052834fb6c82eff98b4f7aa
Merge: b6aa428b d96ea392
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Nov 10 22:41:26 2022 +0800

    Merge pull request #3434 from dreampiggy/bugfix/underlying_queue_crash_ios12

    Fix the iOS 12 crash because the underlyingQueue is nil

commit d96ea392d16b509a9c63ccee61ae6d28b0b36d08
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Nov 10 19:55:18 2022 +0800

    Fix the iOS 12 crash because the underlyingQueue is nil

    Use NSOperation dependency to solve this issue

commit b6aa428b7d01a36e7857b09b4acb320ad7ee5170
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 22:48:52 2022 +0800

    Bumped version to 5.14.0

    update CHANGELOG

commit 35b28d417938a712b2e4af4fcf5331d43349e16c
Merge: 03b46475 bfa91a29
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 22:42:00 2022 +0800

    Merge pull request #3430 from dreampiggy/feat/add_is_thumbnail

    Added the helper convenient API `sd_isThumbnail`

commit bfa91a291bd530048f8546e782d9f45941550e55
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 22:39:57 2022 +0800

    Added the helper convenient API `sd_isThumbnail`

    Fix the metadata does not saved

commit 03b46475eb95d96cc7159f7ae47de3507fa1c603
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 21:49:26 2022 +0800

    Revert #2792, the autoreleasepool does not solve the issue

commit 6ce59aa8c118c19a497f712a7bc97e7479238ee7
Merge: 359036ea 7ddf3214
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 21:44:07 2022 +0800

    Merge pull request #3429 from dreampiggy/perf/remove_conforms_to_protocol

    Replace conformsToProtocol call with appropriate respondsToSelector check to improve performance

commit 7ddf3214e6529471c352dc61db26ad8fb3c957c6
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 21:18:20 2022 +0800

    Fix the test case again on below iOS 15

commit f8d353b50ca1356e385ba9e3b3751bd1f7fe3875
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 20:04:36 2022 +0800

    Update test case `test06ThatUsingACustomDownloaderOperationWorks`

commit 9aa27b61e8573fac9259fa6e99d2feb299a109ae
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 19:45:21 2022 +0800

    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

commit 359036eae97b456cceedfa2b0fa101820bb4040c
Merge: 9599a78f 6a9b5783
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 19:16:05 2022 +0800

    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

commit 6a9b578369595eea596abc2f2c5c94dcf5de298a
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 17:08:34 2022 +0800

    Added test case `test21ThatQueryOriginalDiskCacheFromThumbnailShouldNotWriteBackDiskCache`

commit 9599a78ff99b32021c012a014397e5562399c4da
Author: riv1r <514068775@qq.com>
Date:   Tue Nov 8 17:29:49 2022 +0800

    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>

commit f93cf968327635b61bf0a9fac5cc0de0dcc398ec
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 16:44:40 2022 +0800

    Avoid store original disk cache again when using thumbnail  or transformer from the full size data

    This solve #3395

commit 5a89f80816729be295915e9edad2712d748f4438
Merge: cdd77d5e 0d1c603d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 16:41:40 2022 +0800

    Merge pull request #3427 from dreampiggy/bugfix/logic_nullable_check

    Add the possible nullable logic check when the force-decode/copy failed

commit cdd77d5ebeab885b85f8df1342480eeeab295a52
Merge: f6769186 c81aec4c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 16:20:33 2022 +0800

    Merge pull request #3426 from dreampiggy/bugfix/UTI_hint_ignore_dynamic_log

    Ignore the dynamic UTI type hint to avoid extra log

commit 0d1c603d5068ed7ab6761d3e5cc794fa8bdb5bf7
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 16:19:49 2022 +0800

    Add the possible nullable logic check when the force-decode/copy failed

commit c81aec4ccda5d34fd729a59132e40f200e708406
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 14:57:18 2022 +0800

    Ignore the dynamic UTI type hint to avoid extra log

commit f6769186b9952c00aa3c1d9d201db88e4bdca9db
Merge: ddcf347c 6c836968
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 8 14:36:55 2022 +0800

    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

commit 6c836968008e2316730fcbbdaef82112dfbce205
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Nov 7 18:39:33 2022 +0800

    Update test case `test17ThatMinimumProgressIntervalWorks` to make it more stable

commit 7c4649c7cc7bfd1656e01b075809650c3aa5f657
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Nov 7 15:25:52 2022 +0800

    Update the test case `test23ThatThumbnailEncodeCalculation`

commit 136d05fce8713155823aaaaa3aa721c3312a32d1
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Nov 7 12:42:32 2022 +0800

    Add extra check when user provide SDImageCoderDecodeUseLazyDecoding

commit 3000dd5098158f2575d695270b99a67469425a5d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Nov 7 12:20:04 2022 +0800

    Fix the `sd_isDecoded` did not set after we use SDCGImageCreateCopy

commit db25af95060acf6fc759134efd07a1b2cf510fdf
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Nov 3 19:16:30 2022 +0800

    Recovery the assert check on only iPhone/TV simulator in debug mode

commit abc06f020ad619c76ad8cd4ba152fe3a8cf32706
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Nov 3 19:10:12 2022 +0800

    Added `SDImageCoderDecodeUseLazyDecoding` to control whether to use lazy-decoding for ImageIO or not

    Defaults to NO for animated image coder but YES for static image coder to match current behavior
    This also use another way to solve iOS 15+'s CGImageGetImageSource issue

commit ddcf347c7dfaad3e8d6d81ac79e72b99118b48eb
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 1 14:20:44 2022 +0800

    Update README about GitHub action status

commit 5ee6ac2476ac59e3f36ed75fb0f5ca4106b269ad
Merge: 4a72e4fe 279f636a
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Nov 1 00:14:17 2022 +0800

    Merge pull request #3423 from dreampiggy/feature/refactor_thumbnail_hack_with_decode_options

    Refactor the hack for multiple thumbnail image request at the same time

commit 279f636ac561ff5bcf3eb4c9539fa93115980976
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Oct 31 23:41:46 2022 +0800

    Minor check the logic that UTI has high priority than path extension

commit e3c6cfa066a0cab867e5f7877d5ace6258e873b2
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Oct 31 23:03:29 2022 +0800

    Update test case to make clear that transformed image and thumbnailed image will callback without data

commit 980e0dd14adf46378b18065b905b04ee62b91345
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Oct 31 22:54:38 2022 +0800

    Added test case test30ThatDifferentThumbnailLoadShouldCallbackDifferentSize

commit 2fd75638fe4723677ed2abee64a3f50795404132
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Oct 31 19:58:35 2022 +0800

    Refactor the hack for multiple thumbnail image request at the same time

    1. Put the hack logic into SDWebImageDownloadOperation, each different thumbnail image request will have its callback with desired size of image using different decoding call.
    2. Progressive Thumbnail decoding (use together) does not have this behavior, because I think progressive thumbnail is really rare and tolerant, people just use the first thumbnail size image for preview and OK.
    3. The manager logic refactor with separate steps, focus on clear to understand the complicated logic and maintainess
    4. The thumbnail decode/transformed will callback valid image, but with nil data, this matches the behavior as wiki pages.

commit 4a72e4fee29c8600053eee760a297e06e80e5939
Merge: b014808d 851b60e0
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Oct 30 18:34:30 2022 +0800

    Merge pull request #3421 from dreampiggy/feature/decode_options_in_from_loader_instead

    Introduce SDWebImageContextImageDecodeOptions, deprecate SDImageCoderWebImageContext

commit 851b60e0f3c1fc98af8301e143bbff1e5937bb54
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Oct 30 17:54:03 2022 +0800

    Added test case `test20ThatContextPassDecodeOptionsWorks`

commit 2f3652dc2e17f32ae12a9eef3bdf542b6bd3c5ae
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Oct 29 19:09:08 2022 +0800

    Feature: Introduce SDWebImageContextImageDecodeOptions, deprecate SDImageCoderWebImageContext

    This can solve the retain cycle from the scratch, instead of hacking

commit b014808ddd52dc3ac70bcb24817a3c651928be10
Merge: 3a52ef5a 318cca55
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Oct 29 20:40:00 2022 +0800

    Merge branch '5.13.x' of github.com:SDWebImage/SDWebImage

    # Conflicts:
    #	SDWebImage/Core/SDImageCacheDefine.m

commit 318cca556b0489aede0cd98d8d0c7f1408ab7bd6
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Oct 29 20:34:04 2022 +0800

    Fix the issue that progressive decode logic does not get updated

commit 55a380941296727c5042f2d365b8104f726bc46c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Oct 29 20:26:05 2022 +0800

    Bumped version to 5.13.5

    update CHANGELOG

commit 34f2a9b823927520ad7a214d698d694d39f62f7a
Merge: 9248fe56 b46fe38c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Oct 29 20:22:21 2022 +0800

    Merge pull request #3420 from dreampiggy/fix_5.13_retain_cycle_web_context

    Quick fix the issue that UIImage.sd_decodeOptions cause retain cycle when pass custom cache in context option

commit b46fe38c7257a534d02311192411e6dae43beca6
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Oct 29 19:50:45 2022 +0800

    Quick fix the issue that UIImage.sd_decodeOptions cause retain cycle when pass custom cache in context option

    Now the SDImageCoderWebImageContext does not pass the built-in options, only custom options will be passed, and deprecated in 5.14.0

commit 3a52ef5aeb3ce89b1f0b37359e7f39b460e1df10
Merge: 9248fe56 8dd6e25c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Oct 29 18:34:56 2022 +0800

    Merge pull request #3419 from dreampiggy/feature/tiff_uti_hint

    Support use url.path or custom UTI hint passed to ImageIO, solve the TIFF/NEF/SRW raw image decoding with wrong size

commit 8dd6e25cd86556178c22a33e97013fcbdad6a2da
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Oct 29 18:13:36 2022 +0800

    Added NEF test case, as well as BMP type enum

    The file extension hint works on iOS/macOS for current

commit b1b16a17b36c3ecd5f81bf43cf115c8c9f30f375
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Oct 27 11:09:29 2022 +0800

    Support use url.path or custom UTI hint passed to ImageIO, solve the TIFF/NEF/SRW raw image decoding with wrong size

    This is because file extension will cause ImageIO use different codec, which does not support all of them without context

commit 9248fe561a2a153916fb9597e3af4434784c6d32
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 26 20:57:44 2022 +0800

    Bumped version to 5.13.4

    update CHANGELOG

commit 3c7c949637cecb4eef79cd543309a2d5b261e46f
Merge: 484bc774 364034d1
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 26 20:55:27 2022 +0800

    Merge pull request #3408 from dreampiggy/threadsafe_fix_imageio_incremental_animation

    Fix the potential out of bounds crash for ImageIO incremental animation decoding (like GIF)

commit 364034d11aaa6415e8611faaa1739e24c6fb0383
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 26 18:43:26 2022 +0800

    Fix test cases `test15CancelQueryShouldCallbackOnceInSync`

commit 080db1afb916e68edbe5e7c3089fbfaae58bf831
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 26 18:24:41 2022 +0800

    Try to investigate test case failure issue

commit 9b2ddc9ea84434741c1491bce6440f80d86612fa
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 26 17:34:55 2022 +0800

    [NFC] A little optimization for MutableArray creation

commit 347cf1d1cc4feed24971e78dd68763fb132c1950
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 26 17:32:25 2022 +0800

    Fix the potential out of bounds crash for ImageIO incremental animation decoding (like GIF)

    This patch from the SDWebImageWebPCoder/pull/68

commit 484bc774e1091f622c4856e576ff957b29403676
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 18:35:34 2022 +0800

    Bumped version to 5.13.3

    update CHANGELOG

commit 9f9d226083875af45f3624393882f49f915eb75d
Merge: 524d4f53 ea9f5737
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 18:30:51 2022 +0800

    Merge pull request #3387 from dreampiggy/thread_safe_ios15_animation_cgimage_retain_source

    Try to workaround iOS 15+ crash that CGImage retain the CGImageSource during animation image playing

commit ea9f573744810f7bd4ac390b639136b40a6a98bb
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 18:29:57 2022 +0800

    Remove the temp assert code (for debugging usage)

commit 89178a7d89ecde64a79df11faa496bddf6c656c4
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Aug 26 17:48:51 2022 +0800

    Update to force decode CGImage before any UIImage initialization on iOS 15+

commit 3994006cb46eb5e20517d66bb59c673769ec7e23
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Aug 11 14:51:02 2022 +0800

    Try to workaround iOS 15+ crash that CGImage retain the CGImageSource during animation image playing

    This used to work on iOS 14

commit 524d4f53ebbbbbddaf830ebd9467b0b724f645f2
Merge: 122c3d7c 6b8075a2
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 18:20:06 2022 +0800

    Merge pull request #3403 from dreampiggy/revert_isCancelled_block_with_recursive

    Fix the crash because of SDWebImageCombinedOperation recursive lock

commit 6b8075a2e1849ffff5bde0496f3cd841e16364ec
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 17:33:04 2022 +0800

    Using the same synchornized to guard _cancelled status, which need recursive lock

    DO NOT USE SD_LOCK (os_unfair_lock), which not support recursive

commit ad592765cbbd3b4dcc12fa014062625630c83104
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 17:28:38 2022 +0800

    Revert "Synchronise getter and setter of the cancelled property of the SDWebImageCombinedOperation in order to eliminate data race."

    This reverts commit 5a18c84529dd5cd9cd45c8689d55b62d3b73b54a.

commit 122c3d7ca57a21650c01b61f3ea42e5de4168f91
Merge: d3b111de 61c3c5ba
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 17:23:56 2022 +0800

    Merge pull request #3402 from dreampiggy/fix_macOS_animatedview_render

    Fix the switching from animated image rendering to static image does not works on macOS 11+

commit 61c3c5ba2d3c6b94e79fa4195fcccd9d5568db73
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 16:27:21 2022 +0800

    Fix the switching from animated image rendering to static image does not works on macOS 11+

    We should always provide a fallback solution to handle built-in NSImageView logic

commit d3b111deb10fc8ecb87e82a3fff5c2cf9dabcefb
Merge: 3a6e01ab 6eb74a17
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 14:30:03 2022 +0800

    Merge pull request #3401 from dreampiggy/fix_unlock_unbalanced

    Fix the unbalanced lock which cause crash

commit 6eb74a177fffc6991b283ddcfbf1884e046ff620
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Sep 19 12:05:41 2022 +0800

    Fix the unbalanced lock which cause crash

commit 3a6e01ab20b5b93b763b285e670e720510a30f7a
Merge: 3e48cb68 5a18c845
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Sep 9 18:15:44 2022 +0800

    Merge pull request #3393 from alexander-gaidukov/synchronize_operation_cancellation

    Synchronise getter and setter of the cancelled property of the SDWebImageCombinedOperation

commit 5a18c84529dd5cd9cd45c8689d55b62d3b73b54a
Author: Alexander Gaidukov <alexander.gaidukov@gmail.com>
Date:   Mon Sep 5 16:32:32 2022 +0700

    Synchronise getter and setter of the cancelled property of the SDWebImageCombinedOperation in order to eliminate data race.

commit 3e48cb68d8e668d146dc59c73fb98cb628616236
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 23 23:09:12 2022 +0800

    Bumped version to 5.13.2

    update CHANGELOG

commit 7d7debbd262ddac7c75c9d40c78e929839dcbad0
Merge: b88d576f bcaf918b
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 23 23:04:55 2022 +0800

    Merge pull request #3380 from dreampiggy/bugfix_edge_case_cancel_cache_callback_twice

    Fix the rare case when cancel an async disk cache query may cause twice callback

commit bcaf918b8393dc13917a39be49929e44a08b2491
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 23 22:43:01 2022 +0800

    Fix the old test case warning

commit 62e3a8f52a9ce7b38c641118328c5593468a641e
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 23 22:05:49 2022 +0800

    Update test case about the cacheOperation and loaderOperation

commit 3d1197b820d29200e49d194e8e965b9c7419df71
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 23 21:59:14 2022 +0800

    When download start, mark the query cache operation finished to avoid bug behavior

commit 2729096221edcd7eeea1add6f5e9ea6273950c95
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 23 21:26:18 2022 +0800

    Added test case `test15CancelQueryShouldCallbackOnceInSync`

commit 0643cb81c37f54384325fe6caff3ac118affff42
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 23 21:08:55 2022 +0800

    Fix the rare case when cancel an async disk cache query may cause twice callback

    One is sync and another is async

commit b88d576f756e0ad27a926df155d44f74377bd639
Merge: cc1995b7 2bad528b
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 23 16:39:13 2022 +0800

    Merge pull request #3379 from amonshiz/patch-1

    Fix pragma mark typo

commit 2bad528bfb907cc8182e596115fe222f1a29848f
Author: Andrew Monshizadeh <1282845+amonshiz@users.noreply.github.com>
Date:   Fri Jul 22 21:49:09 2022 -0600

    Fix pragma mark typo

    Built and noticed this warning
    ```
    external/SDWebImage/SDWebImage/Core/NSButton+WebCache.m:152:9: warning: unknown pragma ignored [-Wunknown-pragmas]
    #pragma mar - Private
            ^
    ```

commit cc1995b73883a1f97931366879d862c53a32bf82
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 16 19:51:48 2022 +0800

    Bumped version to 5.13.1

    update CHANGELOG

commit 7269107908da3ddeca360adce36f66032bba3662
Merge: d0f3c393 07572418
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 16 19:46:17 2022 +0800

    Merge pull request #3373 from dreampiggy/fix_clang_analyze_issue

    Fix the clang analyze issue

commit 0757241822ea079faffe82b6a9e30a6f03cc11e9
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 16 19:43:48 2022 +0800

    Fix the clang analyze issue

commit d0f3c393350c1cdc0e2e307bed9f9327eade2d0a
Merge: 3277824d a88e6694
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 16 19:33:46 2022 +0800

    Merge pull request #3368 from dreampiggy/optimize_force_decode_solution

    Added `SDImageCoder.defaultDecodeSolution` to control the force decode solution. Automatic by default

commit a88e6694229b627ef32c2cfdee956a8999eb1159
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 16 16:27:30 2022 +0800

    Added SDImageCoderDecodeSolutionAutomatic, which check image format as well

    This avoid the unwanted CMPhoto log

commit 213a8b8def68d594338d34c067d9d47e221f14ef
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jul 11 16:28:10 2022 +0800

    Added `SDImageCoder.defaultDecodeSolution`  to control the force decode solution, defaults to CoreGraphics (the same as 5.12)

    For user who want new UIKit solution, you can opt-in to change the `defaultDecodeSolution` case

commit ff6b3b9bb59613d1acde21258d45bfe83bd44fab
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jul 11 15:50:55 2022 +0800

    Change only ImageIO decoded CGImage should enter the `Force Decode` logic

    Others coder, like WebP, should not use this approach

commit 3277824d431a0d35e596f28487765746978328e3
Merge: 4d4e6311 1ed76f4f
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 16 18:01:54 2022 +0800

    Merge pull request #3372 from dreampiggy/bugfix_color_at_point_grayscale

    Fix sd_colorAtPoint and sd_colorsWithRect support for grayscale image (white and alpha)

commit 1ed76f4f47d52aacdb690f34549a2d436ee83e99
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 16 17:43:48 2022 +0800

    Fix the bitmapInfo support for greyscale color, update test case

commit 34236ac5221fa20e06ecca328c918a398d095791
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jul 16 17:27:04 2022 +0800

    Fix sd_colorAtPoint and sd_colorsWithRect support for grayscale image (white and alpha)

    This fix the test cases for #3368

commit 4d4e631183d2e3a9f4e59f6458ea080eda028335
Merge: c4b8660b 2fe3879b
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jul 14 15:24:11 2022 +0800

    Merge pull request #3370 from dreampiggy/bugfix_pdf_draw_bitmap_dpi

    Fix the PDF image without thumbnailPixelSize will result huge bitmap size, now fixed into 72 DPI matching PDFKit

commit 2fe3879b1582e455044d2903fcbaa03415676028
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jul 14 14:52:26 2022 +0800

    Fix the case that provided DPI cause `kCGImagePropertyPixelWidth` return non-zero value

    This will cause re-check thumbnail, and may result the wrong pixel size

commit f1fe4ca8b85928b458437d10e035995e192fdd67
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jul 13 18:18:21 2022 +0800

    Calculate the DPI based on PDF mediaBox, support thumbnailPixelSize

    Move the vector code from ImageIOAnimatedCoder to ImageIOCoder, since it's not animatable :)

commit f91d35ef8d703a861644d7c406e717a6b21ae112
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jul 13 16:04:29 2022 +0800

    Fix the PDF image without thumbnailPixelSize will result huge bitmap size, now fixed into 72 DPI matching PDFKit

commit c4b8660bb3ef543fe4bdcaac0db956b32dc5583f
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 27 02:37:44 2022 +0800

    Bumped version to 5.13.0

    update CHANGELOG

commit 0805bc0f4d3c0c2af15f305ad2da215d3413f114
Merge: 16cf1576 3358859b
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 27 02:33:45 2022 +0800

    Merge pull request #3364 from dreampiggy/bugfix_thumbnail_full_loading_same_time_cache_issue

    Fix the issue when thumbnail and full size loading at the same time, the thumbnail image will write to memory with wrong key

commit 3358859b468fef42e7916eba6e2fe57c1899546d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 27 01:26:03 2022 +0800

    Fix the issue when thumbnail first and full size loading at the same time, the thumbnail image will write to memory with wrong key

    The disk cache key is correct and does not get effected by this issue

commit 282714883e32f73c5285319c7445ce24bf6a4b8d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 26 23:55:12 2022 +0800

    Update the Demo project

commit 16cf157658b48eab413a8783df0759861e54245b
Merge: d58a1006 ad953cdc
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 26 23:52:55 2022 +0800

    Merge pull request #3363 from dreampiggy/fix_multiple_cancel_cache_callback_order

    Fix the case when user cancel the image loading for same URL in sequence cause placeholder mass

commit ad953cdcc5e57c2dcc8003aea0d5aae66fa8f436
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 26 19:51:51 2022 +0800

    Fix the case when user cancel the image loading for same URL in sequence cause placeholder mass

    This PR introduce 2 API changes:
    1. Cache query now return cache token and callback sync when called from main queue, unlike NSOperation always callback async
    2. Expose the set image operation, and update the documentation behavior about that `SDWebImageDelayPlaceholder`

commit d58a1006c21a20ef1e37c36ea31d49a5bc33a988
Merge: 0b661344 071a8934
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 26 15:29:55 2022 +0800

    Merge pull request #3362 from dreampiggy/behavior_thumbnail_store_cache

    Feature: Change thumbnail cache behavior as expected, share cache through different loading pipeline without extra download

commit 071a8934e3b15082b19d2fe12ba2e318d02143fc
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jun 25 23:41:36 2022 +0800

    Fix the assert case when loader callback nil image data

commit 69acd5a15873b69891261a498b33747536364b4c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jun 25 23:20:36 2022 +0800

    Added all the 3 test cases

    test17ThatThumbnailCacheQueryNotWriteToWrongKey
    test18ThatThumbnailLoadingCanUseFullSizeCache
    test19ThatDifferentThumbnailLoadShouldCallbackDifferentSize

commit 31c4a09430caa27eb6c5ac1a59bec46b2069dd1a
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jun 25 22:59:16 2022 +0800

    Fix one bug that callback the wrong cache type

commit c47158362d04e09cd83b09d82097c693462770eb
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jun 25 22:52:48 2022 +0800

    Limit the re-deocde case only when image was downloaded, avoid when thumbnail hit cache

commit ecac56b7263f341bf06b93d980dc3c84afc216b2
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Jun 25 22:13:24 2022 +0800

    Use the new solution, store the original decode options, when multiple loading pipeline share the same URL callback, check it and re-decode if needed

commit 911328c1b4c149c5a4bf7adef675c1abe3ba162c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jun 23 19:37:13 2022 +0800

    Fix the case when previous pipeline use thumbnail transformer use together, second pipeline use the full size loading

commit 2c9290f109b91dc36133668e68f47345b4bd10ee
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jun 23 18:46:21 2022 +0800

    Added sd_isThumbnail to mark metadata, avoid the case when full size image request re-use the image from thumbnail decoding for the same URL

    I think this is a temp workaround

commit e7e9268a7e9c2f1157f1cea1b88465bc1589b4f9
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jun 23 17:54:27 2022 +0800

    Fix the case that query full size key with thumbnail, cause the write back of thumnail to memory cache with wrong key

commit 613a2bf98890b283ec7e39a2efeb889b00c51e7e
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jun 23 02:50:30 2022 +0800

    Opt the thumbnail cache behavior, now it prefers to store/query original data from disk, thumbnail image from memory

    Separate the thumbnail from transformer, they are for different use case

commit 0b661344fe83e1c8e3d8716527f727ee6210260c
Merge: 19b4b47c 1f3ee8e9
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jun 22 17:56:22 2022 +0800

    Merge pull request #3359 from dreampiggy/api_thumbnail_scale_calculation

    Added new API for custom coder better handling the thumbnail size

commit 1f3ee8e9d5a7e181db41759c0975b2a5dcb375b1
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jun 22 16:53:40 2022 +0800

    Added new API for custom coder better handling the thumbnail size

    The current WebP/HEIF/AVIF coder both copy paste the same code multiple times and have to fix one by one

commit 19b4b47c6063184ff65b353c3d9aeabec07ecfe7
Merge: 3746c5d4 018cf32a
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 20 21:01:07 2022 +0800

    Merge pull request #3357 from dreampiggy/bugfix_encode_max_pixel_size

    Fix the encodeMaxPixelSize logic

commit 018cf32ab3c7e9ec814bf413e08d3a11468cbcbf
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 20 18:20:34 2022 +0800

    Added test23ThatThumbnailEncodeCalculation test case

commit fcb53cb5ff8b2480e495947ec8c25df30c4a15cc
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 20 18:02:38 2022 +0800

    Fix the encodeMaxPixelSize logic

    Allows user to provide size which one dimension is larger than image size size
    Example - maxPixelSize: (200, 200), imageSize: (100, 400), result: (50, 200)

commit 3746c5d4c6f1741bae5ebeab18a92ead3b149247
Merge: b729cc14 9362505a
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 20 17:33:00 2022 +0800

    Merge branch 'master' of https://github.com/SDWebImage/SDWebImage

commit 9362505aeb0255177dea2b2e055801ece3e34366
Merge: 8743cdd6 a66972bd
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 20 17:18:42 2022 +0800

    Merge pull request #3336 from Insofan/feat/store_data

    feat: store image data

commit 8743cdd6333388a7e3d04b6a929b2808a69f4235
Merge: eeb25d6e 9b9fc6fc
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Mon Jun 20 17:17:10 2022 +0800

    Merge pull request #3355 from dreampiggy/feature_support_uiimage_preparefordisplay

    Support using iOS 15 UIImage new API imageByPreparingForDisplay for faster force decoding

commit b729cc14f65e1412efc781a4cc46bd7f4720a3ae
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 12 18:28:19 2022 +0800

    Bumped version to 5.12.6

    update CHANGELOG

commit 9b9fc6fc9bbd5bee2a431062ead34176eb34135c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 12 18:13:30 2022 +0800

    Support using iOS 15 UIImage new API imageByPreparingForDisplay for faster force decoding

    This API seems support both async/sync version, SD use sync version here because we already call them on global queue
    The API mark available on watchOS, but header does not pass that __has_include, a little strange

commit eeb25d6e9c1ecedbcbdc6694a6e40eaa8dcddbb5
Merge: 91c9966d 3b0b2326
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 12 17:11:14 2022 +0800

    Merge pull request #3354 from dreampiggy/bugfix_thumbnail_calculate

    Fix the thumbnail pixel size calculation when preserveAspectRatio is true

commit a66972bdc830103cd556c465599dc704d8ec5053
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 12 17:10:23 2022 +0800

    Update SDImageCache.m

    Little logic check for nil value

commit 754de4d7c8b07d39dcd8e8886f9547e53e370254
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 12 17:04:52 2022 +0800

    Update SDImageCache.m

    Remove extra toDisk param

commit 2fc131c44bf8af283561dcb0b77d42d96b8ea28b
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 12 17:03:04 2022 +0800

    Update SDImageCache.h

    Remove extra toDisk param

commit 3b0b2326165cc2e4b34f8c301b58a99d96dc1df6
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 12 16:44:21 2022 +0800

    Added test case test22ThatThumbnailPreserveAspectRatio

commit f90373ce14341da40c5bd730bd5c241d1d2e8405
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sun Jun 12 16:32:33 2022 +0800

    Fix the thumbnail pixel size calculation when preserveAspectRatio is true

commit 91c9966d77d8f82219fbf5e59f3f22c9fbfd828c
Merge: 362ba2d4 c2313209
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jun 8 23:08:20 2022 +0800

    Merge pull request #3353 from amonshiz/amonshiz/fix-3352

    Fix #3352 Include necessary CoreImage import

commit c2313209136a735147a3807423bbbccf00b47853
Author: Andrew Monshizadeh <amonshiz@thebrowser.company>
Date:   Tue Jun 7 14:33:18 2022 -0400

    Include necessary CoreImage import

commit 362ba2d43f7ac410819859dbd728db5ea471e133
Merge: fda0a57d 24d4cda8
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jun 1 14:46:44 2022 +0800

    Merge pull request #3349 from turrisxyz/Pinned-Dependencies-GitHub

    chore: Set permissions for GitHub actions

commit 24d4cda885335374d6d34f7205cefc3c3d01bbbe
Author: naveen <172697+naveensrinivasan@users.noreply.github.com>
Date:   Wed Jun 1 00:29:19 2022 +0000

    chore: Set permissions for GitHub actions

     Restrict the GitHub token permissions only to the required ones; this way, even if the attackers will succeed in compromising your workflow, they won’t be able to do much.

    - Included permissions for the action. https://github.com/ossf/scorecard/blob/main/docs/checks.md#token-permissions

    https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#permissions

    https://docs.github.com/en/actions/using-jobs/assigning-permissions-to-jobs

    [Keeping your GitHub Actions and workflows secure Part 1: Preventing pwn requests](https://securitylab.github.com/research/github-actions-preventing-pwn-requests/)

    Signed-off-by: naveen <172697+naveensrinivasan@users.noreply.github.com>

commit fda0a57de98d391e8244cc0f80c583e2c67d9e8f
Merge: d01eb3f8 484de40e
Author: Kinarobin <kinarobin@outlook.com>
Date:   Tue May 17 14:13:43 2022 +0800

    Merge pull request #3346 from timonus/faster-file-url

    Small performance improvement to generating file URLs in SDDiskCache -setData:forKey:

commit 484de40e3b803a09fceca3351c2fbc8820776cfd
Author: Tim Johnsen <tim@patreon.com>
Date:   Thu May 12 15:42:17 2022 -0700

    Small performance improvement to generating file URLs in SDDiskCache -setData:forKey:.

commit d01eb3f8aca843146f17b5530cef49be8bd01b78
Merge: 2e63d006 30c95635
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Sat Apr 2 17:48:17 2022 +0800

    Merge pull request #3337 from GetToSet/ethanwong/nsscreen-thread

    Fix a crash of accessing -[NSScreen backingScaleFactor] from background thread.

commit 30c95635112836059f4b76d287913484631563b8
Author: Ethan Wong <e1hanw0ng@gmail.com>
Date:   Mon Mar 28 20:17:53 2022 +0800

    Fix crash of accessing mainScreen from background thread on 10.11.

commit 7c66265ee82fdffe72c851395f8d61211f02bdc6
Author: Inso <insofan3156@gmail.com>
Date:   Wed Mar 30 15:24:32 2022 +0800

    refactor: refactor store data to memory cache logic

commit 6a2eaf707e82bb3adb16884b799906600096f85d
Author: Inso <insofan3156@gmail.com>
Date:   Mon Mar 28 12:41:22 2022 +0800

    feat: store image data

commit 2e63d0061da449ad0ed130768d05dceb1496de44
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Mar 16 15:58:50 2022 +0800

    Bumped version to 5.12.5

    update CHANGELOG

commit 4974524a47e6c169cfc5340e4f6ab3428824263a
Merge: 02283906 874b674c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Mar 16 15:55:31 2022 +0800

    Merge pull request #3334 from dreampiggy/bugfix_force_decode_use_image_renderer_and_argb8888

    Workaround iOS 15+ force decode again using Image Renderer(preferred) and RGB888

commit 874b674cb648c533f2401ab3e124510176538fcd
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Mar 16 14:56:34 2022 +0800

    Unify the colorspace on macOS/watchOS choosen for draw to use sRGB firstly

    Remove the unused OS version check

commit 368825eff64e6bac3b7b36a8be54abd1a406ea1b
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Mar 15 22:56:03 2022 +0800

    Update the test case, now when using force decode, the image orientation is always UP

commit c0cc2456323cfa6ee736b24bf630cf7823962a53
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Mar 15 22:35:52 2022 +0800

    Update AppKit SDGraphics convenient API to use main screen colorspace

    Update macOS demo URL as well

commit fce270631f412376438761d203fe9cedbe1ab663
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Mar 15 22:01:49 2022 +0800

    Use RGBX8888 for non-alpha image force decoding, which workaround iOS 15+ issue

commit 51d1b50ef4b396dfa45183bdd1fb21fd8905dea3
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Mar 15 17:54:44 2022 +0800

    Fix the false decode implementation using the ImageRenderer instead of directly create CGContext

commit 02283906996de3de7e582c885d98e4aff60f18b0
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Tue Mar 8 15:26:41 2022 +0800

    Bumped version to 5.12.4

    update CHANGELOG

commit ba66c41fd672435132c1aa53677925ff82227978
Merge: 020481d5 3eb553d2
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Mar 8 15:17:04 2022 +0800

    Merge pull request #3332 from dreampiggy/workaround_prefer_input_cgimage_bitmap_info

    Workaround the iOS 15+ Force Decode may return black image because of CoreGraphics

commit 3eb553d251a336aa0d18149078540286c328cb88
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Fri Mar 4 17:55:07 2022 +0800

    Update the test case again for checking non-blank image

commit 6dcbec2b87487df99946c329f7283e1a8d0b61fb
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Thu Mar 3 22:06:04 2022 +0800

    Update the test case and use Xcode 13.2.1 with iOS 15.3+ simulator

commit 64902962e38d0c793e6548c5664c2e9815d79e2e
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Thu Mar 3 21:49:49 2022 +0800

    Fix the test case by adding a little inaccuracy for blur effect result

commit 1b0fdd8cb65fd71e86a773a541dcee546625bff4
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Thu Mar 3 20:49:57 2022 +0800

    Fix the iOS 15+ draw image blank because that CoreGraphics may not transcode on BGRX8888 pixel format context

commit 4589048fdd926f3c1518e3246fb2d13f4fbb8338
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Thu Mar 3 19:35:35 2022 +0800

    Fix the some transform test case does not check the color hex

commit 020481d5c8cbc153652de778541665821be5c5fa
Merge: 2c53f531 4302777c
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Mar 3 18:27:06 2022 +0800

    Merge pull request #3327 from soondl/fix/imageView_blink_diskDataSync

    Fix imageView blinks with option 'SDImageCacheQueryDiskDataSync'

commit 4302777c6f66e713fac20705aa956481a8bb0088
Author: soondl <soondl@gmail.com>
Date:   Sun Feb 20 19:01:12 2022 +0900

    Add test case `testUIImageViewSetImageWithURLDiskSync`

commit 8445f2b1a702678b9831be1cc9c3c76b701555ec
Author: soondl <soondl@gmail.com>
Date:   Sun Feb 20 16:08:40 2022 +0900

    Fix imageView blinks with option 'SDImageCacheQueryDiskDataSync'

commit 2c53f531f1bedd253f55d85105409c28ed4a922c
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Thu Jan 27 21:46:56 2022 +0800

    Bumped version to 5.12.3

    update CHANGELOG

commit 81ea1c9a9cb81a5f732b889361ab37dc07cda699
Merge: 0cd9a648 33ff352d
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Thu Jan 27 21:34:48 2022 +0800

    Merge pull request #3321 from ty0x2333/fix_scale_down_image

    Fix #3320 `decodedAndScaledDownImageWithImage` does not render the image completely

commit 33ff352d4ecc2cf05ffae0e6378615f85c1e3c98
Author: ty0x2333 <luckytianyiyan@gmail.com>
Date:   Wed Jan 26 15:46:21 2022 +0800

    Add test case: test07ThatDecodeAndScaleDownAlwaysCompleteRendering

commit 8ce13403bc13e1b0aede614328228a6f64017db7
Author: ty0x2333 <luckytianyiyan@gmail.com>
Date:   Wed Jan 26 07:12:35 2022 +0800

    Fix the bug that `decodedAndScaledDownImageWithImage` does not render the image completely due to the loss of precision.

commit 0cd9a6485acb6964330cce773fc93be7452ac2c8
Merge: 0fff0d75 aa99c377
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Wed Jan 19 15:01:01 2022 +0800

    Merge pull request #3318 from zakishaheen/patch-1

    update URL for SDWebImageSVGKitPlugin in readme

commit aa99c377990bf2a140e377d34cf99069e8e527f7
Author: Zaki <zakishaheen@users.noreply.github.com>
Date:   Tue Jan 18 16:53:30 2022 -0800

    update URL for SDWebImageSVGKitPlugin

commit 0fff0d7505b5306348263ea64fcc561253bbeb21
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Fri Dec 31 17:21:57 2021 +0800

    GravatarBumped version to 5.12.2

    update CHANGELOG

commit 89313b997ebab1fe6062bd291160e534287d1e6f
Merge: 8d558cb7 cecc984e
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Fri Dec 31 16:28:32 2021 +0800

    Merge pull request #3312 from JPlay/fix_animated_image_total_duration_calculate

    fix: Eliminates accumulated floating point errors.

commit cecc984e3f08ede8dd940f504f572e60d1dbe3a4
Author: zhuoyan <zhuoyan@gaoding.com>
Date:   Thu Dec 30 11:31:54 2021 +0800

    fix: Eliminates accumulated floating point errors.

commit 8d558cb79f44c00bc75e71a509021b9551941aed
Merge: 602af159 b02f6f9e
Author: Kinarobin <kinarobin@outlook.com>
Date:   Fri Nov 26 10:07:39 2021 +0800

    Merge pull request #3304 from mmdock/patch-2

    Don't copy image data

commit b02f6f9e45eff0685f04d224defc274fb7ba7098
Author: Morgan Dock <mmdock@users.noreply.github.com>
Date:   Thu Nov 25 00:17:08 2021 -0600

    Don't copy image data

commit 602af15947106c9c7a6066138b4e907df91c8acb
Merge: a72df484 c0fbe7e3
Author: DreamPiggy <lizhuoli1126@126.com>
Date:   Tue Oct 19 11:15:56 2021 +0800

    Merge pull request #3293 from dreampiggy/bugfix_image_loaders_can_request

    Fix the support for `SDImageLoadersManager` for canRequest API check, should be compatible with both old and new API

commit c0fbe7e3efa7f88389f746a36b39d525ae3652f8
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Mon Oct 18 21:44:01 2021 +0800

    Update test case

commit 4274158949e67ce15d9c92abba1460359c8d3997
Author: lizhuoli <lizhuoli@bytedance.com>
Date:   Mon Oct 18 21:30:34 2021 +0800

    Fix the support for `SDImageLoadersManager` for canRequest API check, should be compatible with both old and new API

commit a72df…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Crash SDWebImageDownloaderOperation.m line 247
1 participant