using ErsatzTV.FFmpeg.OutputFormat; namespace ErsatzTV.FFmpeg; public record FFmpegState( bool SaveReport, HardwareAccelerationMode DecoderHardwareAccelerationMode, HardwareAccelerationMode EncoderHardwareAccelerationMode, Option VaapiDriver, Option VaapiDevice, Option Start, Option Finish, bool DoNotMapMetadata, Option MetadataServiceProvider, Option MetadataServiceName, Option MetadataAudioLanguage, Option MetadataSubtitleLanguage, Option MetadataSubtitleTitle, OutputFormatKind OutputFormat, Option HlsPlaylistPath, Option HlsSegmentTemplate, long PtsOffset, Option ThreadCount, Option MaybeQsvExtraHardwareFrames, bool IsSongWithProgress) { public int QsvExtraHardwareFrames => MaybeQsvExtraHardwareFrames.IfNone(64); public static FFmpegState Concat(bool saveReport, string channelName) => new( saveReport, HardwareAccelerationMode.None, HardwareAccelerationMode.None, Option.None, Option.None, Option.None, Option.None, true, // do not map metadata "ErsatzTV", channelName, Option.None, Option.None, Option.None, OutputFormatKind.MpegTs, Option.None, Option.None, 0, Option.None, Option.None, false); }