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. |
16th November 2013, 11:56 | #1101 | 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 |
|
16th November 2013, 14:43 | #1103 | Link | |
Registered User
Join Date: Nov 2004
Location: Poland
Posts: 2,843
|
Quote:
|
|
16th November 2013, 17:32 | #1104 | Link |
Guest
Posts: n/a
|
I figured out the error. I did a find and replace and that messed up the parameter string for the RemoveDirt functions which made the plugin instantiation crash. Committing the fix and I'll have a new binary posted shortly. I will also make the changes to the naming to be consistent with Vapoursynth RemoveGrain.
Last edited by handaimaoh; 16th November 2013 at 17:38. |
16th November 2013, 18:36 | #1105 | Link |
Guest
Posts: n/a
|
So fixed a few more bugs and now the new RemoveDirt dll is here.
Updated script to use RemoveDirt is: Code:
clip = core.ffms2.Source(source='clippath') cleansed = core.rgvs.Clense(clip) sbegin = core.rgvs.ForwardClense(clip) send = core.rgvs.BackwardClense(clip) scenechange = core.rdvs.SCSelect(clip, sbegin, send, cleansed) alt = core.rgvs.Repair(scenechange, clip, mode=[16,16,1]) restore = core.rgvs.Repair(cleansed, clip, mode=[16,16,1]) corrected = core.rdvs.RestoreMotionBlocks(cleansed, restore, neighbour=clip, alternative=alt, gmthreshold=70, dist=1, dmode=2, noise=10, noisy=12, grey=0) clip = core.rgvs.RemoveGrain(clip, mode=[17,17,1]) clip.set_output() Last edited by handaimaoh; 16th November 2013 at 19:04. |
16th November 2013, 21:51 | #1107 | Link |
Beyond Kawaii
Join Date: Feb 2008
Location: Russia
Posts: 724
|
Ok. Crashed again with vspipe. Error in console:
"No frame returned at the end of processing by TempLinearApproximate." Also, this exception mesage: Can this code be the case? Are there other activation reasons I need to handle? Or should I return something other than 0?
__________________
...desu! Last edited by Mystery Keeper; 16th November 2013 at 21:57. |
16th November 2013, 22:53 | #1108 | 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 |
|
16th November 2013, 23:40 | #1109 | Link |
Beyond Kawaii
Join Date: Feb 2008
Location: Russia
Posts: 724
|
Tested with short clip. Crashed again.
"Frame: 8498/8585 FNo frame returned at the end of processing by TempLinearApproximate" Removed one line of "ret = tlamc.TempLinearApproximate(ret, **tlaArguments)". Vspipe has processed the clip up to the same 8498th frame and hanged. Seems to be looped in something. Trimmed to 50 frames, then to 200, then to 400. Processed alright in all three tests. Trimmed to 50 frames and returned the second line. Crashed again. Does not happen with raw TempLinearApproximate, even stacked 5 times. Something with the MC script?
__________________
...desu! Last edited by Mystery Keeper; 17th November 2013 at 00:24. |
17th November 2013, 01:09 | #1110 | Link |
Beyond Kawaii
Join Date: Feb 2008
Location: Russia
Posts: 724
|
More weirdness. For this clip the crash always happens if I try to request one of the last 10 frames in the sequence that belong to the original D2V. If I trim it to 150 - it crashes on 140th. If I trim it to 250 - it crashes on 240th. Yes, I tried with different radius. And if I splice it with blank clip - it still crashes at 240th.
__________________
...desu! |
17th November 2013, 01:17 | #1111 | 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 |
|
17th November 2013, 01:24 | #1112 | Link |
Beyond Kawaii
Join Date: Feb 2008
Location: Russia
Posts: 724
|
Oh, I lied. It crashes at the last 10 frames of the sequence double-processed by MC TLA. Splicing with blank clip does help. I just spliced in the wrong place in the script the last time.
I'm using the vanilla MVTools 2. Can't tell exactly which version.
__________________
...desu! Last edited by Mystery Keeper; 17th November 2013 at 01:27. |
17th November 2013, 01:31 | #1113 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Can you try with svp mvtools? I'm curious if it crashes as much with it.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
17th November 2013, 07:49 | #1115 | Link |
Beyond Kawaii
Join Date: Feb 2008
Location: Russia
Posts: 724
|
More experiments with stacking tlamc.TempLinearApproximate and guarding with blank clip.
I append the blank clip before processing and trim it after processing, so blank frames are not being requested, but are participating in processing. Thus, they give a guarding margin. There's a certain pattern to how many guard frames are needed for certain number of tlamc lines and certain radius. 2 lines: blank clip of 3 frames prevents the crash for any radius. 3 lines: 7 guard frames are needed for radius 1, 8 for 2, 9 for 3, 10 for 4, 11 for 5 4 lines: 11 for 1, 13 for 2, 15 for 3, 17 for 4, 19 for 5 5 lines: 15 for 1, 18 for 2, 21 for 3, 24 for 4, 27 for 5 6 lines: 19 for 1, 23 for 2, 27 for 3, 31 for 4, 35 for 5
__________________
...desu! |
17th November 2013, 11:11 | #1116 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Quote:
The simple reason is that TLA can't handle frame requests beyond the clip end, which vs filters are supposed to do by returning the last existing frame. For example requesting frame 502 in a clip with 500 frames is what kills it here every time. Add n = MIN(n, numFrames - 1) at the top and it'll work. I guess.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
17th November 2013, 12:13 | #1118 | Link | |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Quote:
I'm going to change it for r22, that's why I didn't notice all the crashes you were getting.
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
|
17th November 2013, 20:14 | #1120 | Link |
Professional Code Monkey
Join Date: Jun 2003
Location: Kinnarps Chair
Posts: 2,555
|
Here's R22 test1. See if it crashes or does anything else odd.
The other major new is that the installer contains both 32 and 64 bit builds. Let the 64 bit revolution begin. NO AVISYNTH PLUGINS CAN BE LOADED IN THE 64 BIT BUILDS. Not even the 64 bit ones. This will never change. Changes: Code:
vspipe now prints the fps as well now arguments that are None in python aren't passed on to functions, this makes supplying defaults a lot easier added core.version_number() so scripts can easily check for a supported core version improved multithreaded locking, almost all functions in the vsscript and core API should be completely thread-safe now Lut2, Merge and MaskedMerge functions changed, they now take two clip arguments named clipa and clipb instead of a 2 clip array, the old version is accepted as well for now, do vs.get_core(r21_arg_compat=False) to disable backward compatibility minor API change, filters will no longer receive requests for frames beyond the end of a clip, instead the requested frame number is truncated, unknown length clip behavior is unchanged simplified the vsscript api sample to use getFrame() and to be pure C code added VS2013 projects runtime registered formats now get automatically generated names so they're easier to identify there should longer be "an exception happened when handling an exception" errors in python to keep the backtrace clearer the python module now accepts any iterable as an array input completely removed the Qt dependency on windows added clense and the missing modes to removegrainvs switched to C++11/C99 and VS2013, this means that both the VS2010 and VS2013 runtimes are both installed added a port of vinverse (lachs0r)
__________________
VapourSynth - proving that scripting languages and video processing isn't dead yet |
Tags |
speed, vaporware, vapoursynth |
|
|