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
19th January 2023, 09:36
Some new 32-bit plugin don't support XP anymore. So next update can you add x86 for win 7 and up beside x86-xp??
My test versions with _xp can be run on xp _and_ on any newer OSes.
Where there is no xp in the folder name then it surely fails on XP.
Why are you asking? Did you test the 32 bit version on a Non-XP machine and something was not working for you?

kedautinh12
19th January 2023, 09:46
My test versions with _xp can be run on xp _and_ on any newer OSes.
Where there is no xp in the folder name then it surely fails on XP.
Why are you asking? Did you test the 32 bit version on a Non-XP machine and something was not working for you?

it's work like a charm on new os but some avs+ plugins don't support with XP avisynth ver. When I use with 32 bit Asd-g's clang-build don't have that errors. I think it's relate XP-32 bit ver support old OS. I'm using win 11
Cannot load file 'C:/Program Files (x86)/AviSynth+/plugins+/auto_gamma.dll'. Platform returned code 127:
The specified procedure could not be found.
Note: You may need a newer OS version in order to use this plugin

Cannot load file 'C:/Program Files (x86)/AviSynth+/plugins+/circle_warp.dll'. Platform returned code 127:
The specified procedure could not be found.
Note: You may need a newer OS version in order to use this plugin

Cannot load file 'C:/Program Files (x86)/AviSynth+/plugins+/linear_gamma.dll'. Platform returned code 127:
The specified procedure could not be found.
Note: You may need a newer OS version in order to use this plugin

Cannot load file 'C:/Program Files (x86)/AviSynth+/plugins+/luma_smooth.dll'. Platform returned code 127:
The specified procedure could not be found.
Note: You may need a newer OS version in order to use this plugin

Cannot load file 'C:/Program Files (x86)/AviSynth+/plugins+/rgb_dither.dll'. Platform returned code 127:
The specified procedure could not be found.
Note: You may need a newer OS version in order to use this plugin

Cannot load file 'C:/Program Files (x86)/AviSynth+/plugins+/saturation_percentiles.dll'. Platform returned code 127:
The specified procedure could not be found.
Note: You may need a newer OS version in order to use this plugin

Cannot load file 'C:/Program Files (x86)/AviSynth+/plugins+/white_point.dll'. Platform returned code 127:
The specified procedure could not be found.
Note: You may need a newer OS version in order to use this plugin

Reel.Deel
19th January 2023, 10:06
Didn't you already hijack another issue with the same problem: https://github.com/AviSynth/AviSynthPlus/issues/282#issuecomment-1140287429 ?

FranceBB
19th January 2023, 10:19
Some new 32-bit plugin don't support XP anymore. So next update can you add x86 for win 7 and up beside x86-xp??

Uh? Why?
Windows XP builds will run on Vista, 7, 8, 8.1, 10 x86 just fine.
The only difference is that it's compiled with v141_xp instead of v143 and with /Zc:threadSafeInit enabled.
Same thing for x64 XP.

This won't really make a difference in terms of performances as it targets SSE2 for the C part like other builds but Avisynth has intrinsics/asm inside beyond that which are gonna be used anyway.

TL;DR there's no need for additional builds.

FranceBB
19th January 2023, 10:29
Actually, Ferenc, 3.7.3 Beta 3 XP x86 won't work as it probably hasn't been compiled with v141_xp.
There are two missing functions in the Kernel: GetLocaleInfoEx and GetFileInformationByHandleEx

https://i.imgur.com/Jb7rqKk.png

kedautinh12
19th January 2023, 10:47
Didn't you already hijack another issue with the same problem: https://github.com/AviSynth/AviSynthPlus/issues/282#issuecomment-1140287429 ?

Yes it's me and error still continue to present. I think it's relate x32-XP build so i think need add x32 for win 7 and above beside XP build

kedautinh12
19th January 2023, 10:52
Uh? Why?
Windows XP builds will run on Vista, 7, 8, 8.1, 10 x86 just fine.
The only difference is that it's compiled with v141_xp instead of v143 and with /Zc:threadSafeInit enabled.
Same thing for x64 XP.

This won't really make a difference in terms of performances as it targets SSE2 for the C part like other builds but Avisynth has intrinsics/asm inside beyond that which are gonna be used anyway.

TL;DR there's no need for additional builds.

