View Full Version : AVSMeter 3.0.9.0
Groucho2004
11th August 2017, 11:57
AVSMeter is a CLI (command line interface) tool which measures the speed/efficiency of Avisynth scripts and checks if Avisynth and its plugin sub-system are set up and working correctly.
Features:
"Running" scripts with virtually no overhead, displaying clip info, CPU/GPU usage / memory usage and the minimum, maximum and average frames processed per second. Measuring how fast Avisynth can serve frames to a client application (x264, VirtualDub) and establishing CPU/GPU/memory usage helps with optimizing scripts and tracking down crashes, slowdowns and bottlenecks.
Performing a thorough test of the Avisynth installation and associated plugins, checking if external dependencies are installed, etc.
Screen shots:
https://i.postimg.cc/SK1Mw062/avsmeter.png
https://i.postimg.cc/9QJR73N8/avsinfo.png
Command line usage:
AVSMeter script.avs [switches] or AVSMeter -avsinfo [switches]
Switches:
-avsinfo Displays extended Avisynth info
-info [-i] Displays clip info
-log [-l] Creates log file
-csv Creates csv file
-gpu Displays GPU/VPU usage (requires GPU-Z)
-range=first,last Sets frame range
-timelimit=n Sets time limit (seconds)
-hp Sets process priority to high
-o Omits script pre-scanning
-lf Adds internal/external functions to the avsinfo*.log file
-p Pauses the program at the end and returns after pressing a key.
Note:
For normal operation, i.e. testing the speed of a script, the "-o" switch should not be used,
otherwise the accuracy of the FPS/TPF measurements will be reduced, particularly for fast scripts.
For all features to work properly, run this program with administrative user rights.
System requirements:
Avisynth 2.6x, Avisynth+
Recent changes:
v3.0.9.0
- Updated libcpuid (Intel Rocket Lake, AMD Ryzen Milan)
Download (http://www.mediafire.com/folder/x6f7yqjufdg7c/Groucho's_Avisynth_Stuff)
GPU-Z (https://www.techpowerup.com/download/gpu-z/) (needed when using the "-gpu" switch)
Video tutorial by Andrew Swan (https://www.youtube.com/watch?v=RxXP0oNJh4Q)
lansing
11th August 2017, 13:35
Where are all the posts?
Groucho2004
11th August 2017, 13:39
Where are all the posts?
I deleted the old thread a while ago. The old posts are not really relevant any more since so many things were changed/fixed.
Groucho2004
12th August 2017, 15:51
v2.6.1
The list of plugin functions in the log file (-avsinfo -log) now points out duplicates (functions with the same name in different DLLs) by adding "[DUPLICATE]" to the function name(s)
StainlessS
13th August 2017, 04:23
v2.6.1
The list of plugin functions in the log file (-avsinfo -log) now points out duplicates (functions with the same name in different DLLs) by adding "[DUPLICATE]" to the function name(s)
Very handy, ta very much.
Groucho2004
16th August 2017, 21:24
v2.6.2
Fixed a problem caused by the 50 plugin limit in "classic" Avisynth
VS_Fan
17th August 2017, 07:53
It is flagging with the [DUPLICATE] suffix only one of the instances of duplicated functions, both in 32 and 64 bits:
32 bits: deblock_Deblock [DUPLICATE] _vs_ DGDecode_Deblock (Not flagged)
64 bits: deblock_Deblock (Not flagged) _vs_ MPEG2DecPlus64_Deblock [DUPLICATE]
It is useful this way, but could be better/clearer flagging all of the duplicated instances.
StainlessS
17th August 2017, 09:19
It is flagging with the [DUPLICATE] suffix only one of the instances of duplicated functions, both in 32 and 64 bits:
32 bits: deblock_Deblock [DUPLICATE] _vs_ DGDecode_Deblock (Not flagged)
64 bits: deblock_Deblock (Not flagged) _vs_ MPEG2DecPlus64_Deblock [DUPLICATE]
It is useful this way, but could be better/clearer flagging all of the duplicated instances.
Fair point, but perhaps DUPLICATED could be better description where flagging all instances.
Groucho2004
17th August 2017, 09:30
The duplicate detection ignores the plugin (file) name, so it just checks the "short" function names which is the whole point of this feature.
Groucho2004
9th September 2017, 11:18
v2.6.3
Fixed: Updating very old ini files didn't work
Removed report of duplicate plugin functions temporarily
Some minor fixes/cosmetics
Groucho2004
10th September 2017, 09:17
v2.6.4
New/updated code for reporting duplicate plugin functions
Reporting of duplicate plugin functions is now integrated in the "Plugin error/warnings" section and lists all plugins that export functions with the same name.
Example:
[Plugin errors/warnings]
___________________________________________________________________________________________________
Duplicate plugin function "nnedi3":
e:\apps\videotools\avisynthrepository\avsplus_x86\plugins\nnedi3.dll
e:\apps\videotools\avsplugins\autoload\nnedi3.dll
___________________________________________________________________________________________________
Duplicate plugin function "nnedi3_rpow2":
e:\apps\videotools\avisynthrepository\avsplus_x86\plugins\nnedi3.dll
e:\apps\videotools\avsplugins\autoload\nnedi3.dll
___________________________________________________________________________________________________
Cannot load file 'E:/Apps/VideoTools/AVSPlugins/AutoLoad/IBob.dll'. Platform returned code 126:
The specified module could not be found.
Dependencies that could not be loaded:
avisynth_c.dll
Note: C 2.0 Plugins are not supported by Avisynth+
___________________________________________________________________________________________________
Groucho2004
14th September 2017, 17:39
v2.6.5
Added hint for error 127 (proc not found / procedure could not be found)
Minor fixes/cosmetics
george84
20th September 2017, 10:22
C:\Users\Walter\Downloads\AVSMeter265>"AVSMeter.exe" C:\Users\Walter\Documents\SMIL\BSG23\testsuite\OLED\ColorCheck\PhotoDirList2020Plus.xml.smil.avs -log
AVSMeter 2.6.5 (x86) - Copyright (c) 2012-2017, Groucho2004
AviSynth+ 0.1 (r2508, MT, i386) (0.1.0.0)
Exception 0xC0000005 [STATUS_ACCESS_VIOLATION]
Module: C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins\Shibatch.dll
Address: 0x6570A393
C:\Users\Walter\Downloads\AVSMeter265>SHIFT
C:\Users\Walter\Downloads\AVSMeter265>"AVSMeter.exe" -avsinfo
AVSMeter 2.6.5 (x86) - Copyright (c) 2012-2017, Groucho2004
VersionString: AviSynth+ 0.1 (r2508, MT, i386)
VersionNumber: 2.60
File / Product version: 0.1.0.0 / 0.1.0.0
Interface Version: 6
Multi-threading support: Yes
Avisynth.dll location: C:\WINDOWS\SysWOW64\avisynth.dll
Avisynth.dll time stamp: 2017-06-29, 09:00:22 (UTC)
PluginDir2_5 (HKLM, x86): C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins
PluginDir+ (HKLM, x86): C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins
[CPP 2.6 / 32 Bit Plugins]
C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins\ConvertStacked.dll
C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins\DirectShowSource.dll
C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins\ImageSeq.dll
C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins\Shibatch.dll
C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins\TimeStretch.dll
C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins\VDubFilter.dll
C:\Users\Walter\Downloads\AVSMeter265>SHIFT
Above violation occurs on a script of 1400 lines. The script displays well in AvsPmod which gives Video Information correctly (CS = RGB24)
Problem is not important for me.
Groucho2004
20th September 2017, 10:40
Above violation occurs on a script of 1400 lines. The script displays well in AvsPmod which gives Video Information correctly (CS = RGB24)What happens when you open/run the script in VirtualDub?
george84
20th September 2017, 11:12
Checked with 2 different versions of Vdub. Both crash in shibach.dll.
See attachments
Groucho2004
20th September 2017, 18:09
Checked with 2 different versions of Vdub. Both crash in shibach.dll.So, it's not just AVSMeter. Can you post the full script and possibly a short clip so we can reproduce this?
george84
20th September 2017, 21:37
Will take some time.
george84
26th September 2017, 10:07
The crash doesn't occur when I remove following code from script.
SMILrootlayout = Overlay(SMILrootlayout, SMILregion1, x = SMILregion1_left, y = SMILregion1_top, pc_range = false)
left and top are 0.
SMILregion1 is a BlankClip of length=0.
Groucho2004
26th September 2017, 18:13
The crash doesn't occur when I remove following code from script.
A single line from your script doesn't help tracking down the problem. Post it in the AVS+ thread since it obviously isn't a problem with AVSMeter.
george84
26th September 2017, 18:21
A single line from your script doesn't help tracking down the problem. Post it in the AVS+ thread since it obviously isn't a problem with AVSMeter.
As I said in the beginning everything works fine in AVS+. Only AVSMeter and VDub Crash. AVSPmod does also good preview.
I just wanted to help you track the crash in AVSMeter.
As I also said it is not all important for me. So let it die.
Groucho2004
26th September 2017, 22:10
As I said in the beginning everything works fine in AVS+. Only AVSMeter and VDub Crash. AVSPmod does also good preview.
I just wanted to help you track the crash in AVSMeter.
As I also said it is not all important for me. So let it die.
I think there is some misunderstanding here. The exception occured in shibatch.dll, not VDub or AVSMeter:
Exception 0xC0000005 [STATUS_ACCESS_VIOLATION]
Module: C:\Users\Walter\Downloads\AvisynthUniversalInstaller_2017-09-02\AvisynthRepository\AVSPLUS_x86\plugins\Shibatch.dll
Address: 0x6570A393
Just because Avspmod or its preview doesn't have the exception handling that is needed to catch those errors doesn't mean that there is no problem. You should check the output of that script thoroughly, audio and video.
Groucho2004
28th September 2017, 11:12
v2.6.6
Detailed external function enumeration and duplicate report are still not working properly, removed for now
Groucho2004
16th November 2017, 19:36
v2.6.7
Minor fixes, refactoring and cosmetics
Groucho2004
18th November 2017, 10:07
v2.6.8
Fixed a bug in plugin type enumeration (regression)
Groucho2004
1st December 2017, 10:58
v2.6.9
avsinfo: If the version info is missing in (auto-load) plugins/files, the UTC timestamp is printed instead
Simplified 'ESC' key handling
StainlessS
1st December 2017, 22:32
Thanxs, my hero, :)
Groucho2004
14th December 2017, 18:51
v2.7.0
Warnings and errors are reported in separate sections
Updated list of exception messages
Cosmetics
GMJCZP
14th December 2017, 19:55
Thanks. In this repository http://www.iol.ie/~schubert/gas/gas.html still remains the 2.69 version.
Groucho2004
14th December 2017, 19:58
Thanks. In this repository http://www.iol.ie/~schubert/gas/gas.html still remains the 2.69 version.Click refresh.
Music Fan
4th January 2018, 16:01
Hi,
where is the ini file located ?
I put AVSMeter.exe (x86) in C:\Program Files (x86)\AVSMeter, I opened an avs file with AVSMeter, I cancelled the process and the window disappeared.
To let the window opened, a setting could be changed in the ini that appeared after the first utilisation, but it doesn't appear anymore.
I didn't used AVSMeter for a while.
StainlessS
4th January 2018, 16:34
For me, ini file is created (after I deleted original) in the same directory as AvsMeter.
(I run AvsMeter from "C:\BIN" which has an entry in my %PATH%, and run from command prompt)
EDIT:AvsMeter v2.67.
Music Fan
4th January 2018, 16:42
For me, ini file is created (after I deleted original) in the same directory as AvsMeter.
It used to be the case too on my pc, but not anymore (v2.70). :confused:
StainlessS
4th January 2018, 16:54
EDIT: Updated to avsmeter v2.7
Same again for me, in C:\BIN\ directory.
Are you calling from Programs menu, or drag and drop ?
You could try root of C:\, or your equivalet to "Documents and Setting\UserName"
EDIT: Just seen this
INI file settings
AVSMeter checks if a settings file ("AVSMeter.ini") exists in the directory from where it is started. If not, it will be created with the default settings.
Note: If applicable, command line switches override INI settings.
Groucho2004
4th January 2018, 17:06
where is the ini file located ?
AVSMeter.ini is always created in the same directory as AVSMeter.exe (given that it has write privileges to that directory).
StainlessS
4th January 2018, 17:21
I cancelled the process
Maybe why.
Music Fan
4th January 2018, 17:55
(given that it has write privileges to that directory).
That was the problem : I ran AVSMeter.exe as administrator and the ini was created. But when I wanted to change the settings, it was refused (I don't know why, I am the administrator and only user of this pc).
Thus I put AVSMeter in C:\AVSMeter and now I can save the changes in the ini.
edit : But now I can't open avs files with AVSMeter with right click :confused:
I select AVSMeter.exe but it doesn't appear in the list of the programs that can open this type of files :scared:
I will try with send to.
Groucho2004
4th January 2018, 17:58
Maybe why.
Pretty much the first thing AVSMeter does is parsing the .ini file (or creating one if it does not exist). If it can't create it, an error message is displayed which of course is difficult to see if it's not run from an already open console.
Maybe I should set the "PauseBeforeExit" option to true by default...
lansing
4th January 2018, 17:59
That was the problem : I ran AVSMeter.exe as administrator and the ini was created. But when I wanted to change the settings, it was refused (I don't know why, I am the administrator and only user of this pc).
Thus I put AVSMeter in C:\AVSMeter and now I can save the changes in the ini.
Text files inside C:\program files\ will need administrator-right-opened textfile editor in order to edit it.
Groucho2004
16th January 2018, 12:16
v2.7.1
When using the switch "-avsinfo" in combination with "-log", a "Save as..." dialog will open enabling the user to save the log file
Minor fixes and refactoring
Cosmetics
Some users seemed to have trouble finding the log file created with the switches "-avsinfo -log", mainly when not operating directly from the console. The "Save as..." prompt should cure this.
Music Fan
16th January 2018, 19:56
Great, thanks.
StainlessS
18th January 2018, 00:57
Dont know if you want to investigate this,
Access Violation in AvsMeter v2.7, with only LoadPluginEx2.dll in plugins (AvsMeter -avsInfo).
2nd linked dll here:- http://avisynth.nl/index.php/LoadOldPlugins
dll is UPX'ed, un-Upx'ed dll same result.
Maybe just a bad dll (about 30kb when UPX'ed, about 90kb de-Upx'ed, LoadPluginEx.dll's from 2003 and 2008 both about 60kb).
EDIT: On second thoughts, you might want to ignore this, even caused Access violation in VDub when dll in plugins folder
(no other plugs, and no script, just startup VDFilterMod and close again, crash).
https://s20.postimg.org/8ewuhofel/accessviolation.jpg (https://postimages.org/)
Perhaps that dll should be removed from Wiki, unless anybody can get it to do something useful, without crashing.
EDIT:
Despite this line on wiki
use as a last resort! I don't know exactly which package it came out of, but it works; I believe it requires v7 of the MS C runtime library (msvcr70.dll)
It dont seem to work and does not require any runtime.
https://s20.postimg.org/e3358umel/nodeps.jpg (https://postimages.org/)
EDIT: That was UPX'ed version in dependency walker, so UPX.exe stuff dont need runtimes either, I presume. [EDIT: No, shows uncompressed size]
EDIT: Same with Un-UPX'ed, no deps.
EDIT: Link time stamp in dep walker says 21 Jan 2003, which is about 10 months before the earliest 2003 LoadPluginEx.dll that I've found. (3 Nov 2003)
EDIT: Strangely, with script
# No Crash in MPC-HC or VDubFilterMod
LoadPlugin("D:\LoadPluginEx2.dll")
Return Colorbars
# No Crash in MPC-HC or VDubFilterMod
LoadPlugin("D:\LoadPluginEx2.dll")
LoadPlugin("D:\Dustv5.dll") # EDIT: Avisynth v2.0 CPP plugin.
Colorbars
Return PixieDust(limit=5,output="RGB32")
EDIT: I used to like PixieDust. EDIT: No I didn't, it was the Peach or PeachSmoother thing I liked, with all of that there orange smoke stuff.
Groucho2004
22nd January 2018, 22:06
v2.7.1
When using the switch "-avsinfo" in combination with "-log", a "Save as..." dialog will open enabling the user to save the log file
Minor fixes and refactoring
Cosmetics
Some users seemed to have trouble finding the log file created with the switches "-avsinfo -log", mainly when not operating directly from the console. The "Save as..." prompt should cure this.
I'm thinking about using "Save as..." dialogs for the other log/csv file options. Any objections?
Sparktank
23rd January 2018, 02:30
I wouldn't be apposed to that.
Sometimes I just create generic names for scripts to test out new things and dont name them adequately.
Selur
12th February 2018, 05:50
@Groucho2004:
Calling: AVSMeter.exe -range=0,200 -timelimit=60 "H:\Temp\encodingTempSynthSkript_05_34_45_4010.avs"
on
SetMemoryMax(1536)
SetMTMode(5,16) # changing MT mode
LoadCPlugin("G:\Hybrid\32bit\AVISYN~1\ffms2.dll")
LoadPlugin("G:\Hybrid\32bit\AVISYN~1\flash3kyuu_deband.dll")
# loading source: C:\Users\Selur\Desktop\Dragonball.Z.-.001.-.1080p.BluRay.x264.DHD (1)-001.mkv
# input luminance scale tv
FFVideoSource("C:\Users\Selur\Desktop\DRAGON~1.MKV",cachefile="H:\Temp\05_34_45_4010.ffindex")
# current resolution: 1920x1080
# debanding
SetMTMode(2) # changing MT mode
f3kdb(dither_algo=3,grainY=1,grainC=1,dynamic_grain=true,Y=64,Cb=40,Cr=40)
# scaling
Spline36Resize(1280,720)
distributor()
return last
AVSMeter get's stuck at:
AVSMeter 2.7.1 (x86) - Copyright (c) 2012-2017, Groucho2004
AviSynth 2.60, build:Feb 20 2015 [03:16:45] (2.6.0.5)
Pre-scanning script (F117 / T4.88)
AVSMeter.exe -avsinfo
properly returns:
AVSMeter 2.7.1 (x86) - Copyright (c) 2012-2017, Groucho2004
VersionString: AviSynth 2.60, build:Feb 20 2015 [03:16:45]
VersionNumber: 2.60
File / Product version: 2.6.0.5 / 2.6.0.5
Interface Version: 6
Multi-threading support: Yes
Avisynth.dll location: G:\Hybrid\32bit\avisynth.dll
Avisynth.dll time stamp: 2015-02-20, 00:18:42 (UTC)
[Plugin warnings]
_________________________________________________________________________________________________________________________________________________________________________________________________________________
No plugin directory references found in the registry.
Plugin auto-loading disabled.
_________________________________________________________________________________________________________________________________________________________________________________________________________________
AVSMeter.exe -info "H:\Temp\encodingTempSynthSkript_05_34_45_4010.avs"
properly returns:
AVSMeter 2.7.1 (x86) - Copyright (c) 2012-2017, Groucho2004
AviSynth 2.60, build:Feb 20 2015 [03:16:45] (2.6.0.5)
Number of frames: 7289
Length (hh:mm:ss.ms): 00:05:04.012
Frame width: 1280
Frame height: 720
Framerate: 23.976 (24000/1001)
Colorspace: i420
Active MT Mode: 2
AVSMeter.exe "H:\Temp\encodingTempSynthSkript_05_34_45_4010.avs"
also get's stuck:
AVSMeter 2.7.1 (x86) - Copyright (c) 2012-2017, Groucho2004
AviSynth 2.60, build:Feb 20 2015 [03:16:45] (2.6.0.5)
Pre-scanning script (F123 / T4.83)
Cu Selur
Groucho2004
12th February 2018, 10:52
Selur,
You're running out of memory. If you remove the "Distributor()" call it will work. "Distributor()" is called in AVSMeter so you're calling it twice which increases the number of threads from ~50 to ~250 (checked with task manager) and therefore increases memory usage significantly.
Also, check the manual (http://www.iol.ie/~schubert/AVSMeter.html) ("InvokeDistributor" ini setting).
However, it's odd that Avisynth doesn't throw an out of memory error. I'll look into it.
Selur
12th February 2018, 18:00
You are right, without the 'distributor()' call it does not freeze. :)
Manual site is blocked by MalwareBytes. ;)
Groucho2004
12th February 2018, 18:20
Manual site is blocked by MalwareBytes. ;)First time I hear that. The manual is also included in the download.
Groucho2004
14th February 2018, 17:25
v2.7.2
Added new switch "-c". This allows in combination with "-avsinfo" to specify a custom plugin directory.
"Save as..." dialog for all log/csv files when using "-log" and/or "-csv" switches
Updated AVS+ headers
Cosmetics
Groucho2004
15th February 2018, 11:07
v2.7.3
Fixed a bug in the plugin enumeration
Yanak
21st February 2018, 11:04
Hello Groucho2004,
updated to the last version and now i see that the "LogFileDateTimeSuffix" & "LogDirectory" options seems gone and we have the save as dialog when using logs like explained 2 posts above.
I was always using a small batch to loop the tests 3 or 5 times to get more accurate results, but now with this change i can't do this anymore, after the first run i need to save manually the file and can't do like before, launching my batch executing the tests looped 3 times on various source files, just fire and forget about it, especially while it could run for a few hours.
Beside going back to 2.7.1 version is there a way to get this working like before, getting log files generated automatically without user interaction needed to save them please ?
btw what is the option "AutoCompleteExtension=0" ? Unless i am missing it there is nothing about it the help file
Also is there a way add an option directly in the program to set the cores affinity to run the program on ?
Most of the times to get more accurate results when running single threaded tests ( or multi threaded ones but using only 4 threads on my 8 available ) i use this command to exclude the core 0 & 1 of the CPU ( those can be used by some other stuff running in the background or by windows and unless it's a tests needing to run on all threads it's better to not run anything on those for accurate results in most benchmarks perfs tests ), this is the cmd line i use :
start /affinity 0xfc avsmeter64 test.avs
0xfc excludes core 0 & 1, 0xfe excludes only core 0 etc, to get the hex value for the cores needed for a 8 cores/ threads CPU you get this :
7 6 5 4 3 2 1 0 < this is the cores , starting by last core and ending by core 0
Then i use a binary scheme , on/off for the cores , example i want all ON beside core 0 & 1, so in binary i end up with this :
1 1 1 1 1 1 0 0 < ON/OFF Binary
gives 11111100 , converted from binary to hex it gives the 0xfc hex parameter
What I'd like to see is an option in the AVSMeter.ini where i could set the Hex value i need to set the affinity of the cores directly there, like "CoreAffinity=0xfc" or "CoreAffinity=0" to not use it / disable it.
Directly inside the program instead of calling it with the command line listed above, not sure if possible or hard to implement or even if you will find this interesting, but who knows, maybe it is easy and possible.
And maybe, if there is a way to get the log created automatically like before, another useful option will be to have the program itself managing how many runs / loops we want to do for a test, again a parameter in the ini file like "LoopTest=3" or "=0" to disable it.
Maybe i'm the only one interested by those possible options and you will find this silly but i take the risk to ask :p
Thanks a lot :)
Groucho2004
21st February 2018, 12:33
updated to the last version and now i see that the "LogFileDateTimeSuffix" & "LogDirectory" options seems gone and we have the save as dialog when using logs like explained 2 posts above.
I was always using a small batch to loop the tests 3 or 5 times to get more accurate results, but now with this change i can't do this anymore, after the first run i need to save manually the file and can't do like before, launching my batch executing the tests looped 3 times on various source files, just fire and forget about it, especially while it could run for a few hours.
Beside going back to 2.7.1 version is there a way to get this working like before, getting log files generated automatically without user interaction needed to save them please ?
I'll add an ini option to toggle the old behaviour.
btw what is the option "AutoCompleteExtension=0" ? Unless i am missing it there is nothing about it the help fileYou can specify an .avs file without extension, i.e. "avsmeter script" instead of "avsmeter script.avs".
Also is there a way add an option directly in the program to set the cores affinity to run the program on ?I'll think about it but this would be at the bottom of the priority list. :)
Yanak
21st February 2018, 12:55
I understand now the auto complete extension option, should have guessed it, looks logical now that i know :p
Thank you for bringing the old behavior back with an option in the ini, as for the affinity ( or even a parameter to run loops directly in avsmeter ) this isn't a problem, as long as i can launch my batch file running loops on various inputs and don't have to wait in front of the pc at the end of each run to save the logs it's already nice, one day maybe but not a priority at all :)
Thank you very much.
Groucho2004
17th March 2018, 21:52
v2.7.4
Added ini option "LogUseFileSaveDialog". See manual for details.
Brought back ini options "LogDirectory" and "LogFileDateTimeSuffix". See manual for details.
Yanak
17th March 2018, 22:42
Thank you very much for bringing those options back and giving the choice to the end user to use it or not.
I made a quick run and the "LogFileDateTimeSuffix=1" option seems to have an issue
avs file : test.avs
LogFileDateTimeSuffix=1 makes this : test [].log
The date & time remains blank apparently
Thank you.
edit "LogUseFileSaveDialog" is set to 0 in my .ini
DisplayFPS=1
DisplayTPF=0
PauseBeforeExit=0
CreateLog=1
CreateCSV=0
LogDirectory=H:
LogFileDateTimeSuffix=1
MonitorGPULoad=0
TimeLimit=-1
AVSDLL=
FrameRange=0,-1
AllowOnlyOneInstance=1
ProcessPriority=2
InvokeDistributor=1
ConUseSTDOUT=0
UseColor=1
DisplayEfficiencyIndex=1
LogEstimatedTime=0
AutoCompleteExtension=0
LogUseFileSaveDialog=0
Groucho2004
18th March 2018, 11:46
v2.7.5
Fixed a couple of bugs (thanks Yanak for reporting the "LogFileDateTimeSuffix" problem)
Re-organised the ini settings in logical groups
Yanak
18th March 2018, 14:48
Seems to work correctly again after a few tests,
Thanks a lot for the quick fix Groucho2004
`Orum
26th March 2018, 05:18
First of all I want to thank you for this. I've been looking for something to replace timecodec for a long time.
Second, I was wondering if you would indulge a feature request I have. In my case, I'm interested in seeing only the time it takes between when a script is opened and when the first frame (as in, frame 0) is actually rendered. Not only does -range=0,0 not report anything but the pre-scanning seems to make this entirely impossible in my case (as the second time the script is opened, the cache will have been created, and I'm not interested in seeing performance post-cache creation). Any chance I could see this data in a future release? :)
p.s. - Also, the program still lists 2017 as the last year of the copyright.
DJATOM
26th March 2018, 07:55
I think you can debug such metrics internally. DebugView is your friend there :)
`Orum
26th March 2018, 13:36
I think you can debug such metrics internally. DebugView is your friend there :)
Of course one can do that, but then I need to modify the source of every filter I want to time. The idea was just to make things easy.
Right now I'm deliberately introducing an error immediately after the filter I want to time (in order to not time the execution of the whole output), opening that in avs2yuv, and then timing the execution time using a batch script (https://stackoverflow.com/a/6209392). In short, it's a bit awkward and would be nice to just be able to do avsmeter [-someflag] <script>.
Groucho2004
26th March 2018, 15:26
In short, it's a bit awkward and would be nice to just be able to do avsmeter [-someflag] <script>.
Try this older version of AVSMeter:
https://www.videohelp.com/download/AVSMeter198.7z
Use this command line:
"AVSMeter script.avs -f -range=0,0"
wonkey_monkey
26th March 2018, 22:38
Out of curiosity/ignorance, what is pre-scanning for?
Groucho2004
26th March 2018, 23:11
Out of curiosity/ignorance, what is pre-scanning for?The CPU/GPU usage, memory, and other measurements present a small, but with very fast scripts not negligible overhead which can skew the timing accuracy.
The pre-scan determines the speed of the script and calculates an interval at which measurements are taken. For a slow(ish) script (< 50 fps) the measurements are taken after each frame, for a very fast script (> 1000 fps) it's every 10 frames (or 20 or 50, don't remember exactly, have to look at my code). It's a linear function, the faster the script, the larger the interval.
After the pre-scan the script environment is deleted and avisynth.dll unloaded so any caching that happened during the scan won't influence the main timing results.
StainlessS
27th March 2018, 01:22
I look forward to the DavidHorman version of AvsMeter, I'm quite sure thet it would be better/more capable than the G2K4 Effort,
when can we have it ?
EDIT: Well at least Better documented (hehe, no chance).
EDIT: (We do still love you, but you make it hard :) )
Groucho2004
27th March 2018, 01:40
I look forward to the DavidHoman version of AvsMeter, I'm quite sure thet it would be better/more capable than the G2K4 Effort,
when can we have it ?
EDIT: Well at least Better documented (hehe, no chance).
EDIT: (We do still love you, but you make it hard :) )
Sometimes it's hard to tell whether you're using your special brand of sarcasm or if you're just back from a long session at your local pub. ;)
wonkey_monkey
27th March 2018, 16:41
Yeah... I don't get it either.
StainlessS
27th March 2018, 18:41
Also, me neither, methinks sombody logged under my accout, or, maybe I was a bit pissed, guess we will never know.
`Orum
28th March 2018, 14:06
Try this older version of AVSMeter:
https://www.videohelp.com/download/AVSMeter198.7z
Use this command line:
"AVSMeter script.avs -f -range=0,0"
Unfortunately this still only gives me the time to read the first frame and not the time between opening the script and when the first frame is retrieved. Well, I'm not sure what value it's actually giving me, but it's definitely not the time it takes between opening and first frame delivery.
I suppose I'll just continue using the batch script for now.
rco133
3rd April 2018, 14:59
Hi.
Sorry if this is a stupid question. But I just want to make sure that I understand the output of AVSMeter correctly.
If I use AVSMeter and it gives me a result of lets say average 400 FPS.
If I encode using the same AVS file using x264, and the FPS is way lower than the AVSMeter result, for example 150 FPS, then I can be pretty sure that the "bottleneck" is the CPU and there is nothing that can be done in the AVS script to speed up the encode.
Or am I misinterpreting the results from AVSMeter?
If I am, maybe someone can tell me what the result can be used for, other than trying out different Things in the AVS file, and see what change it has on the FPS.
rco133
Groucho2004
3rd April 2018, 16:04
If I encode using the same AVS file using x264, and the FPS is way lower than the AVSMeter result, for example 150 FPS, then I can be pretty sure that the "bottleneck" is the CPU and there is nothing that can be done in the AVS script to speed up the encode.The bottleneck in this case is x264 considering you're looking at a software processing chain with given hardware.
A script that runs with 400 fps (measured with AVSMeter) is pretty rare since many Avisynth users use all kinds of filters that slow down the speed with which Avisynth serves frames to the encoder. Scripts that run with 5-10 fps are not uncommon and are therefore usually the bottleneck in the chain.
AVSMeter helps to optimize such scripts using different filter parameters, multi-threading optimization, etc.
StainlessS
3rd April 2018, 16:07
If I use AVSMeter and it gives me a result of lets say average 400 FPS.
If I encode using the same AVS file using x264, and the FPS is way lower than the AVSMeter result, for example 150 FPS
Perhaps the encoder takes some CPU too, whadya think ?
rco133
3rd April 2018, 16:55
The bottleneck in this case is x264 considering you're looking at a software processing chain with given hardware.
A script that runs with 400 fps (measured with AVSMeter) is pretty rare since many Avisynth users use all kinds of filters that slow down the speed with which Avisynth serves frames to the encoder. Scripts that run with 5-10 fps are not uncommon and are therefore usually the bottleneck in the chain.
AVSMeter helps to optimize such scripts using different filter parameters, multi-threading optimization, etc.
Thank you for the explanation. I don't use any "heavy" filters. Just yadif for deinterlace, and sometimes srestore.
rco133
mkver
24th May 2018, 16:48
I think AVSMeter 2.7.5 has a bug in detecting 64bit C plugins. The 64bit version of the FFmpegSource C-plugin (https://www.mediafire.com/file/h052qy7xd74v2ll/ffms2_r1293%2B111-avs%2Bvsp.7z) is put into the "Uncategorized DLLs (64 Bit)" category; I looked a bit into the code and found this (lines 664-671 in AvisynthInfo.h):
if (sName.find("avisynth_c_plugin_init@4") != string::npos)
{
s_Msg = "AVSC25";
break;
}
if (sName.find("avisynth_c_plugin_init") != string::npos)
s_Msg = "AVSC20";
So absence of the @4 decoration is treated as proof that it is a C 2.0 plugin. But in a 64bit dll C functions are not decorated (https://msdn.microsoft.com/en-us/library/56h2zst2.aspx):
Format of a C decorated name
The form of decoration for a C function depends on the calling convention used in its declaration, as shown in the following table. This is also the decoration format that is used when C++ code is declared to have extern "C" linkage. The default calling convention is __cdecl. Note that in a 64-bit environment, functions are not decorated.
AVS+ also checks for _avisynth_c_plugin_init@4 (https://github.com/pinterf/AviSynthPlus/blob/MT/avs_core/core/PluginManager.cpp#L941); I don't know why.
I guess the reason that the FFmpegSource C-plugin is classified as Uncategorized (and not C 2.0) is that there is a "avisynth_c_plugin_init" and a "avisynth_c_plugin_init_s" in the dll. Maybe one should put "s_Msg = "UNCATEGORIZED";" in front of the loop, not in the loop.
Groucho2004
24th May 2018, 17:09
I think AVSMeter 2.7.5 has a bug in detecting 64bit C plugins.
Nice catch. Will be fixed in the next release.
Groucho2004
25th May 2018, 13:44
2.7.6
Fixed a bug in the 64 bit C-plugin enumeration
Memory tweaks
Groucho2004
8th June 2018, 21:41
v2.7.7
Added switch to specify a avisynth.dll other than the one automatically loaded
Updated AVS+ headers
Regression from 2.7.6: Some warnings/notes were not displayed
Refactoring
New switch "-avsdll":
The user can specify the avisynth.dll to be used (a file open dialog lets the user select it). Without this switch AVSMeter will attempt to load avisynth.dll through the standard Windows search hierarchy which is the default behaviour.
amayra
9th June 2018, 03:06
thank you for keep this project alive but this is supposed to be open source right ?
you don't include source with last version
ChaosKing
9th June 2018, 08:49
With AVSMeter.exe -avsinfo it outputs every plugin line twice.
D:\AvisynthRepository\AVSPLUS_x86\plugins\amDCT.dll [2017-03-05]
D:\AvisynthRepository\AVSPLUS_x86\plugins\amDCT.dll [2017-03-05]
D:\AvisynthRepository\AVSPLUS_x86\plugins\AutoCrop.dll [2005-01-03]
D:\AvisynthRepository\AVSPLUS_x86\plugins\AutoCrop.dll [2005-01-03]
Groucho2004
9th June 2018, 10:15
With AVSMeter.exe -avsinfo it outputs every plugin line twice.
D:\AvisynthRepository\AVSPLUS_x86\plugins\amDCT.dll [2017-03-05]
D:\AvisynthRepository\AVSPLUS_x86\plugins\amDCT.dll [2017-03-05]
D:\AvisynthRepository\AVSPLUS_x86\plugins\AutoCrop.dll [2005-01-03]
D:\AvisynthRepository\AVSPLUS_x86\plugins\AutoCrop.dll [2005-01-03]
Post a log file, "avsmeter -avsinfo -log".
StainlessS
9th June 2018, 10:20
With AVSMeter.exe -avsinfo it outputs every plugin line twice.
Sounds twice as nice, but not for me it dont.
Log file created with: AVSMeter 2.7.7 (x86)
[OS/Hardware info]
Operating system: Windows XP (x86) Service Pack 3.0 (Build 2600)
CPU brand string: Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz
CPU features: MMX, SSE, SSE2, SSE3, SSSE3
[Avisynth info]
VersionString: AviSynth+ 0.1 (r2693, MT, i386)
VersionNumber: 2.60
File / Product version: 0.1.0.0 / 0.1.0.0
Interface Version: 6
Multi-threading support: Yes
Avisynth.dll location: C:\WINDOWS\system32\avisynth.dll
Avisynth.dll time stamp: 2018-05-29, 16:02:16 (UTC)
PluginDir2_5 (HKLM, x86): C:\Program Files\AviSynth+\plugins
PluginDir+ (HKLM, x86): C:\Program Files\AviSynth+\plugins+
[CPP 2.5 Plugins (32 Bit)]
C:\Program Files\AviSynth+\plugins\AddGrain.dll [0.1.0.0]
C:\Program Files\AviSynth+\plugins\AddGrainC.dll [1.7.1.0]
C:\Program Files\AviSynth+\plugins\Antiflicker.dll [2003-03-04]
C:\Program Files\AviSynth+\plugins\ApplyEvery.dll [2005-07-30]
C:\Program Files\AviSynth+\plugins\AutoGain.dll [1.7.5.0]
C:\Program Files\AviSynth+\plugins\autolevels_0_6_20110109.dll [0.6.0.0]
C:\Program Files\AviSynth+\plugins\avstp_26.dll [1.0.1.0]
C:\Program Files\AviSynth+\plugins\cnr2k.dll [2005-03-13]
C:\Program Files\AviSynth+\plugins\ColorMatrix.dll [2.5.0.0]
C:\Program Files\AviSynth+\plugins\convolution3d.dll [2003-04-22]
C:\Program Files\AviSynth+\plugins\DctFilter.dll [0.0.1.4]
C:\Program Files\AviSynth+\plugins\deblock.dll [1.2.0.0]
C:\Program Files\AviSynth+\plugins\Decomb.dll [2013-02-26]
C:\Program Files\AviSynth+\plugins\DeDup.dll [2004-11-07]
C:\Program Files\AviSynth+\plugins\Deen.dll [2005-07-05]
C:\Program Files\AviSynth+\plugins\deflicker.dll [0.4.0.0]
C:\Program Files\AviSynth+\plugins\degrainmedian.dll [0.8.2.0]
C:\Program Files\AviSynth+\plugins\despot.dll [3.6.1.0]
C:\Program Files\AviSynth+\plugins\dither.dll [2015-07-16]
C:\Program Files\AviSynth+\plugins\eDeen.dll [2003-01-19]
C:\Program Files\AviSynth+\plugins\EEDI2.dll [0.9.2.0]
C:\Program Files\AviSynth+\plugins\eedi3.dll [0.9.2.0]
C:\Program Files\AviSynth+\plugins\GamMac.dll [2017-08-22]
C:\Program Files\AviSynth+\plugins\gradfun2db.dll [2006-03-15]
C:\Program Files\AviSynth+\plugins\GRunT.dll [2008-09-27]
C:\Program Files\AviSynth+\plugins\GScript.dll [2009-12-06]
C:\Program Files\AviSynth+\plugins\HistogramAdjust.dll [2005-11-21]
C:\Program Files\AviSynth+\plugins\hqdn3d.dll [2005-01-25]
C:\Program Files\AviSynth+\plugins\LSMASHSource.dll [2015-02-23]
C:\Program Files\AviSynth+\plugins\MinMaxAudio.dll [2007-09-04]
C:\Program Files\AviSynth+\plugins\mpasource.dll [2008-02-20]
C:\Program Files\AviSynth+\plugins\MSharpen.dll [2003-04-08]
C:\Program Files\AviSynth+\plugins\Msmooth.dll [2005-09-18]
C:\Program Files\AviSynth+\plugins\NicAudio.dll [2012-08-27]
C:\Program Files\AviSynth+\plugins\nnedi.dll [1.3.0.0]
C:\Program Files\AviSynth+\plugins\nnedi2.dll [1.6.0.0]
C:\Program Files\AviSynth+\plugins\QTSource.dll [2006-01-09]
C:\Program Files\AviSynth+\plugins\rawsource.dll [2005-10-13]
C:\Program Files\AviSynth+\plugins\RemapFrames.dll [2005-08-26]
C:\Program Files\AviSynth+\plugins\RemoveDirtSSE2.dll [2005-05-05]
C:\Program Files\AviSynth+\plugins\RemoveGrainHDS.dll [2007-11-26]
C:\Program Files\AviSynth+\plugins\SmoothAdjust.dll [2011-06-06]
C:\Program Files\AviSynth+\plugins\SSE2Tools.dll [2005-04-11]
C:\Program Files\AviSynth+\plugins\STMedianFilter.dll [0.1.0.3]
C:\Program Files\AviSynth+\plugins\TCPDeliver.dll [1.0.0.6]
C:\Program Files\AviSynth+\plugins\TDeint.dll [1.1.0.0]
C:\Program Files\AviSynth+\plugins\TemporalCleaner.dll [0.0.0.2]
C:\Program Files\AviSynth+\plugins\TIVTC.dll [1.0.5.0]
C:\Program Files\AviSynth+\plugins\TNLMeans.dll [1.0.3.0]
C:\Program Files\AviSynth+\plugins\TPRIVTC.dll [2004-09-30]
C:\Program Files\AviSynth+\plugins\TTempSmooth.dll [0.9.4.0]
C:\Program Files\AviSynth+\plugins\TweakColor.dll [2004-04-12]
C:\Program Files\AviSynth+\plugins\UnDot.dll [0.0.1.1]
C:\Program Files\AviSynth+\plugins\VagueDenoiser.dll [0.35.1.0]
C:\Program Files\AviSynth+\plugins\VariableBlur.dll [2012-05-24]
C:\Program Files\AviSynth+\plugins\VScope.dll [2004-05-16]
C:\Program Files\AviSynth+\plugins\VSFilter.dll [1.0.1.1]
[CPP 2.6 Plugins (32 Bit)]
C:\Program Files\AviSynth+\plugins+\ConvertStacked.dll [2018-05-29]
C:\Program Files\AviSynth+\plugins+\DirectShowSource.dll [2018-05-29]
C:\Program Files\AviSynth+\plugins+\ImageSeq.dll [2018-05-29]
C:\Program Files\AviSynth+\plugins+\Shibatch.dll [2018-05-29]
C:\Program Files\AviSynth+\plugins+\TimeStretch.dll [2018-05-29]
C:\Program Files\AviSynth+\plugins+\VDubFilter.dll [2018-05-29]
C:\Program Files\AviSynth+\plugins\ApparentFPS26.dll [2015-12-18]
C:\Program Files\AviSynth+\plugins\AutoAdjust_26.dll [2.0.0.0]
C:\Program Files\AviSynth+\plugins\Average_26_0_94.dll [0.94.0.0]
C:\Program Files\AviSynth+\plugins\avss_26.dll [2.0.0.10]
C:\Program Files\AviSynth+\plugins\CallCmd_x86.dll [1.4.0.0]
C:\Program Files\AviSynth+\plugins\ClipClop26.dll [2017-08-29]
C:\Program Files\AviSynth+\plugins\DePan_26_2_13_1_3.dll [2.13.1.3]
C:\Program Files\AviSynth+\plugins\DePanEstimate_26_2_10_0_2.dll [2.10.0.2]
C:\Program Files\AviSynth+\plugins\dfttest_x86_1.9.4.2.dll [1.9.4.2]
C:\Program Files\AviSynth+\plugins\DirectShowSource_26.dll [2.6.0.3]
C:\Program Files\AviSynth+\plugins\fft3dfilter_26_2_4_0_0.dll [2.4.0.0]
C:\Program Files\AviSynth+\plugins\FrameSel_x86.dll [2.20.0.0]
C:\Program Files\AviSynth+\plugins\fturn-26.dll [2018-03-13]
C:\Program Files\AviSynth+\plugins\masktools2_26_2_2_10_0_Infix.dll [2.2.10.0]
C:\Program Files\AviSynth+\plugins\MDec2_x86.dll [1.2.0.0]
C:\Program Files\AviSynth+\plugins\mvtools2_26_2_7_27_0.dll [2.7.27.0]
C:\Program Files\AviSynth+\plugins\nnedi3_26_0_9_4_48.dll [0.9.4.48]
C:\Program Files\AviSynth+\plugins\Prune26.dll [2015-04-01]
C:\Program Files\AviSynth+\plugins\RgTools_26_0_96.dll [0.96.0.0]
C:\Program Files\AviSynth+\plugins\RoboCrop26.dll [2016-08-25]
C:\Program Files\AviSynth+\plugins\RT_Stats26.dll [2017-10-13]
C:\Program Files\AviSynth+\plugins\SangNom2.dll [2013-11-30]
C:\Program Files\AviSynth+\plugins\SoundOut_26.dll [1.1.0.0]
C:\Program Files\AviSynth+\plugins\TCPDeliver_26.dll [1.0.0.7]
C:\Program Files\AviSynth+\plugins\TWriteAVI.dll [2016-09-26]
C:\Program Files\AviSynth+\plugins\WaterMark2_x86.dll [2017-12-05]
C:\Program Files\AviSynth+\plugins\yadifmod2_26_0_0_4_1.dll [2016-07-04]
C:\Program Files\AviSynth+\plugins\Zebra26.dll [2015-03-31]
[Scripts (AVSI)]
C:\Program Files\AviSynth+\plugins+\colors_rgb.avsi [2016-07-05]
C:\Program Files\AviSynth+\plugins\AutoContrast.avsi [2018-06-02]
C:\Program Files\AviSynth+\plugins\AWB_131201.avsi [2015-08-24]
C:\Program Files\AviSynth+\plugins\ChangeFrameRate.avsi [2016-12-31]
C:\Program Files\AviSynth+\plugins\colors_rgb.avsi [2016-07-05]
C:\Program Files\AviSynth+\plugins\dither.avsi [2015-07-16]
C:\Program Files\AviSynth+\plugins\Favc.avsi [2014-10-16]
C:\Program Files\AviSynth+\plugins\InitExternalPlugins.avsi [2018-04-01]
C:\Program Files\AviSynth+\plugins\MCDegrain.avsi [2016-05-09]
C:\Program Files\AviSynth+\plugins\Misc.avsi [2017-10-08]
C:\Program Files\AviSynth+\plugins\QTGMC-3.32.avsi [2011-05-05]
C:\Program Files\AviSynth+\plugins\RoboSplice.avsi [2018-04-29]
C:\Program Files\AviSynth+\plugins\SelectRanges.avsi [2015-03-30]
C:\Program Files\AviSynth+\plugins\SMDegrain_20160623_mod.avsi [2016-12-04]
[Uncategorized files]
C:\Program Files\AviSynth+\plugins+\colors_rgb.txt [2016-07-05]
Groucho2004
9th June 2018, 10:23
thank you for keep this project alive but this is supposed to be open source right ?
you don't include source with last versionI guess I messed around with the batch file that creates the distributable package. Please re-download.
ChaosKing
9th June 2018, 10:25
It's a cosmetic bug in your latest version. Same with 32bit.
Log file created with: AVSMeter 2.7.7 (x64)
[OS/Hardware info]
Operating system: Windows 10 (x64) (Build 17134)
CPU brand string: AMD Ryzen 7 1700 Eight-Core Processor
CPU features: MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AVX, AVX2, FMA3, SSE4A, MMXEXT, MOVBE, POPCNT, AES, F16C
[Avisynth info]
VersionString: AviSynth+ 0.1 (r2664, MT, x86_64)
VersionNumber: 2.60
File / Product version: 0.1.0.0 / 0.1.0.0
Interface Version: 6
Multi-threading support: Yes
Avisynth.dll location: C:\WINDOWS\SYSTEM32\avisynth.dll
Avisynth.dll time stamp: 2018-03-28, 18:59:27 (UTC)
PluginDir2_5 (HKLM, x64): D:\AvisynthRepository\AVSPLUS_x64\plugins
PluginDir+ (HKLM, x64): D:\AvisynthRepository\AVSPLUS_x64\plugins
[CPP 2.5 Plugins (64 Bit)]
D:\AvisynthRepository\AVSPLUS_x64\plugins\avstp.dll [1.0.3.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\avstp.dll [1.0.3.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\ColorMatrix.dll [2.5.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\ColorMatrix.dll [2.5.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\dfttest.dll [1.9.4.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\dfttest.dll [1.9.4.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\DGDecode.dll [1.5.8.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\DGDecode.dll [1.5.8.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\dither.dll [2015-12-30]
D:\AvisynthRepository\AVSPLUS_x64\plugins\dither.dll [2015-12-30]
D:\AvisynthRepository\AVSPLUS_x64\plugins\EEDI2.dll [0.9.2.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\EEDI2.dll [0.9.2.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\flash3kyuu_deband.dll [2015-05-02]
D:\AvisynthRepository\AVSPLUS_x64\plugins\flash3kyuu_deband.dll [2015-05-02]
D:\AvisynthRepository\AVSPLUS_x64\plugins\FluxSmooth.dll [2010-11-30]
D:\AvisynthRepository\AVSPLUS_x64\plugins\FluxSmooth.dll [2010-11-30]
D:\AvisynthRepository\AVSPLUS_x64\plugins\gradfun2db.dll [2010-03-29]
D:\AvisynthRepository\AVSPLUS_x64\plugins\gradfun2db.dll [2010-03-29]
D:\AvisynthRepository\AVSPLUS_x64\plugins\HDRSharp-x64.dll [2016-02-14]
D:\AvisynthRepository\AVSPLUS_x64\plugins\HDRSharp-x64.dll [2016-02-14]
D:\AvisynthRepository\AVSPLUS_x64\plugins\hqdn3d.dll [2010-04-08]
D:\AvisynthRepository\AVSPLUS_x64\plugins\hqdn3d.dll [2010-04-08]
D:\AvisynthRepository\AVSPLUS_x64\plugins\Hqdn3dY-x64.dll [2016-06-21]
D:\AvisynthRepository\AVSPLUS_x64\plugins\Hqdn3dY-x64.dll [2016-06-21]
D:\AvisynthRepository\AVSPLUS_x64\plugins\LeakKernelDeint.dll [1.5.4.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\LeakKernelDeint.dll [1.5.4.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\LSMASHSource.dll [2017-02-24]
D:\AvisynthRepository\AVSPLUS_x64\plugins\LSMASHSource.dll [2017-02-24]
D:\AvisynthRepository\AVSPLUS_x64\plugins\Medianx64.dll [2018-02-11]
D:\AvisynthRepository\AVSPLUS_x64\plugins\Medianx64.dll [2018-02-11]
D:\AvisynthRepository\AVSPLUS_x64\plugins\MipSmooth.dll [2007-02-10]
D:\AvisynthRepository\AVSPLUS_x64\plugins\MipSmooth.dll [2007-02-10]
D:\AvisynthRepository\AVSPLUS_x64\plugins\MP_Pipeline.dll [2014-04-06]
D:\AvisynthRepository\AVSPLUS_x64\plugins\MP_Pipeline.dll [2014-04-06]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TDeint.dll [1.1.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TDeint.dll [1.1.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TMM.dll [1.0.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TMM.dll [1.0.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TNLMeans64.dll [1.0.3.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TNLMeans64.dll [1.0.3.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TTempSmooth.dll [0.9.4.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TTempSmooth.dll [0.9.4.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\VagueDenoiser.dll [0.35.1.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\VagueDenoiser.dll [0.35.1.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\VSFilterMod64.dll [1.0.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\VSFilterMod64.dll [1.0.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\warpsharp.dll [2011-06-14]
D:\AvisynthRepository\AVSPLUS_x64\plugins\warpsharp.dll [2011-06-14]
[CPP 2.6 Plugins (64 Bit)]
D:\AvisynthRepository\AVSPLUS_x64\plugins\AutoAdjust.dll [2.6.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\AutoAdjust.dll [2.6.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\Average.dll [0.94.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\Average.dll [0.94.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\AvsFilterNet.dll [2018-01-07]
D:\AvisynthRepository\AVSPLUS_x64\plugins\AvsFilterNet.dll [2018-01-07]
D:\AvisynthRepository\AVSPLUS_x64\plugins\aWarpSharp.dll [2016-06-24]
D:\AvisynthRepository\AVSPLUS_x64\plugins\aWarpSharp.dll [2016-06-24]
D:\AvisynthRepository\AVSPLUS_x64\plugins\aWarpsharpMT.dll [2.0.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\aWarpsharpMT.dll [2.0.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\ConvertStacked.dll [2018-03-28]
D:\AvisynthRepository\AVSPLUS_x64\plugins\ConvertStacked.dll [2018-03-28]
D:\AvisynthRepository\AVSPLUS_x64\plugins\DCTFilter.dll [0.5.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\DCTFilter.dll [0.5.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\Deblock.dll [2013-12-03]
D:\AvisynthRepository\AVSPLUS_x64\plugins\Deblock.dll [2013-12-03]
D:\AvisynthRepository\AVSPLUS_x64\plugins\DePan.dll [2.13.1.3]
D:\AvisynthRepository\AVSPLUS_x64\plugins\DePan.dll [2.13.1.3]
D:\AvisynthRepository\AVSPLUS_x64\plugins\DePanEstimate.dll [2.10.0.2]
D:\AvisynthRepository\AVSPLUS_x64\plugins\DePanEstimate.dll [2.10.0.2]
D:\AvisynthRepository\AVSPLUS_x64\plugins\DirectShowSource.dll [2018-03-28]
D:\AvisynthRepository\AVSPLUS_x64\plugins\DirectShowSource.dll [2018-03-28]
D:\AvisynthRepository\AVSPLUS_x64\plugins\eedi3.dll [0.9.2.3]
D:\AvisynthRepository\AVSPLUS_x64\plugins\eedi3.dll [0.9.2.3]
D:\AvisynthRepository\AVSPLUS_x64\plugins\ffms2.dll [2016-12-29]
D:\AvisynthRepository\AVSPLUS_x64\plugins\ffms2.dll [2016-12-29]
D:\AvisynthRepository\AVSPLUS_x64\plugins\fft3dfilter.dll [2.4.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\fft3dfilter.dll [2.4.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\grunt-x64.dll [2016-05-17]
D:\AvisynthRepository\AVSPLUS_x64\plugins\grunt-x64.dll [2016-05-17]
D:\AvisynthRepository\AVSPLUS_x64\plugins\ImageSeq.dll [2018-03-28]
D:\AvisynthRepository\AVSPLUS_x64\plugins\ImageSeq.dll [2018-03-28]
D:\AvisynthRepository\AVSPLUS_x64\plugins\KNLMeansCL.dll [2018-01-29]
D:\AvisynthRepository\AVSPLUS_x64\plugins\KNLMeansCL.dll [2018-01-29]
D:\AvisynthRepository\AVSPLUS_x64\plugins\masktools2.dll [2.2.13.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\masktools2.dll [2.2.13.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\MedianBlur2.dll [2014-02-10]
D:\AvisynthRepository\AVSPLUS_x64\plugins\MedianBlur2.dll [2014-02-10]
D:\AvisynthRepository\AVSPLUS_x64\plugins\modPlus.dll [2017-10-17]
D:\AvisynthRepository\AVSPLUS_x64\plugins\modPlus.dll [2017-10-17]
D:\AvisynthRepository\AVSPLUS_x64\plugins\msharpen.dll [2013-11-30]
D:\AvisynthRepository\AVSPLUS_x64\plugins\msharpen.dll [2013-11-30]
D:\AvisynthRepository\AVSPLUS_x64\plugins\mvtools2.dll [2.7.31.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\mvtools2.dll [2.7.31.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\nnedi3.dll [0.9.4.49]
D:\AvisynthRepository\AVSPLUS_x64\plugins\nnedi3.dll [0.9.4.49]
D:\AvisynthRepository\AVSPLUS_x64\plugins\Plugins_JPSDR.dll [2.0.5.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\Plugins_JPSDR.dll [2.0.5.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\ReduceFlicker.dll [2016-05-05]
D:\AvisynthRepository\AVSPLUS_x64\plugins\ReduceFlicker.dll [2016-05-05]
D:\AvisynthRepository\AVSPLUS_x64\plugins\ResampleMT.dll [1.5.3.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\ResampleMT.dll [1.5.3.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\RgTools.dll [0.96.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\RgTools.dll [0.96.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\RT_Stats_x64.dll [2017-09-10]
D:\AvisynthRepository\AVSPLUS_x64\plugins\RT_Stats_x64.dll [2017-09-10]
D:\AvisynthRepository\AVSPLUS_x64\plugins\Shibatch.dll [2018-03-28]
D:\AvisynthRepository\AVSPLUS_x64\plugins\Shibatch.dll [2018-03-28]
D:\AvisynthRepository\AVSPLUS_x64\plugins\SmoothAdjust.dll [3.2.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\SmoothAdjust.dll [3.2.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TCannyMod.dll [2016-07-05]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TCannyMod.dll [2016-07-05]
D:\AvisynthRepository\AVSPLUS_x64\plugins\tcolormask.dll [2013-11-30]
D:\AvisynthRepository\AVSPLUS_x64\plugins\tcolormask.dll [2013-11-30]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TCPDeliver.dll [0.2.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TCPDeliver.dll [0.2.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TimeStretch.dll [2018-03-28]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TimeStretch.dll [2018-03-28]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TIVTC.dll [1.0.11.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TIVTC.dll [1.0.11.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\tmaskcleaner.dll [2013-12-24]
D:\AvisynthRepository\AVSPLUS_x64\plugins\tmaskcleaner.dll [2013-12-24]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TMM2.dll [2016-07-05]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TMM2.dll [2016-07-05]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TUnsharp64.dll [0.9.3.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\TUnsharp64.dll [0.9.3.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\VapourSource_x64.dll [2016-07-05]
D:\AvisynthRepository\AVSPLUS_x64\plugins\VapourSource_x64.dll [2016-07-05]
D:\AvisynthRepository\AVSPLUS_x64\plugins\VDubFilter.dll [2018-03-28]
D:\AvisynthRepository\AVSPLUS_x64\plugins\VDubFilter.dll [2018-03-28]
D:\AvisynthRepository\AVSPLUS_x64\plugins\vinverse.dll [2013-11-30]
D:\AvisynthRepository\AVSPLUS_x64\plugins\vinverse.dll [2013-11-30]
D:\AvisynthRepository\AVSPLUS_x64\plugins\VSFilter.dll [3.1.0.800]
D:\AvisynthRepository\AVSPLUS_x64\plugins\VSFilter.dll [3.1.0.800]
D:\AvisynthRepository\AVSPLUS_x64\plugins\yadifmod2.dll [2016-07-04]
D:\AvisynthRepository\AVSPLUS_x64\plugins\yadifmod2.dll [2016-07-04]
[Uncategorized DLLs (64 Bit)]
D:\AvisynthRepository\AVSPLUS_x64\plugins\avcodec-57.dll [57.81.100.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\avcodec-57.dll [57.81.100.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\avformat-57.dll [57.66.102.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\avformat-57.dll [57.66.102.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\avresample-3.dll [3.2.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\avresample-3.dll [3.2.0.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\avutil-55.dll [55.47.100.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\avutil-55.dll [55.47.100.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\libfftw3f-3.dll [2016-07-30]
D:\AvisynthRepository\AVSPLUS_x64\plugins\libfftw3f-3.dll [2016-07-30]
D:\AvisynthRepository\AVSPLUS_x64\plugins\msvcp110.dll [11.0.51106.1]
D:\AvisynthRepository\AVSPLUS_x64\plugins\msvcp110.dll [11.0.51106.1]
D:\AvisynthRepository\AVSPLUS_x64\plugins\msvcr110.dll [11.0.51106.1]
D:\AvisynthRepository\AVSPLUS_x64\plugins\msvcr110.dll [11.0.51106.1]
D:\AvisynthRepository\AVSPLUS_x64\plugins\swscale-4.dll [4.3.101.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\swscale-4.dll [4.3.101.0]
D:\AvisynthRepository\AVSPLUS_x64\plugins\vcomp120.dll [12.0.21005.1]
D:\AvisynthRepository\AVSPLUS_x64\plugins\vcomp120.dll [12.0.21005.1]
D:\AvisynthRepository\AVSPLUS_x64\plugins\VSScript.dll [2017-01-21]
D:\AvisynthRepository\AVSPLUS_x64\plugins\VSScript.dll [2017-01-21]
D:\AvisynthRepository\AVSPLUS_x64\plugins\XySubFilter.dll [3.1.0.800]
D:\AvisynthRepository\AVSPLUS_x64\plugins\XySubFilter.dll [3.1.0.800]
[Uncategorized files]
D:\AvisynthRepository\AVSPLUS_x64\plugins\MP_Pipeline.dll.slave.exe [2014-04-06]
D:\AvisynthRepository\AVSPLUS_x64\plugins\MP_Pipeline.dll.slave.exe [2014-04-06]
D:\AvisynthRepository\AVSPLUS_x64\plugins\MP_Pipeline.dll.win32 [2014-04-06]
D:\AvisynthRepository\AVSPLUS_x64\plugins\MP_Pipeline.dll.win32 [2014-04-06]
D:\AvisynthRepository\AVSPLUS_x64\plugins\MP_Pipeline.dll.win32.slave.exe [2014-04-06]
D:\AvisynthRepository\AVSPLUS_x64\plugins\MP_Pipeline.dll.win32.slave.exe [2014-04-06]
D:\AvisynthRepository\AVSPLUS_x64\plugins\MP_Pipeline_readme.avs [2014-04-06]
D:\AvisynthRepository\AVSPLUS_x64\plugins\MP_Pipeline_readme.avs [2014-04-06]
[Plugin errors]
______________________________________________________________________________________________________________________
Error loading "D:\AvisynthRepository\AVSPLUS_x64\plugins\AutoOverlay_netautoload.dll"
Cannot load 32 bit DLL with 64 bit Avisynth
______________________________________________________________________________________________________________________
Error loading "D:\AvisynthRepository\AVSPLUS_x64\plugins\AutoOverlay_netautoload.dll"
Cannot load 32 bit DLL with 64 bit Avisynth
______________________________________________________________________________________________________________________
[Internal (core) functions]
AVIFileSource
AVISource
AddAlphaPlane
AddAutoloadDir
AddBorders
AlignedSplice
Amplify
AmplifydB
Animate
Apply
ApplyRange
Assert
AssumeBFF
AssumeFPS
AssumeFieldBased
AssumeFrameBased
AssumeSampleRate
AssumeScaledFPS
AssumeTFF
AudioDub
AudioDubEx
AudioTrim
AutoloadPlugins
AverageB
AverageChromaU
AverageChromaV
........
Groucho2004
9th June 2018, 10:29
It's a cosmetic bug in your latest version. Same with 32bit.
It's not just cosmetic. Does it happen with the previous version?
StainlessS
9th June 2018, 10:30
PluginDir2_5 (HKLM, x64): D:\AvisynthRepository\AVSPLUS_x64\plugins
PluginDir+ (HKLM, x64): D:\AvisynthRepository\AVSPLUS_x64\plugins
Mine
PluginDir2_5 (HKLM, x86): C:\Program Files\AviSynth+\plugins
PluginDir+ (HKLM, x86): C:\Program Files\AviSynth+\plugins+
ChaosKing, perhaps because both set to same directory.
Groucho2004
9th June 2018, 10:33
Mine
PluginDir2_5 (HKLM, x86): C:\Program Files\AviSynth+\plugins
PluginDir+ (HKLM, x86): C:\Program Files\AviSynth+\plugins+
ChaosKing, perhaps because both set to same directory.
Dups like this should be suppressed. That was a bug in a previous version which I thought I fixed.
Groucho2004
9th June 2018, 10:40
It's a cosmetic bug in your latest version. Same with 32bit.
Found the problem, stupid regression. Will make a new build shortly.
Groucho2004
9th June 2018, 10:45
Found the problem, stupid regression. Will make a new build shortly.
Please try this build.
Link to temporary build removed (new release available).
ChaosKing
9th June 2018, 10:53
Works flawless :)
Groucho2004
9th June 2018, 11:11
v2.7.8
Regression from 2.7.7: Suppress duplicates in plugin enumeration
StainlessS
9th June 2018, 23:32
G2K4, perhaps you would like to remove link from post #86, is named just "2.7.8.7z" rather than the better named "AVSMeter278.7z"
from your main downloads suppository (I know, a rose by any other name would smell as sweet, maybe).
Sparktank
10th June 2018, 23:20
Thanks for the updates!
I just got a new computer (new to me, still old from 2012 era).
I'm in the middle of upgrading so have to stick with the AMD Radeon it has for now.
This will definitely help me figure out what to do with my current set up. :)
All my old logs are gone with the old PC, so I'll have to work off memory.
Yanak
18th June 2018, 06:18
Hello Groucho2k4,
I am wondering if it is possible to launch a script in avsmeter and skip the first step, the scan and test running at the very start for the avisynth installation and plugins.
Asking this while trying to optimize some compiled Dll's with PGO, the thing is that each time you run a script it also creates PGO data for the scan test performed at the start, so i'm wondering is there is a switch or a possibility to simply skip this step and only perform the avs benchmarking, if not I'll continue to delete the resulting files and keep only the ones containing the data from the script itself, found nothing in the documentation but I prefer to ask in case it is somehow possible to bypass this step.
Thanks a lot.
Groucho2004
18th June 2018, 08:07
@Yanak
Try this (https://www.dropbox.com/s/rkmqm5852m5od57/AVSTimer.7z?dl=1).
Yanak
18th June 2018, 08:16
Did not knew this tool thank you,
Gave it a try but i get an error message at the very start:
H:\>avstimer pgo1.avs
AVSTimer v1.00 by Groucho2004
AviSynth+ 0.1 (r2664, MT, i386)
Cannot load a 64 bit DLL in 32 bit Avisynth: 'H:/ffms2/ffms2.dll'.
(pgo1.avs, line 1)
I work on x64 version of avisynth but also have the x86 installed that i use with Mp_Pipeline from times to times when there is no other option, seems like here it goes for the x86 directly ?
Thanks.
Groucho2004
18th June 2018, 08:17
It's only 32 bit.
Groucho2004
18th June 2018, 08:23
You could try AVSMeter v2.5.1 (x86 and x64) from here (https://www.videohelp.com/software/AVSMeter/old-versions#downloadold). It has a switch "-simple" which omits the initial test. However, there will still be 2 copies of the PGO files.
Yanak
18th June 2018, 08:24
Arg, that's what i was fearing,
Well, nevermind then, i'll continue to manually select the data files created and eliminate the ones not needed.
Thank you very much for the try ^^
Edit : will give a try to the 2.5.1 and see how it goes if i load dll's from outside avisynth folder,
Thanks again.
Yanak
18th June 2018, 08:53
Just tried the -simple switch, it does the trick for me, either with vs2107 native PGO or intel compiler integrated inside VS2017, only one .pgc or .dyn file created at the very end and no more "Analysing Script" ^^
Thanks a lot, this will make things a lot easier :)
goorawin
4th July 2018, 11:14
I Have just built a new Windows 10 System and find that AVSMeter (current version) does not work, see captured screen shot.
It works fine on another Windos10 system that was upgraded from Windows 8.1.
What are the requirements of AVSMeter ?
Thanks in advance
Groucho2004
4th July 2018, 11:21
Attached screen shots may take a long time to be approved. Post it on postimage.org or similar.
goorawin
4th July 2018, 11:41
Thanks for the tip
I have uploaded it to:
https://s15.postimg.cc/m0uckbs2z/AVSMeter_Error.jpg
Groucho2004
4th July 2018, 11:43
Did you try the suggestion below the error message?
Edit: I've never used Powershell so I can't help you with this. Maybe someone else can shed some light.
goorawin
4th July 2018, 11:52
Yes I did and no luck.
I also tried it on the system drive, same error.
I haven't loaded everything onto the system yet but so far most things work as expected including AVSPmod. Some of the avisynth plugin took sometime to work as had to install some of the older versions of Visual C++.
Windows has all the latest updates.
Groucho2004
4th July 2018, 11:56
As I mentioned above, no idea. AVSMeter only requires standard system DLLs, no runtimes, etc. necessary.
Groucho2004
4th July 2018, 12:11
Yes I did and no luck.
I also tried it on the system drive, same error.
I haven't loaded everything onto the system yet but so far most things work as expected including AVSPmod. Some of the avisynth plugin took sometime to work as had to install some of the older versions of Visual C++.
Windows has all the latest updates.
Google "PowerShell doesn't load commands from the current location by default". Plenty of people having this problem with PS.
goorawin
4th July 2018, 12:17
Thanks for your input.
Will see if I can figure it out over time.
Groucho2004
4th July 2018, 12:20
Thanks for your input.
Will see if I can figure it out over time.
I assume that you have a good reason to run PS. However, with the standard console you would not have that problem.
StainlessS
4th July 2018, 13:01
Tried out PS with AvsMeter.exe in C:\BIN\ and test.avs in C:\T\
https://s20.postimg.cc/3rewmcz3h/PShell.jpg (https://postimages.org/)
EDIT: The [EDIT: AvsMeter] error message in this case dont matter, script was just
version
qyot27
4th July 2018, 13:10
Yes I did and no luck.
I also tried it on the system drive, same error.
I haven't loaded everything onto the system yet but so far most things work as expected including AVSPmod. Some of the avisynth plugin took sometime to work as had to install some of the older versions of Visual C++.
Windows has all the latest updates.
Prepend the command with .\ like the suggestion tells you to. This is not unexpected behavior, and I can confirm that here: with the path specifier, avsmeter64 runs fine in PS - without it, it throws the exact same error. Do not use quotation marks.
Or better yet, actually take advantage of PS' tab autocompletion feature to make sure the command is written correctly.
To demonstrate this, navigate back a couple directories and use the fuller relative path - it works, with or without the .\, because you're specifying the directory. Stuff on the %PATH% also works exactly as cmd.exe handles it.
PS E:\> cd .\Documents\AVSMeter278\
PS E:\Documents\AVSMeter278> ls
Directory: E:\Documents\AVSMeter278
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 6/9/2018 6:07 AM doc
d----- 6/9/2018 6:07 AM source
-a---- 6/9/2018 6:07 AM 373248 AVSMeter.exe
-a---- 6/9/2018 6:07 AM 473088 AVSMeter64.exe
PS E:\Documents\AVSMeter278> avsmeter64
avsmeter64 : The term 'avsmeter64' is not recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ avsmeter64
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (avsmeter64:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Suggestion [3,General]: The command avsmeter64 was not found, but does exist in the current location. Windows PowerShell
does not load commands from the current location by default. If you trust this command, instead type: ".\avsmeter64".
See "get-help about_Command_Precedence" for more details.
Doing what it says to do:
PS E:\Documents\AVSMeter278> .\avsmeter64
AVSMeter 2.7.8 (x64) - Copyright (c) 2012-2018, Groucho2004
Usage: AVSMeter script.avs [switches]
Switches:
-avsinfo [-ai] Display extended Avisynth info
-c Specify custom plugin directory
in combination with "-avsinfo"
-avsdll [-ad] Specify avisynth.dll to be used
-info [-i] Display clip info
-log [-l] Create log file
-csv Create csv file
-gpu Display GPU/VPU usage (requires GPU-Z)
-range=first,last Set frame range
-timelimit=n Set time limit (seconds)
-priority=n Set process priority (1:low, 2:normal, 3:high)
For more info on the command line switches and INI file
settings read the documentation (AVSMeter.html) included
in the distribution package.
Running from a directory above:
PS E:\Documents> AVSMeter278\AVSMeter64.exe
AVSMeter 2.7.8 (x64) - Copyright (c) 2012-2018, Groucho2004
Usage: AVSMeter script.avs [switches]
Switches:
-avsinfo [-ai] Display extended Avisynth info
-c Specify custom plugin directory
in combination with "-avsinfo"
-avsdll [-ad] Specify avisynth.dll to be used
-info [-i] Display clip info
-log [-l] Create log file
-csv Create csv file
-gpu Display GPU/VPU usage (requires GPU-Z)
-range=first,last Set frame range
-timelimit=n Set time limit (seconds)
-priority=n Set process priority (1:low, 2:normal, 3:high)
For more info on the command line switches and INI file
settings read the documentation (AVSMeter.html) included
in the distribution package.
PS E:\Documents>
Trying a program on the %PATH%:
PS E:\Documents\AVSMeter278> youtube-dl --help
Usage: youtube-dl [OPTIONS] URL [URL...]
Options:
General Options:
-h, --help Print this help text and exit
--version Print program version and exit
-U, --update Update this program to latest version. Make sure that you have sufficient
[...]
The point here is that PowerShell is not cmd.exe - cmd.exe assumes the current directory is on the %PATH%, PowerShell does not. PowerShell's behavior conforms to the way most non-Windows-centric shells behave, which is fine, since PowerShell also uses a greatly-expanded scripting language compared to cmd.exe.
'.\' (or './' on shells like bash - the ubiquitous './configure' when compiling stuff is the configure script in the current directory; when doing out-of-tree builds there's no need to use ./, because you give it the full or relative path) is a directory specifier, a piece of shorthand that explicitly says 'this file is in the current directory'*, because you can run a binary or script from a relative path just outside the directory, or from an absolute path (E:\Documents\AVSMeter278\<application name> or AVSMeter278\<application name> if you're sitting in Documents). The same way ~/ means 'your %HOME% directory'.
*'.' is what denotes the current directory, while / or \ is the path separator, depending on your OS.
So if you want to keep using PowerShell, your solution is one of:
A) Copy AVSMeter.exe to C:\Windows\SysWOW64 and AVSMeter64.exe to C:\Windows or C:\Windows\System32 (because those directories are on the %PATH%).
B) Explicitly add the AVSMeter278 directory to the %PATH%, wherever it resides.
C) Get used to having to use .\ as the directory specifier.
goorawin
5th July 2018, 11:04
Thank you all for your help, I was able to get it loading correctly through PowerShell, much appreciated.
Strange that it works on one Windows 10 system but not the other and yet all have the same updates!!!!!!
StainlessS
5th July 2018, 11:58
Strange that it works on one Windows 10 system but not the other and yet all have the same updates!!!!!!
But maybe not same %PATH%, or not same contents of those %PATH% paths.
On windows 10, to view %PATH%, for system and for your own account, in cortana thing type "Environment" and click on
"Edit environment variables for your account",
Will show both your account and system Environment variables.
Below, (WXP32), Shows my System %PATH% has "C:\BIN\" in it.
https://s20.postimg.cc/pnex98a99/PS2.jpg (https://postimages.org/)
Try the $Env:Path thing on both W10 machines, and see in which path avsmeter lives on working W10 machine, then check the same directory is on %PATH% on non working machine, and that it also contains the avsmeter.exe.
EDIT: In image, "# list path" is a comment (preceded by '#'),
avsmeter is accessed via %PATH% (ie C:\BIN\ and without the .exe bit) and ".\T\Test.avs" is relative current directory, ie "C:\".
EDIT: I know that PowerShell 2.0 is probably better, but currently on a temp OS whilst setting up XP64 on other partition.
EDIT: Just noticed that in forum post that both "C:\BIN\" and "C:\" require a double backslash escape on trailing backslash before
the double quote, else the trailing backslash disappears.
Groucho2004
19th July 2018, 08:01
v2.7.9
Reorganised command line usage (see first post for details).
Added switch "-o" which disables the script pre-scan (see first post for details).
Cosmetics
Yanak
19th July 2018, 09:27
Thank you very much for the update and the option to disable the pre-scan :)
tebasuna51
19th July 2018, 11:04
Remember the new sintax, because if somebody have a batch file like me...
C:\Mios\Av>AVSMeter -avsinfo -log
AVSMeter 2.7.9 (x86) - Copyright (c) 2012-2018, Groucho2004
Invalid argument: "-avsinfo"
Now avsinfo must be without the '-':
AVSMeter avsinfo -log
Groucho2004
20th July 2018, 12:32
v2.8.0
Fixed a display bug
Further reduced memory overhead
Groucho2004
22nd July 2018, 15:05
v2.8.1
Various small fixes
StainlessS
22nd July 2018, 15:30
G, AvsMeter connect Timed out, (zip is/was named v2.80).
EDIT:
However, this works:- http://www.iol.ie/~schubert/gas/AVSMeter281.7z
Groucho2004
22nd July 2018, 15:47
G, AvsMeter connect Timed out, (zip is/was named v2.80).Hit refresh and it'll work.
StainlessS
22nd July 2018, 16:02
Hit refresh and it'll work.
Damn yeah, you truly are the chosen one :)
Groucho2004
22nd July 2018, 16:13
Damn yeah, you truly are the chosen one :)Stop it, you make me blush. :o
magiblot
30th July 2018, 22:15
With the -csv parameter (and maybe others), if the script finishes rendering with the CMD or PowerShell window being out of focus, the file save dialog doesn't appear for me. Do you experience the same?
I'm on Windows 8.1 x64.
Groucho2004
31st July 2018, 05:57
With the -csv parameter (and maybe others), if the script finishes rendering with the CMD or PowerShell window being out of focus, the file save dialog doesn't appear for me. Do you experience the same?
I'm on Windows 8.1 x64.Strange, this works for me. Please try with this (http://www.iol.ie/~schubert/AVSMTest01.7z) test build.
magiblot
31st July 2018, 06:30
Actually, I found out it's not always that the save file dialog doesn't appear. It fails when AVSMeter is run from a CMD window without admin privileges and the focus is on a program which was run with admin privileges. There's no issue with the opposite combination.
Unfortunately, the test build doesn't fix the problem.
Thanks.
Groucho2004
31st July 2018, 07:15
Actually, I found out it's not always that the save file dialog doesn't appear. It fails when AVSMeter is run from a CMD window without admin privileges and the focus is on a program which was run with admin privileges. There's no issue with the opposite combination.
Unfortunately, the test build doesn't fix the problem.
Thanks.
Well, just run it with admin privileges then, as intended. :)
magiblot
31st July 2018, 07:50
Well, just run it with admin privileges then, as intended. :)
Yeah, it's no problem :). However, I would be very grateful if you could remind this in the first post (or the documentation).
Cheers.
Groucho2004
31st July 2018, 08:05
Actually, I found out it's not always that the save file dialog doesn't appear. It fails when AVSMeter is run from a CMD window without admin privileges and the focus is on a program which was run with admin privileges.So, the File Save As dialog doesn't appear at all? It doesn't even pop up in the background?
magiblot
31st July 2018, 15:16
So, the File Save As dialog doesn't appear at all? It doesn't even pop up in the background?
Excuse me for the wait. Yeah, that's it. I made a screen recording of it:
https://drive.google.com/open?id=1DRoUc0FsXtFoQAijO4Ra_iQUhHcrXzBJ
It has audio.
Groucho2004
31st July 2018, 21:33
Excuse me for the wait. Yeah, that's it. I made a screen recording of it:
https://drive.google.com/open?id=1DRoUc0FsXtFoQAijO4Ra_iQUhHcrXzBJ
It contains audio.
Thanks. I'll look into it.
Groucho2004
17th August 2018, 09:57
v2.8.2
Improved command line switch logic/verification
Changed ini file default for "LogUseFileSaveDialog" to "0"
CPU usage now displayed as rational number
Memory usage now only displays the "Working Set" which represents the amount of memory physically mapped to the process context.
Various fixes and tweaks
Cosmetics
StvG
1st September 2018, 08:18
v2.8.2 / Avisynth+ r2728 x86_64 / ffms2 (https://forum.doom9.org/showthread.php?p=1783312#post1783312)
Script: LoadCPlugin("ffms2.dll")
FFVideoSource("input.mkv",cachefile="ariba.ffindex")
Avsmeter is running without problems when using "-o".
W/o "-o" it starts scanning the script and then suddenly quits.
Groucho2004
1st September 2018, 08:55
v2.8.2 / Avisynth+ r2728 x86_64 / ffms2 (https://forum.doom9.org/showthread.php?p=1783312#post1783312)
Script: LoadCPlugin("ffms2.dll")
FFVideoSource("input.mkv",cachefile="ariba.ffindex")
Avsmeter is running without problems when using "-o".
W/o "-o" it starts scanning the script and then suddenly quits.
Try this (https://www.dropbox.com/s/c1hdxx20q2vgpzb/avsm_test.7z?dl=1) test build.
StvG
1st September 2018, 09:31
Same - https://i.imgaa.com/2018/09/01/5b8a4e2d593eb.jpg
Groucho2004
1st September 2018, 09:56
Same - https://i.imgaa.com/2018/09/01/5b8a4e2d593eb.jpgHm, try this build (https://www.dropbox.com/s/29wo3sjahwh7ltz/avsm_test2.7z?dl=1).
StvG
1st September 2018, 10:07
It's ok now.
Groucho2004
2nd September 2018, 14:30
v2.8.3
Changed to implicit loading of avisynth.dll which seems more stable in multithreaded environments
Fixed timing issue when deleting IScriptEnvironment objects
Taurus
2nd September 2018, 21:29
v2.8.3
Is this expected behaviour?:
AVSMeter does not even start (just flashes shortly)when dragging an avs file on it's icon if there is no AVSMeter.ini in it's folder.
With an AVSMeter.ini a message appears "Cannot load avisynth.dll:
Das System kann die angegebene Datei nicht finden." if started from command prompt.
By editing the AVSMeter.ini changing to "AVSDLL=c:\Windows\Syswow64\avisynth.dll" everything works as expected.
As you can see, this is a 32bit installation of avisynth.
The html help indicates that default is an empty string, which means that AVSMeter will attempt to load avisynth.dll through the standard Windows search hierarchy.
So we have to manually edit the ini before first start to let AVSMeter do it's magic?
Somewhat confusing to my eyes...or I may have got something wrong :D.
By the way: Thanks for your wonderful tool!
Groucho2004
2nd September 2018, 21:44
v2.8.3
Is this expected behaviour?:
AVSMeter does not even start (just flashes shortly)when dragging an avs file on it's icon if there is no AVSMeter.ini in it's folder.
With an AVSMeter.ini a message appears if started from command prompt.
By editing the AVSMeter.ini changing to "AVSDLL=c:\Windows\Syswow64\avisynth.dll" everything works as expected.
As you can see, this is a 32bit installation of avisynth.
The html help indicates that default is an empty string, which means that AVSMeter will attempt to load avisynth.dll through the standard Windows search hierarchy.
So we have to manually edit the ini before first start to let AVSMeter do it's magic?
Somewhat confusing to my eyes...or I may have got something wrong :D.
By the way: Thanks for your wonderful tool!
Certainly not expected behaviour. If you installed Avisynth, either with an "official" installer or my Universal Installer it should work without editing the ini file (and it should work if the ini file has not been created yet).
Which version of Avisynth did you install?
Does it happen with previous versions of AVSMeter?
Taurus
2nd September 2018, 22:40
Avisynth 2.6.0.6
All older versions of AVSMeter working reliable.
This is the first time it happened.
Yes, and the avisynth installation is doing fine in all used applications....
Thanks for looking into this issue.
Groucho2004
2nd September 2018, 22:57
Avisynth 2.6.0.6
All older versions of AVSMeter working reliable.
This is the first time it happened.
Yes, and the avisynth installation is doing fine in all used applications....
Thanks for looking into this issue.
I have not been able to reproduce this, I hope someone else can.
Meanwhile, could you please test this build (https://www.dropbox.com/s/fshuatckb48ocm9/avsm_test.7z?dl=1)?
StvG
2nd September 2018, 23:46
v2.8.3
Is this expected behaviour?:
AVSMeter does not even start (just flashes shortly)when dragging an avs file on it's icon if there is no AVSMeter.ini in it's folder.
With an AVSMeter.ini a message appears if started from command prompt.
By editing the AVSMeter.ini changing to "AVSDLL=c:\Windows\Syswow64\avisynth.dll" everything works as expected.
As you can see, this is a 32bit installation of avisynth.
The html help indicates that default is an empty string, which means that AVSMeter will attempt to load avisynth.dll through the standard Windows search hierarchy.
So we have to manually edit the ini before first start to let AVSMeter do it's magic?
Somewhat confusing to my eyes...or I may have got something wrong :D.
By the way: Thanks for your wonderful tool!
Same here - Cannot load avisynth.dll:
The system cannot find the file specified.
The latest test build (https://forum.doom9.org/showpost.php?p=1850471&postcount=138) - no change.
Btw the previous two test builds (this (https://forum.doom9.org/showpost.php?p=1850285&postcount=130) and this (https://forum.doom9.org/showpost.php?p=1850287&postcount=132)) had the same behavior. I didn't say anything because I thought the behavior is for the test build only.
Groucho2004
3rd September 2018, 00:04
Btw the previous two test builds (this (https://forum.doom9.org/showpost.php?p=1850285&postcount=130) and this (https://forum.doom9.org/showpost.php?p=1850287&postcount=132)) had the same behavior. I didn't say anything because I thought the behavior is for the test build only.
Ok, so version 2.8.1 still worked fine? Taurus' report seems to indicate that 2.8.2 was still fine.
I wish I could reproduce this...
Edit: I can reproduce it now on W7. It works fine on XP32 /XP64.
StvG
3rd September 2018, 00:27
2.8.2/2.8.1 - were fine.
Now I have c:\windows\system32\avisynth.dll for x86_64 (avsmeter64) and I can test x86 (avsmeter) too without changing the dll path.
With c:\windows\syswow64\avisynth.dll only x86 works, for x86_64 (avsmeter64) - AVSMeter (x64) cannot load a 32 Bit avisynth.dll.
Groucho2004
3rd September 2018, 00:48
I think I fixed it. Taurus, StvG, please try this build.
Edit: New release
StvG
3rd September 2018, 01:01
It's fine here.
Thanks for your tools.
Groucho2004
3rd September 2018, 07:50
v2.8.4
Regression from v2.8.3: Revert to "MapAndLoad" WinAPI function
Added switch "-v". In combination with "avsinfo", this switch adds a list of internal/external functions and DLL dependencies to the log file.
Taurus, StvG, please try this release and let me know if it fixes both issues ("cannot load avisynth.dll" and AVSMeter quitting after pre-scan).
TIA.
Taurus
3rd September 2018, 16:20
Yes, this is also on Win7 64bit.
Just tested:
Version 2.8.2 is doing fine.
Btw.: The dropbox link you gave me throws an 404 Error! (Can't find the page).
Taurus
3rd September 2018, 16:25
Version 2.8.4 is fine now!
Thank you!
Groucho2004
8th September 2018, 04:15
v2.8.5
Fixed a long standing exception handling bug
FranceBB
9th September 2018, 01:42
Thank you for the new version. ^_^
Groucho2004
1st October 2018, 18:03
v2.8.6
Minor fixes/cosmetics
Documentation updates/corrections
tormento
4th November 2018, 11:45
I have some troubles running AVSMeter64 with -gpu switch.
I have GPU-Z running in the background but I get 0% usage:
d:AVSMeter64.exe sacrificio_KNLMeansCL_pf6.avs -gpu
AVSMeter 2.8.6 (x64) - Copyright (c) 2012-2018, Groucho2004
AviSynth+ 0.1 (r2728, MT, x86_64) (0.1.0.0)
Number of frames: 1750
Length (hh:mm:ss.ms): 00:01:12.990
Frame width: 1920
Frame height: 1032
Framerate: 23.976 (24000/1001)
Colorspace: YV12
Frames processed: 1750 (0 - 1749)
FPS (min | max | average): 1.306 | 714286 | 14.06
Process memory usage (max): 447 MiB
Thread count: 72
CPU usage (average): 50.8%
GPU usage (average): 0%
GPU memory usage (Dedicated): 0 MiB
Time (elapsed): 00:02:04.483
Windows 10_x64, latest NVIDIA drivers on GTX 760
Groucho2004
4th November 2018, 12:52
I have some troubles running AVSMeter64 with -gpu switch.
I have GPU-Z running in the background but I get 0% usage
Does GPU-Z itself show correct values?
tormento
4th November 2018, 18:06
Does GPU-Z itself show correct values?
Shame on me.
GPU-Z was set to integrated Intel since a previous test.
Groucho2004
6th November 2018, 16:33
v2.8.7
Error handling improvements
Cosmetics
Changed some error messages
Groucho2004
22nd January 2019, 03:14
v2.8.8
Timer tweaks (less overhead)
Re-phrased some error messages
Refactoring
FranceBB
22nd January 2019, 10:49
Thank you. ^_^
Groucho2004
23rd January 2019, 21:35
v2.8.9
Updated documentation
Updated dates (2018 -> 2019)
StvG
12th February 2019, 17:25
Is that error "Script runtime is too short for meaningful measurements" expected? The script is:BlankClip(length=20000,pixel_type="yuv420p10")
videoh
12th February 2019, 17:33
Try a higher number of frames:
BlankClip(...,length=10000) # for example
Probably the default of 240 is too small.
StvG
12th February 2019, 17:58
But I have "length=20000". Even with one/two "0" more, I have the same error. Also with width=1920*2,height=1080*2, no changes.
Groucho2004
12th February 2019, 18:09
But I have "length=20000". Even with one/two "0" more, I have the same error. Also with width=1920*2,height=1080*2, no changes.
With my i5 2500K CPU I get ~4,500,000 fps with that script. 20,000 frames @ 4,500,000 fps is about 4.4 ms. Minimum runtime in AVSMeter is 500 ms. Try more zeros (but not too many, max value for length is 2^31 - 1 or 2,147,483,647).
videoh
12th February 2019, 18:09
Sorry, missed your length parameter. :scared:
Maybe BlankClip is just so fast that even a very large length won't matter.
Groucho2004 can probably enlighten us further.
wonkey_monkey
12th February 2019, 19:12
blankclip constructs a single blank frame on startup and just returns a pointer to it each time. It doesn't actually do anything per frame - not even calling env->NewVideoFrame() - so it's super fast. Same with colorbars, although that has a parameter to disable the framestore:
colorbars(staticframes = false)
Groucho2004
12th February 2019, 19:33
blankclip constructs a single blank frame on startup and just returns a pointer to it each time. It doesn't actually do anything per frame - not even calling env->NewVideoFrame() - so it's super fast. Same with colorbars, although that has a parameter to disable the framestore:
colorbars(staticframes = false)
Quite the difference:
colorbars(staticframes = x, pixel_type = "yv12").loop(10000).trim(0, 99999999)
staticframes = true
Frames processed: 314750000 (0 - 314749999)
FPS (min | max | average): 5811893 | 32190153 | 30993818
Process memory usage (max): 23 MiB
Thread count: 9
CPU usage (average): 23.6%
Time (elapsed): 00:00:10.155
staticframes = false
Frames processed: 287810 (0 - 287809)
FPS (min | max | average): 7370 | 28961 | 28340
Process memory usage (max): 23 MiB
Thread count: 9
CPU usage (average): 23.5%
Time (elapsed): 00:00:10.156
Groucho2004
23rd February 2019, 03:14
v2.9.0
Added Veselin Georgiev's libcpuid (again) for better detection of some CPU features (such as number of physical/logical cores of contemporary CPUs)
Minor other fixes
Refactoring
wonkey_monkey
6th March 2019, 18:50
If it doesn't exist already, would it be possible to add a switch to output seconds per frame instead of frames per second? It feels like it might be more useful, or at least differently useful, for benchmarking.
Groucho2004
6th March 2019, 19:39
If it doesn't exist already, would it be possible to add a switch to output seconds per frame instead of frames per second? It feels like it might be more useful, or at least differently useful, for benchmarking.There are two INI file options:
DisplayFPS=1
DisplayTPF=0
from the included documentation:
"DisplayFPS" (0 or 1)
If set to "1", frames/second is printed to the console.
"DisplayTPF" (0 or 1):
If set to "1", time/frame (in milliseconds) is printed to the console.
Edit: These two options are not mutually exclusive.
wonkey_monkey
6th March 2019, 19:48
I should never have doubted you. And I should have read the manual.:stupid::thanks:
Groucho2004
8th May 2019, 10:14
v2.9.1
Fixed an error reporting bug
More accurate memory usage measurements
Limit performance data section in log/csv files to 10000 entries
Groucho2004
31st May 2019, 21:34
v2.9.2
Fixed wrong AVISYNTH_INTERFACE_VERSION
Updated dates in some messages
LouieChuckyMerry
13th June 2019, 13:48
Thanks again for AVSMeter, Groucho2004 :thanks: and I've a question (which will most likely highlight my ignorance ;) ). Under "Features" it states '"Running" scripts with virtually no overhead...', which I kinda-sorta understand. What I wonder is if "running" multiple scripts simultaneously with AVSMeter would change the output statistics, like running multiple non-multithreaded real scripts simultaneously does? Let me try again: If I "ran" three scripts in a row with AVSMeter--Script A, Script B, and ScriptC--then ran the three scripts simultaneously with AVSMeter, would the statistics for the three pairs of log files--Script A alone and Script A simultaneously, Script B alone and Script B simultaneously, Script C alone an Script C simultaneously--be the same? I need more coffee...
Groucho2004
13th June 2019, 18:09
What I wonder is if "running" multiple scripts simultaneously with AVSMeter would change the output statistics, like running multiple non-multithreaded real scripts simultaneously does? Let me try again: If I "ran" three scripts in a row with AVSMeter--Script A, Script B, and ScriptC--then ran the three scripts simultaneously with AVSMeter, would the statistics for the three pairs of log files--Script A alone and Script A simultaneously, Script B alone and Script B simultaneously, Script C alone an Script C simultaneously--be the same? I need more coffee...
First of all, AVSMeter only allows a single instance by default. If you want to run multiple instances you have to enable that in avsmeter.ini.
How much multiple instances of AVSMeter affect the statistics for each instance depends on how demanding each instance is. If one instance already eats up most of the CPU cycles then the other instances will of course be heavily affected. It also depends on the process priority for each instance. Also, if you mess around with thread affinity, things get even more complicated.
Lastly, if the Windows thread scheduler has a bad day, the CPU cycles may go wild and do silly things. :D
StainlessS
13th June 2019, 18:59
Not just depend upon CPU, hard drive usage (seeking etc) would likely also play a significant part, probably other stuff too.
Not a good idea anyway (assuming you want reasonable results).
Groucho2004
14th June 2019, 12:29
There's now a 45 minute (!) tutorial for AVSMeter on youtube.
https://www.youtube.com/watch?v=RxXP0oNJh4Q
Thanks Andrew Swan!
LouieChuckyMerry
15th June 2019, 14:35
Groucho2004 and Bender, er, StainlessS: Thanks very much for the answers (and Happy Saturday!). I'll stick with one instance at a time so that I'm the only silly thing in the room.
LouieChuckyMerry
15th June 2019, 23:33
Back for more answers--still Happy Saturday!--and thank you for your patience :) . I'm trying to understand just how to use AVSMeter to, hopefully, improve encoding speed in AviSynth+ x86 on a Windows 7 x64 quad-core setup. I'm testing different "SetMemoryMax()" and "PreFetch()" combinations with the script:
SOURCE INFORMATION HERE
SetMemoryMax(xxxx)
SetFilterMTMode("Default_MT_Mode",2)
SMDegrain(TR=3,ThSAD=600,RefineMotion=True,Plane=0,Chroma=False,n16=True,n16_Out=True)
FastLineDarkenMod4()
ConvertToDoubleWidth()
F3KDB(Y=100,Cb=100,Cr=100,GrainY=0,GrainC=0,Input_Mode=2,Output_Mode=2)
ConvertFromDoubleWidth()
PreFetch(x)
and I'm unclear what to make of the fact that a trim test with "SetMemoryMax(0)", which I think results in the default memory amount (a number I can't discern from the Wiki), and "PreFetch(5)" (which gave better results than 6, 7, or 8 in earlier tests without any "SetMemoryMax()" line) "run" with AVSMeter results in:
[Runtime info]
Frames processed: 1130 (0 - 1129)
FPS (min | max | average): 0.392 | 272826 | 9.702
Process memory usage (max): 1157 MiB
Thread count: 21
CPU usage (average): 61.6%
but only achieves 2.99 fps and appears to use 100% of the CPU when viewed in Windows Task Manager when actually run in AviSynth+. Any elucidation is much appreciated.
Groucho2004
16th June 2019, 00:06
but only achieves 2.99 fps and appears to use 100% of the CPU when viewed in Windows Task Manager when actually run in AviSynth+.I do not understand this part -> "when actually run in AviSynth+".
gonca
16th June 2019, 02:18
Back for more answers--still Happy Saturday!--and thank you for your patience :) . I'm trying to understand just how to use AVSMeter to, hopefully, improve encoding speed in AviSynth+ x86 on a Windows 7 x64 quad-core setup. I'm testing different "SetMemoryMax()" and "PreFetch()" combinations with the script:
SOURCE INFORMATION HERE
SetMemoryMax(xxxx)
SetFilterMTMode("Default_MT_Mode",2)
SMDegrain(TR=3,ThSAD=600,RefineMotion=True,Plane=0,Chroma=False,n16=True,n16_Out=True)
FastLineDarkenMod4()
ConvertToDoubleWidth()
F3KDB(Y=100,Cb=100,Cr=100,GrainY=0,GrainC=0,Input_Mode=2,Output_Mode=2)
ConvertFromDoubleWidth()
PreFetch(x)
and I'm unclear what to make of the fact that a trim test with "SetMemoryMax(0)", which I think results in the default memory amount (a number I can't discern from the Wiki), and "PreFetch(5)" (which gave better results than 6, 7, or 8 in earlier tests without any "SetMemoryMax()" line) "run" with AVSMeter results in:
[Runtime info]
Frames processed: 1130 (0 - 1129)
FPS (min | max | average): 0.392 | 272826 | 9.702
Process memory usage (max): 1157 MiB
Thread count: 21
CPU usage (average): 61.6%
but only achieves 2.99 fps and appears to use 100% of the CPU when viewed in Windows Task Manager when actually run in AviSynth+. Any elucidation is much appreciated.
You do realize that the effects of an encoder are not factored in.
The 2.99 fps when run in windows is probably the result of the encoder.
Groucho2004
16th June 2019, 03:21
The 2.99 fps when run in windows"when run in windows"???
I kinda understand now that Chucky is comparing apples and oranges but the terminology you guys are using makes no sense.
Natty
16th June 2019, 07:01
I do not understand this part -> "when actually run in AviSynth+".
maybe - when actually encoding
gonca
16th June 2019, 11:24
"when run in windows"???
I kinda understand now that Chucky is comparing apples and oranges but the terminology you guys are using makes no sense.
Sorry
I should have written "run in Windows", with quotes, indicating that it really is being run in an encode workflow.
I was just trying to figure out what the op was referring to.
Apologies for confusing the issue
Groucho2004
16th June 2019, 11:48
Sorry
I should have written "run in Windows", with quotes, indicating that it really is being run in an encode workflow.
I was just trying to figure out what the op was referring to.
Apologies for confusing the issue
No need to apologise. Apparently I'm very bad at decoding ambiguous statements. I'm like a kitchen robot with speech control. If you don't give me clear commands I'll beat you with the pan instead of making fried eggs.
ASVTut
16th June 2019, 17:48
There's now a 45 minute (!) tutorial for AVSMeter on youtube.
https://www.youtube.com/watch?v=RxXP0oNJh4Q&t=1208s
Thanks Andrew Swan!
Thanks for linking to it, Groucho! Just one thing - your link is to about 20 minutes into the tutorial. Trimming the URL to https://www.youtube.com/watch?v=RxXP0oNJh4Q fixes that. Otherwise, keep up the good work, man. :)
Groucho2004
16th June 2019, 17:55
Just one thing - your link is to about 20 minutes into the tutorial.D'oh. Fixed, thanks for pointing it out.
LouieChuckyMerry
17th June 2019, 00:06
I do not understand this part -> "when actually run in AviSynth+".
Thanks for your patience and apologies for the confusion. It seems I should've typed "when actually encoded with AviSynth+" (or please correct me if that's wrong).
You do realize that the effects of an encoder are not factored in.
The 2.99 fps when run in windows is probably the result of the encoder.
I do now (and thanks) ;) .
maybe - when actually encoding
Yes, thank you.
And now that I'm a little less clueless, any suggestions for converting the AVSMeter results into improved encoding speed with AviSynth+? Around five years ago--geez, time flies--I used AVSMeter to find the most efficient memory settings for SEt's AviSynth MT, but I'm having trouble doing the same for AviSynth+.
With no "SetMemoryMax()" line in the script, "PreFetch(5)" (on my quad-core, 16GB RAM setup) achieves better encoding speed than "PreFetch(1-4 or 6-8)". Under "SetMemoryMax" in the AviSynth wiki, it states:
In Avisynth+ this limit for default Memory Max is 1024MB for 32 bits and 4096MB on the x64 version. DefaultMemoryMax = minimum(physical_memory / 4, secondary_memory_max_limit)
which leads me to think that I'm limited to 1024MB given that I'm using AviSynth+ x86. Is this the case?
Groucho2004
17th June 2019, 19:51
@LouieChuckyMerry
A couple of questions before going deeper:
Why are you not using AVS+ 64 bit?
What is the frame size of your source?
LouieChuckyMerry
17th June 2019, 23:12
@LouieChuckyMerry
A couple of questions before going deeper:
Why are you not using AVS+ 64 bit?
What is the frame size of your source?
1) I very recently began looking into AviSynth+ x64 but haven't yet had enough free time to track down all the necessary x64 plugins-filters for my script templates.
2) 1920x1080.
Groucho2004
17th June 2019, 23:27
any suggestions for converting the AVSMeter results into improved encoding speed with AviSynth+? Around five years ago--geez, time flies--I used AVSMeter to find the most efficient memory settings for SEt's AviSynth MT, but I'm having trouble doing the same for AviSynth+.
With your script, SetMemoryMax() of about 1000 - 2000 should be sufficient. Apart from that, try various values for prefetch() and also check if adding/removing "avstp.dll" in your plugin directory makes a difference. With avstp.dll present you can probably reduce the number of threads you pass to prefetch().
Lastly, maxing out the CPU usage doesn't necessarily mean it's faster and/or more efficient.
It's usually a trial and error process. AVSMeter is your friend.
LouieChuckyMerry
19th June 2019, 01:21
With your script, SetMemoryMax() of about 1000 - 2000 should be sufficient. Apart from that, try various values for prefetch() and also check if adding/removing "avstp.dll" in your plugin directory makes a difference. With avstp.dll present you can probably reduce the number of threads you pass to prefetch().
Lastly, maxing out the CPU usage doesn't necessarily mean it's faster and/or more efficient.
It's usually a trial and error process. AVSMeter is your friend.
Thanks, Groucho2004, and indeed AVSMeter is my friend. I'll run tests with "SetMemoryMax()" between 1000 and 2000--do you happen to know the default value; I can't discern it from the AviSynth+ wiki--and various "PreFetch()" values. And I'll again try to successfully use avstp.dll (about four years ago I tried to incorporate it into my workflow but couldn't, due to frequent, obvious artifacts that looked like frost on a windowpane and were more prevalent during action scenes; hopefully updated filters-plugins have rectified this). About the only thing I remember from my use of AVSMeter five years ago with SEt's AviSynth MT is that the highest CPU usage doesn't necessarily mean the highest encoding speed, but thanks for the reminder. I'm starting to think that figuring out AviSynth+ x64 would be a better use of my (currently limited) time...
Groucho2004
20th June 2019, 00:27
v2.9.3
- Added fftw library dependency check
- New ini setting: "DisableFFTWDLLWarning". See included documentation for more info.
- Removed some superfluous ini settings which are present as command line switches
- Cleaned up documentation
Groucho2004
7th July 2019, 11:24
v2.9.4
- Updated CPU extension flags
- Updated plugin type detection
Groucho2004
22nd July 2019, 10:00
v2.9.5
- Updated libcpuid (AMD Zen 2 support)
StainlessS
25th August 2019, 17:18
Carried on from this post in Groucho2004 Avisynth Stuff thread:- https://forum.doom9.org/showthread.php?p=1883115#post1883115
Modified from VoodooFX script
#clip = LWLibavVideoSource("C:\LagarithYV12.avi.lwi") # ssS: No idea if this works ie using named index, and not the clip name.
clip=LSMashvideoSource("1941 Flint Michigan Parade [Low, 360p].mp4")
clp = clip.ConvertToRGB24
a = clp.Trim(20,-30)+clp.Trim(2000,-30)
a = a+a+a+a+a+a+a+a+a+a
a = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a
a = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a # Added
a = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a # Ditto
a = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a # Ditto
return a # 96,000,000 frames ### Max possible frames = $7FFFFFFF, ~= 2,000,000,000
I just made script [EDIT: clip] a bit longer(96,000,000 frames).
Here results, Avs v2.60 standard is indeed well faster than AVS+, I cancelled AVS+ timing at about same time as v2.60 standard had finished, and avs+ estimate has still about 50 minutes remaining till complete.
It could stand a little bit of inverstigation.
https://i.postimg.cc/8P1LP7v5/Untitled-00.jpg (https://postimages.org/)
EDIT:
BlankClip(length=1000000000)
return Last
https://i.postimg.cc/c1RZsH7r/Untitled-00.jpg (https://postimages.org/)
manolito
25th August 2019, 17:50
Try a different video source filter... :rolleyes:
I have complained repeatedly about AVS+ being very slow with FFMS2 as well as with LWLibavVideoSource. No solution so far, but DSS2Mod is way faster with AVS+.
Groucho2004
25th August 2019, 18:16
v2.9.6
Updated libcpuid
If the script runtime is too short, the number of frames processed and runtime are displayed in addition to the warning.
Refactoring
Cosmetics
VoodooFX
25th August 2019, 18:38
Here results, Avs v2.60 standard is indeed well faster than AVS+, I cancelled AVS+ timing at about same time as v2.60 standard had finished, and avs+ estimate has still about 50 minutes remaining till complete.
It could stand a little bit of inverstigation.
I think you mixed up 50 minutes with 50 hours.
Look at my test, I didn't stopped AVS+, just took screenshot at ~same time when avs v2.6 finished. In my AVS+ test it had 12 hours left and it run ~5x faster than in your test.
For some reason on my test AVS+ run on all 4 cores, when yours on 2, AVS 2.6 is same - 1 core.
https://i.imgur.com/u2CW8d4.png
clip = LWLibavVideoSource("C:\LagarithYV12.avi.lwi")
clp = clip.ConvertToRGB24
a = clp.Trim(20,-30)+clp.Trim(2000,-30)
a = a+a+a+a+a+a+a+a+a+a
a = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a
a = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a
a = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a
a = a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a+a
return a
EDIT:
Thanks Groucho2004 for new version. Can something to be done for overwriting "ini" file when I comment out "AVSDLL=" with path to AVS+(it disappears) and uncomment empty "AVSDLL=" to work with default avs 2.6?
StainlessS
25th August 2019, 19:17
I think you mixed up 50 minutes with 50 hours.
Oops, yes indeed.
Groucho2004
25th August 2019, 19:49
Can something to be done for overwriting "ini" file when I comment out "AVSDLL=" with path to AVS+(it disappears) and uncomment empty "AVSDLL=" to work with default avs 2.6?There's currently no comment feature implemented for ini entries. I'll think about it.
VoodooFX
25th August 2019, 20:02
Try a different video source filter... :rolleyes:
I have complained repeatedly about AVS+ being very slow with FFMS2 as well as with LWLibavVideoSource. No solution so far, but DSS2Mod is way faster with AVS+.
I couldn't find any working link for DSS2Mod. Can you share it?
If I replace LWLibavVideoSource with BlankClip, AVS+ test goes down from ~12h to ~3h, still ~92 times slower(when takes ~3.7x more cpu load) than avs 2.6.
Groucho2004
25th August 2019, 20:35
I couldn't find any working link for DSS2Mod.
http://avisynth.nl/index.php/DSS2mod#Source_Filters
real.finder
25th August 2019, 22:41
I couldn't find any working link for DSS2Mod. Can you share it?
If I replace LWLibavVideoSource with BlankClip, AVS+ test goes down from ~12h to ~3h, still ~92 times slower(when takes ~3.7x more cpu load) than avs 2.6.
try put this line
SetFilterMtMode("LWLibavVideoSource",MT_SPECIAL_MT,true)
in the top of script and see if it get better speed
wonkey_monkey
11th September 2019, 00:21
Is there a technical reason why multiple instances of AVSMeter can't run concurrently, or is it only blocked to avoid misleading statistics?
Groucho2004
11th September 2019, 01:37
Is there a technical reason why multiple instances of AVSMeter can't run concurrently, or is it only blocked to avoid misleading statistics?AVSMeter.ini, setting "AllowOnlyOneInstance", set it to 0. It's documented. :rolleyes:
Atak_Snajpera
29th September 2019, 16:23
Technical question: After version 2.5.3 have you changed how you output text to console? Some time ago I wrote a simple GUI for AVSMeter and it worked fine up to version 2.5.3. (the capturing code also works fine with ffmpeg.exe/x264.exe/x265.exe and so on)
https://i.imgsafe.org/0c/0c91fdfe0b.png
Now with 2.5.4 and newer version of avsmeter my code gets those weird looooooong spaces in avs info section.
Correct captured text from v2.5.3 (each line finishes with proper CRLF marker)
https://i.imgsafe.org/0c/0cbb830b40.png
...and now weird capture v2.5.4 and newer
https://i.imgsafe.org/0c/0cbb6bb58d.png
https://i.imgsafe.org/0c/0cbb6aede1.png
Looks like instead of CRLF marker for each line now we have those artificial spaces?
txt files in case if you want to examine them in notepad++ -> https://www.mediafire.com/file/9cs3pj8d2funidx/logs.7z/file
Groucho2004
29th September 2019, 16:51
Technical question: After version 2.5.3 have you changed how you output text to console?Yes. In some situations, characters from a previous text output were not erased so I changed the code a bit. I don't know how this change affects screen capture (apart from your observations).
FFMpeg has different text output routines. I use the console API to be able to position the cursor where I need it on the screen which probably explains some oddities when trying to capture the output.
Atak_Snajpera
30th September 2019, 17:36
I use the console API to be able to position the cursor where I need it on the screen which probably explains some oddities when trying to capture the output.
Yeah. That api just inserts artificial spaces in order to position cursor in desired position. It really breaks capturing to GUI.
Groucho2004
30th September 2019, 17:46
That api just inserts artificial spaces in order to position cursor in desired position.No, it doesn't, I insert those spaces. It's a function that prints a line with padding spaces to the end of the console window making sure that any characters that were on that specific line will be overwritten.
However, that function was already present in 2.5.3 so I'll check again what I changed. There might well be a workaround that won't break the capturing.
Atak_Snajpera
30th September 2019, 18:02
No, it doesn't, I insert those spaces. It's a function that prints a line with padding spaces to the end of the console window making sure that any characters that were on that specific line will be overwritten.
However, that function was already present in 2.5.3 so I'll check again what I changed. There might well be a workaround that won't break the capturing.
Ok. Makes sense now.
Groucho2004
30th September 2019, 18:10
Are you capturing stderr or stdout? Also, what are your default console dimensions (number of rows/columns)?
Groucho2004
30th September 2019, 18:20
Atak,
Here (https://www.dropbox.com/s/ofbei1r76lq3mzy/AVSMeter64.7z?dl=1) is a slightly modified 2.5.4, let me know if that behaves differently.
Atak_Snajpera
30th September 2019, 18:39
Atak,
Here (https://www.dropbox.com/s/ofbei1r76lq3mzy/AVSMeter64.7z?dl=1) is a slightly modified 2.5.4, let me know if that behaves differently.
Works fine!
https://i.imgsafe.org/23/23ddf1f5ad.png
videoh
30th September 2019, 18:53
Is there any plan to implement a decent GUI or are you committed to this obsolete console/CLI interface? Maybe you prefer the retro look? If there is an existing GUI, please advise. Thank you.
ChaosKing
30th September 2019, 19:21
There is a "gui" for the plugin scan part: Avisynth Info Tool https://forum.doom9.org/showthread.php?p=1864714
videoh
30th September 2019, 19:22
There is a "gui" for the plugin scan part: Avisynth Info Tool https://forum.doom9.org/showthread.php?p=1864714 Thank you!
Groucho2004
30th September 2019, 19:25
Is there any plan to implement a decent GUINo, neither decent nor indecent.
videoh
30th September 2019, 19:27
Thank you for your witty reply. :sly:
leoenc
22nd October 2019, 12:05
I noticed that sometimes the INI file gets overwritten with a default one. Not sure why this happens.
Is there a way to prevent this?
If not, it would be great if you could add AllowOnlyOneInstance to the CLI options, or better yet, make it default to 1.
Thanks
Groucho2004
22nd October 2019, 12:17
I noticed that sometimes the INI file gets overwritten with a default one. Not sure why this happens.
That should not happen. Which version of AVSMeter are you using?
If not, it would be great if you could add AllowOnlyOneInstance to the CLI options, or better yet, make it default to 1.'1' is the default.
leoenc
22nd October 2019, 12:27
Oops, I meant 0.
I'm using 2.9.3.
Groucho2004
22nd October 2019, 12:30
Oops, I meant 0.
I'm using 2.9.3.Well, I can't reproduce it. If I change the value to '0' it stays that way after running AVSMeter.
leoenc
22nd October 2019, 12:40
The problem is it happens randomly. It can be fine for a few days and then suddenly its back to the default.
By reading the docs this should happen if AVSmeter doesn't find the INI file. Maybe some OS issue prevents it occasionally from reading the INI.
Is there a reason why the default value of AllowOnlyOneInstance is 1?
Groucho2004
22nd October 2019, 13:01
By reading the docs this should happen if AVSmeter doesn't find the INI file.Correct. It will write a new file with default values.
Is there a reason why the default value of AllowOnlyOneInstance is 1?Yes. Most people use only one instance and this setting prevents accidentally running two or more instances without noticing which would produce wrong results.
In which directory is your AVSMeter located?
leoenc
22nd October 2019, 13:22
Its located in C:\Tools\AVSmeter.
Groucho2004
22nd October 2019, 13:46
Its located in C:\Tools\AVSmeter.OK. Still don't know what the problem could be...
leoenc
22nd October 2019, 14:28
In that case, I'd be very grateful if you could add AllowOnlyOneInstance to the CLI options to override the INI file.
Groucho2004
6th November 2019, 13:25
v2.9.7
- Timing optimisations
- Minor fixes
FranceBB
8th November 2019, 20:02
v2.9.7
- Timing optimisations
- Minor fixes
Thank you! :D
Groucho2004
2nd February 2020, 13:54
v2.9.8
- Updated libcpuid to support AMD Threadripper (Castle Peak)
- Updated AVS+ headers
- Cosmetics
JackBrody
16th February 2020, 17:15
I have troubles downloading the AVSMeter - "The connection has timed out...".
StainlessS
16th February 2020, 18:09
Here tis (I had probs too) :- http://www.mediafire.com/file/i0mu7q6nqqpp4mm/AVSMeter298.7z/file
Groucho2004
16th February 2020, 18:30
I have troubles downloading the AVSMeter - "The connection has timed out...".I've added a Dropbox mirror (https://www.dropbox.com/sh/leze79pvu5shbqo/AADBkM9XOMiFDzNI01oJlUcQa?dl=0&lst=).
l00t
17th February 2020, 08:46
I've added a Dropbox mirror (https://www.dropbox.com/sh/leze79pvu5shbqo/AADBkM9XOMiFDzNI01oJlUcQa?dl=0&lst=).
This leads to a nasty 404 error...
Groucho2004
17th February 2020, 10:17
This leads to a nasty 404 error...Changed the mirror to mediafire (http://www.mediafire.com/folder/x6f7yqjufdg7c/Groucho's_Avisynth_Stuff).
JackBrody
17th February 2020, 22:05
Thank you, mediafire was fine. :-)
Sparktank
17th February 2020, 22:31
Changed the mirror to mediafire (http://www.mediafire.com/folder/x6f7yqjufdg7c/Groucho's_Avisynth_Stuff).
:thanks:
Music Fan
6th April 2020, 21:04
Hi,
I installed v2.9.8 and set LogUseFileSaveDialog on 1 but AVSMeter does not prompt with any file save dialog :scared:
And I didn't write anything beside LogDirectory.
Groucho2004
6th April 2020, 21:11
Hi,
I installed v2.9.8 and set LogUseFileSaveDialog on 1 but AVSMeter does not prompt with any file save dialog :scared:
And I didn't write anything beside LogDirectory.Works for me. What was your exact command line?
Music Fan
6th April 2020, 22:30
No command line, I open the avs file with AVSMeter with a right click, send to.
Groucho2004
7th April 2020, 00:06
No command line, I open the avs file with AVSMeter with a right click, send to.Without the "-log" switch, no log file will be created.
Sparktank
7th April 2020, 07:13
No command line, I open the avs file with AVSMeter with a right click, send to.
Open the property box on the shortcut and add -l to the end of the executable:
C:\Apps\AVS\AVSmeter\AVSMeter64.exe -l
you can add other switches, too. like range, etc.
Create multiple shortcuts with different switches for different purposes and rename the shortcut to reflect your settings.
Music Fan
7th April 2020, 08:01
Without the "-log" switch, no log file will be created.
That's for command line, but I don't use the command line.
It used to work with old versions.:confused:
I mean with the log set on 1 in the ini and send to.
Music Fan
7th April 2020, 08:26
Open the property box on the shortcut and add -l to the end of the executable:
C:\Apps\AVS\AVSmeter\AVSMeter64.exe -l
you can add other switches, too. like range, etc.
Create multiple shortcuts with different switches for different purposes and rename the shortcut to reflect your settings.
Thanks, that worked ;)
edit : and this is strange because the ini file works because if I set LogUseFileSaveDialog on 1, the dialog box opens, otherwise the log is created in the avs file directory.
Thus I don't understand why the log was not created before I use your trick.
That's maybe not ini related.
Groucho2004
7th April 2020, 12:16
Thus I don't understand why the log was not created before I use your trick.Read my last post (#238) again. It seems rather unambiguous methinks.
Music Fan
7th April 2020, 12:44
I saw it, but the switch concerns only command line, isn't it ? As I said, I don't use command line to use AVSMeter.
With old versions, it worked with send to without having to use Sparktank's trick.
But I found in my old notes that the ini was different, there was a CreateLog line, which isn't there anymore.
edit : in other words, if you drag & drop an avs file on AVSMeter.exe v2.9.8, no log is created, whatever the ini settings, because there isn't CreateLog anymore.
StainlessS
7th April 2020, 13:30
With old versions, it worked
Use the old version then.
Music Fan
7th April 2020, 13:40
Use the old version then.
:rolleyes:
I believe a new version is not supposed to remove some useful functions.
Groucho2004
7th April 2020, 17:10
I saw it, but the switch concerns only command line, isn't it ? As I said, I don't use command line to use AVSMeter.What? It doesn't matter if you type the command line in a console window or use a shortcut with that command line to run the program.
As for the missing ini file options - they were removed in order to de-clutter the ini file. Nobody complained except you.
Music Fan
7th April 2020, 17:25
What? It doesn't matter if you type the command line in a console window or use a shortcut with that command line to run the program.
Of course, but before Sparktank's message, I didn't realize that a shortcut used with the sendto folder could contain more than just the path to the program. I didn't see it as a command line.
As for the missing ini file options - they were removed in order to de-clutter the ini file.
Ok, but that's just one line, that's not big.
Nobody complained except you.
A lot of changes in softwares are reported by only one person (because it's generally enough), I just told you what I noticed.
I didn't know if it was a bug or not, now I know.
Groucho2004
7th April 2020, 17:28
Ok, but that's just one line, that's not big.OK, I'll put the 'CreateLog' option back.
Music Fan
7th April 2020, 17:39
Thanks, as you want.;)
Groucho2004
15th April 2020, 12:27
v2.9.9
- Added GPU power consumption sensor readout
- Put back 'CreateLog' and 'CreateCSV' ini options
Music Fan
15th April 2020, 18:03
Thanks !
Groucho2004
17th April 2020, 11:26
v2.9.9.1
- Increased range for AVISYNTH_INTERFACE_VERSION detection
FranceBB
17th April 2020, 12:05
- Added GPU power consumption sensor readout
That's great. So, if I use the new version of ffms2 or DGIndexNV and run a script through AVSMeter, it should detect my old NVIDIA Quadro K4000 and tell me how much I'm using it, right?
That's cool.
I get the feeling that we're somehow moving into a sort of avisynth_neo approach and I really like that.
Groucho2004
17th April 2020, 12:14
So, if I use the new version of ffms2 or DGIndexNV and run a script through AVSMeter, it should detect my old NVIDIA Quadro K4000 and tell me how much I'm using it, right?Correct. Keep in mind that it only measures the total power consumption. So, if there's something else running using the GPU heavily, the reading will be rather useless. The same goes for GPU usage and GPU memory usage.
FranceBB
17th April 2020, 13:38
Correct. Keep in mind that it only measures the total power consumption. So, if there's something else running using the GPU heavily, the reading will be rather useless. The same goes for GPU usage and memory usage.
Oh, I see, got it.
pinterf
17th April 2020, 16:17
Thanks!
tormento
29th April 2020, 08:17
Could be possible to check every plugin for compatibility with newer pinterf AVS+ iteration?
P.S: CPU power consumption too would be nice.
pinterf
29th April 2020, 08:52
Those plugins will probably appear at the non-usable list at the bottom of avsmeter avsinfo output
Groucho2004
29th April 2020, 10:18
Those plugins will probably appear at the non-usable list at the bottom of avsmeter avsinfo outputSo far I only found KNLMeansCL that produces an error message.
Groucho2004
29th April 2020, 10:20
Could be possible to check every plugin for compatibility with newer pinterf AVS+ iteration?As pinterf mentioned, there should be an error message.
CPU power consumption too would be nice.I looked into that some time ago, couldn't find a suitable library. I'll have another look.
tormento
29th April 2020, 19:41
As pinterf mentioned, there should be an error message.
Ok but I’d like to test my plugin folder instead of having to use them one by one.
Groucho2004
29th April 2020, 19:47
Ok but I’d like to test my plugin folder"AVSMeter avsinfo" will do exactly that. You can even use the switch "-c" to specify any directory with plugins you want.
You can also use the Avisynth Info Tool.
tormento
30th April 2020, 10:21
"AVSMeter avsinfo" will do exactly that.
You are telling me that is already capable of find AVS+ 3.x compatible plugins?
Groucho2004
30th April 2020, 10:26
You are telling me that is already capable of find AVS+ 3.x compatible plugins?It should. AVSMeter calls 'LoadPlugin()" on every plugin which should reveal incompatibilities (It does with the old KNLMeansCL). If you find one that does not work with AVS+ 3.5.2 and AVSMeter doesn't complain, let me know.
tormento
9th May 2020, 10:30
I looked into that some time ago, couldn't find a suitable library. I'll have another look.
AFAIK both MSI Afterburner and HwInfo can provide values, at least thru RivaTuner Server. I am not a programmer but you can easily find some documentation about needed APIs.
Groucho2004
9th May 2020, 15:05
HwInfoThat API is not free.
... MSI Afterburner... RivaTuner Server ...No thanks.
Groucho2004
12th May 2020, 11:44
v2.9.9.2
- Updated AVS headers
- Updated libcpuid
FranceBB
12th May 2020, 16:01
v2.9.9.2
- Updated AVS headers
- Updated libcpuid
Thank you! :)
DiablosDemon
13th May 2020, 20:09
Hello Grocho I can't seem to get the AVSMeter64 to install. I have the 32bit version working. I installed as administrator. What do you think is happening to not let this install OR what am I doing wrong(this is the most likely problem)? When I install all I get is a flash on the screen. I really do like the meter works great with 32bit but I want to try some of the 64bit scripts. Thanks. Using Powershell, message below.
PS C:\Users\ME\Desktop\TestAVS> avsmeter64
avsmeter64 : The term 'avsmeter64' is not recognized as the name of a cmdlet, function, script file, or operable
program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
At line:1 char:1
+ avsmeter64
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (avsmeter64:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
StainlessS
13th May 2020, 20:31
Where have you put it ?
Go to command line and check that path to directory holding AvsMeter64.exe is set.
ie from command line type 'set'
EDIT:
for me, has this for path
Path=C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system3
2;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0
\;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\WindowsPowerSh
ell\v1.0\;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\Window
sPowerShell\v1.0\;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\BIN;C:\BINW7;C:
\ProgramData\chocolatey\bin;;C:\Program Files\VSCodium\bin
Above where mine is/are [both x86 and x64] in BLUE
EDIT: I got an awful lot of identical Powershell paths in there, I've deleted the extra ones.
DiablosDemon
13th May 2020, 21:34
OK I'm a bonehead It was a while ago I installed the 32bit version and forgot how it was done. I have it in now but still have a slight problem. AVSmeter64 can't create the .ins file. I installed the .ins file that came with the .exe in the same directory. Probably another bonehead moment.
AVSMeter 2.9.9.2 (x64), 2012-2020, (c) Groucho2004
Cannot create "C:\Program Files\AVSmeter64\AVSMeter.ini"
Groucho2004
13th May 2020, 21:52
Cannot create "C:\Program Files\AVSmeter64\AVSMeter.ini"Windows won't let you write to "Program Files". Use a different directory, for example what Stainless suggested above or something like "C:\Tools". And don't forget to add that directory to your PATH environment variable.
DiablosDemon
13th May 2020, 22:13
Thanks Grocho I did not know windows did that. Working great now. Is the Program files (86) different? This is where I put the 32bit which works great too. :)
C:\Program Files (x86)\AVSmeter\AVSmeter.exe
Groucho2004
13th May 2020, 22:27
Is the Program files (86) different? This is where I put the 32bit which works great too. :)I don't know. I have UAC disabled and I'm logged in with admin rights.
Groucho2004
21st May 2020, 23:27
v2.9.9.3
Added new color space definitions (CS_RGBP8 and CS_RGBAP8), removed redundant CS_RGBP / CS_RGBAP
Fixed a version resource issue
Updated AVS headers
StainlessS
21st May 2020, 23:39
Cheers oh Groucho one :)
tormento
22nd May 2020, 12:27
@Groucho2004
Isn't possible to list interface version for every plugin?
Groucho2004
22nd May 2020, 19:44
Isn't possible to list interface version for every plugin?There's no such thing. Avisynth C++ plugins either use the 2.0, 2.5 or 2.6 initialisation which AVSMeter indicates. BTW, 2.0 is ancient and not supported by AVS+.
The AVISYNTH_INTERFACE_VERSION is a property of avisynth.dll, also indicated by AVSMeter.
tormento
22nd May 2020, 20:42
There's no such thing. Avisynth C++ plugins either use the 2.0, 2.5 or 2.6 initialisation which AVSMeter indicates. BTW, 2.0 is ancient and not supported by AVS+.
The AVISYNTH_INTERFACE_VERSION is a property of avisynth.dll, also indicated by AVSMeter.
I meant compatibility. Perhaps trying to simulate a call to the dll in the possible different interfaces and look what gives error and generate report as maximum supported interface.
Groucho2004
22nd May 2020, 20:55
I meant compatibility. Perhaps trying to simulate a call to the dll in the possible different interfaces and look what gives error and generate report as maximum supported interface.Sorry, not workable.
Groucho2004
23rd May 2020, 16:50
v3.0.0.0
- Added check for duplicate functions
This checks for duplicate functions
1. within .avsi files
2. against functions in other .avsi files
3. against internal/plugin functions
Since a new feature was added I guess bumping the major version number is justified.
I would appreciate some testing of the new feature (real.finder, Stainless?).
Have fun.
ChaosKing
23rd May 2020, 17:18
Thx for adding duplicate function detection.
I think you should show all scripts with duplicate functions.
In avsrepogui I show it like this:
Duplicate Function Name Detection
------------------------------------------------------------
Path of *.avsi files: D:\AvisynthRepository\SCRIPTS
Found 30 potential conflicts:
Function name: bbb
D:\AvisynthRepository\SCRIPTS\a - copy.avsi
D:\AvisynthRepository\SCRIPTS\b - copy.avsi
D:\AvisynthRepository\SCRIPTS\c - copy.avsi
Function name: GreyCenteredToMask_dhh
D:\AvisynthRepository\SCRIPTS\dehalohmod.avsi
D:\AvisynthRepository\SCRIPTS\Zs_RF_Shared.avsi
With avsmeter I can't see in which file the "GreyCenteredToMask_dhh" is found first. In this case it would be dehalomod.avsi, but avsmeter would only show Zs_RF_Shared.avsi (or b & c copy, but not a copy)
Groucho2004
23rd May 2020, 17:21
Thx for adding duplicate function detection.
I think you should show all scripts with duplicate functions.
In avsrepogui I show it like this:
Duplicate Function Name Detection
------------------------------------------------------------
Path of *.avsi files: D:\AvisynthRepository\SCRIPTS
Found 30 potential conflicts:
Function name: bbb
D:\AvisynthRepository\SCRIPTS\a - copy.avsi
D:\AvisynthRepository\SCRIPTS\b - copy.avsi
D:\AvisynthRepository\SCRIPTS\c - copy.avsi
Function name: GreyCenteredToMask_dhh
D:\AvisynthRepository\SCRIPTS\dehalohmod.avsi
D:\AvisynthRepository\SCRIPTS\Zs_RF_Shared.avsi
With avsmeter I can't see in which file the "GreyCenteredToMask_dhh" is found first. In this case it would be dehalomod.avsi, but avsmeter would only show Zs_RF_Shared.avsi (or b & c copy, but not a copy)Can you post these AVSI's for me to test?
ChaosKing
23rd May 2020, 17:24
You can just create a copy of your avsi script ;-)
https://filehorst.de/d/drDJGffI
tormento
23rd May 2020, 17:27
Can you post these AVSI's for me to test?
Parsing this forum for “AVSI” word will make you happy [emoji2]
ChaosKing
23rd May 2020, 17:28
Too much work, copy paste is always faster :D
@Groucho2004 How are you reading / finding the script functions? Via avisynth interface? I'm using regex to find all script functions... just curious how it is implemented.
Groucho2004
23rd May 2020, 18:03
How are you reading / finding the script functions?Simple parsing of the .avsi files.
real.finder
24th May 2020, 10:17
v3.0.0.0
- Added check for duplicate functions
This checks for duplicate functions
1. within .avsi files
2. against functions in other .avsi files
3. against internal/plugin functions
Since a new feature was added I guess bumping the major version number is justified.
I would appreciate some testing of the new feature (real.finder, Stainless?).
Have fun.
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
Groucho2004
24th May 2020, 11:06
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_"[/CODE]
but not perfectAre these the exact error messages? If so, can you post the avsi that produced them?
real.finder
24th May 2020, 11:16
Are these the exact error messages? If so, can you post the avsi that produced them?
yes they are
https://www.solidfiles.com/v/N4DmPy6MgMGXx
Groucho2004
24th May 2020, 11:21
yes they are
https://www.solidfiles.com/v/N4DmPy6MgMGXx
Thanks. I know what happened there.
ChaosKing
24th May 2020, 11:29
Another improvement could be made here. I can see that some plugins are using the same function name. But which plugin is it (or plugins)? I think showing also the dll file name would be great.
[Plugin errors/warnings]
_____________________________________________________________________________________
Duplicate function (Plugin): "AverageChromaU"
_____________________________________________________________________________________
Duplicate function (Plugin): "AverageChromaV"
_____________________________________________________________________________________
Duplicate function (Plugin): "AverageLuma"
_____________________________________________________________________________________
Duplicate function (Plugin): "ChromaUDifference"
...
StainlessS
24th May 2020, 11:54
The cdeblend script using min, maybe was written for avs 2.57 (or prior), 2.57 had no min/max funcs.
Think Grunt maybe redefines eg AverageChromaU, maybe adding Offset arg.
EDIT: Grunt
AverageChromaU "ci"
AverageChromaV "ci"
AverageLuma "ci"
BindStr "s"
ChromaUDifference "cci"
ChromaVDifference "cci"
ConditionalFilter "cccs[showx]b[args]s[local]b"
ConditionalFilter "cccs[showx]b[args]s[local]b"
FrameEvaluate "cs[showx]b[after_frame]b[args]s[local]b"
GConditionalFilter "cccs[show]b[args]s[local]b"
GConditionalFilter "cccs[show]b[args]s[local]b"
GFrameEvaluate "cs[show]b[after_frame]b[args]s[local]b"
GRTConfig "[local]b"
GScriptClip "cs[show]b[after_frame]b[args]s[local]b"
GWriteFile "c[filename]ss+[append]b[flush]b[args]s[local]b"
GWriteFileIf "c[filename]ss+[append]b[flush]b[args]s[local]b"
LumaDifference "cci"
RGBDifference "cci"
RGBDifferenceFromPrevious "ci"
RGBDifferenceToNext "ci"
ScriptClip "cs[showx]b[after_frame]b[args]s[local]b"
UDifferenceFromPrevious "ci"
UDifferenceToNext "ci"
UPlaneMax "c[threshold]fi"
UPlaneMedian "ci"
UPlaneMin "c[threshold]fi"
UPlaneMinMaxDifference "c[threshold]fi"
VDifferenceFromPrevious "ci"
VDifferenceToNext "ci"
VPlaneMax "c[threshold]fi"
VPlaneMedian "ci"
VPlaneMin "c[threshold]fi"
VPlaneMinMaxDifference "c[threshold]fi"
WriteFile "c[filenamex]ss+[append]b[flush]b[args]s[local]b"
WriteFileIf "c[filenamex]ss+[append]b[flush]b[args]s[local]b"
YDifferenceFromPrevious "ci"
YDifferenceToNext "ci"
YPlaneMax "c[threshold]fi"
YPlaneMedian "ci"
YPlaneMin "c[threshold]fi"
YPlaneMinMaxDifference "c[threshold]fi"
EDIT: The trailing i's seem to be the 'offset' args, 'Local' was (I think) recently added in avs+, 'args' not implements in avs+ I think.
BindStr() and GRTConfig() are newish to me, never noticed before a day or two ago, not sure if explained in Grunt docs.
EDIT: I think that some of the Grunt args are a little bit naughty, once you use an Optional named arg, all subsequent args should be optional named args, so
YPlaneMinMaxDifference "c[threshold]fi"
the i (which would be offset) following named optional arg threshold should be a named optional arg.
Above, "[threshold]f" is an optional arg named threshold, of type float. 'i' should really be specified something like "[Offset]i".
Maybe Gavino has an 'excuse' for doing it as is, or maybe not :)
Groucho2004
24th May 2020, 12:21
I can see that some plugins are using the same function name. But which plugin is it (or plugins)? I think showing also the dll file name would be great.I tried that before, very difficult. On the backburner for now.
real.finder
24th May 2020, 12:24
another thing I note in avs 2.6
https://pastebin.com/eB1JiWij
note that LoadPlugin: too many plugins loaded already (max. 50)
ChaosKing
24th May 2020, 12:26
Your list looks like mine, so it's Grunt. But what would the name of the other plugin be? You see the dilema :D
EDIT
I tried that before, very difficult. On the backburner for now.
ok, hopefully this can be added one day.
ChaosKing
24th May 2020, 12:29
avs 2.6 is like xp, should one really support it?
Groucho2004
24th May 2020, 12:33
another thing I note in avs 2.6
https://pastebin.com/eB1JiWij
note that LoadPlugin: too many plugins loaded already (max. 50)Avisynth throws that error when there are too many plugins in the auto-load directory.
StainlessS
24th May 2020, 12:34
But what would the name of the other plugin be?
Probably Avisnth.dll, ie builtin.
I note that I've recently been trying GisPos AvsPMod, and was getting a warning for GConditionalFilter duplicate name,
warning disappears when Grunt plugin removed.
Also warning about Beta version, presume is result of recent Groucho compiled grunt, having third part of 4 part version number in
resource file resource as non zero.
https://i.postimg.cc/HWqLmyvy/Untitled-00.jpg (https://postimages.org/)
EDIT: Guessing duplicate function thing about detected by AvsPMod due to the addresses of GConditionalFilter and ConditionalFilter
creator functions being the same, maybe.
EDIT: "This function is Beta" perhaps refers the the AvsPMod function rather than grunt functions.
Groucho2004
24th May 2020, 12:36
presume is result of recent Groucho compiled gruntI never compiled Grunt.
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.
StainlessS
13th September 2020, 14:47
There is no switch "-avsinfo", just the command "avsinfo"
Yeh, me done dat lotsa times.
gispos
13th September 2020, 17:03
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.
That is the problem, why no switch for avsinfo? The user enters the parameters for the program in the edit field and the file name is automatically transferred. So that's standard for other programs
Now I have to guess, is the user using AvsMeter? and I have to replace the filename with 'avsinfo' and not use any other parameter.
I had to use extra characters that are used as information as to whether the file name has to be replaced by avsinfo. It's awkward and confusing.
Command? Why? Nonsense, use parameters (switches).
Just add -avsinfo as a parameter
Default Error
https://i.postimg.cc/DfcX35Gj/Parameter-Error.jpg (https://postimages.org/)
Not standard for it to work
https://i.postimg.cc/yYdk4Ksx/Parameter.jpg (https://postimages.org/)
Menu name | parameters for the program
The file name is transferred automatically. And that works for everyone ... except AvsMeter
Groucho2004
13th September 2020, 17:39
Command? Why? Nonsense, use parameters (switches)."-avsinfo" used to be a switch.
Even though I don't appreciate your snippyness, I'll think about bringing it back.
I wonder what other users think about it.
videoh
13th September 2020, 18:10
I don't appreciate your snippyness I don't appreciate your dorkiness.
Groucho2004
13th September 2020, 18:29
I don't appreciate your dorkiness.Eat my shorts.
StainlessS
13th September 2020, 18:39
I dont appreciate your eating habits.
gispos
13th September 2020, 19:12
"-avsinfo" used to be a switch.
Even though I don't appreciate your snippyness, I'll think about bringing it back.
I wonder what other users think about it.
Sorry if I have expressed my wishes a little overzealous.
I know my English is not the best, but I've tried so many times to bring the problem to you ... and that excited me:)
God forgive me, hopefully you too
Groucho2004
13th September 2020, 21:17
v3.0.4.0
"avsinfo" is now again a switch ("-avsinfo")
Removed custom avisynth.dll dialog selection from the command line
Removed custom plugin directory dialog selection from the command line
gispos
14th September 2020, 17:53
v3.0.4.0
"avsinfo" is now again a switch ("-avsinfo")
nice, thanks :)
gispos
16th September 2020, 17:05
A little hint ( well-meant! :)). After recognizing the argument '-avsinfo' it is not necessary to check whether an avs file has been passed.
How does the user benefit from receiving an error message for every argument that does not match?
It is user-friendly to simply ignore unused arguments.
As written 'File names are often automatically passed along with the arguments'
Groucho2004
17th September 2020, 13:38
A little hint ( well-meant! :)). After recognizing the argument '-avsinfo' it is not necessary to check whether an avs file has been passed.
How does the user benefit from receiving an error message for every argument that does not match?
It is user-friendly to simply ignore unused arguments.
As written 'File names are often automatically passed along with the arguments'How would the program know what the user intended?
Let's say the command line is "AVSMeter test.avs -avsinfo", either the script name or the parameter was added by mistake. Which one to ignore?
StainlessS
17th September 2020, 14:34
HMmmm, so your software cannot tell what user intended ... seems a little unreliable.
Groucho2004
17th September 2020, 14:40
HMmmm, so your software cannot tell what user intended ... seems a little unreliable.Not to worry, the mind-reading module is already in the works.
gispos
17th September 2020, 16:20
How would the program know what the user intended?
Let's say the command line is "AVSMeter test.avs -avsinfo", either the script name or the parameter was added by mistake. Which one to ignore?
The filename is not a switch. You have to set priorities.
And with -avsinfo it's even easier, because -avsinfo is your main switch that sets your program to another mode.
So why check a series of switches that this mode cannot do anything with.
If you had 2 main switches, let's say 3 different modes, you could argue about whether the switch set first in the parameter list is used (which I would do) or whether an error message appears.
videoh
17th September 2020, 16:24
For a command that included an avs script and -avsinfo, I would expect the program to first print the avsinfo and then do the script processing. Am I missing something?
gispos
17th September 2020, 16:33
For a command that included an avs script and -avsinfo, I would expect the program to first print the avsinfo and then do the script processing. Am I missing something?
You can do it that way, but you don't have to do it that way
That seems to me to be too complicated.
Prioritizing switches - the only correct way to proceed
videoh
17th September 2020, 16:36
The user has explicitly asked for both!
And who are you to declare what is "the only correct way"?
Groucho2004
17th September 2020, 16:38
There are at least 30 error conditions under which AVSMeter throws an error. I'm not going to remove that one. The program returns "-1" in case of an error (otherwise "0"). Get your command line in order and check for the program's return value. Then you can decide for yourself what to ignore.
Groucho2004
17th September 2020, 16:56
For a command that included an avs script and -avsinfo, I would expect the program to first print the avsinfo and then do the script processing. Am I missing something?Running a script and gathering extended Avisynth info (-avsinfo) are 2 different operating modes. I'd rather have them separate. There is for example a switch "-info" which simply returns a scripts properties. Users have accidentally used -avsinfo instead of -info before which just creates confusion. So, using -avsinfo together with a script name makes no sense and should be pointed out to the user.
gispos
17th September 2020, 17:03
Sorry, but what videoh asks is nonsense and makes the whole topic absurd.
Groucho you have one main switch, so it can not be difficult to ignore the filename and all unnecessary arguments.
FranceBB
17th September 2020, 17:08
Not to worry, the mind-reading module is already in the works.
https://i.imgur.com/zp6VAqK.png
Groucho2004
17th September 2020, 17:12
Sorry, but what videoh asks is nonsense and makes the whole topic absurd.The problem is that you think what you're asking makes sense.
gispos
17th September 2020, 17:22
The problem is that you think what you're asking makes sense.
There are enough examples.
if you use arguments with ffmpeg that are not needed they are ignored. Nobody says 'No you can't do that'
But I'm out of here now.
videoh
17th September 2020, 17:31
There are enough examples.
if you use arguments with ffmpeg that are not needed they are ignored. Nobody says 'No you can't do that' And there are enough examples of applications that do report bad options.
But I'm out of here now. Is that a threat or a promise? A fit of pique?
gispos
17th September 2020, 19:34
Is that a threat or a promise? A fit of pique?
Yesterday you insulted Groucho and today you insulted me. What's wrong with you?
What had started as a harmless discussion took an uncomfortable turn. That's why.
And there are enough examples of applications that do report bad options.
And because some do it wrong, you don't have to do it the same way.
I regret having raised this issus here. I should have known better that this only brings trouble.
My bad.
wonkey_monkey
17th September 2020, 20:24
gispos, if I may interject, it's your unwavering insistence that you're right and everyone else is wrong that has likely rubbed people up the wrong way here. videoh and Groucho2004 have given good reasons for not doing as you suggest.
That said, I stll haven't got a clue what you're trying to achieve. What other program is trying to pass a filename to avsmeter when you don't want it to?
StainlessS
17th September 2020, 20:28
Thats what I like about science, there's never only one correct answer.
:)
Groucho2004
19th September 2020, 18:04
v3.0.5.0
Added command line switch "-p". This pauses the program at the end and returns after pressing a key.
Modified some error messages
videoh
19th September 2020, 18:07
My bad. You finally got something right. Congratulations!
stax76
19th September 2020, 21:37
I would like to request Windows 10 long path support by adding a manifest, since the prefix workaround don't work there are probably buffers used with MAX_PATH size limitation.
Invalid argument: "\\?\C:\iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\Jupiter !_temp\Jupiter !_new_temp.avs"
https://github.com/staxrip/staxrip/wiki/Windows-10-long-path-support
https://docs.microsoft.com/en-us/windows/win32/fileio/naming-a-file
Groucho2004
19th September 2020, 23:46
I would like to request Windows 10 long path support by adding a manifest, since the prefix workaround don't work there are probably buffers used with MAX_PATH size limitation.Can you try this (http://www.mediafire.com/file/zvng46oicnj8t72/AVSMeter_3.0.6.0.7z/file) version?
stax76
20th September 2020, 08:59
Thanks for the support Groucho. It does not work yet, maybe still a buffer issue because even the prefix workaround does not work. It's not having a manifest according to Resource Hacker. You can find example manifests on our wiki page:
https://github.com/staxrip/staxrip/wiki/Windows-10-long-path-support#manifests
stax76
20th September 2020, 13:30
Project -> Properties -> Linker -> Manifest File
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity name="none" version="0.0.0.0"/>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<longPathAware xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">true</longPathAware>
</windowsSettings>
</application>
</assembly>
Groucho2004
20th September 2020, 16:02
It's not having a manifest according to Resource Hacker.
Try this one (http://www.mediafire.com/file/a4aho48y3kfee43/file) (with manifest).
stax76
20th September 2020, 19:29
It's still not working I'm afraid.
Error: Invalid argument: "C:\iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii\Jupiter !_temp\Jupiter !_new_temp.avs"
Groucho2004
20th September 2020, 23:23
It's still not working I'm afraid.Hm, I'll look into it.
Groucho2004
22nd September 2020, 19:17
v3.0.6.0
Increased some static buffer sizes
Now using LoadlibraryEx with the flag "LOAD_WITH_ALTERED_SEARCH_PATH"
stax76
26th September 2020, 04:26
@Groucho2004
Which IDE and which compiler name and version do you use to build avsmeter?
I tried with following:
g++.exe (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0
GNU gdb (GDB) 8.1
Guide used:
https://code.visualstudio.com/docs/cpp/config-mingw
Errors
> Executing task: & 'C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\g++.exe' -g 'D:\To Do\AVSMeter3060\source\*.cpp' -o 'd:\To Do\AVSMeter3060\source\AVSMeter.exe' <
In file included from D:\To Do\AVSMeter3060\source\AVSMeter.cpp:20:
D:\To Do\AVSMeter3060\source\exception.h: In function 'void SE_Translator(unsigned int, EXCEPTION_POINTERS*)':
D:\To Do\AVSMeter3060\source\exception.h:1859:22: error: no matching function for call to 'std::exception::exception(char [2048])'
throw exception(msg);
^
In file included from C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/exception:38,
from C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/new:40,
from C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/ext/new_allocator.h:33,
from C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/x86_64-w64-mingw32/bits/c++allocator.h:33,
from C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/allocator.h:46,
from C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/string:41,
from D:\To Do\AVSMeter3060\source\common.h:31,
from D:\To Do\AVSMeter3060\source\AVSMeter.cpp:19:
C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/exception.h:63:5: note: candidate: 'std::exception::exception()'
exception() _GLIBCXX_USE_NOEXCEPT { }
^~~~~~~~~
C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/exception.h:63:5: note: candidate expects 0 arguments, 1 provided
C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/exception.h:60:9: note: candidate: 'constexpr std::exception::exception(const std::exception&)'
class exception
^~~~~~~~~
C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/lib/gcc/x86_64-w64-mingw32/8.1.0/include/c++/bits/exception.h:60:9: note: no known conversion for argument 1 from 'char [2048]' to 'const std::exception&'
The terminal process "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -Command & 'C:\Program Files\mingw-w64\x86_64-8.1.0-posix-seh-rt_v6-rev0\mingw64\bin\g++.exe' -g 'D:\To Do\AVSMeter3060\source\*.cpp' -o 'd:\To Do\AVSMeter3060\source\AVSMeter.exe'" terminated with exit code: 1.
tasks.json
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "C/C++: g++.exe build files",
"command": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\g++.exe",
"args": [
"-g",
"${workspaceFolder}\\*.cpp",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
},
{
"type": "shell",
"label": "C/C++: cl.exe build active file",
"command": "cl.exe",
"args": [
"/Zi",
"/EHsc",
"/Fe:",
"${fileDirname}\\${fileBasenameNoExtension}.exe",
"${file}"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$msCompile"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}
launch.json
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - Build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\Program Files\\mingw-w64\\x86_64-8.1.0-posix-seh-rt_v6-rev0\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe build files"
}
]
}
MS compiler error
> Executing task: cl.exe /Zi /EHsc /Fe: 'd:\To Do\AVSMeter3060\source\AVSMeter.exe' 'd:\To Do\AVSMeter3060\source\AVSMeter.cpp' <
Microsoft (R) C/C++ Optimizing Compiler Version 19.27.29111 for x86
Copyright (C) Microsoft Corporation. All rights reserved.
AVSMeter.cpp
d:\To Do\AVSMeter3060\source\AvisynthInfo.h(372): warning C4834: discarding return value of function with 'nodiscard' attribute
Microsoft (R) Incremental Linker Version 14.27.29111.0
Copyright (C) Microsoft Corporation. All rights reserved.
/debug
"/out:d:\To Do\AVSMeter3060\source\AVSMeter.exe"
AVSMeter.obj
AVSMeter.obj : error LNK2019: unresolved external symbol __imp__CharToOemA@8 referenced in function __catch$?CalculateFrameInterval@@YAIAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z$4
AVSMeter.obj : error LNK2019: unresolved external symbol _GetFileVersionInfoSizeA@8 referenced in function "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall CUtils::GetFileVersion(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?GetFileVersion@CUtils@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V23@@Z)
AVSMeter.obj : error LNK2019: unresolved external symbol _GetFileVersionInfoA@16 referenced in function "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall CUtils::GetFileVersion(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?GetFileVersion@CUtils@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V23@@Z)
AVSMeter.obj : error LNK2019: unresolved external symbol _VerQueryValueA@16 referenced in function "public: class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall CUtils::GetFileVersion(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?GetFileVersion@CUtils@@QAE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V23@@Z)
AVSMeter.obj : error LNK2019: unresolved external symbol __imp__RegCloseKey@4 referenced in function __catch$?GetInfo@CAvisynthInfo@@QAEHAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z$13
AVSMeter.obj : error LNK2019: unresolved external symbol __imp__RegEnumKeyExA@32 referenced in function __catch$?TestLoadPlugins@CAvisynthInfo@@AAEXXZ$2
AVSMeter.obj : error LNK2019: unresolved external symbol __imp__RegOpenKeyExA@20 referenced in function __catch$?GetInfo@CAvisynthInfo@@QAEHAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z$13
AVSMeter.obj : error LNK2019: unresolved external symbol __imp__RegQueryValueExA@24 referenced in function __catch$?GetInfo@CAvisynthInfo@@QAEHAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z$13
AVSMeter.obj : error LNK2019: unresolved external symbol __imp__MapAndLoad@20 referenced in function "public: int __thiscall CAvisynthInfo::GetInfo(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,int)" (?GetInfo@CAvisynthInfo@@QAEHAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z)
AVSMeter.obj : error LNK2019: unresolved external symbol __imp__UnMapAndLoad@4 referenced in function "public: int __thiscall CAvisynthInfo::GetInfo(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,int)" (?GetInfo@CAvisynthInfo@@QAEHAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z)
AVSMeter.obj : error LNK2019: unresolved external symbol __imp__ImageRvaToVa@16 referenced in function
"public: int __thiscall CAvisynthInfo::GetInfo(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > &,int)" (?GetInfo@CAvisynthInfo@@QAEHAAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z)
AVSMeter.obj : error LNK2019: unresolved external symbol _cpuid_present referenced in function __catch$?TestLoadPlugins@CAvisynthInfo@@AAEXXZ$2
AVSMeter.obj : error LNK2019: unresolved external symbol _cpuid_get_raw_data referenced in function __catch$?TestLoadPlugins@CAvisynthInfo@@AAEXXZ$2
AVSMeter.obj : error LNK2019: unresolved external symbol _cpu_identify referenced in function __catch$?TestLoadPlugins@CAvisynthInfo@@AAEXXZ$2
d:\To Do\AVSMeter3060\source\AVSMeter.exe : fatal error LNK1120: 14 unresolved externals
The terminal process "C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe -Command cl.exe /Zi /EHsc /Fe: 'd:\To Do\AVSMeter3060\source\AVSMeter.exe' 'd:\To Do\AVSMeter3060\source\AVSMeter.cpp'" terminated with exit code: 1.
stax76
26th September 2020, 08:12
I managed to debug with VS, here it does not enter:
if (::GetFullPathName(argv[iArg], MAX_PATH_LEN, szOut, &lpPart))
{
sAVSFile = utils.StrFormat("%s", szOut);
if (!utils.FileExists(sAVSFile))
{
PrintConsole(Settings.bConUseStdOut, COLOR_ERROR, "\nError: File not found: \"%s\"\n", sAVSFile.c_str());
PollKeys();
return -1;
}
else
continue;
}
It's because GetFullPathNameA is used which does not support long path I think, you probably need to call GetFullPathNameW.
In the ANSI version of this function, the name is limited to MAX_PATH characters. To extend this limit to 32,767 wide characters, call the Unicode version of the function (GetFullPathNameW)
stax76
26th September 2020, 10:24
Github mirror using Visual Studio and latest cpu lib:
https://github.com/stax76/AVSMeter
VoodooFX
16th November 2020, 12:39
"AVSDLL=" in ini doesn't work anymore!? I tried to update from v2.9.4...
In readme I still see:
"-avsinfo"
Displays extended info about the installed Avisynth version and the plugin sub-system. If a custom avisynth.dll is specified in the ini file, info about that file will be displayed.
EDIT:
Last version with "AVSDLL=" working is v3.0.3.0.
Groucho2004
16th November 2020, 15:18
"AVSDLL=" in ini doesn't work anymore!? I tried to update from v2.9.4...
In readme I still see:
EDIT:
Last version with "AVSDLL=" working is v3.0.3.0.I removed it but I forgot to remove that reference in the documentation. I suppose you added the entry manually to the ini file because that entry should also not be there.
If you really need that feature I might put it back.
VoodooFX
16th November 2020, 16:42
If you really need that feature I might put it back.
That would be nice, this feature I use very often, almost every time I run AVSMeter.
Groucho2004
16th November 2020, 20:34
v3.0.7.0
Updated libcpuid (new AMD and Intel CPUs)
The user can specify a custom avisynth.dll in the INI file.
This feature was removed some time ago, now it's back
Info about used command line switches is added to the log files
VoodooFX
16th November 2020, 22:48
Thanks for quick update.
stax76
15th December 2020, 20:17
StaxRip has a tool auto updater but mediafire is too difficult to automate. :(
Edit:
It's also ridiculous slow currently downloading 50 MB Patman ffmpeg build at 50 KB/s.
Groucho2004
9th March 2021, 16:32
v3.0.8.0
- Updated libcpuid (Intel Whiskey Lake-U CPUs, AMD Ryzen Cezanne)
- Updated AVS header files
amayra
9th March 2021, 19:13
there a tool for vapoursynth like this one?
or it possible to add vapoursynth support to AVSMeter?
Groucho2004
10th March 2021, 15:17
there a tool for vapoursynth like this one?I doubt it.
possible to add vapoursynth support to AVSMeter?Possible - yes. However, these days I'm too busy doing that. Maybe someone else wants to take my code and write a VapourSynth version.
ChaosKing
10th March 2021, 16:17
there a tool for vapoursynth like this one?
or it possible to add vapoursynth support to AVSMeter?
For simple benchmarking => use vspipe http://www.vapoursynth.com/doc/vspipe.html
For basic plugin err checking => use vsrepogui https://github.com/theChaosCoder/VSRepoGUI
Groucho2004
15th March 2021, 10:02
Is this a known issue?
https://i.imgur.com/QQz91Mp.png
CPU usage underreported by 50%. Nothing else was running.First time I see this. Is the utilisation on the right picture an average or a snapshot?
wonkey_monkey
15th March 2021, 11:33
It's a snapshot. The graph was pretty constant at around 50% for an extended period of time, and nothing else was using a significant amount of CPU.
The plugin I was testing is internally multithreaded. If I use all available threads (12), AVSMeter reports about 70-75% usage while Task Manager says 100%. The above screenshot was using 4 threads, under which circumstances AVSMeter reports about 50% of what Task Manager does, which remains the case for 1 or 2 threads as well.
The framerate of the plugin tails off with more threads (which is what I was testing) which I think is down to a RAM bottleneck. Maybe AVSMeter's way of measuring usage doesn't include all that time spent waiting, or something?
CPU is Intel(R) Core(TM) i7-9850H CPU @ 2.60GHz
Groucho2004
15th March 2021, 14:35
Maybe AVSMeter's way of measuring usage doesn't include all that time spent waiting, or something?
CPU is Intel(R) Core(TM) i7-9850H CPU @ 2.60GHz
AVSMeter uses the same API as TaskManager to determine CPU usage and I doubt that it saw changed since Windows 7. Have you tried to create a log file and look at CPU usage spikes?
Can you post the script and let me know which plugins are needed?
wonkey_monkey
15th March 2021, 20:19
It seems to be some quirk of Task Manager/Windows 10
A simple script (e.g. blur(1)) saturates one logical CPU and AVSMeter reports 8% utlisation. Task Manager's Performance and Processes tabs show 16%, but in the Details tab it only shows 8%.
It's the same with SuperPi. I'll delete my other posts as it's clearly not AVSMeter's fault.
wonkey_monkey
25th March 2021, 12:28
Could AVSMeter be given the facility to fetch audio as well as/instead of video? E.g. just call GetAudio for each frame's audio.
Groucho2004
25th March 2021, 17:31
Could AVSMeter be given the facility to fetch audio as well as/instead of video? E.g. just call GetAudio for each frame's audio.Can you elaborate on "fetch audio"? Do you just want the statistics?
wonkey_monkey
25th March 2021, 18:17
Yeah, just an option to have it call GetAudio so that it accounts for audio processing time.
Although, maybe even the most complicated audio processing is so fast that it wouldn't be likely to give very useful results, and should instead be performed internally by a plugin during development...
Groucho2004
29th March 2021, 16:12
Although, maybe even the most complicated audio processing is so fast that it wouldn't be likely to give very useful results, and should instead be performed internally by a plugin during development...That's what I think as well, probably not worth the effort.
Groucho2004
31st March 2021, 18:24
v3.0.9.0
- Updated libcpuid (Intel Rocket Lake, AMD Ryzen Milan)
DiablosDemon
28th May 2021, 01:55
I'm starting to do some more film restoration work after about 6 months off. I replaced my CPU with a Ryzen 5900X. When running AVSmeter64 all 12 of my cores are maxed out at 4500Mhz (not sure CPU is designed for this) which puts my VRMs at 100% (not good I don't think) The completion time is about 4hrs. When running the script with AVSR64 only one core runs at 4500Mhz the rest are between 2500 and 3000Mhz. VRMs are now at 65% which is OK. Completion time is now about 13hrs. What is AVSmetr64 doing to the CPU to max out ALL the cores and is the CPU designed to do this? I'm using AMD Ryzen Master to see CPU speeds and VRM %. Switching CPUs did cut my completion time about in half which I'm very happy about.
Dogway
23rd June 2021, 11:52
v3.0.9.0 crashes when using avsresize_r7: "z_ConvertFormat(pixel_type="YUV420P16",colorspace_op="601:601:170M:l=>709:601:709:l", dither_type="none")"
v3.0.2.0 reports the next error message.
I'm on Win7 SP1 x64. No prob on avspmod.
https://i.ibb.co/sbv6syG/avsresize-r7.png
DiablosDemon
5th July 2021, 00:59
Anyone heard from Groucho2004? It's been more than 3 months since his last post.
Thundik81
27th September 2021, 17:38
I hope he's okay!
FranceBB
29th September 2021, 06:40
Yeah... it's now 182 days, so 5 months and 4 weeks since his last post on Doom9.
I'm beginning to worry now. He's been around for years, I can't believe he would just leave like this, out of the blue, without saying anything to anyone.
I mean, it's not something he would do.
I very much hope he's just taking a break and he'll be back and nothing bad happened to him... :(
DTL
4th February 2022, 22:25
Can the Windows 10 accelerator performance % be added:
GPU->CUDA
GPU->VideoEncode
GPU->VideoDecode
GPU->Compute_0/Compute_1 (still not sure if it need to be separated or simply sum of %) ?
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.