diff options
Diffstat (limited to 'MediaBrowser.MediaEncoding')
5 files changed, 47 insertions, 5 deletions
diff --git a/MediaBrowser.MediaEncoding/Subtitles/AssParser.cs b/MediaBrowser.MediaEncoding/Subtitles/AssParser.cs index cdfd87bad..8219aa7b4 100644 --- a/MediaBrowser.MediaEncoding/Subtitles/AssParser.cs +++ b/MediaBrowser.MediaEncoding/Subtitles/AssParser.cs @@ -1,5 +1,6 @@ #nullable enable +using Microsoft.Extensions.Logging; using Nikse.SubtitleEdit.Core.SubtitleFormats; namespace MediaBrowser.MediaEncoding.Subtitles @@ -9,5 +10,12 @@ namespace MediaBrowser.MediaEncoding.Subtitles /// </summary> public class AssParser : SubtitleEditParser<AdvancedSubStationAlpha> { + /// <summary> + /// Initializes a new instance of the <see cref="AssParser"/> class. + /// </summary> + /// <param name="logger">The logger.</param> + public AssParser(ILogger logger) : base(logger) + { + } } } diff --git a/MediaBrowser.MediaEncoding/Subtitles/SrtParser.cs b/MediaBrowser.MediaEncoding/Subtitles/SrtParser.cs index 7a7196f6c..19fb951dc 100644 --- a/MediaBrowser.MediaEncoding/Subtitles/SrtParser.cs +++ b/MediaBrowser.MediaEncoding/Subtitles/SrtParser.cs @@ -1,5 +1,6 @@ #nullable enable +using Microsoft.Extensions.Logging; using Nikse.SubtitleEdit.Core.SubtitleFormats; namespace MediaBrowser.MediaEncoding.Subtitles @@ -9,5 +10,12 @@ namespace MediaBrowser.MediaEncoding.Subtitles /// </summary> public class SrtParser : SubtitleEditParser<SubRip> { + /// <summary> + /// Initializes a new instance of the <see cref="SrtParser"/> class. + /// </summary> + /// <param name="logger">The logger.</param> + public SrtParser(ILogger logger) : base(logger) + { + } } } diff --git a/MediaBrowser.MediaEncoding/Subtitles/SsaParser.cs b/MediaBrowser.MediaEncoding/Subtitles/SsaParser.cs index 8cd06194d..36dc2e01f 100644 --- a/MediaBrowser.MediaEncoding/Subtitles/SsaParser.cs +++ b/MediaBrowser.MediaEncoding/Subtitles/SsaParser.cs @@ -1,5 +1,6 @@ #nullable enable +using Microsoft.Extensions.Logging; using Nikse.SubtitleEdit.Core.SubtitleFormats; namespace MediaBrowser.MediaEncoding.Subtitles @@ -9,5 +10,12 @@ namespace MediaBrowser.MediaEncoding.Subtitles /// </summary> public class SsaParser : SubtitleEditParser<SubStationAlpha> { + /// <summary> + /// Initializes a new instance of the <see cref="SsaParser"/> class. + /// </summary> + /// <param name="logger">The logger.</param> + public SsaParser(ILogger logger) : base(logger) + { + } } } diff --git a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEditParser.cs b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEditParser.cs index 441b9ce33..82ec6ca21 100644 --- a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEditParser.cs +++ b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEditParser.cs @@ -6,17 +6,31 @@ using System.Linq; using System.Threading; using MediaBrowser.Common.Extensions; using MediaBrowser.Model.MediaInfo; +using Microsoft.Extensions.Logging; using Nikse.SubtitleEdit.Core; +using ILogger = Microsoft.Extensions.Logging.ILogger; +using SubtitleFormat = Nikse.SubtitleEdit.Core.SubtitleFormats.SubtitleFormat; namespace MediaBrowser.MediaEncoding.Subtitles { /// <summary> /// SubStation Alpha subtitle parser. /// </summary> - /// <typeparam name="T">The <see cref="Nikse.SubtitleEdit.Core.SubtitleFormats.SubtitleFormat" />.</typeparam> + /// <typeparam name="T">The <see cref="SubtitleFormat" />.</typeparam> public abstract class SubtitleEditParser<T> : ISubtitleParser - where T : Nikse.SubtitleEdit.Core.SubtitleFormats.SubtitleFormat, new() + where T : SubtitleFormat, new() { + private readonly ILogger _logger; + + /// <summary> + /// Initializes a new instance of the <see cref="SubtitleEditParser{T}"/> class. + /// </summary> + /// <param name="logger">The logger.</param> + protected SubtitleEditParser(ILogger logger) + { + _logger = logger; + } + /// <inheritdoc /> public SubtitleTrackInfo Parse(Stream stream, CancellationToken cancellationToken) { @@ -24,6 +38,10 @@ namespace MediaBrowser.MediaEncoding.Subtitles var subRip = new T(); var lines = stream.ReadAllLines().ToList(); subRip.LoadSubtitle(subtitle, lines, "untitled"); + if (subRip.ErrorCount > 0) + { + _logger.LogError("{ErrorCount} errors encountered while parsing subtitle."); + } var trackInfo = new SubtitleTrackInfo(); int len = subtitle.Paragraphs.Count; diff --git a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs index 62ac83c91..a9d118ef5 100644 --- a/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs +++ b/MediaBrowser.MediaEncoding/Subtitles/SubtitleEncoder.cs @@ -271,17 +271,17 @@ namespace MediaBrowser.MediaEncoding.Subtitles if (string.Equals(format, SubtitleFormat.SRT, StringComparison.OrdinalIgnoreCase)) { - return new SrtParser(); + return new SrtParser(_logger); } if (string.Equals(format, SubtitleFormat.SSA, StringComparison.OrdinalIgnoreCase)) { - return new SsaParser(); + return new SsaParser(_logger); } if (string.Equals(format, SubtitleFormat.ASS, StringComparison.OrdinalIgnoreCase)) { - return new AssParser(); + return new AssParser(_logger); } if (throwIfMissing) |
