feisty2
31st January 2015, 16:15
a fat error jumps out when I try to port dither_resize16nr to vaporsynth for fun...
def Resize16nr (src, w=None, h=None, sx=0, sy=0, sw=0, sh=0, kernel="spline36", fh=1, fv=1, taps=4, a1=None, a2=None, a3=None, kovrspl=1, cnorm=True, center=True, fulls=None, fulld=None, cplace="mpeg2", invks=False, invkstaps=4, noring=True):
sr_h = float (w) / float (src.width)
sr_v = float (h) / float (src.height)
sr_up = max (sr_h, sr_v)
sr_dw = 1.0 / min (sr_h, sr_v)
sr = max (sr_up, sr_dw)
thr = 2.5
nrb = (sr > thr)
nrf = (sr < thr + 1.0 and noring)
nrr = min (sr - thr, 1.0) if (nrb) == True else 1.0
nrv = [round ((1.0 - nrr) * 65535), round ((1.0 - nrr) * 65535), round ((1.0 - nrr) * 65535)] if (nrb) == True else [0, 0, 0]
nrm = core.std.BlankClip (clip=src, width=w, height=h, color=nrv) if (nrb and nrf) == True else 0
main = core.fmtc.resample (src, w=w, h=h, sx=sx, sy=sy, sw=sw, sh=sh, kernel=kernel, fh=fh, fv=fv, taps=taps, a1=a1, a2=a2, a3=a3, kovrspl=kovrspl, cnorm=cnorm, center=center, fulls=fulls, fulld=fulld, cplace=cplace, invks=invks, invkstaps=invkstaps)
nrng = core.fmtc.resample (src, w=w, h=h, sx=sx, sy=sy, sw=sw, sh=sh, kernel="gauss", a1=100, center=center, fulls=fulls, fulld=fulld, cplace=cplace) if (nrf) == True else main
clip = core.rgvs.Repair(main, nrng, 1) if (nrf) == True else main
clip = core.std.MaskedMerge (main, clip, nrm) if (nrf and nrb) == True else clip
return clip
error code
Failed to evaluate the script:
Python exception: resample: argument w was passed an unsupported type
Traceback (most recent call last):
File "vapoursynth.pyx", line 1488, in vapoursynth.vpy_evaluateScript (src\cython\vapoursynth.c:25136)
File "", line 6, in <module>
File "C:\Python34\lib\site-packages\dither.py", line 170, in Resize16nr
main = core.fmtc.resample (src, w=w, h=h, sx=sx, sy=sy, sw=sw, sh=sh, kernel=kernel, fh=fh, fv=fv, taps=taps, a1=a1, a2=a2, a3=a3, kovrspl=kovrspl, cnorm=cnorm, center=center, fulls=fulls, fulld=fulld, cplace=cplace, invks=invks, invkstaps=invkstaps)
File "vapoursynth.pyx", line 1374, in vapoursynth.Function.__call__ (src\cython\vapoursynth.c:23473)
vapoursynth.Error: resample: argument w was passed an unsupported type
what did I do wrong this time :confused:
def Resize16nr (src, w=None, h=None, sx=0, sy=0, sw=0, sh=0, kernel="spline36", fh=1, fv=1, taps=4, a1=None, a2=None, a3=None, kovrspl=1, cnorm=True, center=True, fulls=None, fulld=None, cplace="mpeg2", invks=False, invkstaps=4, noring=True):
sr_h = float (w) / float (src.width)
sr_v = float (h) / float (src.height)
sr_up = max (sr_h, sr_v)
sr_dw = 1.0 / min (sr_h, sr_v)
sr = max (sr_up, sr_dw)
thr = 2.5
nrb = (sr > thr)
nrf = (sr < thr + 1.0 and noring)
nrr = min (sr - thr, 1.0) if (nrb) == True else 1.0
nrv = [round ((1.0 - nrr) * 65535), round ((1.0 - nrr) * 65535), round ((1.0 - nrr) * 65535)] if (nrb) == True else [0, 0, 0]
nrm = core.std.BlankClip (clip=src, width=w, height=h, color=nrv) if (nrb and nrf) == True else 0
main = core.fmtc.resample (src, w=w, h=h, sx=sx, sy=sy, sw=sw, sh=sh, kernel=kernel, fh=fh, fv=fv, taps=taps, a1=a1, a2=a2, a3=a3, kovrspl=kovrspl, cnorm=cnorm, center=center, fulls=fulls, fulld=fulld, cplace=cplace, invks=invks, invkstaps=invkstaps)
nrng = core.fmtc.resample (src, w=w, h=h, sx=sx, sy=sy, sw=sw, sh=sh, kernel="gauss", a1=100, center=center, fulls=fulls, fulld=fulld, cplace=cplace) if (nrf) == True else main
clip = core.rgvs.Repair(main, nrng, 1) if (nrf) == True else main
clip = core.std.MaskedMerge (main, clip, nrm) if (nrf and nrb) == True else clip
return clip
error code
Failed to evaluate the script:
Python exception: resample: argument w was passed an unsupported type
Traceback (most recent call last):
File "vapoursynth.pyx", line 1488, in vapoursynth.vpy_evaluateScript (src\cython\vapoursynth.c:25136)
File "", line 6, in <module>
File "C:\Python34\lib\site-packages\dither.py", line 170, in Resize16nr
main = core.fmtc.resample (src, w=w, h=h, sx=sx, sy=sy, sw=sw, sh=sh, kernel=kernel, fh=fh, fv=fv, taps=taps, a1=a1, a2=a2, a3=a3, kovrspl=kovrspl, cnorm=cnorm, center=center, fulls=fulls, fulld=fulld, cplace=cplace, invks=invks, invkstaps=invkstaps)
File "vapoursynth.pyx", line 1374, in vapoursynth.Function.__call__ (src\cython\vapoursynth.c:23473)
vapoursynth.Error: resample: argument w was passed an unsupported type
what did I do wrong this time :confused: