< Summary - Jellyfin

Information
Class: MediaBrowser.MediaEncoding.Subtitles.SrtWriter
Assembly: MediaBrowser.MediaEncoding
File(s): /srv/git/jellyfin/MediaBrowser.MediaEncoding/Subtitles/SrtWriter.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 16
Coverable lines: 16
Total lines: 49
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 2
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Write(...)0%620%

File(s)

/srv/git/jellyfin/MediaBrowser.MediaEncoding/Subtitles/SrtWriter.cs

#LineLine coverage
 1using System;
 2using System.Globalization;
 3using System.IO;
 4using System.Text;
 5using System.Text.RegularExpressions;
 6using System.Threading;
 7using MediaBrowser.Model.MediaInfo;
 8
 9namespace MediaBrowser.MediaEncoding.Subtitles
 10{
 11    /// <summary>
 12    /// SRT subtitle writer.
 13    /// </summary>
 14    public partial class SrtWriter : ISubtitleWriter
 15    {
 16        [GeneratedRegex(@"\\n", RegexOptions.IgnoreCase)]
 17        private static partial Regex NewLineEscapedRegex();
 18
 19        /// <inheritdoc />
 20        public void Write(SubtitleTrackInfo info, Stream stream, CancellationToken cancellationToken)
 21        {
 022            using (var writer = new StreamWriter(stream, Encoding.UTF8, 1024, true))
 23            {
 024                var trackEvents = info.TrackEvents;
 25
 026                for (int i = 0; i < trackEvents.Count; i++)
 27                {
 028                    cancellationToken.ThrowIfCancellationRequested();
 29
 030                    var trackEvent = trackEvents[i];
 31
 032                    writer.WriteLine((i + 1).ToString(CultureInfo.InvariantCulture));
 033                    writer.WriteLine(
 034                        @"{0:hh\:mm\:ss\,fff} --> {1:hh\:mm\:ss\,fff}",
 035                        TimeSpan.FromTicks(trackEvent.StartPositionTicks),
 036                        TimeSpan.FromTicks(trackEvent.EndPositionTicks));
 37
 038                    var text = trackEvent.Text;
 39
 40                    // TODO: Not sure how to handle these
 041                    text = NewLineEscapedRegex().Replace(text, " ");
 42
 043                    writer.WriteLine(text);
 044                    writer.WriteLine();
 45                }
 046            }
 047        }
 48    }
 49}