From 78f437401b836edc8fc535eb5d46506e58a64329 Mon Sep 17 00:00:00 2001 From: cvium Date: Fri, 8 Jul 2022 20:11:00 +0200 Subject: [PATCH] loop over all compatible SubtitleFormats --- .../Subtitles/SubtitleEditParser.cs | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) 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); }