diff options
| author | theguymadmax <theguymadmax@proton.me> | 2025-05-09 14:35:54 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-09 08:35:54 -0600 |
| commit | 6c57ad47729bb5ea0a5ee37ba5d0c77cc915fb2d (patch) | |
| tree | 0dee62cf26daab89b105fa7c6b1c3a902a33549c /MediaBrowser.Providers | |
| parent | 140de04f94004adadf43a3045fd50a14d05d6e1c (diff) | |
Fix Blu-ray metadata processing: preserve external streams and language metadata (#14077)
Diffstat (limited to 'MediaBrowser.Providers')
| -rw-r--r-- | MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs index 7c88a0e7d..d85f49b1d 100644 --- a/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs +++ b/MediaBrowser.Providers/MediaInfo/FFProbeVideoInfo.cs @@ -322,16 +322,19 @@ namespace MediaBrowser.Providers.MediaInfo private void FetchBdInfo(Video video, ref ChapterInfo[] chapters, List<MediaStream> mediaStreams, BlurayDiscInfo blurayInfo) { - if (blurayInfo.Files.Length <= 1) - { - return; - } - var ffmpegVideoStream = mediaStreams.FirstOrDefault(s => s.Type == MediaStreamType.Video); + var externalStreams = mediaStreams.Where(s => s.IsExternal).ToList(); // Fill video properties from the BDInfo result mediaStreams.Clear(); - mediaStreams.AddRange(blurayInfo.MediaStreams); + + // Rebuild the list with external streams first + int index = 0; + foreach (var stream in externalStreams.Concat(blurayInfo.MediaStreams)) + { + stream.Index = index++; + mediaStreams.Add(stream); + } if (blurayInfo.RunTimeTicks.HasValue && blurayInfo.RunTimeTicks.Value > 0) { |
