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); ScriptServer.AddTDeint(info.fieldOrder, filters, true, false); ScriptServer.AddTDeint(info.fieldOrder, filters, 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); ScriptServer.AddTDeint(info.fieldOrder, filters, false, false); ScriptServer.AddTDeint(info.fieldOrder, filters, false, 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); }