aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.MediaEncoding
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.MediaEncoding')
-rw-r--r--MediaBrowser.MediaEncoding/Subtitles/SubtitleEditParser.cs23
-rw-r--r--MediaBrowser.MediaEncoding/Subtitles/SubtitleFormatExtensions.cs29
2 files changed, 46 insertions, 6 deletions
diff --git a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEditParser.cs b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEditParser.cs
index fd55db4ba..a79d801fb 100644
--- a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEditParser.cs
+++ b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEditParser.cs
@@ -54,12 +54,23 @@ namespace MediaBrowser.MediaEncoding.Subtitles
{
break;
}
-
- _logger.LogError(
- "{ErrorCount} errors encountered while parsing '{FileExtension}' subtitle using the {SubtitleFormatParser} format parser",
- subtitleFormat.ErrorCount,
- fileExtension,
- subtitleFormat.Name);
+ else if (subtitleFormat.TryGetErrors(out var errors))
+ {
+ _logger.LogError(
+ "{ErrorCount} errors encountered while parsing '{FileExtension}' subtitle using the {SubtitleFormatParser} format parser, errors: {Errors}",
+ subtitleFormat.ErrorCount,
+ fileExtension,
+ subtitleFormat.Name,
+ errors);
+ }
+ else
+ {
+ _logger.LogError(
+ "{ErrorCount} errors encountered while parsing '{FileExtension}' subtitle using the {SubtitleFormatParser} format parser",
+ subtitleFormat.ErrorCount,
+ fileExtension,
+ subtitleFormat.Name);
+ }
}
if (subtitle.Paragraphs.Count == 0)
diff --git a/MediaBrowser.MediaEncoding/Subtitles/SubtitleFormatExtensions.cs b/MediaBrowser.MediaEncoding/Subtitles/SubtitleFormatExtensions.cs
new file mode 100644
index 000000000..88c2bf3db
--- /dev/null
+++ b/MediaBrowser.MediaEncoding/Subtitles/SubtitleFormatExtensions.cs
@@ -0,0 +1,29 @@
+using System.Diagnostics.CodeAnalysis;
+using Nikse.SubtitleEdit.Core.SubtitleFormats;
+
+namespace MediaBrowser.MediaEncoding.Subtitles;
+
+internal static class SubtitleFormatExtensions
+{
+ /// <summary>
+ /// Will try to find errors if supported by provider.
+ /// </summary>
+ /// <param name="format">The subtitle format.</param>
+ /// <param name="errors">The out errors value.</param>
+ /// <returns>True if errors are available for given format.</returns>
+ public static bool TryGetErrors(this SubtitleFormat format, [NotNullWhen(true)] out string? errors)
+ {
+ errors = format switch
+ {
+ SubStationAlpha ssa => ssa.Errors,
+ AdvancedSubStationAlpha assa => assa.Errors,
+ SubRip subRip => subRip.Errors,
+ MicroDvd microDvd => microDvd.Errors,
+ DCinemaSmpte2007 smpte2007 => smpte2007.Errors,
+ DCinemaSmpte2010 smpte2010 => smpte2010.Errors,
+ _ => null,
+ };
+
+ return !string.IsNullOrWhiteSpace(errors);
+ }
+}