protected override VideoFrame GetFrame(int n) { using var overlayStat = new FileOverlayStat(StatFile); using var sceneWriter = File.CreateText(SceneFile); var totalFrames = 0; var totalScenes = 1; var scene = new List <OverlayInfo>(); foreach (var frame in overlayStat.Frames) { totalFrames++; if (scene.Count > SceneMinLength && !OverlayUtils.CheckDev(scene.Append(frame), MaxDiffIncrease, false)) { scene.Clear(); totalScenes++; sceneWriter.WriteLine(frame.FrameNumber); } else { scene.Add(frame); } } return(GetSubtitledFrame($"Total scenes: {totalScenes}\nFrames processed: {totalFrames}")); }
public void Generate() { var filters = typeof(OverlayFilter).Assembly .GetCustomAttributes(typeof(AvisynthFilterClassAttribute), true) .OfType <AvisynthFilterClassAttribute>() .Where(p => typeof(OverlayFilter).IsAssignableFrom(p.FilterType)); foreach (var filter in filters) { var annotatedProperties = OverlayUtils.GetAnnotatedProperties(filter.FilterType); var paramList = annotatedProperties.Select(p => $"{TypeLabel(p.Item1.PropertyType)} {p.Item1.Name.ToLower()[0] + p.Item1.Name.Substring(1)}"); var signature = $"{filter.FilterName}({string.Join(", ", paramList)})"; Console.WriteLine(signature); Console.WriteLine(); } }