Explorar o código

Merge pull request #12201 from Bond-009/bdsegmentfullname

Use complete paths in BD info
Bond-009 hai 10 meses
pai
achega
9653cf46fb

+ 1 - 1
MediaBrowser.MediaEncoding/BdInfo/BdInfoExaminer.cs

@@ -86,7 +86,7 @@ public class BdInfoExaminer : IBlurayExaminer
         if (playlist.StreamClips is not null && playlist.StreamClips.Count > 0)
         if (playlist.StreamClips is not null && playlist.StreamClips.Count > 0)
         {
         {
             // Get the files in the playlist
             // Get the files in the playlist
-            outputStream.Files = playlist.StreamClips.Select(i => i.StreamFile.Name).ToArray();
+            outputStream.Files = playlist.StreamClips.Select(i => i.StreamFile.FileInfo.FullName).ToArray();
         }
         }
 
 
         return outputStream;
         return outputStream;

+ 3 - 14
MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs

@@ -1155,18 +1155,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
 
 
         /// <inheritdoc />
         /// <inheritdoc />
         public IReadOnlyList<string> GetPrimaryPlaylistM2tsFiles(string path)
         public IReadOnlyList<string> GetPrimaryPlaylistM2tsFiles(string path)
-        {
-            // Get all playable .m2ts files
-            var validPlaybackFiles = _blurayExaminer.GetDiscInfo(path).Files;
-
-            // Get all files from the BDMV/STREAMING directory
-            // Only return playable local .m2ts files
-            var files = _fileSystem.GetFiles(Path.Join(path, "BDMV", "STREAM")).ToList();
-            return validPlaybackFiles
-                .Select(validFile => files.FirstOrDefault(f => Path.GetFileName(f.FullName.AsSpan()).Equals(validFile, StringComparison.OrdinalIgnoreCase))?.FullName)
-                .Where(f => f is not null)
-                .ToList();
-        }
+            => _blurayExaminer.GetDiscInfo(path).Files;
 
 
         /// <inheritdoc />
         /// <inheritdoc />
         public string GetInputPathArgument(EncodingJobInfo state)
         public string GetInputPathArgument(EncodingJobInfo state)
@@ -1177,8 +1166,8 @@ namespace MediaBrowser.MediaEncoding.Encoder
         {
         {
             return mediaSource.VideoType switch
             return mediaSource.VideoType switch
             {
             {
-                VideoType.Dvd => GetInputArgument(GetPrimaryPlaylistVobFiles(path, null).ToList(), mediaSource),
-                VideoType.BluRay => GetInputArgument(GetPrimaryPlaylistM2tsFiles(path).ToList(), mediaSource),
+                VideoType.Dvd => GetInputArgument(GetPrimaryPlaylistVobFiles(path, null), mediaSource),
+                VideoType.BluRay => GetInputArgument(GetPrimaryPlaylistM2tsFiles(path), mediaSource),
                 _ => GetInputArgument(path, mediaSource)
                 _ => GetInputArgument(path, mediaSource)
             };
             };
         }
         }

+ 2 - 5
MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs

@@ -124,11 +124,8 @@ namespace MediaBrowser.Providers.MediaInfo
                     // Get BD disc information
                     // Get BD disc information
                     blurayDiscInfo = GetBDInfo(item.Path);
                     blurayDiscInfo = GetBDInfo(item.Path);
 
 
-                    // Get playable .m2ts files
-                    var m2ts = _mediaEncoder.GetPrimaryPlaylistM2tsFiles(item.Path);
-
                     // Return if no playable .m2ts files are found
                     // Return if no playable .m2ts files are found
-                    if (blurayDiscInfo is null || blurayDiscInfo.Files.Length == 0 || m2ts.Count == 0)
+                    if (blurayDiscInfo is null || blurayDiscInfo.Files.Length == 0)
                     {
                     {
                         _logger.LogError("No playable .m2ts files found in Blu-ray structure, skipping FFprobe.");
                         _logger.LogError("No playable .m2ts files found in Blu-ray structure, skipping FFprobe.");
                         return ItemUpdateType.MetadataImport;
                         return ItemUpdateType.MetadataImport;
@@ -138,7 +135,7 @@ namespace MediaBrowser.Providers.MediaInfo
                     mediaInfoResult = await GetMediaInfo(
                     mediaInfoResult = await GetMediaInfo(
                         new Video
                         new Video
                         {
                         {
-                            Path = m2ts[0]
+                            Path = blurayDiscInfo.Files[0]
                         },
                         },
                         cancellationToken).ConfigureAwait(false);
                         cancellationToken).ConfigureAwait(false);
                 }
                 }