using System.ComponentModel.DataAnnotations; namespace EncodingSampleTest; public enum NvencSpeed { Default=0, Slow=1, Medium=2, Fast=3, p1=12, p2=13, p3=14, p4=15, p5=16, p6=17, p7=18, } public enum NvencTune { hq=1, uhq=5, ll=2, ull=3, lossless=4, } class NvencSpeedPreset(NvencSpeed speed) : FFMpegCore.Arguments.IArgument { public string Text { get { return $"-preset {speed.ToString().ToLower()}"; } } } class NvencTuneArgument(NvencTune tune) : FFMpegCore.Arguments.IArgument { public string Text { get { return $"-tune {(int)tune}"; } } } class NvencHighBitDepthArgument(bool enable) : FFMpegCore.Arguments.IArgument { public string Text { get { return enable ? "-highbitdepth true" : string.Empty; } } } class NvencQPArgument([Range(-1, 255)]byte qp) : FFMpegCore.Arguments.IArgument { public string Text { get { return $"-qp {qp}"; } } }