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.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Development

Reply
 
Thread Tools Search this Thread Display Modes
Old 29th April 2020, 13:46   #1  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,661
AviSynth+ thread Vol.2

Since active developers has been changed during the past couple of years, AviSynth+ finally got a new topic after a super-fast decision.

AviSynth is still alive, thanks to all earlier and present core, filter and documentation contributors. And to the users of course who trust us.



Avisynth+ 3.6.0 release
https://forum.doom9.org/showthread.p...34#post1912834

Avisynth+ 3.6.1 release
https://forum.doom9.org/showthread.p...76#post1916176

Test builds - work in progress
AviSynth+ 3.6.2-test2b
AviSynth+ 3.6.2-test1

Rebuild list
- KNLMeansCL (fails because using env2->SetFilterMTMode instead of cache hints - see my mods in source)
I hope this link is temporary, I don't want to hijack this project.

- chikuzen's plugins rebuilt by Asd-g
https://github.com/Asd-g?tab=repositories

- GScript
See download link in Groucho2004's topic

- MeGUI AvisynthWrapper (until the "official" one)
https://forum.doom9.org/showthread.p...17#post1913117

Project webpage
https://avs-plus.net/

Releases
https://github.com/AviSynth/AviSynthPlus/releases/

Doom9 forum: Avisynth+ topic Vol.1 - the original
https://forum.doom9.org/showthread.php?t=168856

Avisynth+ Linux/MacOS/BSD thread
A thread for non-Windows versions by qyot27:
https://forum.doom9.org/showthread.php?t=180436

Project github page
https://github.com/AviSynth/AviSynthPlus

