def repair(clip: vs.VideoNode, repairclip: vs.VideoNode, mode: RepairModeT) -> vs.VideoNode:
assert check_variable(clip, repair)
assert check_variable(repairclip, repair)
is_float = clip.format.sample_type == vs.FLOAT
mode = normalize_seq(mode, clip.format.num_planes)
if not sum(mode):
return clip
if not complexpr_available:
if (RepairMode.CLIP_REF_RG20 in mode or RepairMode.CLIP_REF_RG23 in mode) and is_float:
raise NotFoundEnumValue(
'Specified RepairMode for rgsf is not implemented!', repair, reason=iter(mode)
)
return pick_func_stype(clip, core.rgvs.Repair, core.rgsf.Repair)(clip, repairclip, mode)
return core.akarin.Expr(
[clip, repairclip], [repair_aka_exprs[m]() for m in mode], clip.format.id, True
)