This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Crash when using Dotkill
#1
New day, new bug!

I tried to use the dotkill Vapoursynth Filter last night and immediately got a crash. I've tracked it to a possible namespace issue. basically calling any of the settings in it will crash it. 

the crash is at this line 
clip = core.dotkill.DotKillT(clip=clip)
 but Changing it to 

clip = core.dotkill.DotKill(clip=clip)
 fixes it.
Reply
#2
Strange, according to the documentation over at https://github.com/myrsloik/DotKill,
DotKill has multiple modes:
  • DotKillS = spatial
  • DotKillZ = pseudo-spatial
  • DotKillT = spatioi-temporal
and no 'DotKill' and
# Imports
import vapoursynth as vs
# getting Vapoursynth core
core = vs.core
# Loading Plugins
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DeCrawlFilter/DotKill/DotKill.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/SourceFilter/FFMS2/ffms2.dll")
# source: 'G:\TestClips&Co\files\test.avi'
# current color space: YUV420P8, bit depth: 8, resolution: 640x352, fps: 25, color matrix: 470bg, yuv luminance scale: limited, scanorder: progressive
# Loading source using FFMS2
clip = core.ffms2.Source(source="G:/TestClips&Co/files/test.avi",cachefile="E:/Temp/avi_6c441f37d9750b62d59f16ecdbd59393_853323747.ffindex",format=vs.YUV420P8,alpha=False)
# making sure input color matrix is set as 470bg
clip = core.resize.Bicubic(clip, matrix_in_s="470bg",range_s="limited")
# making sure frame rate is set to 25
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
clip = core.dotkill.DotKillT(clip=clip)
# set output frame rate to 25.000fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=25, fpsden=1)
# Output
clip.set_output()
works fine here.

