Log in

View Full Version : AviSynth+ thread Vol.2


Pages : [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75

pinterf
29th April 2020, 13:46
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.

Online documentation: Avisynth+ online documentation (https://avisynthplus.readthedocs.io/en/latest/)

Latest Tests:

Latest test build (https://github.com/pinterf/AviSynthPlus/releases/tag/v3.7.6pre-r4604)
Avisynth+ v3.7.6pre-r4604 test build (20260518)

Current (https://github.com/AviSynth/AviSynthPlus/releases)
Avisynth 3.7.5 (20250420)

Avisynth 3.7.5
Avisynth 3.7.5 (20250420) (https://github.com/AviSynth/AviSynthPlus/releases/tag/v3.7.5)

Avisynth 3.7.4 final
Avisynth 3.7.4 (20250324) (https://github.com/AviSynth/AviSynthPlus/releases/tag/v3.7.4)

New in Avisynth wiki
Partially translations from Neo wiki (https://github.com/nekopanda/AviSynthPlus/wiki)
http://avisynth.nl/index.php/SetGraphAnalysis
http://avisynth.nl/index.php/Function_objects
http://avisynth.nl/index.php/SetFilterMTMode
http://avisynth.nl/index.php/User_defined_script_functions#Array_examples
http://avisynth.nl/index.php/Internal_functions#Functions_for_frame_properties

Avisynth+ 3.6.0 release
https://forum.doom9.org/showthread.php?p=1912834#post1912834

Avisynth+ 3.6.1 release
https://forum.doom9.org/showthread.php?p=1916176#post1916176

Test builds - 3.6.2 work in progress
AviSynth+ 3.6.2-test6 20201210 (https://drive.google.com/uc?export=download&id=1ZdSd_TAPRmdkFGerLaIrDVrsIE8pUBGx)
AviSynth+ 3.6.2-test4 20201112 (https://drive.google.com/uc?export=download&id=1L6dC0JdSIM5uSOUsuZOI6UcpfPycG0VK)
AviSynth+ 3.6.2-test3 (https://drive.google.com/uc?export=download&id=1Ow2g4H16B3PvXWiD9VGXkJSQk7mBaxb5)
AviSynth+ 3.6.2-test2b (https://docs.google.com/uc?export=download&id=17ezMUI42I_0vpTlHzd_TzWHXfkUlYXh6)
AviSynth+ 3.6.2-test1 (https://drive.google.com/file/d/1_IwlcyDiv-0gnV4vPttLWV4urEaDAdMH/view?usp=sharing)

Avisynth+ 3.7.0 release
https://forum.doom9.org/showthread.php?p=1933223#post1933223

Avisynth+ 3.7.1 tests
https://drive.google.com/uc?export=download&id=1CpFdkqbNRDwtuHCtWiQ4x49ZCt8W2jkS
Avisynth+ 3.7.1 - 20210610 (https://drive.google.com/uc?export=download&id=1SRnFC53zrctCcHCbLF8hQ5AlEKud7-Sx) including XP and CUDA-aware builds
AviSynth+ 3.7.1-test6 20210621 (https://drive.google.com/uc?export=download&id=1xlNwp3XH7RUaRmUMdakcR4x3LdKoTYVT)
AviSynth+ 3.7.1-test7 20210630 (https://drive.google.com/uc?export=download&id=1naR4I4tm-EifZIdbkS9M1zhtS9_2wL19)
Avisynth+ 3.7.1 test build 8 (20210705) (https://drive.google.com/uc?export=download&id=1NK_XRbelWytZYOl7KLDb4JgLGvaYEFjV)
Avisynth+ 3.7.1 test build 9 (20210706) (https://drive.google.com/uc?export=download&id=1lbiMMPsSFTKoKhUKdNl0NdcKiv0bgLKY)
Avisynth+ 3.7.1 test build 12 (20210911) (https://drive.google.com/uc?export=download&id=1tZKYyQEaru1K_QyD_Q4CFiW8arze6aWl)
Avisynth+ 3.7.1 test build 14 (20210914) (https://drive.google.com/uc?export=download&id=1f1tfB40Ny0rZcmBApSiulFl6ndfpta4z)
Avisynth+ 3.7.1 test build 15 (20210917) (https://drive.google.com/uc?export=download&id=11Ye6RHYCu99hTZwl2bTyWdvnjObC-K4c)
Avisynth+ 3.7.1 test build 16 (20210920) (https://drive.google.com/uc?export=download&id=14b4Zl0HYeRGj2E_0nA0t_IYYWvZuITsP)
Avisynth+ 3.7.1 test build 17 (20210924) (https://drive.google.com/uc?export=download&id=1XUtEI5qL0NPy85v3gDYHHh75w828G7dq)
Avisynth+ 3.7.1 test build 18 (20210927) (https://drive.google.com/uc?export=download&id=13-lNFkFHkRg4-mwE2uCI16UbpyrE_REp)
Avisynth+ 3.7.1 test build 19 (20210928) (https://drive.google.com/uc?export=download&id=1PjSi1wK1ChTpLvvSv42xdufCQe5fTqml)
Avisynth+ 3.7.1 test build 20 (20210930) (https://drive.google.com/uc?export=download&id=1b-sTu_IsnxalIp5QNI1ugW1DYcGUhl05)
Avisynth+ 3.7.1 test build 21 (20211021) (https://drive.google.com/uc?export=download&id=1eExZZoR17JCx8G0wfp49Vfha9awz-6I9)
Avisynth+ 3.7.1 test build 22 (20211022) (https://drive.google.com/uc?export=download&id=1M36wJoTtk15o_D3ihkhEx7FHk0DoQMaS)
Avisynth+ 3.7.1 test build 23 (20211103) (https://drive.google.com/uc?export=download&id=1UfjtV3FMqzCjI8s-A864KzWUO_dAdaAR)
Avisynth+ 3.7.1 test build 24 (20211104) (https://drive.google.com/uc?export=download&id=1LtBvg0gR6KLtdwzO1lquZvLzszL0_sFS)
Avisynth+ 3.7.1 test build 25 (20211105) (https://drive.google.com/uc?export=download&id=1xQGN9i3ecJqzwZTfDFNCQ_F1efZfekc-)
Avisynth+ 3.7.1 test build 26 (20211116) (https://drive.google.com/uc?export=download&id=13_UFB4KL_KKFi4pC_G5HBVCRixeEvBqL)
Avisynth+ 3.7.1 test build 27 (20211117) (https://drive.google.com/uc?export=download&id=1tyZCCC96arWeXaZ0EKMSiKkS6My9LxRR)
Avisynth+ 3.7.1 test build 28 (20211124) (https://drive.google.com/uc?export=download&id=1Syz8js7R3_8376WAyYKzmwKP40gu3wHy)
Avisynth+ 3.7.1 test build 29 (20211126) (https://drive.google.com/uc?export=download&id=1gxEaQDQYoLBiZdFc1HOJKWgh8o7zVLf5)
Avisynth+ 3.7.1 test build 32 (20211202) (https://drive.google.com/uc?export=download&id=1xv8zwctgJ16XThopha4TBsU-aw_FTUUP)
Avisynth+ 3.7.1 test build 33 (20211205)
Avisynth+ 3.7.1 test build 34 (20211208) (https://drive.google.com/uc?export=download&id=1nVYll8WKoHBYOjh53AxPWnZLXxkeIpzi)
Links to official installers for last XP compatible Microsoft Visual C++ 2015-2019 Redistributable (version 14.28.29213):
x64 - https://download.visualstudio.microsoft.com/download/pr/566435ac-4e1c-434b-b93f-aecc71e8cffc/B75590149FA14B37997C35724BC93776F67E08BFF9BD5A69FACBF41B3846D084/VC_redist.x64.exe
x86 - https://download.visualstudio.microsoft.com/download/pr/566435ac-4e1c-434b-b93f-aecc71e8cffc/0D59EC7FDBF05DE813736BF875CEA5C894FFF4769F60E32E87BD48406BBF0A3A/VC_redist.x86.exe

[B]Avisynth 3.7.1 final
Avisynth+ 3.7.1 (20211231) (https://github.com/AviSynth/AviSynthPlus/releases/tag/v3.7.1)

Avisynth 3.7.2 tests
Avisynth+ 3.7.2 test 1 (20220113) (https://drive.google.com/uc?export=download&id=1A2Jb2OSYzGI0tBFEmvlT0RxxLwVoCiP_)
Avisynth+ 3.7.2 test 2 (20220201) (https://drive.google.com/uc?export=download&id=1QpctWEKU1Mg9O5AEyK41iQ4fIuJAbktc)
Avisynth+ 3.7.2 test 3 (20220208) (https://drive.google.com/uc?export=download&id=1jyqttklu67ehTLnWlsHYHexMdbs2lfCq)
Avisynth+ 3.7.2 test 12 (20220303) (https://drive.google.com/uc?export=download&id=1PMdVp0U0Jq9b88ahg20SBotU_UB-w3oP)

Avisynth 3.7.2 final
Avisynth+ 3.7.2 (20220317) (https://github.com/AviSynth/AviSynthPlus/releases/tag/v3.7.2)

Avisynth 3.7.3 tests
Avisynth+ 3.7.3 test 2 (20221114) (https://drive.google.com/uc?export=download&id=1fCPbb4n1-nuR_mAaLG_4o1Zxfciwr2A4)
Avisynth+ 3.7.3 test 3 (20230118) (https://drive.google.com/uc?export=download&id=1FEww_BfRMY63D2NCg4h860ofxqfflRhu)
Avisynth+ 3.7.3 test 5 (20230217) (https://drive.google.com/uc?export=download&id=1WoLyY55YqfvB3PPP-pIs0GuDlbN6-zBm)
Avisynth+ 3.7.3 test 6 (20230218) (https://drive.google.com/uc?export=download&id=1MwIRCk65Gtto7qdWjaD1zlc47G0gRACD)
Avisynth+ 3.7.3 test 7 (20230223) (https://drive.google.com/uc?export=download&id=1dKBH5DM6RwNSBBwdEoB-weg50I_whTEm)
Avisynth+ 3.7.3 test 8 (20230315 - r3958) (https://drive.google.com/uc?export=download&id=1BvFA3vNePZVLgtnQ4FiugcHddkricK2m)
Avisynth+ 3.7.3 test 9 (20230316 - r3961) (https://drive.google.com/uc?export=download&id=1xFMgLh5lh6kmKPxT5lYGZbpVVBkLyxiK)
Avisynth+ 3.7.3 test 11 (20230608 - r3996) (https://drive.google.com/uc?export=download&id=1ZmFSUZ3ndDzfPYuVWp9MQpZ_YqHCoSEO)

Avisynth 3.7.3 final
Avisynth+ 3.7.3 (20230715) (https://github.com/AviSynth/AviSynthPlus/releases/tag/v3.7.3)

Avisynth 3.7.3+ tests
Avisynth+ 3.7.3post test 4 (20231019 - r4013) (https://drive.google.com/uc?export=download&id=1xQ9EmT2LG5Ouqz-Je7rvDTP01Sc4Ve5i)
Avisynth+ 3.7.3post test 5 (20231026 - r4017) (https://drive.google.com/uc?export=download&id=1gFcu3Wp3jRiT7lAi7WzrV3Rym7y9jcPO)
Avisynth+ 3.7.3post test 6b (20231031 - r4018) (https://drive.google.com/uc?export=download&id=1ONJtxKUXh4L-eQi3j7_RoSbVJUdvfg3f) (fixed content)
Avisynth+ 3.7.3post test 8 (20231103 - r4021) (https://drive.google.com/uc?export=download&id=1ZGt6F7pLnMj6lo_n-gwjl4S6PtOYHD35)
Avisynth+ 3.7.3post test 9 (20231105 - r4022) (https://drive.google.com/uc?export=download&id=1ZsU6x-ttYJxUugYAAw_4eTSe5bpc4F2L)
Avisynth+ 3.7.3post test 10 (20231202 - r4035) (https://drive.google.com/uc?export=download&id=1yuiF6rnphnfpBoZGFTsT9vKPGiZxbGCX)
Avisynth+ 3.7.3post test 11 (20240118 - r4059) (https://drive.google.com/uc?export=download&id=199YthQlcKrvBkBU-btd0k40Yyzvbo24K)
Avisynth+ 3.7.3post test 12 (20240124 - r4062) (https://drive.google.com/uc?export=download&id=1CKYoQSCHDDbMFH14j8rYNT2TI5S3aCbJ)
Avisynth+ 3.7.3post test 14 (20240131 - r4066) (https://drive.google.com/uc?export=download&id=1nrdoQgzzYJh7RwkkrPZwW9OGpmI53A9-)
Avisynth+ 3.7.3 (20250214 - r4193) (https://github.com/pinterf/AviSynthPlus/releases/tag/v3.7.3.4193)

Avisynth 3.7.4 final
Avisynth+ 3.7.4 (20240324) (https://github.com/AviSynth/AviSynthPlus/releases/tag/v3.7.4)

Rebuild list
- KNLMeansCL 1.1.1b - pfmod (https://github.com/pinterf/KNLMeansCL/releases) (fails because using env2->SetFilterMTMode instead of cache hints - see my mods in source)
- KNLMeansCL 1.1.1c - pfmod (https://github.com/pinterf/KNLMeansCL/releases/tag/v1.1.1c) Avisynth multithreading fixes
- KNLMeansCL 1.1.1e - pfmod (https://github.com/pinterf/KNLMeansCL/releases/tag/v1.1.1e) Support 9-15 bits (10-14 in Avs) - also for VapourSynth

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

- GScript
See download link in Groucho2004's topic (https://forum.doom9.org/showthread.php?t=173259)

- MeGUI AvisynthWrapper (until the "official" one)
https://forum.doom9.org/showthread.php?p=1913117#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/Haiku thread
Threads for non-Windows versions by qyot27:
https://forum.doom9.org/showthread.php?t=180436
AviSynth+ plugins and utilities for other OSes and CPUs (https://forum.doom9.org/showthread.php?p=1927689)


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

real.finder
29th April 2020, 14:41
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

StainlessS
29th April 2020, 14:53
New version Avs+, gazilions of new functions, new Avs+ thread, A truly great day indeed.

May all your gods look with favour upon you :)

tormento
29th April 2020, 18:27
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.

qyot27
29th April 2020, 18:56
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.

Groucho2004
29th April 2020, 19:07
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 /.pavsiYeah, lets complicate the hell out of it and scare away casual users and noobs. :D

I honestly don't see the point of Plus-specific extension(s).Indeed.

MeteorRain
29th April 2020, 21:13
I'd like to re-raise the problem -- array idea seems to be incompatible with previous versions.

real.finder
29th April 2020, 22:51
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

qyot27
29th April 2020, 23:49
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:
http://i.imgur.com/1p5osrEh.jpg (https://i.imgur.com/1p5osrE.jpg)

pinterf
30th April 2020, 05:53
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.

MeteorRain
30th April 2020, 09:53
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.

pinterf
30th April 2020, 10:04
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.

tormento
30th April 2020, 10:23
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?

gispos
30th April 2020, 16:52
Avisynth 3.52 x64 with arrays.
Access Violation Shader_x64.dll, no problems with the previous Avisynth version

function SuperResXBR

shader.avsi line 218
ExecuteShader(last, Input, Precision=3, Clip1Precision=PrecisionIn, OutputPrecision=PrecisionOut, PlanarOut=PlanarOut, Engines=Engines, Resource=true)

Groucho2004
30th April 2020, 16:58
Avisynth 3.52 x64 with arrays.
Access Violation Shader_x64.dll, no problems with the previous Avisynth version

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?

gispos
30th April 2020, 17:08
Any chance you can post a script to reproduce?

A normal script
Even with the version without arrays, it pops.:)

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)

Groucho2004
30th April 2020, 17:10
OK, I can reproduce it.

pinterf
30th April 2020, 17:12
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

Groucho2004
30th April 2020, 17:23
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/neoSo, these are the headers we should be using from now on?

gispos
30th April 2020, 17:58
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):)

almosely
30th April 2020, 19:41
Hideho,

I just stumbled upon a new AVS+ release (my installed version is 3.4.0) while cleaning up my ff-bookmarks and found some confusing things. The following files are downloadable here (https://github.com/AviSynth/AviSynthPlus/releases/tag/v3.5.1):

1. AviSynthPlus-3.5.1_20200402.exe
2. AviSynthPlus-3.5.1_20200402_vcredist.exe
3. AviSynthPlus-3.5.1_20200402_vcredist_xp.exe
4. AviSynthPlus-3.5.1_20200402_xp.exe
5. AviSynthPlus_3.5.1_20200402_filesonly.7z

I guess #1 is the regular installer. The place to go if nothing is installed? Is it possible, to use this file to update the current avs-version without loosing any custum made configs too?

Do I need the file #2 (vcredist) when I choose to use file #5 (filesonly) or are there no differences between avs+ 3.4.0 and avs+ 3.5.1 regarding that?

What is "_xp" for (files #3 and #4) ? Windows XP?

So, and finally file #5 (filesonly). Within that .7z-archive are several folders:

- x64
- x64-xp
- x86
- x86-xp

I guess, the "-xp" is regarding Windows XP?

Then, within the "x64"-Folder there are some more folders:

- c_api
- plugins

What do I do with the "c_api"-folder? There are two files within:

- AviSynth.exp
- AviSynth.lib

Are they only needed in an SDK-environment and totally not needed for the running version (= just users)?

Then the "plugins"-folder; I guess the content of that folder has to be copied into the "plugins64+"-folder of my installed avs+ version?

And there are two files, outside the two folders:

- AviSynth.dll
- DevIL.dll

So, I guess, both are to be copied to "Windows\System32"?

... and regarding the "x86"-content ... The files within "plugins" has to be copied to "plugins+" and "AviSynth.dll" and "DevIL.dll" are to be copied to "Windows\SysWOW64"?

There's no documentation regarding that at all, sadly.

gispos
30th April 2020, 20:54
almosely your assumptions are all correct.
Copy the avisynth.dll and DevIL.dll into the correct system directory and the update is finished.
If you feel like it, you can also copy the plugins into the plugin directories.
I never do that, I just move the avisynth.dll. into the system directory.

qyot27
30th April 2020, 20:57
Yes, it can be installed over the previous install. Stuff suffixed with -xp are still WinXP compatible (but are not exclusively for XP). Installers suffixed with vcredist include the Visual C++ 2015-2019 Redistributable installer and runs it during the install process.

If you don't know which one to use, use #2.

almosely
30th April 2020, 22:56
Oh, thank you both! :-)

Therefore I manually switched the corresponding files (avisynth.dlls, devil.dlls and the plugins-folders), disposed the c_api- and xp-folders and downloaded up-to-date-versions of the already installed VC++ redists 15-19.

pinterf
1st May 2020, 09:31
So, these are the headers we should be using from now on?
Yes, but it IScriptEnvironment will still extend a bit.
My intention that these future extensions do not affect already defined elements.

Groucho2004
1st May 2020, 09:35
My intention that these future extensions do not affect already defined elements.That's good to know. :)

gispos
1st May 2020, 17:03
My intention that these future extensions do not affect already defined elements.
also CUDA doesn't that ;)
Do you also have CUDA in your sights? You're welcome.:D

tormento
2nd May 2020, 10:54
also CUDA doesn't that ;)
Do you also have CUDA in your sights? You're welcome.:D
OpenCL is a much better future aware way to go.

It's not platform dependent and have lot of manifacturers supporting it.

Nonetheless CUDA has direct C++ and Fortran compiler support from at least Intel.

tormento
2nd May 2020, 10:56
To whom redact AviSynth+ Wiki: what about starting to divide plugins into AVS supported interface versions?

It could be easier for programmers to start a revision of the missing plugins.

StainlessS
2nd May 2020, 12:52
Post #5103 in original Avisynth+ thread updated[AvsVersion.avsi]:- https://forum.doom9.org/showthread.php?p=1897680#post1897680

MeteorRain
2nd May 2020, 12:55
tormento: Agree.

Or having a table for each plugin indicating the support of HBD and x64, better if also indicating GPU version and Internal MT version.

Also would like to know if there's anything missing from famous scripts such as MCTD or QTGMC etc. (Especially HBD and x64.)

pinterf
2nd May 2020, 12:56
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.

The most compatible way is to specify "." instead of "a" and you check the arrayness and throw a possible error in filter creation.

Anyway I'm now on eliminating the "a" and if possible I'm using ".*" or ".+" instead of that.

But I won't discriminate and will recognize arrays as named parameters using the "*" and "+" array-modifiers. I can use this internally. Such as new BlankClip has a parameter with signature "[colors]a"; direct color values can be specified. Now it became "[colors]f+" so it has to be an array of one or more floats.

This way I could even specify that the function requires float numbers in the array (which are converted to integer inside for integer color spaces) while the old version with "[colors]a" needed more checking (no zero size, no strings inside, etc.) in the filter creation.

So work in progress.

As I said using "." instead of array is working right now, compatible with anything.

Internally [paramname]f+ style is working as well but your external plugin will fail to load into older AviSynth versions if this parameter-list syntax is used.

If this concept works, I can try the proposed "()" modifier in the name of the parameter, which is expected to get your plugin loaded into any Avisynth version but still you can use the named parameter array concept if parameter is given when used in future Avisynth+. Thus a filter definition syntax [colors]f+ would become into [colors()]f or similar, but it's not too nice.

The incompatibility lies in (among other things) that named parameters should be followed by exactly one 'type' character

MeteorRain
2nd May 2020, 13:07
In the example of c[sstring]s[ssx]s[sstring()]f[ssx()]f

The good thing is -- in old version it interprets it as
sstring: string
ssx: string
sstring(): float -- which can only be read by _args[3]
ssx(): float -- which can only be read by _args[4]

Because the plugin should not read anything beyond 2, all it could read are 1 clip and 2 strings.

In new version it interprets it as
sstring: string or float[]
ssx: string or float[]

so user can pass either string or array, and the plugin should detect if _args[1] and [2] is a string or an array. If it reads a string, it parses string to array. If it reads an array, it loops through it to get values.

Any non-identifier non [] characters can be used to indicate arrays. So for example, [colors()], [color*], [(colors)], [{colors}] should all work.

MeteorRain
2nd May 2020, 13:18
And it's also possible to completely use a new syntax for argument list. Plugins can send the new version of argument type list instead of using the old one, if it's called by a new version of AVS. I'm never a fan of old syntax, so I think after more than 15 years, it's OK to remove some technical debt and move on. (And backward compatibility is also maintained.)

A very quick way is to use the same / similar format from VapourSynth.

c[sstring]s[ssx]s[sstring()]f[ssx()]f
becomes
clip:clip;sstring:float[]:opt;ssx:float[]:opt

Of course when called from old AVS, a plugin still returns old argument string. New AVS should also be able to parse the old syntax.

Just my $0.02.

pinterf
2nd May 2020, 14:36
In what aspect is VS syntax more elegant aside from using [] for arrays?

videoh
2nd May 2020, 15:11
Anyway, "elegant" is very subjective.

wonkey_monkey
2nd May 2020, 15:29
Personally I can never remember whether the type comes first or the name comes first. VS syntax seems slightly more explicit in that regard.

pinterf
2nd May 2020, 17:02
Personally I can never remember whether the type comes first or the name comes first. VS syntax seems slightly more explicit in that regard.
In case you'd forget just remember to clip:clip :)

Reel.Deel
2nd May 2020, 20:28
To whom redact AviSynth+ Wiki: what about starting to divide plugins into AVS supported interface versions?

It could be easier for programmers to start a revision of the missing plugins.

Feel free to get the ball rolling. A spreadsheet would be a good start :)

qyot27
2nd May 2020, 20:53
Having a spot in the table for which OSes the plugins support would also be beneficial, as more of them begin to get ported to at least Linux, if not the other two.

Myrsloik
2nd May 2020, 23:57
In what aspect is VS syntax more elegant aside from using [] for arrays?

Pascal order (name: type) is obviously always the most elegant!

MeteorRain
3rd May 2020, 01:51
In what aspect is VS syntax more elegant aside from using [] for arrays?

IMHO anything that is easier to read, to parse, to extend, is more elegant. If this is done in a more dynamic / higher level language I would simply use a hash map, or a JSON string because it's more readable, have standard library to parse, and can easily be extended should there be extra information adding to the content.

Now this is an ancient C/C++ project, so I don't want to add too many 3rd party things and too many modern things to it. That's why I didn't propose JSON (adding a JSON library to the dependencies). One (and probably the only one) that is both familiar to plugin authors and more readable, would be VS syntax. Again, I'm brainstorming various ways of doing things. One simple way would be what I said, use non-conflicting annotation to indicate arrays. Ugly, not nice, but is a workaround to support a little more thing. The other simple way would be switching to a more elegant syntax and completely solve this problem.

AVS was an ancient project, and lots of things were done in the way that would have been done differently if today's technologies and concepts are provided. But at the end of the day, it's still your discretion whether to move on from an old decision to a modern-er thing.

real.finder
4th May 2020, 05:17
I just note that Asd did backport SmoothUV and DeDot and DeCross from VS, cool :goodpost:
edit: and MatchHistogram, MSharpen

more about Asd https://forum.doom9.org/showthread.php?p=1871719#post1871719 and https://forum.doom9.org/showpost.php?p=1873049&postcount=4668

To whom redact AviSynth+ Wiki: what about starting to divide plugins into AVS supported interface versions?

It could be easier for programmers to start a revision of the missing plugins.

ok, so I will mention what not has HBD yet

1st is plugins that has VS ports with HBD:-
1 - EEDI3
2 - Dither_resize16/fmtconv
3 - SangNom2/SangNomMod
4 - TTempSmooth
5 - EEDI2
6 - TCanny (there are TCannymod by chikuzen but I think with no HBD)
7 - Yadifmod (there are Yadifmod2 by chikuzen with not completed HBD)
8 - DeblockPP7
9 - median
10 - tbilateral
11 - tedgemask
12 - MSmooth
13 - ASharp
14 - degrainmedian
15 - TDeint

plugins that has VS ports but no HBD:-
1 - scxvid (there are no x64 in avs yet)
2 - hqdn3d (there are avs port but with 16bit hack)
3 - ssiq (there are no x64 in avs yet)

pinterf
4th May 2020, 07:57
Pascal order (name: type) is obviously always the most elegant!
I'm working with Delphi at my proper office work, sometimes I'm mixing up the C the variable-type order (not to mention the assignment ':=' vs. '=' and the comparison operators as well :) )

real.finder
5th May 2020, 22:26
ok, so I will mention what not has HBD yet

1st is plugins that has VS ports with HBD:-
1 - EEDI3
2 - Dither_resize16/fmtconv
3 - SangNom2/SangNomMod
4 - TTempSmooth
5 - EEDI2
6 - TCanny (there are TCannymod by chikuzen but I think with no HBD)
7 - Yadifmod (there are Yadifmod2 by chikuzen with not completed HBD)
8 - DeblockPP7
9 - median
10 - tbilateral
11 - tedgemask
12 - MSmooth
13 - ASharp
14 - degrainmedian
15 - TDeint

plugins that has VS ports but no HBD:-
1 - scxvid (there are no x64 in avs yet)
2 - hqdn3d (there are avs port but with 16bit hack)
3 - ssiq (there are no x64 in avs yet)

and there are some filters seems has no VS ports

1 - VariableBlur (it was planed by tp7 (https://forum.doom9.org/showthread.php?p=1658610&highlight=VariableBlur#post1658610))
2 - frfun7 (useful for Dot Crawl Removal, used in DDComb)
3 - GradFun2db (maybe it can be replaced with f3kdb?)
4 - LGhost

feisty2
6th May 2020, 10:37
I tried to port frfun7 and found it was closed source

real.finder
6th May 2020, 11:28
I tried to port frfun7 and found it was closed source

did you tried ask Prunedtree in IRC for the source code?

Reel.Deel
6th May 2020, 17:02
did you tried ask Prunedtree in IRC for the source code?

I emailed pruned sometime ago and asked him if he would release the source code but no reply. :(

First time I contacted him was thru IRC then email, that is how FRFun7 (2013) came about.

real.finder
6th May 2020, 17:45
I emailed pruned sometime ago and asked him if he would release the source code but no reply. :(

First time I contacted him was thru IRC then email, that is how FRFun7 (2013) came about.

maybe you are not a Developer so he didn't, since he previously was parole that the code should be cleaned and developed before publication (as tp7 said for Checkmate plugin)

anyway, there are always reverse engineering option

feisty2
6th May 2020, 18:22
anyway, there are always reverse engineering option

dude, deciphering assembly is HARD