AviSynth+ Neat Video v4 (Access Violation)

resolve technical issues related to use of Neat Video
Post Reply
Nologic
Posts: 15
Joined: Sun Jun 07, 2015 2:12 am

AviSynth+ Neat Video v4 (Access Violation)

Post by Nologic »

I'm getting the following error in MPC-HC (x64):

Code: Select all

System exception - Access Violation
(<PathToAVS>, line 15)
Base Script:

Code: Select all

LoadVirtualDubPlugin( "C:\Program Files\VirtualDub\plugins64\NeatVideo4.vdf" , "NeatVideo4" , 3 ) 

# This line causes all filters that don't have an MT mode explicitly use mode 2 by default.
# Mode 2 is a relatively safe choice until you don't know most of your calls to be either mode 1 or 3.
# Compared with mode 1, mode 2 trades memory for MT-safety, but only a select few filters will work with mode 1.
SetFilterMTMode( "DEFAULT_MT_MODE" , 2 )

# FFVideoSource(), like most source filters, needs MT mode 3
SetFilterMTMode( "FFVideoSource" , 3 )

# Now comes your script as usual
FFVideoSource( "<PathToVideo>" )

ConvertToRGB32()
NeatVideo4( "<PathToProfiles>\Profiles\<ProfileName>.dnp" , "<PathToPresets>\Presets\<PresetName>.nfp" )

# Enable MT!
Prefetch( 0 )
AviSynth+ (x64)
Update

\Windows\System32\
AviSynth.dll
DevIL.dll

\AviSynth+\plugins64+\
ImageSeq.dll
Shibatch.dll
TimeStretch.dll
VDubFilter.dll
jpsdr
Posts: 221
Joined: Mon Aug 11, 2008 7:33 am

Post by jpsdr »

Try first without multi-threading, MT is not yet stable in avs+.
Nologic
Posts: 15
Joined: Sun Jun 07, 2015 2:12 am

Post by Nologic »

*Edit*

Okay re did everything in x86...and remembered to reg Neat...and it is working in stock AviSynth 2.6.0 x86...have not tried MT yet or x64.

However AviSynth+ x64 it fails, with both single or multi threaded.
jpsdr
Posts: 221
Joined: Mon Aug 11, 2008 7:33 am

Post by jpsdr »

Without MT, so with a script with only the following, it crashes :

Code: Select all

LoadVirtualDubPlugin( "C:\Program Files\VirtualDub\plugins64\NeatVideo4.vdf" , "NeatVideo4" , 3 )

# Now comes your script as usual
FFVideoSource( "<PathToVideo>" )

ConvertToRGB32()
NeatVideo4( "<PathToProfiles>\Profiles\<ProfileName>.dnp" , "<PathToPresets>\Presets\<PresetName>.nfp" )
Nologic
Posts: 15
Joined: Sun Jun 07, 2015 2:12 am

Post by Nologic »

Yup with AviSynth+...the non plus version it works fine.
jpsdr
Posts: 221
Joined: Mon Aug 11, 2008 7:33 am

Post by jpsdr »

There is only 2 x64 version of Avisynth.
An old version called... i don't remember how, and Avs+, more recent and more stable. I personnaly used the last stable release, r1576 if i remember properly. Does the crash occurs also with this version ?
As far as i know, there is no "not+" x64 version.
Or, are you saying that also it crashes with the 32 bits version of Avs+ ?
NVTeam
Posts: 2745
Joined: Thu Sep 01, 2005 4:12 pm
Contact:

Post by NVTeam »

It seems that the x64 version of Avisynth has a different size of the CScriptValue structure that is used to pass arguments to a filter (as compared with the 64-bit VirtualDub). This makes NeatVideo crash when processing the preset name (the second argument of NeatVideo4). The size difference may be a bug in Avisynth x64.

Vlad
Nologic
Posts: 15
Joined: Sun Jun 07, 2015 2:12 am

Post by Nologic »

@ jpsdr -

The crash only happened with x64 AviSynth+ r1825...I didn't try the earlier version of r1576...nor did I try it with the x86 build.

But I did use it just fine with x86 AviSynth 2.6.0 RC3 along with the x86 MT builds by SEt.

Granted for MT I had to change the threading to get Neat Video to work...but it works.

Example:

Code: Select all

SetMemoryMax( 512 )

SetMTMode( 5 , 8 )
FFVideoSource( "<PathToVideo>" , fpsnum=25 , fpsden=1 , threads=1 )

SetMTMode( 2 )
QTGMC( Preset="Slow", SourceMatch=2 , EdiThreads=4 )
Crop( 12 , 2 , -12 , -2 )
Spline36Resize( 720 , 540 )
ConvertToRGB32()

SetMTMode( 5 )
LoadVirtualDubPlugin( "C:\Program Files (x86)\VirtualDub\plugins32\NeatVideo4.vdf" , "NeatVideo4" , 3 )
NeatVideo4( "<PathToProfiles>\Profiles\<ProfileName>.dnp" , "<PathToPresets>\Presets\<PresetName>.nfp" ) 

SetMTMode( 2 )
ConvertToYV12()

Distributor()
These are the settings I used to clean up a 4:3 DVD rip and get it to run stable on a i7 Ivy Bridge.

@ NVTeam -

I'll mention it to them and find out if they intend to keep compatibility with VDub x64..which I would imagine.
jpsdr
Posts: 221
Joined: Mon Aug 11, 2008 7:33 am

Post by jpsdr »

A new guy on Doom9 have made significant improvements/fixes on Avs+. I talked to him about this issue, and he fixed it (at least, i tested and it worked for me). I hope he'll make a post soon on Doom9.
NVTeam
Posts: 2745
Joined: Thu Sep 01, 2005 4:12 pm
Contact:

Post by NVTeam »

That is good news, thank you.

Vlad
jpsdr
Posts: 221
Joined: Mon Aug 11, 2008 7:33 am

Post by jpsdr »

You can get the fix here : http://forum.doom9.org/showpost.php?p=1 ... count=1448

Edit :
To install the fix :
- Copy the x86 VDubFilter.dll into plugins+ folder.
- Copy the x64 VDubFilter.dll into plugins64+ folder.
Post Reply