using ErsatzTV.FFmpeg.Environment; namespace ErsatzTV.FFmpeg.Encoder; public abstract class EncoderBase : IEncoder { public IList EnvironmentVariables => Array.Empty(); public IList GlobalOptions => Array.Empty(); public IList InputOptions(InputFile inputFile) => Array.Empty(); public IList FilterOptions => Array.Empty(); public virtual IList OutputOptions => new List { Kind == StreamKind.Video ? "-c:v" : "-c:a", Name }; public virtual FrameState NextState(FrameState currentState) => currentState; public abstract string Name { get; } public abstract StreamKind Kind { get; } public virtual string Filter => string.Empty; }