diff options
| author | Ćukasz <gold15o2@gmail.com> | 2024-09-06 15:47:06 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-06 07:47:06 -0600 |
| commit | 1451cbc39e16b79c3be636bdb8919a66ff636cba (patch) | |
| tree | 601927fe73a3960905d950c25ea4d3abb9d8200e | |
| parent | cd95eabcc6756c84eddf6a6b8fd9a8eea2a5b5ab (diff) | |
Add subtitle parser errors to log if available (#12479)
| -rw-r--r-- | CONTRIBUTORS.md | 1 | ||||
| -rw-r--r-- | MediaBrowser.MediaEncoding/Subtitles/SubtitleEditParser.cs | 23 | ||||
| -rw-r--r-- | MediaBrowser.MediaEncoding/Subtitles/SubtitleFormatExtensions.cs | 29 |
3 files changed, 47 insertions, 6 deletions
diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 7c2e72327..cdf8df17f 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -187,6 +187,7 @@ - [HonestlyWhoKnows](https://github.com/honestlywhoknows) - [TheMelmacian](https://github.com/TheMelmacian) - [ItsAllAboutTheCode](https://github.com/ItsAllAboutTheCode) + - [pret0rian8](https://github.com/pret0rian) # Emby Contributors 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); + } +} |