You can check this build with crabshank_filters
https://drive.google.com/file/d/1hd-MGoHJFWN6sCwldqF45PUJ0oUzCiIA/view?usp=share_link

Dependencies
https://github.com/lucasg/Dependencies/releases

FranceBB
19th January 2023, 11:55
I get your point: third party plugins are sometimes compiled targeting non xp so incompatible builds and newer C++ Redistributables that don't work on XP, but I was talking about the core here, those plugins are not part of the core, are they?

pinterf
19th January 2023, 15:11
Actually, Ferenc, 3.7.3 Beta 3 XP x86 won't work as it probably hasn't been compiled with v141_xp.
There are two missing functions in the Kernel: GetLocaleInfoEx and GetFileInformationByHandleEx

Arrrgh, sorry for that, probably I set v141_xp but did not set the Support XP checkbox option for CMake? Anyway, there will be a new build after I finish another thing and I'm gonna double check the options then.

kedautinh12
19th January 2023, 16:40
Arrrgh, sorry for that, probably I set v141_xp but did not set the Support XP checkbox option for CMake? Anyway, there will be a new build after I finish another thing and I'm gonna double check the options then.

New ver had x86 for win 7 and above beside x86_xp :D

FranceBB
19th January 2023, 18:24
there will be a new build after I finish another thing and I'm gonna double check the options then.

Ok, perfect. Thanks! :)

