public AutoCrop(string filename, UserSettings settings, ref CropInfo cropInfo) { InitializeComponent(); try { this.settings = settings; this.cropInfo = cropInfo; AviSynthScriptEnvironment asse = new AviSynthScriptEnvironment(); asc = asse.OpenScriptFile(filename); if(asc.HasVideo) { System.Drawing.Size s = new Size(asc.VideoWidth, asc.VideoHeight); this.ClientSize = s; maxFrames = asc.num_frames; // remove last ~10 minutes if (maxFrames > 30000) { maxFrames -= 15000; } numericUpDownFrame.Maximum = maxFrames; int step = 0; step = maxFrames / nrFrames; curFrame = step; Monitor.Enter(drawLock); bitmap = ReadFrameBitmap(asc, step); bitmapCopy = new Bitmap(bitmap); Monitor.Exit(drawLock); } } catch (Exception ex) { cropInfo.error = true; cropInfo.errorStr = ex.Message; } }