< Summary - Jellyfin

Information
Class: MediaBrowser.MediaEncoding.Subtitles.JsonWriter
Assembly: MediaBrowser.MediaEncoding
File(s): /srv/git/jellyfin/MediaBrowser.MediaEncoding/Subtitles/JsonWriter.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 22
Coverable lines: 22
Total lines: 58
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 3/1/2026 - 12:12:03 AM Line coverage: 0% (0/18) Branch coverage: 0% (0/2) Total lines: 446/2/2026 - 12:15:49 AM Line coverage: 0% (0/22) Branch coverage: 0% (0/2) Total lines: 58 3/1/2026 - 12:12:03 AM Line coverage: 0% (0/18) Branch coverage: 0% (0/2) Total lines: 446/2/2026 - 12:15:49 AM Line coverage: 0% (0/22) Branch coverage: 0% (0/2) Total lines: 58

Coverage delta

Coverage delta 1 -1

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_Extension()100%210%
get_Name()100%210%
ToText(...)0%620%
LoadSubtitle(...)100%210%

File(s)

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

#LineLine coverage
 1using System;
 2using System.Collections.Generic;
 3using System.Globalization;
 4using System.IO;
 5using System.Text;
 6using System.Text.Json;
 7using Nikse.SubtitleEdit.Core.Common;
 8using Nikse.SubtitleEdit.Core.SubtitleFormats;
 9
 10namespace MediaBrowser.MediaEncoding.Subtitles;
 11
 12/// <summary>
 13/// JSON subtitle writer.
 14/// </summary>
 15public class JsonWriter : SubtitleFormat
 16{
 17    /// <inheritdoc />
 018    public override string Extension => ".json";
 19
 20    /// <inheritdoc />
 021    public override string Name => "JSON Jellyfin";
 22
 23    /// <inheritdoc />
 24    public override string ToText(Subtitle subtitle, string title)
 25    {
 026        using var ms = new MemoryStream();
 027        using (var writer = new Utf8JsonWriter(ms))
 28        {
 029            var trackevents = subtitle.Paragraphs;
 030            writer.WriteStartObject();
 031            writer.WriteStartArray("TrackEvents");
 32
 033            for (int i = 0; i < trackevents.Count; i++)
 34            {
 035                var current = trackevents[i];
 036                writer.WriteStartObject();
 37
 038                writer.WriteString("Id", current.Number.ToString(CultureInfo.InvariantCulture));
 039                writer.WriteString("Text", current.Text);
 040                writer.WriteNumber("StartPositionTicks", current.StartTime.TimeSpan.Ticks);
 041                writer.WriteNumber("EndPositionTicks", current.EndTime.TimeSpan.Ticks);
 42
 043                writer.WriteEndObject();
 44            }
 45
 046            writer.WriteEndArray();
 047            writer.WriteEndObject();
 48
 049            writer.Flush();
 050        }
 51
 052        return Encoding.UTF8.GetString(ms.GetBuffer(), 0, (int)ms.Length);
 053    }
 54
 55    /// <inheritdoc />
 56    public override void LoadSubtitle(Subtitle subtitle, List<string> lines, string fileName)
 057        => throw new NotImplementedException();
 58}