View Full Version : AVSMeter 3.0.9.0
Pages :
1
2
3
4
5
6
[
7]
8
9
StainlessS
24th May 2020, 12:41
OK, then was Pinterf, but see above edit.
EDIT: "above edit"
"This function is Beta" perhaps refers the the AvsPMod function rather than grunt functions.
real.finder
24th May 2020, 12:42
Avisynth throws that error when there are too many plugins in the auto-load directory.
better say when too many plugins used in the same time, you will not get any problem if you have like 9999 plugin in your autoload in Avisynth (not Avisynth+), but you will get that error when your encode script use 50 plugins or more
Groucho2004
24th May 2020, 13:05
better say when too many plugins used in the same time, you will not get any problem if you have like 9999 plugin in your autoload in Avisynth (not Avisynth+), but you will get that error when your encode script use 50 plugins or moreCan you re-phrase that?
real.finder
24th May 2020, 13:14
Can you re-phrase that?
Avisynth has advance in this case since it unload the plugin after scan it from autoload folder https://forum.doom9.org/showpost.php?p=1641891&postcount=10
avs+ is not (don't know why it removed/changes) and in avs+ if you have many plugins in autoload folder you will not get "too many plugins loaded already (max. 50)" but you will get "Platform returned code 1114:A dynamic link library (DLL) initialization routine failed" even if you use one filter in your encode script! since avs+ not unload any plugin that in autoload see here https://github.com/pinterf/AviSynthPlus/issues/11 (the 3rd one)
Groucho2004
24th May 2020, 13:50
Avisynth has advance in this case since it unload the plugin after scan it from autoload folder https://forum.doom9.org/showpost.php?p=1641891&postcount=10
avs+ is not (don't know why it removed/changes) and in avs+ if you have many plugins in autoload folder you will not get "too many plugins loaded already (max. 50)" but you will get "Platform returned code 1114:A dynamic link library (DLL) initialization routine failed" even if you use one filter in your encode script! since avs+ not unload any plugin that in autoload see here https://github.com/pinterf/AviSynthPlus/issues/11 (the 3rd one)AVSMeter loads 40 plugins max., checks them and then deletes the IScriptEnvironment before creating a new one for the next 40. So, I can't do anything about that error message. It shouldn't even appear, I think.
real.finder
24th May 2020, 14:02
AVSMeter loads 40 plugins max., checks them and then deletes the IScriptEnvironment before creating a new one for the next 40. So, I can't do anything about that error message. It shouldn't even appear, I think.
I think it's from my side since I made some method to load avs 2.6 plugins from subfolder since I made the autoload work even for avs 2.5 and for avs 2.6 another plugins will be load from subfolder to overload the 2.6 one and that eat from 50 plugins limit since it done with loadplugin()
maybe add some Switch to control that "AVSMeter loads plugins max"?
Groucho2004
24th May 2020, 14:24
thanks! it work
[Plugin errors/warnings]
_______________________________________________________________________________________________________
Duplicate function in "SCRIPTS\Cdeblend.avsi":
"min"
_______________________________________________________________________________________________________
Duplicate function in "SCRIPTS\ConditionalSmoothBob.avsi":
"function ConditionalVideoSo"
_______________________________________________________________________________________________________
Duplicate function in "SCRIPTS\ConditionalSmoothBob.avsi":
"function ConditionalVideoSo"
_______________________________________________________________________________________________________
Duplicate function in "SCRIPTS\HQDeringmod.avsi":
"tion YtoYUV_Ge"
_______________________________________________________________________________________________________
Duplicate function in "SCRIPTS\HQDeringmod.avsi":
"Function GetCSP_"
_______________________________________________________________________________________________________
Duplicate function in "SCRIPTS\restore24.avsi":
"Evaluate"
_______________________________________________________________________________________________________
Duplicate function in "SCRIPTS\restore24.avsi":
"m4"
_______________________________________________________________________________________________________
Duplicate function in "SCRIPTS\SAA.avsi":
"SAA"
_______________________________________________________________________________________________________
Duplicate function in "SCRIPTS\Signs_Overlay.avsi":
"sign"
_______________________________________________________________________________________________________
Duplicate function in "SCRIPTS\TGMCmod.avsi":
"VCRep"
_______________________________________________________________________________________________________
Duplicate function in "SCRIPTS\Zs_RF_Shared.avsi":
"SharpAAMCmod"
_______________________________________________________________________________________________________
but not perfect
ChaosKing idea about mentions the scripts with duplicate functions is good
Try this (http://www.mediafire.com/file/kh4kr9jufs5kz23/3.0.0.1.7z/file) build. Proper grouping by function name will be done later. Right now it's just about functionality.
Groucho2004
24th May 2020, 14:27
maybe add some Switch to control that "AVSMeter loads plugins max"?It's already limited to 40 max. Not sure how to explain it otherwise. If you use lots of Loadplugin() in your avsi files, there's nothing I can do about it. :confused:
real.finder
24th May 2020, 14:33
It's already limited to 40 max. Not sure how to explain it otherwise. If you use lots of Loadplugin() in your avsi files, there's nothing I can do about it. :confused:
I mean Switch to make the limit let's say 30 or even 10, it will help in my case, or even remove it in case of avs+
Groucho2004
24th May 2020, 14:36
I mean Switch to make the limit let's say 30 or even 10, it will help in my case, or even remove it in case of avs+You mean simply stop loading plugins or make the interval smaller?
real.finder
24th May 2020, 14:39
Try this (http://www.mediafire.com/file/kh4kr9jufs5kz23/3.0.0.1.7z/file) build. Proper grouping by function name will be done later. Right now it's just about functionality.
that work! thanks :thanks:
real.finder
24th May 2020, 14:43
make the interval smaller?
yes, it's 40 by Default now and new Switch to set the limit by user (the max allowed is 50 since it what normal avs has) and in avs+ it can be set to 0 (mean no limit)
Groucho2004
24th May 2020, 15:38
yes, it's 40 by Default now and new Switch to set the limit by user (the max allowed is 50 since it what normal avs has) and in avs+ it can be set to 0 (mean no limit)Try this build (http://www.mediafire.com/file/qgmj55fzrpfkxj6/3.0.0.2.7z/file). There's a new ini setting "LoadPluginInterval". Valid values are from 1 to 49.
real.finder
24th May 2020, 15:47
Try this build (http://www.mediafire.com/file/qgmj55fzrpfkxj6/3.0.0.2.7z/file). There's a new ini setting "LoadPluginInterval". Valid values are from 1 to 49.
that did it! thanks
Groucho2004
24th May 2020, 15:53
that did it! thanksSo, what did you have to set it to?
real.finder
24th May 2020, 16:20
So, what did you have to set it to?
I tried with 30 first and didn't work, then I think of 20 but for more safety I did set it to 10 in the end and it work
edit: off topic but I was think of another method that don't eat from 50 limit that much https://forum.doom9.org/showthread.php?p=1913165#post1913165 but seems StainlessS don't like it
StainlessS
24th May 2020, 17:36
but seems StainlessS don't like it
Indeed, he thinks it would be a never ending nightmare of problems [assuming that it could be persuaded to work at all].
Methinks RF, wants something like this,
Single plugin, that pretends its a whole hellova lot of other plugins, lets call this plugin Fred.
Fred is somehow given a list of dll's and paths to them, and also a list of functions contained in each of the dlls, and also parameter lists for each function,
(multiple parameter lists where function has alternate parameter lists).
Then, Fred calls AddFunction for each of the 'emulated' functions adding, once for each parameter list, and directs it to Freds own dummy/emulating/Intercepting function or filter creator function.
Fred's dummy Intercepting function is called via some user script function without it knowing that it is not the real intended function/filter.
But, Fred is impersonating the emulated functions, and the Fred intercepting function somehow detects which of the dummied functions was called,
does a LoadPlugin for the dll that contains the real dummied function, and then calls the newly loaded real function, passing
on whatever arguements were originally passed via the script function, and finally it returns the result of the real function/filter to the user script that caused all the bother in the first place
[Oh, and the dummy/emulated function and real one will have the same name.]
Purpose being to only load a dll at last moment when it is definitely gonna be in-use and not just because it could be used if different parameters were passed to the user script function.
Indeed, StainlessS don't like it, but I bet Groucho2004 would think it a 'walk in the park', easy peasy no probs at all, bet its half done already.
RF, I'm guessin' GG could do it in his sleep, maybe suggest it. :)
If you do it GG, then post source I wanna see how a real code master approaches this (which would be such an intractable problem for a newbie like myself).
Groucho2004
24th May 2020, 20:15
but I bet Groucho2004 would think it a 'walk in the park', easy peasy no probs at all, bet its half done already.Nope. :eek:
Groucho2004
25th May 2020, 19:50
v3.0.0.3
- Refined/fixed function duplicate check
FranceBB
25th May 2020, 21:48
Woah, I've got a massive list of duplicates:
[Plugin errors/warnings]
________________________________________________________________________________
________
Function duplicates:
"acos" : "[InternalFunction]"
"Acos" : "[PluginFunction]"
"asin" : "[InternalFunction]"
"Asin" : "[PluginFunction]"
"atan2" : "[InternalFunction]"
"Atan2" : "[PluginFunction]"
"atan" : "[InternalFunction]"
"Atan" : "[PluginFunction]"
"AverageChromaU" : "[InternalFunction]"
"AverageChromaU" : "[PluginFunction]"
"AverageChromaV" : "[InternalFunction]"
"AverageChromaV" : "[PluginFunction]"
"AverageLuma" : "[InternalFunction]"
"AverageLuma" : "[PluginFunction]"
"ChromaUDifference" : "[InternalFunction]"
"ChromaUDifference" : "[PluginFunction]"
"ChromaVDifference" : "[InternalFunction]"
"ChromaVDifference" : "[PluginFunction]"
"ConditionalFilter" : "[InternalFunction]"
"ConditionalFilter" : "[PluginFunction]"
"FFFormatTime" : "C:\Programmi\AviSynth+\plugins+\FFMS2.avsi"
"FFFormatTime" : "C:\Programmi\AviSynth\plugins\Stabilization Tools Pack v2.1.av
si"
"FrameEvaluate" : "[InternalFunction]"
"FrameEvaluate" : "[PluginFunction]"
"LumaDifference" : "[InternalFunction]"
"LumaDifference" : "[PluginFunction]"
"m4" : "C:\Programmi\AviSynth\plugins\Dehalo_alpha_MT2.avsi"
"m4" : "C:\Programmi\AviSynth\plugins\GrainFactory3mod_v1.2.avsi"
"MinBlur" : "C:\Programmi\AviSynth\plugins\blurH.avsi"
"MinBlur" : "C:\Programmi\AviSynth\plugins\MCBob.avsi"
"MinBlur" : "C:\Programmi\AviSynth\plugins\SMDegrain.avsi"
"MinBlur" : "C:\Programmi\AviSynth\plugins\TemporalDegrain.avsi"
"RGBDifferenceFromPrevious" : "[InternalFunction]"
"RGBDifferenceFromPrevious" : "[PluginFunction]"
"RGBDifferenceToNext" : "[InternalFunction]"
"RGBDifferenceToNext" : "[PluginFunction]"
"RGBDifference" : "[InternalFunction]"
"RGBDifference" : "[PluginFunction]"
"ScriptClip" : "[InternalFunction]"
"ScriptClip" : "[PluginFunction]"
"UDifferenceFromPrevious" : "[InternalFunction]"
"UDifferenceFromPrevious" : "[PluginFunction]"
"UDifferenceToNext" : "[InternalFunction]"
"UDifferenceToNext" : "[PluginFunction]"
"UPlaneMax" : "[InternalFunction]"
"UPlaneMax" : "[PluginFunction]"
"UPlaneMedian" : "[InternalFunction]"
"UPlaneMedian" : "[PluginFunction]"
"UPlaneMinMaxDifference" : "[InternalFunction]"
"UPlaneMinMaxDifference" : "[PluginFunction]"
"UPlaneMin" : "[InternalFunction]"
"UPlaneMin" : "[PluginFunction]"
"VDifferenceFromPrevious" : "[InternalFunction]"
"VDifferenceFromPrevious" : "[PluginFunction]"
"VDifferenceToNext" : "[InternalFunction]"
"VDifferenceToNext" : "[PluginFunction]"
"VinverseD" : "C:\Programmi\AviSynth\plugins\MCBob.avsi"
"VinverseD" : "C:\Programmi\AviSynth\plugins\VinverseD.avsi"
"VPlaneMax" : "[InternalFunction]"
"VPlaneMax" : "[PluginFunction]"
"VPlaneMedian" : "[InternalFunction]"
"VPlaneMedian" : "[PluginFunction]"
"VPlaneMinMaxDifference" : "[InternalFunction]"
"VPlaneMinMaxDifference" : "[PluginFunction]"
"VPlaneMin" : "[InternalFunction]"
"VPlaneMin" : "[PluginFunction]"
"WriteFileIf" : "[InternalFunction]"
"WriteFileIf" : "[PluginFunction]"
"WriteFile" : "[InternalFunction]"
"WriteFile" : "[PluginFunction]"
"YDifferenceFromPrevious" : "[InternalFunction]"
"YDifferenceFromPrevious" : "[PluginFunction]"
"YDifferenceToNext" : "[InternalFunction]"
"YDifferenceToNext" : "[PluginFunction]"
"YPlaneMax" : "[InternalFunction]"
"YPlaneMax" : "[PluginFunction]"
"YPlaneMedian" : "[InternalFunction]"
"YPlaneMedian" : "[PluginFunction]"
"YPlaneMinMaxDifference" : "[InternalFunction]"
"YPlaneMinMaxDifference" : "[PluginFunction]"
"YPlaneMin" : "[InternalFunction]"
"YPlaneMin" : "[PluginFunction]"
________________________________________________________________________________
________
"C:\Programmi\AviSynth\plugins\defreq.dll" requires the FFTW library for some fu
nctions.
Note: 'fftw3.dll' (aka 'libfftw3f-3.dll') can be downloaded here:
http://www.fftw.org/install/windows.html
'fftw3.dll' should be placed in "System32" and/or "SysWoW64"
________________________________________________________________________________
________
First of all, it's looking for fftw3.dll and it says that it's not there, however in my C:\WINDOWS\system32 there's libfftw3f-3.dll and in fact I can use filters like dfttest, FFT3D etc which I couldn't use otherwise, so I don't know why it didn't find it. As to the other duplicates, are they legit? Did I forget to update something and I have a hell of conflicting functions now? Should I remove/update something?
Full report: https://pastebin.com/YX5960dX
Thank you in advance,
Frank.
StainlessS
25th May 2020, 22:09
libfftw3f-3.dll is the original file, some pluggers decided that they liked the name fftw3.dll better (FFT3DFilter originally came with a similar named dll),
more recently some plugs were modified to look for either name.
So, some accept either name, and the remainder one or other alternative names.
Just make a copy and rename it.
Many of your dupes (runtime environment types, eg AverageLuma) are probably from Grunt. [where grunt re-implements with additional Offset arg,
also Scriptclip type filters, where grunt adds "Local" and "Args" args.
The 'atan' etc stuff maybe from plugin that implements math functions prior to v2.60 where they became builtin.
qyot27
25th May 2020, 22:28
That's actually the difference in convention between Windows-style DLL names (fftw3.dll) and Unix/MinGW-style DLL names (libfftw3f-3.dll). It probably depends on what sort of environment the plugin was being developed under at the time; in most cases, the MinGW-built libraries just retain their existing Unix-y name format, unless there's outside pressure to adhere to the Windows name style. Case in point: if it wasn't for some of the logic I'd added into the CMakeLists.txt, even AviSynth+ would, if built with MinGW-w64/GCC, be named 'libavisynth.dll' (that convention being what it is, on non-Windows OSes it is installed as libavisynth.soš, and 'libavisynth.so' is what FFmpeg searches for to load it).
šactually, as libavisynth.so.X.X.X (where X.X.X is the version number), with symlinks named libavisynth.so.Y (where Y is the AVISYNTH_INTERFACE_VERSION) and libavisynth.so. It's one thing that allows Linux, et al., to have multiple versions of the library installed at the same time and actually be able to use any/all of them effectively if need be.
Groucho2004
25th May 2020, 22:37
Full report: https://pastebin.com/YX5960dXPlease use the switch "-lf" in combination with avsinfo and post the log again. That's just for me to double check if the dup functions are working OK.
FranceBB
26th May 2020, 20:56
Please use the switch "-lf" in combination with avsinfo and post the log again. That's just for me to double check if the dup functions are working OK.
Sure. There you go:
AvsMeter.exe Avsinfo -lf -log
pause
Link: https://pastebin.com/pgAMR44R
libfftw3f-3.dll is the original file, some pluggers decided that they liked the name fftw3.dll better (FFT3DFilter originally came with a similar named dll),
more recently some plugs were modified to look for either name.
So, some accept either name, and the remainder one or other alternative names.
Just make a copy and rename it.
I see!
So I can just copy it and rename it to make it work with every program. Got it!
Many of your dupes (runtime environment types, eg AverageLuma) are probably from Grunt. [where grunt re-implements with additional Offset arg,
also Scriptclip type filters, where grunt adds "Local" and "Args" args.
The 'atan' etc stuff maybe from plugin that implements math functions prior to v2.60 where they became builtin.
Oh, I see...!
For the first part, yes, it's definitely Grunt.dll.
That's actually the difference in convention between Windows-style DLL names (fftw3.dll) and Unix/MinGW-style DLL names (libfftw3f-3.dll).
Got it. So libfftw3f-3 is the Linux name and fftw3 is the Windows name depending on which platform it was compiled.
Groucho2004
26th May 2020, 21:26
Sure. There you go:
AvsMeter.exe Avsinfo -lf -log
pause
Link: https://pastebin.com/pgAMR44RThanks. Everything seems to be reported correctly. In the log file you can figure out the plugin name by searching for the function. For example:
"atan" : "[InternalFunction]"
"Atan" : "[PluginFunction]"
First search hit is the internal function, second is "ArcFuns_Atan". "ArcFuns.dll" is the plugin that also has that function.
Groucho2004
26th May 2020, 22:27
v3.0.0.4
- Updated libcpuid
New libcpuid features:
Support for Hygon Dhyana
Support for Zen 2
Support for Intel AVX512VNNI detection
Support for Cannon Lake
Support for Coffee Lake-U and Coffee Lake Refresh
Support for Comet Lake
Support for Ice Lake
Support for Renoir
Support for Ivy Bridge-E (Xeon)
Support for RDSEED/ADX/SHA_NI detection (AMD)
Support for ABM/AVX512VBMI/AVX512VBMI2 detection (Intel)
"Hygon Dhyana" sounds like an ancient, mythological sea monster.
FranceBB
26th May 2020, 22:38
Thanks. Everything seems to be reported correctly. In the log file you can figure out the plugin name by searching for the function. For example:
"atan" : "[InternalFunction]"
"Atan" : "[PluginFunction]"
First search hit is the internal function, second is "ArcFuns_Atan". "ArcFuns.dll" is the plugin that also has that function.
Got it. :) Thanks for this and thank you for the new version as well, although I don't have any of these new CPUs nor AVX512 support, so...
baka1
28th May 2020, 14:18
OK I have an embarrassing number of duplicate functions.
https://pastebin.com/PywdKmgm
I'm seeing a lot of clashes between:
AnimeIVTC.avsi
Zs_RF_Shared.avsi and
SMDegrain.avsi
do I pick one and delete the others?
Groucho2004
28th May 2020, 14:31
OK I have an embarrassing number of duplicate functions.
https://pastebin.com/PywdKmgm
I'm seeing a lot of clashes between:
AnimeIVTC.avsi
Zs_RF_Shared.avsi and
SMDegrain.avsi
do I pick one and delete the others?Not sure, real_finder knows much more about these scripts.
real.finder
28th May 2020, 14:37
OK I have an embarrassing number of duplicate functions.
https://pastebin.com/PywdKmgm
I'm seeing a lot of clashes between:
AnimeIVTC.avsi
Zs_RF_Shared.avsi and
SMDegrain.avsi
do I pick one and delete the others?
update your scripts!
real.finder
13th June 2020, 00:48
seems there are only one
AVSDLL=
in AVSMeter.ini
isn't better if there are 2 one for 32 and another for 64?
Groucho2004
13th June 2020, 09:02
seems there are only one
AVSDLL=
in AVSMeter.ini
isn't better if there are 2 one for 32 and another for 64?Yes, that makes sense. However, I decided to create two separate ini files, one for x86 and one for x64.
Groucho2004
13th June 2020, 14:07
v3.0.1.0
Updated GPU-Z interface (some sensor names changed in v2.32.0)
AVSMeter 32 bit and 64 bit now have each an .ini file (AVSMeter.ini / AVSMeter64.ini)
real.finder
13th June 2020, 16:12
v3.0.1.0
Updated GPU-Z interface (some sensor names changed in v2.32.0)
AVSMeter 32 bit and 64 bit now have each an .ini file (AVSMeter.ini / AVSMeter64.ini)
even better, thanks
Groucho2004
23rd June 2020, 13:30
v3.0.2.0
Cosmetics
Suppress report of duplicate functions from the GrunT plugin
gispos
23rd June 2020, 16:31
Suppress report of duplicate functions from the GrunT plugin
I had already thought of something like that, but what happens when the grunt.dll is loaded twice? Then I don't find out?
I have a folder structure in my plugin folder and sometimes load my Dll's via scripts. It is clearer for me, but it is also easier to accidentally load a DLL twice.
Is there a switch for that? Because the one who now knows with the grunt.dll can do without this option.
Another question, is it just a simple comparison or is it counted. So how often a function exists.
Groucho2004
23rd June 2020, 16:47
I had already thought of something like that, but what happens when the grunt.dll is loaded twice? Then I don't find out?I'm quite sure that Avisynth won't load a DLL twice. However, I'll have to look at the code in Avisynth's PluginManager.cpp to be certain.
Is there a switch for that? Because the one who now knows with the grunt.dll can do without this option.Not sure what you mean. Can you elaborate?
Another question, is it just a simple comparison or is it counted. So how often a function exists.They are not counted.
StainlessS
23rd June 2020, 17:05
LoadPlugin, Plugin only loaded once
https://forum.doom9.org/showthread.php?p=1913282#post1913282
gispos
23rd June 2020, 18:08
LoadPlugin, Plugin only loaded once
https://forum.doom9.org/showthread.php?p=1913282#post1913282
Didn't know, ok
Not sure what you mean. Can you elaborate?
If the dll are not loaded twice, the switch is then not required.
StainlessS
23rd June 2020, 20:49
Mind you, I did not test what happens if same Plugin is loaded from two different locations.
StainlessS
23rd June 2020, 21:34
Using stuff from here:- https://forum.doom9.org/showthread.php?p=1913282#post1913282
Function Testing(String s,String PlugName) {
RT_DebugF("Testing: '%s' : %s",s,PlugName)
LoadPlugin(PlugName)
Return TestPlug()
}
BlankClip
A = ".\A\TestPlug_x86.dll"
B = ".\B\TestPlug_x86.dll"
Testing("Call 1A",A)
Testing("Call 1B",B)
Testing("Call 2A",A)
Testing("Call 2B",B)
Testing("Call 3A",A)
Testing("Call 3B",B)
return last
Result
00000085 0.21798582 [3912] RT_DebugF: Testing: 'Call 1A' : .\A\TestPlug_x86.dll
00000086 0.21906298 [3912] TestPlug: AvisynthPluginInit3 Calling env->AddFunction # Installing from A path
00000087 0.21917965 [3912] TestPlug: AvisynthPluginInit3 returning to Avisynth
00000088 0.21924704 [3912] TestPlug: Returning 42 # 42 = result from A plugin
00000089 0.21935573 [3912] RT_DebugF: Testing: 'Call 1B' : .\B\TestPlug_x86.dll
00000090 0.22192673 [3912] TestPlug: AvisynthPluginInit3 Calling env->AddFunction # Installing from B path
00000091 0.22204122 [3912] TestPlug: AvisynthPluginInit3 returning to Avisynth
00000092 0.22211586 [3912] TestPlug: Returning 66 # 66 = result from B plugin
00000093 0.22221912 [3912] RT_DebugF: Testing: 'Call 2A' : .\A\TestPlug_x86.dll # Install Ignored, already installed for A path
00000094 0.22229992 [3912] TestPlug: Returning 66 # 66 = result from B plugin
00000095 0.22239883 [3912] RT_DebugF: Testing: 'Call 2B' : .\B\TestPlug_x86.dll # Install Ignored, already installed for B path
00000096 0.22247854 [3912] TestPlug: Returning 66 # 66 = result from B plugin
00000097 0.22257710 [3912] RT_DebugF: Testing: 'Call 3A' : .\A\TestPlug_x86.dll # Install Ignored, already installed for A path
00000098 0.22266115 [3912] TestPlug: Returning 66 # 66 = result from B plugin
00000099 0.22276007 [3912] RT_DebugF: Testing: 'Call 3B' : .\B\TestPlug_x86.dll # Install Ignored, already installed for B path
00000100 0.22283868 [3912] TestPlug: Returning 66 # 66 = result from B plugin
Above, looks like new install for B path will work when already installed from A path,
Subsequent installs on either path no longer call install plug [EDIT: AddFunction], Installed plugin is the final new location plug install.
(or so it seems)
EDIT: I altered plugins so that A plugin prints 42, and B plugin prints 66, debug output re-done above.
gispos
24th June 2020, 00:05
Using stuff from here:- https://forum.doom9.org/showthread.php?p=1913282#post1913282
Function Testing(String s,String PlugName) {
RT_DebugF("Testing: '%s' : %s",s,PlugName)
LoadPlugin(PlugName)
Return TestPlug()
}
BlankClip
A = ".\A\TestPlug_x86.dll"
B = ".\B\TestPlug_x86.dll"
Testing("Call 1A",A)
Testing("Call 1B",B)
Testing("Call 2A",A)
Testing("Call 2B",B)
Testing("Call 3A",A)
Testing("Call 3B",B)
return last
Result
00000085 0.21798582 [3912] RT_DebugF: Testing: 'Call 1A' : .\A\TestPlug_x86.dll
00000086 0.21906298 [3912] TestPlug: AvisynthPluginInit3 Calling env->AddFunction # Installing from A path
00000087 0.21917965 [3912] TestPlug: AvisynthPluginInit3 returning to Avisynth
00000088 0.21924704 [3912] TestPlug: Returning 42 # 42 = result from A plugin
00000089 0.21935573 [3912] RT_DebugF: Testing: 'Call 1B' : .\B\TestPlug_x86.dll
00000090 0.22192673 [3912] TestPlug: AvisynthPluginInit3 Calling env->AddFunction # Installing from B path
00000091 0.22204122 [3912] TestPlug: AvisynthPluginInit3 returning to Avisynth
00000092 0.22211586 [3912] TestPlug: Returning 66 # 66 = result from B plugin
00000093 0.22221912 [3912] RT_DebugF: Testing: 'Call 2A' : .\A\TestPlug_x86.dll # Install Ignored, already installed for A path
00000094 0.22229992 [3912] TestPlug: Returning 66 # 66 = result from B plugin
00000095 0.22239883 [3912] RT_DebugF: Testing: 'Call 2B' : .\B\TestPlug_x86.dll # Install Ignored, already installed for B path
00000096 0.22247854 [3912] TestPlug: Returning 66 # 66 = result from B plugin
00000097 0.22257710 [3912] RT_DebugF: Testing: 'Call 3A' : .\A\TestPlug_x86.dll # Install Ignored, already installed for A path
00000098 0.22266115 [3912] TestPlug: Returning 66 # 66 = result from B plugin
00000099 0.22276007 [3912] RT_DebugF: Testing: 'Call 3B' : .\B\TestPlug_x86.dll # Install Ignored, already installed for B path
00000100 0.22283868 [3912] TestPlug: Returning 66 # 66 = result from B plugin
Above, looks like new install for B path will work when already installed from A path,
Subsequent installs on either path no longer call install plug [EDIT: AddFunction], Installed plugin is the final new location plug install.
(or so it seems)
EDIT: I altered plugins so that A plugin prints 42, and B plugin prints 66, debug output re-done above.
So it is not loaded twice.
Groucho2004, I think something is wrong with the FPS max values. I get values between 40,000 and 300,000. It would be nice if it were true. :)
https://iili.io/JQOIx1.jpg (https://freeimage.host/i/JQOIx1)
Groucho2004
24th June 2020, 02:01
Groucho2004, I think something is wrong with the FPS max values. I get values between 40,000 and 300,000. It would be nice if it were true. :)
https://iili.io/JQOIx1.jpg (https://freeimage.host/i/JQOIx1)These high max values are cache hits which you always get when using temporal filters and/or multi-threading. Use the -log switch and have a look at the performance data section in the log file, the fps values are all over the place. It's normal. The important value is the average.
gispos
24th June 2020, 15:52
Without prefetch, the values are normal. Had probably only tested without prefetch before. I thought you forgot a decimal place.:)
Groucho2004
24th June 2020, 18:16
You're not the first who misinterpreted these numbers. Andrew Swan who made a tutorial for AVSMeter also found them "behaving wonky" :):
https://youtu.be/RxXP0oNJh4Q?t=633
gispos
27th June 2020, 06:12
Would you be able to add avsinfo as parameter '-avsinfo'
By default, almost all programs pass the file name. It is laborious to start 'avsinfo', because the file name (script name) must be replaced by 'avsinfo'.
Groucho2004
27th June 2020, 10:19
By default, almost all programs pass the file name. It is laborious to start 'avsinfo', because the file name (script name) must be replaced by 'avsinfo'.
Can you elaborate on that? What programs pass file names? Also, what means "the file name (script name) must be replaced by 'avsinfo'"?
I have never used any 'GUIs' but the people who have integrated AVSMeter into their GUIs seem to be reasonably happy with how it works. AVSMeter is and always was a stand-alone program. If you want to integrate it into your GUI you have to adapt your software.
Groucho2004
12th September 2020, 16:29
v3.0.3.0
- Fixed a rounding error bug
gispos
13th September 2020, 11:58
Can you elaborate on that? What programs pass file names? Also, what means "the file name (script name) must be replaced by 'avsinfo'"?
I have never used any 'GUIs' but the people who have integrated AVSMeter into their GUIs seem to be reasonably happy with how it works. AVSMeter is and always was a stand-alone program. If you want to integrate it into your GUI you have to adapt your software.
I've only seen that now, you've changed what you wrote earlier:eek:
OK:
If I write a standard code for programs to which I pass the associated parameters and the script file name, AVSMeter falls out of the role.
If a file name is transferred (which happens as a standard format) the file name must be replaced by 'avsinfo'.
This is awkward and out of the ordinary.
It would be correct to check the parameters and if there is -avsinfo to ignore the file name.
e.g.
D:\Tools\Avisynth\AvsMeter\AvsMeter.exe -avsinfo "E:\my script.avs"
Once again:
I don't write any code for AvsMeter, because then it wouldn't matter, I write a code that should work for different tools.
But that was just a request from me.;)
Groucho2004
13th September 2020, 14:32
I've only seen that now, you've changed what you wrote earlier:eek:
OK:
If I write a standard code for programs to which I pass the associated parameters and the script file name, AVSMeter falls out of the role.
If a file name is transferred (which happens as a standard format) the file name must be replaced by 'avsinfo'.
This is awkward and out of the ordinary.
It would be correct to check the parameters and if there is -avsinfo to ignore the file name.
e.g.
D:\Tools\Avisynth\AvsMeter\AvsMeter.exe -avsinfo "E:\my script.avs"
Once again:
I don't write any code for AvsMeter, because then it wouldn't matter, I write a code that should work for different tools.
But that was just a request from me.;)
Not sure what you're getting at. There is no switch "-avsinfo", just the command "avsinfo". If you specify "avsinfo" together with a script on the command line, AVSMeter throws an error.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.