mirror of
https://github.com/jellyfin/jellyfin.git
synced 2024-12-27 09:56:33 +00:00
Use complete paths in BD info
This way we don't need to find the complete path later
This commit is contained in:
parent
64b6805ec3
commit
60c45d6273
|
@ -86,7 +86,7 @@ public class BdInfoExaminer : IBlurayExaminer
|
|||
if (playlist.StreamClips is not null && playlist.StreamClips.Count > 0)
|
||||
{
|
||||
// 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;
|
||||
|
|
|
@ -1149,18 +1149,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
|||
|
||||
/// <inheritdoc />
|
||||
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 />
|
||||
public string GetInputPathArgument(EncodingJobInfo state)
|
||||
|
@ -1171,8 +1160,8 @@ namespace MediaBrowser.MediaEncoding.Encoder
|
|||
{
|
||||
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)
|
||||
};
|
||||
}
|
||||
|
|
|
@ -124,11 +124,8 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||
// Get BD disc information
|
||||
blurayDiscInfo = GetBDInfo(item.Path);
|
||||
|
||||
// Get playable .m2ts files
|
||||
var m2ts = _mediaEncoder.GetPrimaryPlaylistM2tsFiles(item.Path);
|
||||
|
||||
// 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.");
|
||||
return ItemUpdateType.MetadataImport;
|
||||
|
@ -138,7 +135,7 @@ namespace MediaBrowser.Providers.MediaInfo
|
|||
mediaInfoResult = await GetMediaInfo(
|
||||
new Video
|
||||
{
|
||||
Path = m2ts[0]
|
||||
Path = blurayDiscInfo.Files[0]
|
||||
},
|
||||
cancellationToken).ConfigureAwait(false);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue