diff options
Diffstat (limited to 'MediaBrowser.Server.Implementations/Dto')
| -rw-r--r-- | MediaBrowser.Server.Implementations/Dto/MediaStreamSelector.cs | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/MediaBrowser.Server.Implementations/Dto/MediaStreamSelector.cs b/MediaBrowser.Server.Implementations/Dto/MediaStreamSelector.cs index e5a859cdc8..10c78b300b 100644 --- a/MediaBrowser.Server.Implementations/Dto/MediaStreamSelector.cs +++ b/MediaBrowser.Server.Implementations/Dto/MediaStreamSelector.cs @@ -64,7 +64,7 @@ namespace MediaBrowser.Server.Implementations.Dto // always load the most suitable full subtitles stream = full.FirstOrDefault(); } - + // load forced subs if we have found no suitable full subtitles stream = stream ?? forced.FirstOrDefault(); @@ -86,17 +86,13 @@ namespace MediaBrowser.Server.Implementations.Dto var orderStreams = streams .Where(i => i.Type == type); - if (languagePreferences.Count == 0) - { - return orderStreams.OrderBy(i => i.IsDefault) - .ThenBy(i => i.Index) - .ToList(); - } - + // Give some preferance to external text subs for better performance return orderStreams.OrderBy(i => languagePreferences.FindIndex(l => string.Equals(i.Language, l, StringComparison.OrdinalIgnoreCase))) - .ThenBy(i => i.IsDefault) - .ThenBy(i => i.Index) - .ToList(); + .ThenBy(i => i.IsDefault) + .ThenBy(i => !i.IsGraphicalSubtitleStream) + .ThenBy(i => i.IsExternal) + .ThenBy(i => i.Index) + .ToList(); } } } |