So my guess is that it the combination of filters that causes the issue, so looking at your script:
# Imports
import os
import sys
import vapoursynth as vs
# getting Vapoursynth core
core = vs.core
# Import scripts folder
scriptPath = '/opt/hybrid/vsscripts'
sys.path.append(os.path.abspath(scriptPath))
# Loading Plugins
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libttempsmooth.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libfluxsmooth.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libdotkill.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libaddgrain.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libneo-fft3d.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libdfttest.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libeedi3m.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/vsznedi3.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libmvtools.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libtemporalsoften.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libscenechange.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libfmtconv.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libmiscfilters.so")
core.std.LoadPlugin(path="/home/fletcher/.hybrid/vsplugins/libvslsmashsource.so")
# Import scripts
import havsfunc
# source: '/home/fletcher/Documents/[BDMV][211026] Shaman King (English Dub) [US]/SHAMAN KING ENG/BDMV/STREAM/00029.m2ts'
# current color space: YUV420P8, bit depth: 8, resolution: 720x480, fps: 29.97, color matrix: 470bg, yuv luminance scale: limited, scanorder: bottom field first
# Loading /home/fletcher/Documents/[BDMV][211026] Shaman King (English Dub) [US]/SHAMAN KING ENG/BDMV/STREAM/00029.m2ts using LWLibavSource
clip = core.lsmas.LWLibavSource(source="/home/fletcher/Documents/[BDMV][211026] Shaman King (English Dub) [US]/SHAMAN KING ENG/BDMV/STREAM/00029.m2ts", format="YUV420P8", cache=0, prefer_hw=0)
# making sure input color matrix is set as 470bg
clip = core.resize.Point(clip, matrix_in_s="470bg",range_s="limited")
# making sure frame rate is set to 29.970
clip = core.std.AssumeFPS(clip=clip, fpsnum=30000, fpsden=1001)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
# setting field order to what QTGMC should assume (bottom field first)
clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=1)
# Deinterlacing using QTGMC
clip = havsfunc.QTGMC(Input=clip, Preset="Fast", TFF=False) # new fps: 29.97
# make sure content is preceived as frame based
clip = core.std.SetFieldBased(clip, 0)
clip = clip[::2]
clip = core.dotkill.DotKillT(clip=clip)
clip = havsfunc.Vinverse(clp=clip)
# cropping the video to 704x480
clip = core.std.CropRel(clip=clip, left=8, right=8, top=0, bottom=0)
# denoising using FluxSmooth
clip = core.flux.SmoothT(clip=clip)
# denoising using TTempSmooth
clip =  core.ttmpsm.TTempSmooth(clip=clip, maxr=7, scthresh=10.89)
clip = core.fmtc.resample(clip=clip, kernel="lanczos", w=640, h=436, interlaced=False, interlacedd=False)
# adjusting output color from: YUV420P16 to YUV420P10 for x264Model (i420@8)
clip = core.resize.Lanczos(clip=clip, format=vs.YUV420P10, range_s="limited")
# set output frame rate to 23.976fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=24000, fpsden=1001)
# Output
clip.set_output()
I tested:
# Imports
import os
import sys
import ctypes
# Loading Support Files
Dllref = ctypes.windll.LoadLibrary("I:/Hybrid/64bit/vsfilters/Support/libfftw3f-3.dll")
import vapoursynth as vs
# getting Vapoursynth core
core = vs.core
# Import scripts folder
scriptPath = 'I:/Hybrid/64bit/vsscripts'
sys.path.insert(0, os.path.abspath(scriptPath))
# Loading Plugins
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DenoiseFilter/TTempSmooth/TTempSmooth.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DenoiseFilter/FluxSmooth/libfluxsmooth.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DeCrawlFilter/DotKill/DotKill.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/GrainFilter/RemoveGrain/RemoveGrainVS.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/GrainFilter/AddGrain/AddGrain.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DenoiseFilter/NEO_FFT3DFilter/neo-fft3d.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/DenoiseFilter/DFTTest/DFTTest.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/EEDI3m.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/ResizeFilter/nnedi3/vsznedi3.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/libmvtools.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/temporalsoften.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/scenechange.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/Support/fmtconv.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/MiscFilter/MiscFilters/MiscFilters.dll")
core.std.LoadPlugin(path="I:/Hybrid/64bit/vsfilters/SourceFilter/d2vSource/d2vsource.dll")
# Import scripts
import havsfunc
# source: 'G:\TestClips&Co\files\interlaceAndTelecineSamples\interlaced\bff.m2v'
# current color space: YUV420P8, bit depth: 8, resolution: 720x480, fps: 29.97, color matrix: 470bg, yuv luminance scale: limited, scanorder: bottom field first
# Loading G:\TestClips&Co\files\interlaceAndTelecineSamples\interlaced\bff.m2v using D2VSource
clip = core.d2v.Source(input="E:/Temp/m2v_478bc6d007ec94bfc67367d30d9093a4_853323747.d2v")
# making sure input color matrix is set as 470bg
clip = core.resize.Bicubic(clip, matrix_in_s="470bg",range_s="limited")
# making sure frame rate is set to 29.970
clip = core.std.AssumeFPS(clip=clip, fpsnum=30000, fpsden=1001)
# Setting color range to TV (limited) range.
clip = core.std.SetFrameProp(clip=clip, prop="_ColorRange", intval=1)
# setting field order to what QTGMC should assume (bottom field first)
clip = core.std.SetFrameProp(clip=clip, prop="_FieldBased", intval=1)
# Deinterlacing using QTGMC
clip = havsfunc.QTGMC(Input=clip, Preset="Fast", TFF=False) # new fps: 29.97
# make sure content is preceived as frame based
clip = core.std.SetFieldBased(clip, 0)
clip = clip[::2]
# DEBUG: VsQTGMC changed scanorder to: progressive
clip = core.dotkill.DotKillT(clip=clip)
# cropping the video to 704x480
clip = core.std.CropRel(clip=clip, left=8, right=8, top=0, bottom=0)
# denoising using FluxSmooth
clip = core.flux.SmoothT(clip=clip)
# denoising using TTempSmooth
clip =  core.ttmpsm.TTempSmooth(clip=clip, maxr=7, scthresh=10.89)
# set output frame rate to 29.970fps
clip = core.std.AssumeFPS(clip=clip, fpsnum=30000, fpsden=1001)
# Output
clip.set_output()
but that worked fine too.

