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.
This commit is contained in:
Stanislav Ionascu 2022-12-07 16:40:26 +00:00
parent f3c57e6a0a
commit 7d6ec0a5bd

View File

@ -163,9 +163,8 @@ namespace Emby.Server.Implementations.Library.Resolvers
try try
{ {
// use disc-utils, both DVDs and BDs use UDF filesystem // use disc-utils, both DVDs and BDs use UDF filesystem
using (var videoFileStream = File.Open(video.Path, FileMode.Open, FileAccess.Read)) using var videoFileStream = File.Open(video.Path, FileMode.Open, FileAccess.Read, FileShare.Read);
using (UdfReader udfReader = new UdfReader(videoFileStream)) using UdfReader udfReader = new UdfReader(videoFileStream);
{
if (udfReader.DirectoryExists("VIDEO_TS")) if (udfReader.DirectoryExists("VIDEO_TS"))
{ {
video.IsoType = IsoType.Dvd; video.IsoType = IsoType.Dvd;
@ -175,7 +174,6 @@ namespace Emby.Server.Implementations.Library.Resolvers
video.IsoType = IsoType.BluRay; video.IsoType = IsoType.BluRay;
} }
} }
}
catch (Exception ex) catch (Exception ex)
{ {
_logger.LogError(ex, "Error opening UDF/ISO image: {Value}", video.Path ?? video.Name); _logger.LogError(ex, "Error opening UDF/ISO image: {Value}", video.Path ?? video.Name);