diff --git a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEditParser.cs b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEditParser.cs index da57e6f2a1..c487f9ac49 100644 --- a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEditParser.cs +++ b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEditParser.cs @@ -30,17 +30,23 @@ namespace MediaBrowser.MediaEncoding.Subtitles /// public SubtitleTrackInfo Parse(Stream stream, string fileExtension) { - var subtitleFormat = SubtitleFormat.AllSubtitleFormats.FirstOrDefault(asf => asf.Extension.Equals(fileExtension, StringComparison.OrdinalIgnoreCase)); - if (subtitleFormat == null) - { - throw new ArgumentException("Unsupported format: " + fileExtension); - } - - var lines = stream.ReadAllLines().ToList(); var subtitle = new Subtitle(); - subtitleFormat.LoadSubtitle(subtitle, lines, fileExtension); - if (subtitleFormat.ErrorCount > 0) + var lines = stream.ReadAllLines().ToList(); + + var subtitleFormats = SubtitleFormat.AllSubtitleFormats.Where(asf => asf.Extension.Equals(fileExtension, StringComparison.OrdinalIgnoreCase)); + foreach (var subtitleFormat in subtitleFormats) { + if (subtitleFormat == null) + { + throw new ArgumentException("Unsupported format: " + fileExtension); + } + + subtitleFormat.LoadSubtitle(subtitle, lines, fileExtension); + if (subtitleFormat.ErrorCount == 0) + { + break; + } + _logger.LogError("{ErrorCount} errors encountered while parsing subtitle", subtitleFormat.ErrorCount); }