Does the Vapoursynth Preview work, or does it show an error message?

So my guess is that the issue is not really with Hybrid, but with the DotKill library you use and updating the library might solve the issue.

Cu Selur
Reply
#3
vs view spews a colorspace error.

As far as the library goes, I recently recompiled and replaced all the libraries hybrid uses. I had an issue with libfmtconv and doing that fixed it, so I went ahead and redid all of them.

I tried all three modes and the result was the same so I have no clue to be honest.
Reply
#4
Quote:vs view spews a colorspace error.
Sadly I'm not clairvoyant, care to share details?
That does not sound like an issue with dotkill.

Quote:As far as the library goes, I recently recompiled and replaced all the libraries hybrid uses.
Are you sure your sources are up-to-date, since DotKill changed to DotKillS, DotKillZ, DotKillT, back in Aug 14, 2020, see: https://github.com/myrsloik/DotKill/commits/master


Cu Selur
Reply
#5
sorry about the long response time. Busy day.

As far as Dotkill and the other plugins go I pulled the latest build scripts from here https://github.com/Selur/hybrid-vapoursynth-addon and ran them.Then I added the latest scripts from here https://github.com/Selur/VapoursynthScriptsInHybrid. So as far as I know I'm up to date as possible. 

and fo the VS view issue I get this error 
Error forming pixmap from frame. Expected format CompatBGR32. Instead got 'YUV420P10'.
 here a pic of what VS viewer looks like.


[Image: n8TE4RN.png]
Reply
#6
Did you rebuild:
a. Vapoursynth
b. the plugins
c. vsViewer
since CompatBGR32 support was droppen in Vapoursynth R55+.
Latest vsViewer uses Vapoursynth R55+ and doesn't use Compat-formats.

Cu Selur
Reply
#7
A. Yes

VapourSynth Video Processing Library
Copyright (c) 2012-2021 Fredrik Mellbin
Core R57
API R4.0
API R3.6
Options: -

B. Yes. against this version of VS at that. Made sure.

C. I'm using the VSviewer that came with the last public build on Hybrid.
Reply
#8
okay So I wipped everything. Hybrid, Vapoursynth, all config data, plugins, scritps. everything. Set it all back up. Still the same thing.

Failed to evaluate the script:
Python exception: There is no function named DotKillS

Traceback (most recent call last):
  File "src/cython/vapoursynth.pyx", line 2786, in vapoursynth._vpy_evaluate
  File "src/cython/vapoursynth.pyx", line 2787, in vapoursynth._vpy_evaluate
  File "/home/fletcher/Documents/[BDMV][211026] Shaman King (English Dub) [US]/SHAMAN KING ENG/BDMV/STREAM/encodingTempSynthSkript_2021-11-27@21_11_26_2610.vpy", line 50, in <module>
    clip = core.dotkill.DotKillS(clip=clip)
  File "src/cython/vapoursynth.pyx", line 2367, in vapoursynth.Plugin.__getattr__
AttributeError: There is no function named DotKillS

and the issue with VSviewer is still there.

Edit: I compiled vsViewer from source and it seems to have fixed that issue. The dotkill issue is still there though.
Reply
#9
Probably an issue with the build script not builing the latest version -> yes, at least hybrid-vapoursynth-addon/build-plugins/plugin-dotkill.sh is outdated.
-> updated plugin-dotkill.sh (needs c++17 now)

Cu Selur
Reply
#10
(28.11.2021, 10:22)Selur Wrote: Probably an issue with the build script not builing the latest version -> yes, at least  hybrid-vapoursynth-addon/build-plugins/plugin-dotkill.sh  is outdated.
-> updated plugin-dotkill.sh (needs c++17 now)

Cu Selur

Sorry for not getting back sooner. Been busy with other stuff. 

That fixed it. 

I had attempted to compile the newest version myself, but didn't realize it needed c++17.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)