You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Issue details / Repro steps / Use case background: I am using Glide to load a video cover, and the video file is sourced from USB. Removing the USB during the loading process may cause a crash.
After investigation, it was found that Glide did not release MediaMetadataRetriever in a timely manner, even if clear or onDestroy was called.
Finally, upon checking the source code, I found that the release of MediaMetadataRetriever only occurs after the completion of the decodeFrame, and is not affected by clear or onDestroy, ultimately resulting in failure to release it in a timely manner and crashing.
To be precise, this is not a crash, but a low-level protection mechanism. After the USB is unplugged, processes that are still illegally accessed will be killed by void.
static class MediaMetadataRetrieverFactory { public MediaMetadataRetriever build() { return new MediaMetadataRetriever(); } }
So I hope that in future versions, such holdings can be released in a timely manner in clear or onDestroy, instead of being uncontrollable, and the intelligence will only be released after the internal code process is completed.
Glide load line / GlideModule (if any) / list Adapter code (if any):
Glide.with...
Layout XML:
<FrameLayoutxmlns:android="...
Stack trace / LogCat:
pastestacktraceand/orloghere
The text was updated successfully, but these errors were encountered:
Glide Version:4.16.0
Integration libraries:
Device/Android Version:Android 9
Issue details / Repro steps / Use case background: I am using Glide to load a video cover, and the video file is sourced from USB. Removing the USB during the loading process may cause a crash.
After investigation, it was found that Glide did not release MediaMetadataRetriever in a timely manner, even if clear or onDestroy was called.
Finally, upon checking the source code, I found that the release of MediaMetadataRetriever only occurs after the completion of the decodeFrame, and is not affected by clear or onDestroy, ultimately resulting in failure to release it in a timely manner and crashing.
To be precise, this is not a crash, but a low-level protection mechanism. After the USB is unplugged, processes that are still illegally accessed will be killed by void.
static class MediaMetadataRetrieverFactory { public MediaMetadataRetriever build() { return new MediaMetadataRetriever(); } }
So I hope that in future versions, such holdings can be released in a timely manner in clear or onDestroy, instead of being uncontrollable, and the intelligence will only be released after the internal code process is completed.
Glide load line /
GlideModule
(if any) / list Adapter code (if any):Layout XML:
Stack trace / LogCat:
The text was updated successfully, but these errors were encountered: