aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.MediaEncoding/Subtitles/JsonWriter.cs
diff options
context:
space:
mode:
authorBond_009 <bond.009@outlook.com>2019-10-26 22:53:53 +0200
committerBond-009 <bond.009@outlook.com>2019-11-25 12:07:59 +0100
commitcc5acf37f75d2c652d9cd855ebc34a1e7d414a9f (patch)
tree1e5f031518b68a15dd9e41f7dde1273a678b3524 /MediaBrowser.MediaEncoding/Subtitles/JsonWriter.cs
parente7098f1997ee74eb3bdaad33836839ace6d80f64 (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.cs36
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();
}
}
}