Advertisement
Guest User

IResize

a guest
Nov 2nd, 2017
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # IResize by Gavino and IanB and mod by A.SONY to use Custom resizer and Extra resizer parameters may be passed via res_params. like this IResize(240,480,res_params=",src_left=5")
  2. # v 1.05
  3. function IResize(clip c, int NewWidth, int NewHeight, string "resifilter", string "res_params") {
  4.   resifilter   = default ( resifilter,         "Spline36resize" )
  5.   res_params = default(res_params, "")
  6.   avs26   = VersionNumber() < 2.60 ? false : true
  7.   avspmt  = Findstr(VersionString(), "AviSynth+") != 0 && Findstr(VersionString(), "r1576") == 0
  8.   chr420  = avspmt ? c.is420() : c.isyv12()
  9.   slumSep = chr420 && avs26
  10.   slumres = slumSep ? avspmt ? "ConvertToY()." : "ConvertToY8()." : ""
  11.   c
  12.   SeparateFields()
  13.   Shift = (GetParity() ? -0.25 : 0.25) * (Height()/Float(NewHeight/2)-1.0)
  14.   v2=last
  15.   SelectEven(v2)
  16.   euvcl = slumSep ? avspmt ? Interleave(ExtractU(),ExtractV()) : Interleave(UToY8(),VToY8()) : nop()
  17.   eschrres = slumSep ? "euvcl." : ""
  18.   E  = Eval(slumres + resifilter + "(NewWidth, NewHeight/2, src_top=Shift" + res_params + ")")
  19.   Ec = chr420 ? Eval(eschrres + resifilter + "(slumSep ? NewWidth/2 : NewWidth, slumSep ? NewHeight/4 : NewHeight/2, src_top=slumSep ? Shift : 2*Shift" + res_params + ")") : nop()
  20.   SelectOdd(v2)
  21.   ouvcl = slumSep ? avspmt ? Interleave(ExtractU(),ExtractV()) : Interleave(UToY8(),VToY8()) : nop()
  22.   oschrres = slumSep ? "ouvcl." : ""
  23.   O  = Eval(slumres + resifilter + "(NewWidth, NewHeight/2, src_top=-Shift" + res_params + ")")
  24.   Oc = chr420 ? Eval(oschrres + resifilter + "(slumSep ? NewWidth/2 : NewWidth, slumSep ? NewHeight/4 : NewHeight/2, src_top=slumSep ? -Shift : -2*shift" + res_params + ")") : nop()
  25.   Interleave(E, O)
  26.   chr420 ? avs26 ? avspmt ? CombinePlanes(last, Interleave(Ec.Selecteven(),Oc.Selecteven()), Interleave(Ec.SelectOdd(),Oc.SelectOdd()), planes="YUV", source_planes="YYY", pixel_type=c.PixelType()) : YtoUV( Interleave(Ec.Selecteven(),Oc.Selecteven()), Interleave(Ec.SelectOdd(),Oc.SelectOdd()), last ) : MergeChroma(Interleave(Ec, Oc)) : Last
  27.   Weave()
  28. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement