Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
29th October 2017, 20:26 | #2802 | Link |
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,730
|
I'm getting random crashes in vspipe with the test version.
Code:
Faulting application name: vspipe.exe, version: 0.0.0.0, time stamp: 0x59f625ab Faulting module name: DGDecodeNV.dll, version: 2053.0.0.112, time stamp: 0x59f243c4 Exception code: 0xc0000005 Fault offset: 0x000000000002e544 Faulting process id: 0x1bf8 Faulting application start time: 0x01d350eaaa4ce85c Faulting application path: C:\Program Files\VapourSynth\core64\vspipe.exe Faulting module path: C:\Program Files\VapourSynth\avs64\DGDecodeNV.dll Report Id: e91f6cd2-bcdd-11e7-b4dd-00acc7375d92
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
30th October 2017, 04:51 | #2804 | Link |
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,730
|
It crashes in the same way.
I'll try to narrow down the part of the function which causes the crash, but it may take a while. EDIT: it was faster than I thought. The "DitherLumaRebuild" function (borrowed in this example script from havsfunc) is what causes the crash. If it's removed, the encoding seems to progress further. The more mvtools stuff there is (i.e. MRecalculate added), the faster the crash. This version crashed just seconds after the encoding started. Code:
import vapoursynth as vs import resamplehq as rhq def DitherLumaRebuild(src, s0=2., c=0.0625, chroma=True): core = vs.get_core() if not isinstance(src, vs.VideoNode): raise TypeError('DitherLumaRebuild: This is not a clip') shift = src.format.bits_per_sample - 8 isGray = src.format.color_family == vs.GRAY k = (s0 - 1) * c t = 'x {} - {} / 0 max 1 min'.format(16 << shift, 219 << shift) c1 = 1 + c c2 = c1 * c e = '{k} {c1} {c2} {t} {c} + / - * {t} 1 {k} - * + {i} *'.format(k=k, c1=c1, c2=c2, t=t, c=c, i=256 << shift) return core.std.Expr([src], [e] if isGray else [e, 'x {neutral} - 128 * 112 / {neutral} +'.format(neutral=128 << shift) if chroma else '']) core = vs.get_core() core.avs.LoadPlugin(r'C:\\Program Files\\VapourSynth\\avs64\DGDecodeNV.dll') clp = core.avs.DGSource(r'Y:\bwtestclip.dgi') clp = core.fmtc.bitdepth(clp, bits=16) src = clp feed = DitherLumaRebuild(src) prefilt = feed pelmdg = core.fmtc.resample(clip=src, scale=2, kernel='spline64', center=False) pelprefilt = core.fmtc.resample(clip=prefilt, scale=2, kernel='spline64', center=False) superanalyse = core.mv.Super(prefilt, pel=2, chroma=False, rfilter=4, pelclip=pelprefilt) supermdg = core.mv.Super(src, pel=2, chroma=False, rfilter=4, levels=1, pelclip=pelmdg) bv1 = core.mv.Analyse(superanalyse, dct=0, blksize=16, overlap=8, search=5, searchparam=4, pelsearch=4, isb=True, chroma=False, delta=1, truemotion=False, _global=True) fv1 = core.mv.Analyse(superanalyse, dct=0, blksize=16, overlap=8, search=5, searchparam=4, pelsearch=4, isb=False, chroma=False, delta=1, truemotion=False, _global=True) bv1 = core.mv.Recalculate(superanalyse, bv1, thsad=200, blksize=8, overlap=4, search=3, searchparam=4, chroma=False, truemotion=False) fv1 = core.mv.Recalculate(superanalyse, fv1, thsad=200, blksize=8, overlap=4, search=3, searchparam=4, chroma=False, truemotion=False) bv1 = core.mv.Recalculate(superanalyse, bv1, thsad=200, blksize=4, overlap=2, search=3, searchparam=4, chroma=False, truemotion=False) fv1 = core.mv.Recalculate(superanalyse, fv1, thsad=200, blksize=4, overlap=2, search=3, searchparam=4, chroma=False, truemotion=False) finalclip = core.mv.Degrain1(src, supermdg, bv1, fv1, thsad=200, thsadc=200, limit=1, limitc=5, plane=0) finalclip.set_output()
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... Last edited by Boulder; 30th October 2017 at 05:32. Reason: Added an example |
30th October 2017, 15:16 | #2805 | Link | |
Beyond Kawaii
Join Date: Feb 2008
Location: Russia
Posts: 724
|
Quote:
__________________
...desu! |
|
30th October 2017, 17:22 | #2806 | Link |
Pig on the wing
Join Date: Mar 2002
Location: Finland
Posts: 5,730
|
VM is enabled, 8 GB as a fixed value in addition to 8 GB of RAM. I took a look in Task Manager and vspipe took around 2,5 GB of memory at the beginning of the encode and would gradually release memory.
__________________
And if the band you're in starts playing different tunes I'll see you on the dark side of the Moon... |
30th October 2017, 18:07 | #2807 | Link |
Useful n00b
Join Date: Jul 2014
Posts: 1,667
|
I duplicated this using HolyWu's script above with a YV12 source and found that after some number of frames this DGSource GetFrame() code hits a bad pointer:
PVideoFrame frame = env->NewVideoFrame(vi); out->y = frame->GetWritePtr(PLANAR_Y); // pointer OK out->u = frame->GetWritePtr(PLANAR_U); // pointer BAD out->v = frame->GetWritePtr(PLANAR_V); // pointer OK The returned out->u pointer is bad. Sometimes it is the PLANAR_V get call also. This is done at the very top of the DGSource GetFrame(), so it appears to be an issue with AvsCompat.dll. vs_pipe is not involved. Last edited by videoh; 30th October 2017 at 18:19. |
30th October 2017, 22:02 | #2809 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Quote:
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
31st October 2017, 00:50 | #2810 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
R40 test2
Should fix the avisynth compatibility issues. This happened BECAUSE AVS+ DECIDED TO MAKE DATA OFFSETS INT INSTEAD OF SIZE_T. Why this was done is a huge mystery, it's also as if it's testing just how many small changes can be made before it chokes on its own ABI and dies. This build should have undone all of this. Also fixes the flipped rgb in avisource
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
31st October 2017, 09:52 | #2811 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
Quote:
https://forum.doom9.org/showthread.p...73#post1712673 |
|
31st October 2017, 10:58 | #2812 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Quote:
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
31st October 2017, 15:15 | #2813 | Link | |
Excessively jovial fellow
Join Date: Jun 2004
Location: rude
Posts: 1,100
|
Quote:
* Note: I'm strongly suspect ultim&co didn't really understand their own ABI, because as Myrsloik says I'm preeeetty sure they could've switched to size_t and those old plugins would've kept working anyway in practice. I think you can still do it now, if you want. It'll technically be an ABI break but I'm pretty sure it'll actually work in all practical cases until people get around to recompiling. Last edited by TheFluff; 31st October 2017 at 15:27. |
|
7th November 2017, 22:42 | #2815 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
R40-RC1
Time to finally get a maintenance release out to fix the broken levels for everyone. Report if anything in the change list is more broken than before. Release in two days or so unless major bugs are found. Code:
r40: improved expr asm slightly made the framebuffer memory pool size a percentage of the total allowed memory usage instead of a fixed size, this should scale better when processing 8k and larger resolutions fixed rgb output sometimes being flipped in avisource added alpha output settings to avisource, the default is no alpha output fixed gamma being infinite if not set in levels, bug introduced in r39 removed the hack needed to support avisynth mvtools, the native mvtools has been superior for several years now and removing the hack makes avisynth filter creation much faster added avisynth+ compatibility only do prefetching in avfs with vs script when linear access is detected, fixes excessive prefetching that could make opening scripts very slow
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
8th November 2017, 16:51 | #2817 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Which renderer are you using (I sure hope you're using madvr)? what's the output pin format in both cases?
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
8th November 2017, 17:16 | #2818 | Link |
Registered User
Join Date: Sep 2006
Posts: 1,657
|
The video format after mount is YUV420P10.
With media player classic, renderer used is Enhanced Video Renderer. I don't know what pin format is. With the avsf one, it reads "P010". With the original file, it reads "NV12". With VLC player, I get the error message "VLC could not decode the format "P010" (No description for this codec)". |
8th November 2017, 17:20 | #2819 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Quote:
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
Tags |
speed, vaporware, vapoursynth |
Thread Tools | Search this Thread |
Display Modes | |
|
|