using System.Collections.ObjectModel; using System.Text.Json.Serialization; namespace Jellyfin.Plugin.JRay.Models; /// The server's reply to a manifest fetch (server spec §4). public class ManifestFetchResponse { /// /// Gets or sets the cut-match tier that was achieved: exact, /// audio, runtime or loose. /// [JsonPropertyName("match")] public string Match { get; set; } = string.Empty; /// /// Gets or sets the offset, in seconds, the client must add to every window. /// /// /// Non-zero only for an audio-tier match, where the same cut was /// found at a different trim. The server returns the offset; the client /// applies it — manifests are never rewritten, so one stored manifest /// serves every trim of the same cut. /// [JsonPropertyName("offset_sec")] public double OffsetSec { get; set; } /// Gets or sets the manifest itself. [JsonPropertyName("manifest")] public Jmanifest? Manifest { get; set; } }