diff options
| author | Bond_009 <bond.009@outlook.com> | 2019-10-26 22:53:53 +0200 |
|---|---|---|
| committer | Bond-009 <bond.009@outlook.com> | 2019-11-25 12:07:59 +0100 |
| commit | cc5acf37f75d2c652d9cd855ebc34a1e7d414a9f (patch) | |
| tree | 1e5f031518b68a15dd9e41f7dde1273a678b3524 /MediaBrowser.MediaEncoding/Subtitles/JsonWriter.cs | |
| parent | e7098f1997ee74eb3bdaad33836839ace6d80f64 (diff) | |
Make probesize and analyzeduration configurable and simplify circular
dependencies
Makes the probesize and analyzeduration configurable with env args.
(`JELLYFIN_FFmpeg_probesize` and `FFmpeg_analyzeduration`)
Diffstat (limited to 'MediaBrowser.MediaEncoding/Subtitles/JsonWriter.cs')
| -rw-r--r-- | MediaBrowser.MediaEncoding/Subtitles/JsonWriter.cs | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/MediaBrowser.MediaEncoding/Subtitles/JsonWriter.cs b/MediaBrowser.MediaEncoding/Subtitles/JsonWriter.cs index 8995fcfe1..241ebc6df 100644 --- a/MediaBrowser.MediaEncoding/Subtitles/JsonWriter.cs +++ b/MediaBrowser.MediaEncoding/Subtitles/JsonWriter.cs @@ -1,27 +1,39 @@ using System.IO; -using System.Text; +using System.Text.Json; using System.Threading; using MediaBrowser.Model.MediaInfo; -using MediaBrowser.Model.Serialization; namespace MediaBrowser.MediaEncoding.Subtitles { + /// <summary> + /// JSON subtitle writer. + /// </summary> public class JsonWriter : ISubtitleWriter { - private readonly IJsonSerializer _json; - - public JsonWriter(IJsonSerializer json) - { - _json = json; - } - + /// <inheritdoc /> public void Write(SubtitleTrackInfo info, Stream stream, CancellationToken cancellationToken) { - using (var writer = new StreamWriter(stream, Encoding.UTF8, 1024, true)) + using (var writer = new Utf8JsonWriter(stream)) { - var json = _json.SerializeToString(info); + var trackevents = info.TrackEvents; + writer.WriteStartArray("TrackEvents"); + + for (int i = 0; i < trackevents.Count; i++) + { + cancellationToken.ThrowIfCancellationRequested(); + + var current = trackevents[i]; + writer.WriteStartObject(); + + writer.WriteString("Id", current.Id); + writer.WriteString("Text", current.Text); + writer.WriteNumber("StartPositionTicks", current.StartPositionTicks); + writer.WriteNumber("EndPositionTicks", current.EndPositionTicks); + + writer.WriteEndObject(); + } - writer.Write(json); + writer.WriteEndObject(); } } } |
