| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | 
							- #nullable enable
 
- using System.Globalization;
 
- using System.IO;
 
- 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="SubtitleFormat" />.</typeparam>
 
-     public abstract class SubtitleEditParser<T> : ISubtitleParser
 
-         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)
 
-         {
 
-             var subtitle = new Subtitle();
 
-             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;
 
-             var trackEvents = new SubtitleTrackEvent[len];
 
-             for (int i = 0; i < len; i++)
 
-             {
 
-                 var p = subtitle.Paragraphs[i];
 
-                 trackEvents[i] = new SubtitleTrackEvent(p.Number.ToString(CultureInfo.InvariantCulture), p.Text)
 
-                 {
 
-                     StartPositionTicks = p.StartTime.TimeSpan.Ticks,
 
-                     EndPositionTicks = p.EndTime.TimeSpan.Ticks
 
-                 };
 
-             }
 
-             trackInfo.TrackEvents = trackEvents;
 
-             return trackInfo;
 
-         }
 
-     }
 
- }
 
 
  |