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; }
}