using ErsatzTV.FFmpeg.Environment; namespace ErsatzTV.FFmpeg.Filter; public class VideoFilter : IPipelineStep { private readonly IEnumerable _filterSteps; public VideoFilter(IEnumerable filterSteps) => _filterSteps = filterSteps; public IList EnvironmentVariables => Array.Empty(); public IList GlobalOptions => Array.Empty(); public IList InputOptions(InputFile inputFile) => Array.Empty(); public IList FilterOptions => Arguments(); public IList OutputOptions => Array.Empty(); public FrameState NextState(FrameState currentState) => currentState; private IList Arguments() => new List { "-vf", string.Join(",", _filterSteps.Map(fs => fs.Filter)) }; }