| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | using System.IO;using System.Text.Json;using System.Threading;using MediaBrowser.Model.MediaInfo;namespace MediaBrowser.MediaEncoding.Subtitles{    /// <summary>    /// JSON subtitle writer.    /// </summary>    public class JsonWriter : ISubtitleWriter    {        /// <inheritdoc />        public void Write(SubtitleTrackInfo info, Stream stream, CancellationToken cancellationToken)        {            using (var writer = new Utf8JsonWriter(stream))            {                var trackevents = info.TrackEvents;                writer.WriteStartObject();                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.WriteEndArray();                writer.WriteEndObject();                writer.Flush();            }        }    }}
 |