浏览代码

Open files with FileShare.Read for BlurHash calculations (#13425)

Bond-009 4 月之前
父节点
当前提交
bfe0fdbcdc
共有 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.2" />
     <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)