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, bool IsAnamorphic, Option FrameRate, Option VideoBitrate, Option VideoBufferSize, Option VideoTrackTimeScale, 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); }