From 10f4f8b2ab727f6a0b30b7e8edcc6c9d47205add Mon Sep 17 00:00:00 2001 From: Bond-009 Date: Mon, 3 Feb 2025 17:07:12 -0500 Subject: [PATCH] Backport pull request #13425 from jellyfin/release-10.10.z Open files with FileShare.Read for BlurHash calculations Original-merge: bfe0fdbcdca03436a08430d723fc2b34a6016e25 Merged-by: crobibero Backported-by: Bond_009 --- Directory.Packages.props | 4 ++-- src/Jellyfin.Drawing.Skia/SkiaEncoder.cs | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index fe239c7f69..f6f68daefc 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -9,8 +9,8 @@ - - + + diff --git a/src/Jellyfin.Drawing.Skia/SkiaEncoder.cs b/src/Jellyfin.Drawing.Skia/SkiaEncoder.cs index c5aadc8901..2dac5598f0 100644 --- a/src/Jellyfin.Drawing.Skia/SkiaEncoder.cs +++ b/src/Jellyfin.Drawing.Skia/SkiaEncoder.cs @@ -195,8 +195,10 @@ public class SkiaEncoder : IImageEncoder return string.Empty; } + // Use FileStream with FileShare.Read instead of having Skia open the file to allow concurrent read access + using var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read); // Any larger than 128x128 is too slow and there's no visually discernible difference - return BlurHashEncoder.Encode(xComp, yComp, path, 128, 128); + return BlurHashEncoder.Encode(xComp, yComp, fileStream, 128, 128); } private bool RequiresSpecialCharacterHack(string path)