瀏覽代碼

Backport pull request #13425 from jellyfin/release-10.10.z

Open files with FileShare.Read for BlurHash calculations

Original-merge: bfe0fdbcdca03436a08430d723fc2b34a6016e25

Merged-by: crobibero <cody@robibe.ro>

Backported-by: Bond_009 <bond.009@outlook.com>
Bond-009 4 月之前
父節點
當前提交
10f4f8b2ab
共有 2 個文件被更改,包括 5 次插入3 次删除
  1. 2 2
      Directory.Packages.props
  2. 3 1
      src/Jellyfin.Drawing.Skia/SkiaEncoder.cs

+ 2 - 2
Directory.Packages.props

@@ -9,8 +9,8 @@
     <PackageVersion Include="AutoFixture.Xunit2" Version="4.18.1" />
     <PackageVersion Include="AutoFixture" Version="4.18.1" />
     <PackageVersion Include="BDInfo" Version="0.8.0" />
-    <PackageVersion Include="BlurHashSharp.SkiaSharp" Version="1.3.3" />
-    <PackageVersion Include="BlurHashSharp" Version="1.3.3" />
+    <PackageVersion Include="BlurHashSharp.SkiaSharp" Version="1.3.4" />
+    <PackageVersion Include="BlurHashSharp" Version="1.3.4" />
     <PackageVersion Include="CommandLineParser" Version="2.9.1" />
     <PackageVersion Include="coverlet.collector" Version="6.0.4" />
     <PackageVersion Include="Diacritics" Version="3.3.29" />

+ 3 - 1
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)