aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeathspike <meister.deathspike@outlook.com>2021-10-26 20:51:35 +0200
committerDeathspike <meister.deathspike@outlook.com>2021-10-26 20:51:35 +0200
commit2410b3a3cfeff716740c0c6c15f1896a224771a9 (patch)
treeb6bf5683031cb2aff1fe28afb659c85de67fb5ab
parentb830d38a347fd045e0a8573e69180dd5d296fdd9 (diff)
Resolve subtitle selection feedback (#6446)
-rw-r--r--Emby.Server.Implementations/Library/MediaStreamSelector.cs6
1 files changed, 4 insertions, 2 deletions
diff --git a/Emby.Server.Implementations/Library/MediaStreamSelector.cs b/Emby.Server.Implementations/Library/MediaStreamSelector.cs
index f94eeda8f..b3837fedb 100644
--- a/Emby.Server.Implementations/Library/MediaStreamSelector.cs
+++ b/Emby.Server.Implementations/Library/MediaStreamSelector.cs
@@ -50,7 +50,8 @@ namespace Emby.Server.Implementations.Library
return null;
}
- var sortedStreams = GetSortedStreams(streams, MediaStreamType.Subtitle, preferredLanguages)
+ var sortedStreams = streams
+ .Where(i => i.Type == MediaStreamType.Subtitle)
.OrderByDescending(x => x.IsExternal)
.ThenByDescending(x => x.IsForced && string.Equals(x.Language, audioTrackLanguage, StringComparison.OrdinalIgnoreCase))
.ThenByDescending(x => x.IsForced)
@@ -73,7 +74,8 @@ namespace Emby.Server.Implementations.Library
// if the audio language is not understood by the user, load their preferred subs, if there are any
if (!preferredLanguages.Contains(audioTrackLanguage, StringComparer.OrdinalIgnoreCase))
{
- stream = sortedStreams.FirstOrDefault(s => preferredLanguages.Contains(s.Language, StringComparer.OrdinalIgnoreCase));
+ stream = streams.FirstOrDefault(s => !s.IsForced && preferredLanguages.Contains(s.Language, StringComparer.OrdinalIgnoreCase)) ??
+ streams.FirstOrDefault(s => preferredLanguages.Contains(s.Language, StringComparer.OrdinalIgnoreCase));
}
}
else if (mode == SubtitlePlaybackMode.Always)