using System.Text.Json.Serialization; namespace Jellyfin.Plugin.JRay.Models; /// /// Which encode the timings in a apply to (SPEC.md §1, /// JR-002). /// /// /// Timings are only meaningful against a particular cut. Recording the runtime /// they were measured from is what lets a consumer notice that a file has been /// re-encoded, re-trimmed, or replaced with a different release — rather than /// silently showing an actor twenty seconds late. /// // TRACES: JR-002 | SR-003 public class TruthCut { /// /// Gets or sets the decoded duration the timings came from, in seconds. /// [JsonPropertyName("runtime_sec")] public double? RuntimeSec { get; set; } /// /// Gets or sets the version-prefixed spectral-peak audio signature, or /// null when the producer emitted none. /// /// /// Carries its own v1: prefix so a DSP change is detectable rather /// than silently non-matching (JR-045). Media shorter than 120 s carries no /// signature at all (JR-044). /// [JsonPropertyName("audio_signature")] public string? AudioSignature { get; set; } }