Bläddra i källkod

Polish smart subtitle selection logic

jgriff6 2 år sedan
förälder
incheckning
fbeec04da7
1 ändrade filer med 5 tillägg och 3 borttagningar
  1. 5 3
      Emby.Server.Implementations/Library/MediaStreamSelector.cs

+ 5 - 3
Emby.Server.Implementations/Library/MediaStreamSelector.cs

@@ -56,9 +56,6 @@ namespace Emby.Server.Implementations.Library
             }
             }
             else if (mode == SubtitlePlaybackMode.Smart)
             else if (mode == SubtitlePlaybackMode.Smart)
             {
             {
-                // Respect forced flag.
-                stream = sortedStreams.FirstOrDefault(x => x.IsForced);
-
                 // Only attempt to load subtitles if the audio language is not one of the user's preferred subtitle languages.
                 // Only attempt to load subtitles if the audio language is not one of the user's preferred subtitle languages.
                 // If no subtitles of preferred language available, use default behaviour.
                 // If no subtitles of preferred language available, use default behaviour.
                 if (!preferredLanguages.Contains(audioTrackLanguage, StringComparison.OrdinalIgnoreCase))
                 if (!preferredLanguages.Contains(audioTrackLanguage, StringComparison.OrdinalIgnoreCase))
@@ -66,6 +63,11 @@ namespace Emby.Server.Implementations.Library
                     stream = sortedStreams.FirstOrDefault(x => preferredLanguages.Contains(x.Language, StringComparison.OrdinalIgnoreCase)) ??
                     stream = sortedStreams.FirstOrDefault(x => preferredLanguages.Contains(x.Language, StringComparison.OrdinalIgnoreCase)) ??
                         sortedStreams.FirstOrDefault(x => x.IsExternal || x.IsForced || x.IsDefault);
                         sortedStreams.FirstOrDefault(x => x.IsExternal || x.IsForced || x.IsDefault);
                 }
                 }
+                else
+                {
+                    // Respect forced flag.
+                    stream = sortedStreams.FirstOrDefault(x => x.IsForced);
+                }
             }
             }
             else if (mode == SubtitlePlaybackMode.Always)
             else if (mode == SubtitlePlaybackMode.Always)
             {
             {