Hat3L0v3
22nd January 2023, 09:29
Can somebody help me to figure out why depan filter crashing my Avs(AvsPmod)?
I want to use DePanStabilize from mvtools pack but it crashes.
system and others:
win10 x64
avs+ 3.7.3 r3825 x86-64
AvsPmod_v2.7.3.2_.Windows_x86-64
mvtools-2.7.45 (.dll`s x64)
vcredist last time installed from here (https://github.com/abbodi1406/vcredist) (v0.64.0) (can't remember what versions I had before)

(libfftw3f-3.dll and libfftw3l-3.dll) from FFTW - 3.3.10 and 3.3.5 (Tried both) in 2 variation:
a) x64.dll into SysWoW64 folder (x32.dll on System32)
b) x64.dll into System32 folder (x32.dll on SysWoW64)
(First I read that x32 must be in System32 and x64 in SysWoW64 , then find that If you're using 64 bit AviSynth - put x64 FFTW3.DLL into System32). So b) variant must be correct one.

I remember before updating avs+ from 3.7.2 to r3825 I tried different stabilizers and depan was causing "access violation" error (same as TemporalDegrain2 with postFFT=2 option). Now they both just crashing without errors.
Sorry if I typed in wrong thread.

kedautinh12
22nd January 2023, 10:21
Fftw3.3.10 here:
https://forum.doom9.org/showthread.php?p=1955609#post1955609

And yes, in windows64 86bit.dll must be in sysWow64, 64bit.dll must be in system32

Hat3L0v3
22nd January 2023, 10:47
Fftw3.3.10 here:
https://forum.doom9.org/showthread.php?p=1955609#post1955609

And yes, in windows64 86bit.dll must be in sysWow64, 64bit.dll must be in system32

yeah, I using it right from there

Selur
22nd January 2023, 20:15
I'm using Avisynth+ 3.7.2. (r3661, 3.7, x86_64).
with:
bool avsViewer::setRessource()
{
try {
QByteArray ba = m_currentInput.toLocal8Bit();
const char *infile = ba.data();
std::cout << "Importing " << infile << std::endl;
AVSValue arg(infile);
AVSValue tmp[1];
tmp[0] = &arg;
AVS_linkage = m_env->GetAVSLinkage();
m_res = m_env->Invoke("Import", tmp);
if (!m_res.IsClip()) {
std::cerr << "Couldn't load input, not a clip!" << std::endl;
return false;
}
if (!m_res.Defined()) {
QString error = QObject::tr("Couldn't import:") + " " + m_currentInput;
error += "\r\n";
error += QObject::tr("Script seems not to be a valid avisynth script.");
std::cerr << qPrintable(error) << std::endl;
return false;
}
return true;
} catch (AvisynthError err) { //catch AvisynthErrors
std::cerr << "-> " << err.msg << std::endl;
} catch( const std::exception & ex ) {
std::cout << ex.what() << std::endl;
}catch (...) { //catch everything else
std::cerr << "-> setRessource: Unknown error" << std::endl;
}
return false;
}

I get an exception in the 'm_res = m_env->Invoke("Import", tmp);' line.
NPGetCaps 2
WNNC_NET_TYPE
NPGetCaps 4
WNNC_USER
NPGetCaps 6
WNC_CONNECTION
NPGetCaps 13
default
NPGetCaps 11
WNNC_ENUMERATION
NPGetCaps 9
WNNC_ADMIN
NPGetCaps 8
WNNC_DIALOG
NPOpenEnum: dwScope 0x00000001, dwType 0x00000001, dwUsage 0x00000000, lpNetResource 0000000000000000
NPOpenEnum: pCtx 00000170DA821F30
onecore\vm\dv\storage\plan9\rdr\dll\util.cpp(99)\p9np.dll!00007FF9D4F4F0CC: (caller: 00007FF9D4F493B0) LogHr(1) tid(1dcc) C0000034 Msg:[瑎牃慥整楆敬☨敤楶散‬奓䍎剈乏婉ⱅ☠瑡牴扩瑵獥‬椦卯慴畴ⱳ渠汵灬牴‬䥆䕌䅟呔䥒啂䕔也剏䅍ⱌ⠠䥆䕌卟䅈䕒剟䅅⁄⁼䥆䕌卟䅈䕒坟䥒䕔簠䘠䱉彅䡓剁彅䕄䕌䕔Ⱙ䘠䱉彅偏久‬䥆䕌卟乙䡃佒低单䥟彏低䅎䕌呒‬畮汬瑰Ⱳ〠)]
NPEnumResource: hEnum 00000170DA821F30, lpcCount 0000004E5B94F090, lpBuffer 00000170DA829070, lpBufferSize 0000004E5B94F100.
NPEnumResource: *lpcCount 0xfffffffe, *lpBufferSize 0x3f6e, pCtx->index 0
NPEnumResource DokanGetMountPointList failed
NPCloseEnum: hEnum 00000170DA821F30
NPCloseEnum: returns
onecore\com\combase\dcomrem\security.cxx(2999)\combase.dll!00007FFA0B49505E: (caller: 00007FF9B064F80A) ReturnHr(1) tid(98c) 80010117 Auf den Aufrufkontext kann nicht zugegriffen werden, nachdem der Aufruf beendet ist.
NPGetCaps 11
WNNC_ENUMERATION
NPOpenEnum: dwScope 0x00000002, dwType 0x00000000, dwUsage 0x00000000, lpNetResource 0000000000000000
NPOpenEnum: pCtx 00000170DA8CF200
NPEnumResource: hEnum 00000170DA8CF200, lpcCount 0000004E2258EED8, lpBuffer 00000170DA8D8A20, lpBufferSize 0000004E2258EED4.
NPEnumResource: *lpcCount 0xffffffff, *lpBufferSize 0x4000, pCtx->index 0
NPEnumResource DokanGetMountPointList failed
NPCloseEnum: hEnum 00000170DA8CF200
NPCloseEnum: returns
onecore\com\combase\dcomrem\security.cxx(2999)\combase.dll!00007FFA0B49505E: (caller: 00007FF9B064F80A) ReturnHr(2) tid(98c) 80010117 Auf den Aufrufkontext kann nicht zugegriffen werden, nachdem der Aufruf beendet ist.

Exception at 0x7ffa08df06bc, code: 0xe06d7363: C++ exception, flags=0x81 (first chance) in AviSynth!avs_is_rgb48
Any idea what is going wrong here?

Cu Selur

wonkey_monkey
22nd January 2023, 20:24
Does it work if you do

m_res = m_env->Invoke("Import", arg);

?

I was under the impression that when passing an array of AVSValues to Invoke, you're supposed to wrap them in another AVSValue with the array size:

m_res = m_env->Invoke("Import", AVSValue(tmp, 1));

Selur
22nd January 2023, 20:32
I tried:
QByteArray ba = m_currentInput.toLocal8Bit();
const char *infile = ba.data();
std::cout << "Importing " << infile << std::endl;
AVSValue arg(infile);
AVSValue tmp[1];
tmp[0] = &arg;
AVS_linkage = m_env->GetAVSLinkage();
m_res = m_env->Invoke("Import", AVSValue(tmp,1));
and

QByteArray ba = m_currentInput.toLocal8Bit();
const char *infile = ba.data();
std::cout << "Importing " << infile << std::endl;
AVSValue arg(infile);
AVSValue tmp[1];
tmp[0] = &arg;
AVS_linkage = m_env->GetAVSLinkage();
m_res = m_env->Invoke("Import", arg);
and
QByteArray ba = m_currentInput.toLocal8Bit();
const char *infile = ba.data();
std::cout << "Importing " << infile << std::endl;
AVSValue arg(infile);
AVSValue tmp[1];
tmp[0] = &arg;
AVS_linkage = m_env->GetAVSLinkage();
m_res = m_env->Invoke("Import", AVSValue(arg, 1));

They all fail, with the above exception.

Selur
22nd January 2023, 20:45
QByteArray ba = m_currentInput.toLocal8Bit();
const char *infile = ba.data();
std::cout << "Importing " << infile << std::endl;
AVS_linkage = m_env->GetAVSLinkage();
AVSValue filename = infile;
AVSValue args = AVSValue(&filename, 1);
m_res = m_env->Invoke("Import", args, 0);
seems to work.

Thanks!

Cu Selur

kedautinh12
24th January 2023, 01:39
Avs+ r3849 clang build
https://gitlab.com/uvz/AviSynthPlus-Builds

kedautinh12
27th January 2023, 04:46
it's work like a charm on new os but some avs+ plugins don't support with XP avisynth ver. When I use with 32 bit Asd-g's clang-build don't have that errors. I think it's relate XP-32 bit ver support old OS. I'm using win 11
Cannot load file 'C:/Program Files (x86)/AviSynth+/plugins+/auto_gamma.dll'. Platform returned code 127:
The specified procedure could not be found.
Note: You may need a newer OS version in order to use this plugin

Cannot load file 'C:/Program Files (x86)/AviSynth+/plugins+/circle_warp.dll'. Platform returned code 127:
The specified procedure could not be found.
Note: You may need a newer OS version in order to use this plugin

Cannot load file 'C:/Program Files (x86)/AviSynth+/plugins+/linear_gamma.dll'. Platform returned code 127:
The specified procedure could not be found.
Note: You may need a newer OS version in order to use this plugin

Cannot load file 'C:/Program Files (x86)/AviSynth+/plugins+/luma_smooth.dll'. Platform returned code 127:
The specified procedure could not be found.
Note: You may need a newer OS version in order to use this plugin

Cannot load file 'C:/Program Files (x86)/AviSynth+/plugins+/rgb_dither.dll'. Platform returned code 127:
The specified procedure could not be found.
Note: You may need a newer OS version in order to use this plugin

Cannot load file 'C:/Program Files (x86)/AviSynth+/plugins+/saturation_percentiles.dll'. Platform returned code 127:
The specified procedure could not be found.
Note: You may need a newer OS version in order to use this plugin

Cannot load file 'C:/Program Files (x86)/AviSynth+/plugins+/white_point.dll'. Platform returned code 127:
The specified procedure could not be found.
Note: You may need a newer OS version in order to use this plugin

It's work with new ver of filters
https://gitlab.com/uvz/AviSynthPlus-Plugins-Scripts/-/tree/3ee91cada7a1e78baad73a3e4adc1271ab9e77ee/crabshank_filters/x86

kedautinh12
1st February 2023, 05:41
AviSynthPlus r3877 clang build
https://gitlab.com/uvz/AviSynthPlus-Builds

ryrynz
1st February 2023, 07:29
Gave that clang build a shot & Test build 3 and both just freeze when I change to one of my avisynth scripts., so no change from build 2.
Maybe a filter isn't up to date or something, I'll report back when I look into it.

kedautinh12
1st February 2023, 09:26
You need report here:
https://github.com/AviSynth/AviSynthPlus/issues

Emulgator
5th February 2023, 04:53
I had no luck with uvz builds either.

kedautinh12
5th February 2023, 05:59
You can report uvz's build issues here:
https://gitlab.com/uvz/AviSynthPlus-Builds/-/issues

Fjord
7th February 2023, 10:56
It would be handy to be able to specify multiple arguments to the propDelete() function, to get rid of several properties in one call.
propDelete(clip, "MyProp1", "MyProp2", "MyProp3")

An inverse of that could be a new function "propKeep()" that would delete any properties not named as arguments to the function.
propKeep(clip, "MyKeep1", "MyKeep2", "MyKeep3")
This would be handy for filtering properties to a fixed set, rather than clearing all, and restoring only the ones that are wanted.

What do you think?

EDIT: I see in the change log from 3.7.1 to 3.7.2 (https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/changelist372.html) that:

PropCopy: new string parameter "props": list of property names to copy (or ignore)
PropCopy: new bool parameter "exclude": whether property list is positive (copy) or negative (do not copy; blacklist)
PropDelete: accept an array string parameter as list of property names to remove

and a bit more detailed in the github readme_history.txt (https://github.com/AviSynth/AviSynthPlus/blob/master/distrib/Readme/readme_history.txt):
- propCopy: able to specify that the property list is negative.
bool "exclude" = false # default: "props" is positive list

propCopy(org,true,props=["_Matrix", "_ColorRange"], exclude=false) # merge only two properties
propCopy(org,true,props=["_Matrix", "_ColorRange"], exclude=true) # merge all, except listed ones
propCopy(org,props=["_Matrix", "_ColorRange"]) # erase all then copy only selected
propCopy(org,props=["_Matrix", "_ColorRange"], exclude = true) # erase all, then copy all, except listed ones
...
- PropDelete: accept a non-empty array string as list of property names to remove
Parameter is not optional, and has no name. It can be either a string (as before) or an array of strings
propDelete("_Matrix") # old syntax, still accepted
propDelete(["_Matrix", "_ColorRange"])
- PropCopy: new string parameter "props" as list of property names to remove
"props": a non-empty array of strings

old syntax, still accepted:
propCopy(org,true) # merge from all org's properties
propCopy(org,false) # erase all then copy all org's properties (exact copy)
new syntax
propCopy(org,true,props=["_Matrix", "_ColorRange"]) # merge
propCopy(org,props=["_Matrix", "_ColorRange"]) # erase all then copy only selected

which means my request is already implemented (in another way), although this hasn't yet made it to the wiki regarding propCopy (http://avisynth.nl/index.php/Internal_functions#propCopy) (which is current for 3.7.1).

Reel.Deel
9th February 2023, 22:33
although this hasn't yet made it to the wiki regarding propCopy (http://avisynth.nl/index.php/Internal_functions#propCopy) (which is current for 3.7.1).

Wiki probably will not be updated (at least by me or pinterf) but there will be a link to the corresponding readthedocs page when ever it becomes available. I have 50% of the syntax pages done and includes up-to-date docs.

https://i.ibb.co/XpVtRGk/avs-propcopy.png

Fjord
10th February 2023, 01:20
... but there will be a link to the corresponding readthedocs page when ever it becomes available. I have 50% of the syntax pages done and includes up-to-date docs.

Thanks Reel.Deel. Your revisions and editing of readthedocs are terrific and is greatly appreciated.

Fjord
10th February 2023, 09:12
@Reel.Deel, does Sphinx have a "history" or "recent changes" function, to show what the latest updates are to readthedocs?

I cannot find your above update of the propCopy documentation in readthedocs (https://avisynthplus.readthedocs.io/en/latest/index.html). Where should I be looking? Or is this an offline change, yet to be merged into the online version?

Reel.Deel
10th February 2023, 09:19
It's on my hard drive :p ... The readthedocs automatically updates anytime there are changes so if you don't see a particular page there, it's yet to be finished. Hopefully I'll finish it in the coming week or so.

kedautinh12
12th February 2023, 02:59
AviSynthPlus r3912 clang build
https://gitlab.com/uvz/AviSynthPlus-Builds

jpsdr
12th February 2023, 09:59
This r3912 version broke high bit format, the following script: SetMemoryMax(192)
AviSource("Dark_Crystal_HDR_16b.avi")
ConverttoYUV444()
doesn't work anymore :(, my avi file is utvideo yuv422p10le.

The AvisynthPlus_3.7.3_20230118_test3 is working.

kedautinh12
12th February 2023, 12:26
This r3912 version broke high bit format, the following script: SetMemoryMax(192)
AviSource("Dark_Crystal_HDR_16b.avi")
ConverttoYUV444()
doesn't work anymore :(, my avi file is utvideo yuv422p10le.

The AvisynthPlus_3.7.3_20230118_test3 is working.

You can create issue here:
https://gitlab.com/uvz/AviSynthPlus-Builds/-/issues

Reel.Deel
12th February 2023, 18:48
This r3912 version broke high bit format, the following script: SetMemoryMax(192)
AviSource("Dark_Crystal_HDR_16b.avi")
ConverttoYUV444()
doesn't work anymore :(, my avi file is utvideo yuv422p10le.

The AvisynthPlus_3.7.3_20230118_test3 is working.

In what way did it break? What is the error message?

Just 3 hours ago pinterf merged this PR: https://github.com/AviSynth/AviSynthPlus/pull/332

All of that has been a work-in-progress in the last few weeks. There has not been any user related changes added ever since pinterf's test release (aside from "Text"). All has been internal API stuff and documentation.

I guess wait for a new release that includes the changes from today. If the problem still continues then open up an issue on Github.

Fjord
12th February 2023, 23:58
I was having difficulty with array arguments to a user function I was working on. So I tried the demo script showing an example use of array arguments in a user function. No wonder I was having issues - the demo script throws an error on the example for array arguments! (I am running v3.7.3 test3 r3835 in latest AvsPMod).

The demo script comes from the 9 feb 2023 readme_history.txt, lines 1841-1886, at
https://github.com/AviSynth/AviSynthPlus/blob/master/distrib/Readme/readme_history.txt
The same demo script is used in the 4th Example section in readthedocs page on Arrays:
https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/script_ref/script_ref_arrays.html

The error message (in AvsPMod) is:
Script error: Invalid arguments to function 'FirstNSum'
(C:\Users\...\...\test Array examples.avs, line 25)

The error is fixed by putting quotes on the argument names in the function definition, and using the parameter names in the function call.

In my own code, I experienced weird errors when trying array arguments to a user function for the first time -- they were named arguments, but I omitted the names= in the function call. It took quite a while to debug -- which was just to use all argument names in the function call, which included an array argument.

If this is not a bug, then the requirement to always use argument names when calling functions with array arguments needs to be highlighted in the Array documentation.

Here is the demo script from readme_history.txt, with comments showing the necessary corrections on two lines - call to FirstNSum() function, and the function definition.

ColorBars()
clip=last
a = [[1,2],[3,4]]
aa = [1]
b = a[1,1] + ArrayGet(a, 1,0) + aa[0]

empty_array = []
empty_array_2 = empty_array
#n3 = empty_array_2.ArrayGet(0) # array index out out range error!

black_yuv_16 = [0,32768,32768]
grey_yuv_16 = [32768,32768,32768]
white_yuv_16 = [65535,32768,32768]
aSelectColors = [\
["black", black_yuv_16],\
["grey", grey_yuv_16],\
["white",white_yuv_16],\
["empty",empty_array]\
]
test_array = [99, 1.0, "this is a string"] # mixed types
test_array2 = [199, 2.0, "This is a string"]

n = ArraySize(test_array) # 3
n2 = ArraySize(empty_array_2) # 0
sum = FirstNSum(grey_yuv_16,2) # --> sum = FirstNSum(x=grey_yuv_16,n=2)
b = b

clip = clip.Text(e"Array size = " + String(n) +\
e"\n Empty array size = " + String(n2) +\
e"\n sum = " + String(sum) +\
e"\n b = " + String(b) +\
e"\n white_yuv_16[1]=" + String(aSelectColors["white"][1]) + \
e"\n [0]=" + String(ArrayGet(test_array,0)) + \
e"\n [1]=" + String(ArrayGet(test_array,1)) + \
e"\n [2]=" + ArrayGet(test_array,2), lsp=0, bold=true, font="info_h")

return clip

function FirstNSum(array x, int n) { # --> function FirstNSum(array "x", int "n") {
a = 0
for (i=0, x.ArraySize()-1) {
a = a + x[i]
}
return a
}

jpsdr
13th February 2023, 18:35
In what way did it break?

I can't open the avs file in Virtualdub2 anymore.

What is the error message?

Unknow or unsupported video format.

pinterf
16th February 2023, 12:40
Without being able to test jpsdr's issue:
Test build 4:
Avisynth+ 3.7.3 test 4 (20230216) (https://drive.google.com/uc?export=download&id=1sBZfhWjE-27HQ20Ok7Uhtk8HSRyyGt5y)

FranceBB
16th February 2023, 15:56
Just like Test3, Test4 also doesn't work on Windows XP x86 due to 2 missing functions in the kernel: GetLocaleInfoEx and GetFileInformationByHandleEx

https://i.imgur.com/pMLIjeQ.png

pinterf
16th February 2023, 16:22
Just like Test3, Test4 also doesn't work on Windows XP x86 due to 2 missing functions in the kernel: GetLocaleInfoEx and GetFileInformationByHandleEx

I have double checked the option now. I don't know what happens.

pinterf
16th February 2023, 16:29
Test2 is still running fine for you?

pinterf
16th February 2023, 16:51
Test2 is still running fine for you?
Answering to myself :)
No. Test2 should not work either. Contains
493 (0x000001ed), GetFileInformationByHandleEx, C:\WINDOWS\SysWOW64\kernel32.dll
instead of
492 (0x000001ec), GetFileInformationByHandle, C:\WINDOWS\SysWOW64\kernel32.dll

FranceBB
16th February 2023, 17:46
I have double checked the option now. I don't know what happens.

Uhmmm weird.

Test2 is still running fine for you?

Actually no, I originally skipped Test2 'cause I forgot back then, but I downloaded it now and it has the same two missing functions.


No. Test2 should not work either.

Correct. I just tested it and it doesn't work.

Just to recap, if I remember correctly XP support is given by:

- Setting v141_xp
- Using /Z:threadsafeinit
- Ticking the "Support XP" checkbox in CMake

Were all those done?
I remember we had a very similar issue when you merged part of Avisynth Neo into Avisynth+ but was later solved.

pinterf
17th February 2023, 09:50
Great. Uninstalled v141_xp support from Visual Studio 2022. Then reinstalled.
Now the generated DLL seems good, at least I can see GetFileInformationByHandle and no GetFileInformationByHandleEx.
I'm gonna arrange another build soon.

FranceBB
17th February 2023, 12:50
Gotcha. Thanks! :)
I look forward to it.

pinterf
17th February 2023, 13:29
Here you are. XP forever (or not). :)
For our young members: https://en.wikipedia.org/wiki/Windows_XP

Avisynth+ 3.7.3 test 5 (20230217) (https://drive.google.com/uc?export=download&id=1WoLyY55YqfvB3PPP-pIs0GuDlbN6-zBm)

All-in-one changes since 3.7.2

20230216 3.7.3 WIP
------------------
- Bump AviSynth interface version to 10.0
- Add avs_video_frame_get_pixel_type and avs_video_frame_amend_pixel_type to C interface as well
- Fix (#327) Histogram "color2" markers. Fix right shifted 15 degree dots, fix square for bits>8
- Feature (#317): (V10 interface) The color format of a VideoFrame can now be retrieved with its GetPixelType()
function. Before, there was no reliable way of knowing it on a frame from propGetFrame().
The internally stored pixel_type in VideoFrame is properly converted upon a Subframe (Y8-32), SubframePlanar (strip alpha).
- Feature (#317): (V10 interface) added ``VideoFrame::AmendPixelType`` and ``avs_video_frame_amend_pixel_type``.
Introduced in order to keep VideoInfo and VideoFrame pixel_type synchronized for special cases:
when filter constructor would just change ``VideoInfo::pixel_type``, but the frame would be passed w/o any change, like in ``ConvertFromDoubleWidth`` or ``CombinePlanes``.
- Feature (#314): Added AVSValue::GetType()
Returns an AvsValueType enum directly, one can use it instead of calling all IsXXX functions to establish the type. (Rust use case)
- "Text" new parameter: "placement" for chroma location hint
- Used in subsampled YUV formats, otherwise ignored.
- Valid values for "placement" are the same as in ChromaInPlacement and
ChromaOutPlacement in the Convert functions.
- Meaningful values: "center", "left", "auto" at the moment
- Default value is
- read from "_ChromaLocation" frame property, otherwise "left"
- override or set from "placement" parameter if parameter is other than "auto"
- if "auto" + have frame property -> use frame property
- if "auto" + no frame property -> use "left"
- no frame property and no parameter -> use "left"
- Only "center" and "left" is implemented. (center is known as jpeg or mpeg1, left is known as mpeg2)
If "center" is given directly or read from frame property, it will be used.
Otherwise "Text" renders chroma as "left" (mpeg2)
- Enhancement (#314): Gave all enums of public C++ API a name, and added DEFAULT_PLANE to AvsPlane (also in C API).
- Fix (#314): Changed NewVideoFrameP() property source argument to const in accordance with copyFrameProps(), since it's not meant to be written
Fixed in C interface as well: avs_new_video_frame_p and avs_new_video_frame_p_a: prop_src argument now const (no change in use)
- Enhancement (#314): Made VideoFrameBuffer destructor public like in other classes of the public API to prevent compiler errors downstream when calling non-const member functions
- "Text": Almost fully rewritten.
(#310) Support any width of bdf fonts (but still of fixed width)
Render in YUY2 is as nice as in YV16
Halo is not limited to original character matrix boundaries
Halo is not character based, but rendered on the displayed string as a whole.
Some speed enhancements, mainly for subsampled formats and outlined (with halo) styles
- Enhancement (#315): Show exception message as well if a v2.6-style plugin throws AvisynthError in its
AvisynthPluginInit3() instead of only "'xy.dll' cannot be used as a plugin for AviSynth."
- "Text": draw rightmost on-screen character even if only partially visible (was: not drawn at all)
- "Text": support more from the BDF standard (issue #310): per-character boundary boxes and shifts
- "Text" (#310): support 17-32 pixel wide external BDF fonts (issue #310)
- Fix: "Text" filter negative x or y coordinates (e.g. 0 instead of -1)
- Fix: "Text" filter would omit last character when x<0
- Fix: "Text" halo_color needs only MSB=$FF and not the exact $FF000000 constant for fade
- "Text" ``halo_color`` allows to have both halo and shaded background when halo_color MSB=$FE
- "Text" much nicer rendering of subsampled formats (#308)
- Address Issue #305: Support for non-decorated avisynth_c_plugin_init in 32 bit C-plugins
- Huge documentation update by Real-Deal
- Fix (#304): ColorYUV analyze=true was displaying wrong min-max values for YUY2
- Fix: C API undefined behavior when upstream throw runtime error
- Mute compilation warnings in avisynth.h
- CMakeLists.txt: fix clang-cl/intel with ninja generator
- Fix (#293): "Text" to throw proper error message if the specified font name (e.g. Arial) is not found among internal bitmap fonts.
- Fix (#293): "Subtitle" and "Text" filter to respect the explicitely given coorditanes for y=-1 or x=-1,
instead of applying vertical/horizontal center alignment.
- CMakeLists.txt: add support for Intel C++ Compiler 2022
- Fix: C interface avs_prop_get_data behave like C++ counterpart. Interim version for this fix is 9.2
- Fix: C interface crash when using avs_new_video_frame_p(_a)
- Fix (#283): broken runtime functions min/max/minmaxdifference when threshold is not 0 (returned -1). Regression in 3.7.2
- New: add a sixth array element to PlaneMinMaxStats: average. Defines variable "PlaneStats_average" as well if setting variables is required.
- Fix (#282): ConvertToRGB
- do check for exact 8 or 16 bit input, because packed RGB formats exist only for 8 and 16 bits
- keep alpha for RGBA planar - convert RGBAP8/16 to RGB32/64, while RGBP8/16 is still RGB24/48

FranceBB
17th February 2023, 14:40
Works like a charm! :D

https://i.imgur.com/JVl0SDD.png

XP forever (or not). :)


You know, we do actually have a group on Skype called "Windows XP Forever" with lots of members from the community which is still alive and kicking ;)

https://i.imgur.com/v8wRY0Z.png

Anyway, so far so good, thanks Ferenc, as always! ;)

https://i.imgur.com/xYt5vwk.png

kedautinh12
17th February 2023, 14:42
"Windows XP Forever" will make XP ver still update beside newer windows??

FranceBB
17th February 2023, 14:47
"Windows XP Forever" will make XP ver still update beside newer windows??

Yes, it's "forever" right in the name LMAO
Jokes aside, by the way, you should know that Avisynth 2.6.1 released in 2016 was still Windows98SE compatible, never mind XP hahahahaha

ryrynz
18th February 2023, 04:25
All-in-one changes since 3.7.2


Still crashing for me, narrowed down things as much as I think I can do.

ffdshow added as an external filter in media player - Avisynth box ticked in ffdshow, blank code in the code box (no filters loaded at all), YV12 ticked in ffdshow as input colorspace, that's it.

Windows 11 22H2, i5 10400F 16GB.

poisondeathray
18th February 2023, 04:35
20230216 3.7.3 WIP
------------------
- Huge documentation update by Real-Deal


Should be "Reel.Deel" ?