using ErsatzTV.FFmpeg.Format; namespace ErsatzTV.FFmpeg; public record FrameState( bool Realtime, bool InfiniteLoop, string VideoFormat, Option VideoProfile, Option VideoPreset, bool AllowBFrames, Option PixelFormat, FrameSize ScaledSize, FrameSize PaddedSize, Option CroppedSize, FFmpegFilterMode PadMode, bool IsAnamorphic, Option FrameRate, Option VideoBitrate, Option VideoBufferSize, Option VideoTrackTimeScale, bool ColorsAreBt709, bool Deinterlaced, FrameDataLocation FrameDataLocation = FrameDataLocation.Unknown) { public string FFmpegAspectRatio => PaddedSize.Width == 640 ? "4/3" : "16/9"; public int BitDepth => PixelFormat.Map(pf => pf.BitDepth).IfNone(8); }