瀏覽代碼

Fix to make sure that UDF streams are opened with Share.Read (#8276)

Make sure that any subsequent requests to open the file for read will
succeed.
Stanislav Ionascu 2 年之前
父節點
當前提交
7d6ec0a5bd
共有 1 個文件被更改,包括 8 次插入10 次删除
  1. 8 10
      Emby.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs

+ 8 - 10
Emby.Server.Implementations/Library/Resolvers/BaseVideoResolver.cs

@@ -163,17 +163,15 @@ namespace Emby.Server.Implementations.Library.Resolvers
                     try
                     {
                         // use disc-utils, both DVDs and BDs use UDF filesystem
-                        using (var videoFileStream = File.Open(video.Path, FileMode.Open, FileAccess.Read))
-                        using (UdfReader udfReader = new UdfReader(videoFileStream))
+                        using var videoFileStream = File.Open(video.Path, FileMode.Open, FileAccess.Read, FileShare.Read);
+                        using UdfReader udfReader = new UdfReader(videoFileStream);
+                        if (udfReader.DirectoryExists("VIDEO_TS"))
                         {
-                            if (udfReader.DirectoryExists("VIDEO_TS"))
-                            {
-                                video.IsoType = IsoType.Dvd;
-                            }
-                            else if (udfReader.DirectoryExists("BDMV"))
-                            {
-                                video.IsoType = IsoType.BluRay;
-                            }
+                            video.IsoType = IsoType.Dvd;
+                        }
+                        else if (udfReader.DirectoryExists("BDMV"))
+                        {
+                            video.IsoType = IsoType.BluRay;
                         }
                     }
                     catch (Exception ex)