Last edited by pinterf; 25th September 2020 at 12:21. Reason: new version
pinterf is offline   Reply With Quote
Old 29th April 2020, 14:41   #2  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 1,900
I was thinking about additional script extension exclusive for avs+ like .avsp (maybe it's not good since there are program named AVSP) or .pavs, and for autoload script .avsip or .avspi /.pavsi

both with unicode utf-8
__________________
See My Avisynth Stuff

Last edited by real.finder; 29th April 2020 at 14:49.
real.finder is offline   Reply With Quote
Old 29th April 2020, 14:53   #3  |  Link
StainlessS
HeartlessS Usurer
 
StainlessS's Avatar
 
Join Date: Dec 2009
Location: Over the rainbow
Posts: 8,462
New version Avs+, gazilions of new functions, new Avs+ thread, A truly great day indeed.

May all your gods look with favour upon you
__________________
I sometimes post sober.
StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace

"Some infinities are bigger than other infinities", but how many of them are infinitely bigger ???
StainlessS is online now   Reply With Quote
Old 29th April 2020, 18:27   #4  |  Link
tormento
Acid fr0g
 
tormento's Avatar
 
Join Date: May 2002
Location: Italy
Posts: 1,548
Quote:
Originally Posted by real.finder View Post
I was thinking about additional script extension exclusive for avs+ like .avsp
The letter after s is t: .avt and .avti

I have googled and there are no programs AFAIK that already use that.
__________________
@turment on Telegram
tormento is offline   Reply With Quote
Old 29th April 2020, 18:56   #5  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,219
I honestly don't see the point of Plus-specific extension(s). It would make sense if we were completely overhauling the AviSynth scripting language into a properly versioned one with in-script controls and a CLI interpreter for that sort of compatibility (think of the hashbang in Unix shell scripts), in the sense that the wholly-different language was Plus-specific and absolutely needed to be shielded from 2.6 and prior, but we aren't. UTF-8 is transparent to the host on everything that's not Windows, and even is transparent on Windows if you've actually set the system locale to UTF-8 (which is possible on Win10, it's just not the default like it is on nearly every other OS out there). Even 2.6 is fine with UTF-8 in that situation.
qyot27 is offline   Reply With Quote
Old 29th April 2020, 19:07   #6  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,033
Quote:
Originally Posted by real.finder View Post
I was thinking about additional script extension exclusive for avs+ like .avsp (maybe it's not good since there are program named AVSP) or .pavs, and for autoload script .avsip or .avspi /.pavsi
Yeah, lets complicate the hell out of it and scare away casual users and noobs.

Quote:
Originally Posted by qyot27 View Post
I honestly don't see the point of Plus-specific extension(s).
Indeed.
__________________
Groucho's Avisynth Stuff
Groucho2004 is offline   Reply With Quote
Old 29th April 2020, 21:13   #7  |  Link
MeteorRain
結城有紀
 
Join Date: Dec 2003
Location: NJ; OR; Shanghai
Posts: 871
I'd like to re-raise the problem -- array idea seems to be incompatible with previous versions.
__________________
Projects
x265 - Yuuki-Asuna-mod Download / GitHub
TS - ADTS AAC Splitter | LATM AAC Splitter | BS4K-ASS
Neo AviSynth+ filters - F3KDB | FFT3D | DFTTest | MiniDeen | Temporal Median
MeteorRain is offline   Reply With Quote
Old 29th April 2020, 22:51   #8  |  Link
real.finder
Registered User
 
Join Date: Jan 2012
Location: Mesopotamia
Posts: 1,900
the point is to make sure that non plus avs not load these scripts since they will be utf-8 and has another new things that unavailable in normal avs, so it should be more casual users and noobs friendly
__________________
See My Avisynth Stuff

Last edited by real.finder; 29th April 2020 at 22:53.
real.finder is offline   Reply With Quote
Old 29th April 2020, 23:49   #9  |  Link
qyot27
...?
 
qyot27's Avatar
 
Join Date: Nov 2005
Location: Florida
Posts: 1,219
AviSynth 2.5, 2.6, any version of Plus, etc. honors the system locale. UTF-8 causes problems for AviSynth in one scenario, and only one scenario: the user has left Windows set at its regional default codepage (whether that's Windows-1252, -1251, -932, -936, -949, -950, etc.).

On Linux, macOS, and BSD, the system locale is UTF-8. AviSynth+ has no issues with it, without us having had to change any code at all to accommodate it. Text files created on these systems also usually default to UTF-8 without BOM anyway.

On Windows 10, Microsoft finally allows users to set the system codepage (locale) to 65001, which is UTF-8. If you do this, none of the versions of AviSynth, classic or Plus, have issues with it. Notepad in Windows 10, regardless of the locale, was switched to defaulting to save in UTF-8 without BOM a while ago.

Proving that this isn't something Plus-related, here's 2.6.1 running a UTF-8 encoded script with a UTF-8 filename, opening a video with FFMS2 with a UTF-8 filename (without passing any kind of special parameter to allow it), in a directory with a UTF-8 name:

Last edited by qyot27; 29th April 2020 at 23:59.
qyot27 is offline   Reply With Quote
Old 30th April 2020, 05:53   #10  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,661
Quote:
Originally Posted by MeteorRain View Post
I'd like to re-raise the problem -- array idea seems to be incompatible with previous versions.
Good question, sorry, I have read it but could not deal with it because this topic needed a whole attention which I did not have.

I was looking for a way to keep existing 'type' and '+' format, but I could not find a convenient and compatible way to do that.

At the moment "a" type in function signatures are for ".+" and requires [] syntax on the script side. Nor can it specifiy that you want a float-only array for example. On the bright side, new-style dedicated array parameters can appear anywhere in the list and can have names, can follow each other even with specifying zero elements in them.

Another big difference that new-style script arrays can be of multiple levels, not only an 1-D array, like they are treated in parameter list (btw - you are dealing with dual AVS-VS interfaces, does VapourSynth allows multilevel array as function parameters?). They can be of 0 or 1 elements and they still preserve their type as array.
There are more differences: unlike old arrays they are deep-copied and deep-deleted on deallocation (except on C interface which is treated specially)

I think I have to look at that in internal "Invoke_" as well. In "Invoke_" the array-typed arguments are totally 'flattened' back before calling function-match checking (thus their arrayness is removed). This is a reason why array arguments cannot follow each other as an unnamed parameters. The array parameters (if they are of mixed type or zero sized) cannot be separated again any more.
pinterf is offline   Reply With Quote
Old 30th April 2020, 09:53   #11  |  Link
MeteorRain
結城有紀
 
Join Date: Dec 2003
Location: NJ; OR; Shanghai
Posts: 871
I believe you have to specify "type[]" as type in VS. So it's 1D array of specific type. -- hopefully my memory serves right.

The main problem is "a" type will cause the filter to not run on non-array avs -- even same avs version that compiles without array support.

That's why I proposed a compatible way of annotating array. Again it's a premature idea, I haven't checked Invoke() and I'm not sure if it would work.
__________________
Projects
x265 - Yuuki-Asuna-mod Download / GitHub
TS - ADTS AAC Splitter | LATM AAC Splitter | BS4K-ASS
Neo AviSynth+ filters - F3KDB | FFT3D | DFTTest | MiniDeen | Temporal Median
MeteorRain is offline   Reply With Quote
Old 30th April 2020, 10:04   #12  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,661
Quote:
Originally Posted by MeteorRain View Post
I believe you have to specify "type[]" as type in VS. So it's 1D array of specific type. -- hopefully my memory serves right.

The main problem is "a" type will cause the filter to not run on non-array avs -- even same avs version that compiles without array support.

That's why I proposed a compatible way of annotating array. Again it's a premature idea, I haven't checked Invoke() and I'm not sure if it would work.
It's not a bad idea but needs investigating. Ideally, type "a" flag is not needed, but one can pass arrays as named or unnamed, either with old (just putting the arguments one after another like now) or the new [ and ] syntax.

The key is inside avisynth.cpp "Invoke_" . Look at it in 'neo' branch, this part has been changed a lot compared to 'master', though our problem this flattening-function matching part was not affected.
pinterf is offline   Reply With Quote
Old 30th April 2020, 10:23   #13  |  Link
tormento
Acid fr0g
 
tormento's Avatar
 
Join Date: May 2002
Location: Italy
Posts: 1,548
Quote:
Originally Posted by qyot27 View Post
On Windows 10, Microsoft finally allows users to set the system codepage (locale) to 65001, which is UTF-8.
Are you talking about the very well hidden Unicode beta support?
__________________
@turment on Telegram
tormento is offline   Reply With Quote
Old 30th April 2020, 16:52   #14  |  Link
gispos
Registered User
 
Join Date: Oct 2018
Location: Germany
Posts: 236
Avisynth 3.52 x64 with arrays.
Access Violation Shader_x64.dll, no problems with the previous Avisynth version
Code:
function SuperResXBR

shader.avsi line 218
ExecuteShader(last, Input, Precision=3, Clip1Precision=PrecisionIn, OutputPrecision=PrecisionOut, PlanarOut=PlanarOut, Engines=Engines, Resource=true)
__________________
Live and let live
gispos is offline   Reply With Quote
Old 30th April 2020, 16:58   #15  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,033
Quote:
Originally Posted by gispos View Post
Avisynth 3.52 x64 with arrays.
Access Violation Shader_x64.dll, no problems with the previous Avisynth version
Code:
function SuperResXBR

shader.avsi line 218
ExecuteShader(last, Input, Precision=3, Clip1Precision=PrecisionIn, OutputPrecision=PrecisionOut, PlanarOut=PlanarOut, Engines=Engines, Resource=true)
Any chance you can post a script to reproduce?
__________________
Groucho's Avisynth Stuff
Groucho2004 is offline   Reply With Quote
Old 30th April 2020, 17:08   #16  |  Link
gispos
Registered User
 
Join Date: Oct 2018
Location: Germany
Posts: 236
Quote:
Originally Posted by Groucho2004 View Post
Any chance you can post a script to reproduce?
A normal script
Even with the version without arrays, it pops.
Code:
SourceFile = ScriptDir() + "Your source"

video=LWLibavVideoSource(SourceFile, cache=False)
audio=LWLibavAudioSource(SourceFile, cache=False)
audioDub(video, audio)
#SelectEven()

MCTemporalDenoise(settings="low",  sigma=4, strength=150, tovershoot=1,  GPU=true)
prefetch(4)

#Spline36Resize(1920, 1080)
SuperResXBR(Passes=1, Soft=0.0, XbrSharp=1.0, fWidth=1920, fHeight=1080)

UnsharpMask(strength=60, radius=3, threshold=8)
__________________
Live and let live
gispos is offline   Reply With Quote
Old 30th April 2020, 17:10   #17  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,033
OK, I can reproduce it.
__________________
Groucho's Avisynth Stuff
Groucho2004 is offline   Reply With Quote
Old 30th April 2020, 17:12   #18  |  Link
pinterf
Registered User
 
Join Date: Jan 2014
Posts: 1,661
AviSynthShader plugin is using the Avs+ specific IScriptEnvironment2.

e.g.
b = static_cast<IScriptEnvironment2*>(env)->Allocate(floatBufferPitch, 32, AVS_POOLED_ALLOC);

EDIT: changed link, master became finalized
This plugin will work again if rebuilt with V8 headers and use env->Allocate (IScriptEnvironment instead of IScriptEnvironment2).
https://github.com/AviSynth/AviSynthPlus/tree/master/

(Similarly to KNLMeansCL and chikuzen's plugins)

EDIT:
For more info, see 1st post

Last edited by pinterf; 16th June 2020 at 08:35. Reason: final github link is master
pinterf is offline   Reply With Quote
Old 30th April 2020, 17:23   #19  |  Link
Groucho2004
 
Join Date: Mar 2006
Location: Barcelona
Posts: 5,033
Quote:
Originally Posted by pinterf View Post
This plugin will work again if rebuilt with headers from current neo branch and use env->Allocate (IScriptEnvironment instead of IScriptEnvironment2).
https://github.com/AviSynth/AviSynthPlus/tree/neo
So, these are the headers we should be using from now on?
__________________
Groucho's Avisynth Stuff
Groucho2004 is offline   Reply With Quote
Old 30th April 2020, 17:58   #20  |  Link
gispos
Registered User
 
Join Date: Oct 2018
Location: Germany
Posts: 236
Quote:
Originally Posted by pinterf View Post
AviSynthShader plugin is using the Avs+ specific IScriptEnvironment2.

e.g.
b = static_cast<IScriptEnvironment2*>(env)->Allocate(floatBufferPitch, 32, AVS_POOLED_ALLOC);

This plugin will work again if rebuilt with headers from current neo branch and use env->Allocate (IScriptEnvironment instead of IScriptEnvironment2).
https://github.com/AviSynth/AviSynthPlus/tree/neo

(Similarly to KNLMeansCL and chikuzen's plugins)
OK, all plugins that use IScriptEnvironment2 are not running.
I haven't compared the two in code and return values, but no chance to turn it in avisynth?

I think that some plugin developers are no longer available (free, without money).

EDIT:
Just checked, the shader.dll is from mysteryx93 on github. It will probably still be reachable.

Have already panicked, I used the SuperResXBR very often at the beginning (approx. 3xx, to many scripts on my hard drives)
__________________
Live and let live

Last edited by gispos; 30th April 2020 at 18:26.
gispos is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 13:19.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.