public void finishedAnalysis(SourceInfo info, bool error, string errorMessage) { if (error) { MessageBox.Show(errorMessage, "Source detection failed", MessageBoxButtons.OK, MessageBoxIcon.Error); filters = new DeinterlaceFilter[] { new DeinterlaceFilter("Error", "#An error occurred in source detection. Doing no processing") }; } else { this.filters = ScriptServer.GetDeinterlacers(info).ToArray(); } interlaced = (info.sourceType != SourceType.PROGRESSIVE); finished = true; }
public void finishedAnalysis(SourceInfo info, bool error, string errorMessage) { if (error) { MessageBox.Show(errorMessage, "Source detection failed", MessageBoxButtons.OK, MessageBoxIcon.Error); filters = new DeinterlaceFilter[] { new DeinterlaceFilter("Error", "#An error occurred in source detection. Doing no processing")}; } else if (info.sourceType == SourceType.NOT_ENOUGH_SECTIONS) { MessageBox.Show("Could not find enough useful sections to determine source type for " + job.Input, "Source detection failed", MessageBoxButtons.OK, MessageBoxIcon.Error); filters = new DeinterlaceFilter[] { new DeinterlaceFilter("Error", "#Not enough useful sections for source detection. Doing no processing")}; } else this.filters = ScriptServer.GetDeinterlacers(info).ToArray(); interlaced = (info.sourceType != SourceType.PROGRESSIVE); finished = true; }
private void FinishProcessing() { _mre.Set(); // Make sure nothing is waiting for pause to stop isStopped = true; if (error) { finishedAnalysis(null, ExitType.ERROR, errorMessage); return; } if (!continueWorking) { finishedAnalysis(null, ExitType.ABORT, String.Empty); return; } if (fieldOrder == FieldOrder.VARIABLE && d2vFileName.Length == 0) // We are stuck for field order information, lets just go for what we have most of { fieldOrder = (bffCount > tffCount) ? FieldOrder.BFF : FieldOrder.TFF; } SourceInfo info = new SourceInfo(); info.sourceType = type; if (type == SourceType.DECIMATING) { info.decimateM = decimateM; } info.fieldOrder = fieldOrder; info.majorityFilm = majorityFilm; info.analysisResult = analysis; info.isAnime = isAnime; finishedAnalysis(info, ExitType.OK, String.Empty); }
public static List <DeinterlaceFilter> GetDeinterlacers(SourceInfo info) { List <DeinterlaceFilter> filters = new List <DeinterlaceFilter>(); if (info.sourceType == SourceType.PROGRESSIVE) { filters.Add(new DeinterlaceFilter( "Do nothing", "#Not doing anything because the source is progressive")); } else if (info.sourceType == SourceType.DECIMATING) { ScriptServer.AddTDecimate(info.decimateM, filters); } else if (info.sourceType == SourceType.INTERLACED) { ScriptServer.AddYadif(info.fieldOrder, filters, false); ScriptServer.AddYadif(info.fieldOrder, filters, true); ScriptServer.AddTDeint(info.fieldOrder, filters, true, false, false); ScriptServer.AddTDeint(info.fieldOrder, filters, true, false, true); ScriptServer.AddTDeint(info.fieldOrder, filters, true, true, false); ScriptServer.AddTDeint(info.fieldOrder, filters, true, true, true); if (info.fieldOrder != FieldOrder.VARIABLE) { ScriptServer.AddLeakDeint(info.fieldOrder, filters); } ScriptServer.AddTMC(info.fieldOrder, filters); ScriptServer.AddFieldDeint(info.fieldOrder, filters, true, true); ScriptServer.AddFieldDeint(info.fieldOrder, filters, true, false); } else if (info.sourceType == SourceType.FILM) { ScriptServer.AddTIVTC("", info.isAnime, false, true, false, info.fieldOrder, filters); ScriptServer.AddIVTC(info.fieldOrder, false, true, filters); } else if (info.sourceType == SourceType.HYBRID_FILM_INTERLACED || info.sourceType == SourceType.HYBRID_PROGRESSIVE_FILM) { ScriptServer.AddTIVTC("", info.isAnime, true, info.majorityFilm, false, info.fieldOrder, filters); ScriptServer.AddTIVTC("", info.isAnime, true, info.majorityFilm, true, info.fieldOrder, filters); ScriptServer.AddIVTC(info.fieldOrder, true, info.majorityFilm, filters); } else if (info.sourceType == SourceType.HYBRID_PROGRESSIVE_INTERLACED) { ScriptServer.AddYadif(info.fieldOrder, filters, false); ScriptServer.AddYadif(info.fieldOrder, filters, true); ScriptServer.AddTDeint(info.fieldOrder, filters, false, false, false); ScriptServer.AddTDeint(info.fieldOrder, filters, true, false, true); ScriptServer.AddTDeint(info.fieldOrder, filters, true, true, false); ScriptServer.AddTDeint(info.fieldOrder, filters, false, true, true); ScriptServer.AddFieldDeint(info.fieldOrder, filters, false, true); ScriptServer.AddFieldDeint(info.fieldOrder, filters, false, false); if (info.fieldOrder != FieldOrder.VARIABLE) { ScriptServer.AddLeakDeint(info.fieldOrder, filters); } ScriptServer.AddTMC(info.fieldOrder, filters); } return(filters); }
public void finishedAnalysis(SourceInfo info, bool error, string errorMessage) { if (error) Invoke(new MethodInvoker(delegate { MessageBox.Show(this, errorMessage, "Error in analysis", MessageBoxButtons.OK, MessageBoxIcon.Error); })); else { try { info.isAnime = deintIsAnime.Checked; Invoke(new MethodInvoker(delegate { deintProgressBar.Enabled = false; this.DeintInfo = info; if (deintSourceType.SelectedIndex < 1) { deinterlace.Enabled = false; deinterlace.Checked = false; } else deinterlace.Enabled = true; if (deinterlaceType.Text == "Do nothing") deinterlace.Checked = false; else deinterlace.Checked = true; deintStatusLabel.Text = "Analysis finished!"; analyseButton.Text = "Analyse"; })); } catch (Exception) { } // If we get any errors, it's most likely because the window was closed, so just ignore } detector = null; }
public static List<DeinterlaceFilter> GetDeinterlacers(SourceInfo info) { List<DeinterlaceFilter> filters = new List<DeinterlaceFilter>(); if (info.sourceType == SourceType.PROGRESSIVE) { filters.Add(new DeinterlaceFilter( "Do nothing", "#Not doing anything because the source is progressive")); } else if (info.sourceType == SourceType.DECIMATING) { ScriptServer.AddTDecimate(info.decimateM, filters); } else if (info.sourceType == SourceType.INTERLACED) { ScriptServer.AddYadif(info.fieldOrder, filters, false); ScriptServer.AddYadif(info.fieldOrder, filters, true); ScriptServer.AddTDeint(info.fieldOrder, filters, true, false, false); ScriptServer.AddTDeint(info.fieldOrder, filters, true, false, true); ScriptServer.AddTDeint(info.fieldOrder, filters, true, true, false); ScriptServer.AddTDeint(info.fieldOrder, filters, true, true, true); if (info.fieldOrder != FieldOrder.VARIABLE) ScriptServer.AddLeakDeint(info.fieldOrder, filters); ScriptServer.AddTMC(info.fieldOrder, filters); ScriptServer.AddFieldDeint(info.fieldOrder, filters, true, true); ScriptServer.AddFieldDeint(info.fieldOrder, filters, true, false); } else if (info.sourceType == SourceType.FILM) { ScriptServer.AddTIVTC("", info.isAnime, false, true, false, info.fieldOrder, filters); ScriptServer.AddIVTC(info.fieldOrder, false, true, filters); } else if (info.sourceType == SourceType.HYBRID_FILM_INTERLACED || info.sourceType == SourceType.HYBRID_PROGRESSIVE_FILM) { ScriptServer.AddTIVTC("", info.isAnime, true, info.majorityFilm, false, info.fieldOrder, filters); ScriptServer.AddTIVTC("", info.isAnime, true, info.majorityFilm, true, info.fieldOrder, filters); ScriptServer.AddIVTC(info.fieldOrder, true, info.majorityFilm, filters); } else if (info.sourceType == SourceType.HYBRID_PROGRESSIVE_INTERLACED) { ScriptServer.AddYadif(info.fieldOrder, filters, false); ScriptServer.AddYadif(info.fieldOrder, filters, true); ScriptServer.AddTDeint(info.fieldOrder, filters, false, false, false); ScriptServer.AddTDeint(info.fieldOrder, filters, true, false, true); ScriptServer.AddTDeint(info.fieldOrder, filters, true, true, false); ScriptServer.AddTDeint(info.fieldOrder, filters, false, true, true); ScriptServer.AddFieldDeint(info.fieldOrder, filters, false, true); ScriptServer.AddFieldDeint(info.fieldOrder, filters, false, false); if (info.fieldOrder != FieldOrder.VARIABLE) ScriptServer.AddLeakDeint(info.fieldOrder, filters); ScriptServer.AddTMC(info.fieldOrder, filters); } return filters; }
private void finishProcessing() { if (error) { finishedAnalysis(null, true, errorMessage); return; } if (!continueWorking) { return; } if (fieldOrder == FieldOrder.VARIABLE && d2vFileName.Length == 0) // We are stuck for field order information, lets just go for what we have most of fieldOrder = (bffCount > tffCount) ? FieldOrder.BFF : FieldOrder.TFF; SourceInfo info = new SourceInfo(); info.sourceType = type; info.decimateM = decimateM; info.fieldOrder = fieldOrder; info.majorityFilm = majorityFilm; finishedAnalysis(info, false, null); }