View Full Version : VSRepoGUI - A simple plugin manager for VapourSynth
ChaosKing
26th April 2019, 20:13
I made a simple gui for VSRepo (https://forum.doom9.org/showthread.php?t=175590).
Python.exe needs to be in PATH! You need .net 4.5.2 I think.
Download here (https://github.com/theChaosCoder/VSRepoGUI/releases)
Source (https://github.com/theChaosCoder/VSRepoGUI)
Some feedback and feature requests would be nice.
Todo:
- fix bugs :P
- console output or better progressbar
- check if 7z is callable.
For a portable mode you need to create a "vsrepogui.json" text file in the same folder as the exe with the following contents:
(relative paths are now also supported)
{
"Bin":"D:\\PortableApps\\VapourSynth\\vsrepo\\abc d\\vsrepo.py",
"win32": {
"Binaries":"abc d\\p32",
"Scripts":"..\\scripts"
},
"win64": {
"Binaries":"D:\\PortableApps\\VapourSynth\\vsrepo\\abc d\\p64",
"Scripts":"D:\\PortableApps\\VapourSynth\\vsrepo\\abc d\\scripts"
}
}
https://i.imgur.com/OA37k7H.png
stax76
26th April 2019, 21:36
The UI design looks quite good but it don't start here, it only shows up in task manager for 2-3 seconds.
Myrsloik
26th April 2019, 21:48
Doesn't start for me either.
ChaosKing
26th April 2019, 22:17
Try this -> Target .net 4.5.2: https://www.dropbox.com/s/h15qzjpdc0ii95w/VSRepoGUI_45.zip?dl=1
EDIT
hmm I tried it on a different pc and it also didn't start. There should be a message if vsrepo etc is not found. I'm investigating.
EDIT2
It seems that it happens while reading the VS regkey. Will update it tomorrow.
ChaosKing
27th April 2019, 10:40
OK please test again.
Would be better to add 4 Tabs (= 4 lists) for "installed, not installed, unknown version and update available" plugins instead of one big list?
stax76
27th April 2019, 12:45
The problem persists.
lansing
27th April 2019, 13:43
It still crashing on startup
ChaosKing
27th April 2019, 14:07
And no messagebox is shown? I only tested it on win10 64bit.
I had no try catch before.
RegistryKey localKey;
if (Environment.Is64BitOperatingSystem)
localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
else
localKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32);
string reg_value = null;
try
{
reg_value = (string)localKey.OpenSubKey("SOFTWARE\\VapourSynth").GetValue("Path");
} catch
{
MessageBox.Show("Can not find your VapourSynth installation.");
System.Environment.Exit(1);
}
Could you run this build https://www.dropbox.com/s/o0wj9l9tkokfiuy/VSRepoGUI_msg.zip?dl=1
It shows A, B, C etc
What is the last letter you're seeing?
stax76
27th April 2019, 15:34
it shows:
A0
A
B
C
that is all that shows, still no main windows, use a trace listener maybe.
https://docs.microsoft.com/de-de/dotnet/framework/debug-trace-profile/how-to-create-and-initialize-trace-listeners
ChaosKing
27th April 2019, 16:37
It crashes after the first python call. It would indicate that python.exe is not in your Environment Variables thus it can't start the process.
I added a python check now. Redownload from 1st post.
You can call the gui now with a parameter .\VSRepoGUI.exe C:\Python37\python.exe
stax76
27th April 2019, 17:36
I did not have python in PATH probably because the official installer has disabled it by default, but the official installer installs the global py launcher by default.
I've reinstalled Python with PATH option enabled and rebooted but your app still don't start, it shows a console window for a few milliseconds.
python-3.7.3-amd64-webinstall.exe is what I installed.
ChaosKing
27th April 2019, 18:09
What OS are you using, win10 64bit?) Are you using the latest (installed) vapoursynth version? Typing python -V in powershell or cmd works?
I don't really see what I'm missing right now. I tested it on a another pc and everything is working fine. Maybe the debug build will provide more usefull information https://www.dropbox.com/s/qy398voe4d3qn1r/VSRepoGUI_debug.zip?dl=1
stax76
27th April 2019, 18:47
The Easiest way to find out is uploading the source code.
Myrsloik
28th April 2019, 11:46
It crashes after the first python call. It would indicate that python.exe is not in your Environment Variables thus it can't start the process.
I added a python check now. Redownload from 1st post.
You can call the gui now with a parameter .\VSRepoGUI.exe C:\Python37\python.exe
Use HKLM Software\Vapoursynth\PythonPath for automatic detection. That will always point to the base path of the python the vs module was installed to.
ChaosKing
28th April 2019, 14:02
Use HKLM Software\Vapoursynth\PythonPath for automatic detection. That will always point to the base path of the python the vs module was installed to.
Thx will add it.
I found the problem! F**g quotes were missing, and I always used a custom install path (with no spaces in it) :o Redownload please.
/!\ YOU NEED also 7zip installed or 7z.exe in PATH for vsrepo.py to work correctly. Otherwise only a handfull plugins will work/install.
I will upload the source code later, after some cleaning :P
StainlessS
28th April 2019, 14:25
I found the problem! F**g quotes were missing
No idea if relevant or of use but maybe see here for when Path contains a double quote (I have seen this ghastly practice in real paths/filenames):- https://forum.doom9.org/showthread.php?p=1871275#post1871275
Is an avisynth solution but easily converted.
Small script function to enclose a string in double quotes (if you dont know what you might want it for, then you probably dont need it).
If the string itself contains double quotes then encapsulates in set of tripple double quotes, otherwise a single pair of double quotes.
EnQuot() for RT_Stats, EnQuot2() for avs v2.60 only (req FillStr v2,.60)
BlankClip(Width=320,height=64,color=-$FF000000)
S=""""We "have' a' " QU"ote or ' two"""
#S=""
Function EnQuot(string S) { Q=RT_StrPad("", S.RT_FindStr(Chr(34))==0 ? 1 : 3 ,Chr(34)) Return Q+S+Q } # Req RT_Stats v1.43+
Function EnQuot2(string S) { Q=FillStr(S.FindStr(Chr(34))==0 ? 1 : 3 ,Chr(34)) Return Q+S+Q } # Requires Avs v2.60 for FillStr
S=S.Enquot # RT
#S=S.Enquot2 # Avs v2.6
Subtitle(S)
Result without EnQuot.
https://i.postimg.cc/C1CXvtBL/En-Quot-Before.jpg (https://postimages.org/)
Result with EnQuot.
https://i.postimg.cc/KvB8DcQn/EnQuot.jpg (https://postimages.org/)
lansing
28th April 2019, 15:44
It's working good, found some bugs,
- the search function doesn't work with the "hide installed" filtering
- the "current installed version" of the local filters is missing in the display
- the text from the "paths" dialog box need to be copyable
- the "win64" filtering option is pretty much obsolete now as vs and vseditor both moves away from 32 bit
I would also like the font size to be a little bigger.
stax76
28th April 2019, 16:20
@ChaosKing
It starts but out of screen bounds: https://postimg.cc/K1zTCBn9
ChaosKing
28th April 2019, 16:58
It's working good, found some bugs,
- the search function doesn't work with the "hide installed" filtering
- the "current installed version" of the local filters is missing in the display
- the text from the "paths" dialog box need to be copyable
- the "win64" filtering option is pretty much obsolete now as vs and vseditor both moves away from 32 bit
I would also like the font size to be a little bigger.
Parsing the current installed version from vsrepos output is only reliable as long as there are no spaces within the version text. (Currently it seems what there are no spaces, but I encountered this in "AVSRepo") So I left it out for now.
Win64 - What if you have VS32bit and 64bit installed? But yes, the win64 checkbox is more relevant for AVSRepo.
Paths was more a button for me to test stuff. The PLUGINS and SCRIPTS buttons should be enough. I will remove it.
@ChaosKing
It starts but out of screen bounds: https://postimg.cc/K1zTCBn9
Height is set to 800 and minHeight to 600px. I will lower the minHeight.
What is your screen resolution?
stax76
28th April 2019, 17:07
4k 288 dpi
ChaosKing
29th April 2019, 20:37
Just a small Update, now with a Local Version column.
@stax76 Are other apps also this big? WPF should be dpi aware. What is your scaling value in windows, 200%?
I have "3K" -> 1440p @ 100%. With scaling @ 150% it is very big, but looks ok and stays within the screen.
stax76
29th April 2019, 20:43
like I said 288 DPI (96 DPI equals 100% zoom so my zoom is 300%)
ChaosKing
29th April 2019, 22:06
ok and is alpha2 also out of screen bounds?
stax76
29th April 2019, 22:17
Well, I downloaded the link from first post saying it's a2 but title bar says a1 so probably chrome browser cache issue, use dl filenames including version like VSRepoGUIvA2.zip
stax76
29th April 2019, 22:21
Downloaded with another browser, still out of screen bounds.
ChaosKing
29th April 2019, 22:24
Downloaded with another browser, still out of screen bounds.
I forgot to change the version string :D
But you can resize it smaller?
stax76
29th April 2019, 22:39
But you can resize it smaller?
It starts with title bar out of screen, I press shift+win+up to make title bar show, I know shortcuts and tricks not every DAU knows...
gonca
29th April 2019, 22:55
4K display and it shows up fine, and I am only one of those DAU types (DUMB ASS USER) and I also know some "shortcuts and workarounds".
stax76
29th April 2019, 22:58
you are young and use less than 288DPI/300% zoom
edit:
dau: Dümmster Anzunehmender User
gonca
29th April 2019, 23:12
At 57 years of age with a blind right eye I am young and see well? Yeah, yeah!
stax76
29th April 2019, 23:15
I'm sorry then, born 76 and never had the best eyesight.
gonca
29th April 2019, 23:19
Don't worry about it, let's forget about it
ChaosKing
2nd May 2019, 09:19
Alpha3
- Removed some duplicate calls, should start faster now
- Use PythonPath if available in vs registry
- Win64 toggle is fully working now
- Added a "portable mode"
- auto update definitions on start
EDIT: And fixed search
EDIT2: And source code is up
For portable mode you need to create a "vsrepogui.json" text file in the same folder as the exe with the following contents:
{
"Bin":"D:\\PortableApps\\VapourSynth\\vsrepo\\abc d\\vsrepo.py",
"win32": {
"Binaries":"D:\\PortableApps\\VapourSynth\\vsrepo\\abc d\\p32",
"Scripts":"D:\\PortableApps\\VapourSynth\\vsrepo\\abc d\\scripts",
},
"win64": {
"Binaries":"D:\\PortableApps\\VapourSynth\\vsrepo\\abc d\\p64",
"Scripts":"D:\\PortableApps\\VapourSynth\\vsrepo\\abc d\\scripts",
}
}
ChaosKing
14th May 2019, 14:35
Alpha4
- Added Tabs
- It is now possible to use relative paths in vsrepogui.json
- Fixed high dpi issue (@stax76 please test)
ChaosKing
30th May 2019, 16:58
Alpha6 inspired by avsmeter:
https://i.imgur.com/H8M7llL.png
lansing
30th May 2019, 20:44
🔥 Namespace already populated, therefore it failed to load:
------------------------------------------------------------
vs_sangnommod.dll
😑 Notice - Not a VapourSynth Plugin:
------------------------------------------------------------
libfftw3-3.dll
libfftw3f-3.dll
libfftw3-3.dll and libfftw3f-3.dll not vs plugin? False alarm? Or maybe put them into a different category because they're required by other filters.
ChaosKing
30th May 2019, 20:55
Yes they are not VS plugins, You can't load them via LoadPlugin() but it doesn't mean they can't be dependencies of other plugins and that's why it is under "Notice" and not Error. Should I add some additional infos? Suggestions?
lansing
30th May 2019, 21:05
Yes they are not VS plugins, You can't load them via LoadPlugin() but it doesn't mean they can't be dependencies of other plugins and that's why it is under "Notice" and not Error. Should I add some additional infos? Suggestions?
That notice make me think that those plugins be things like just completely wrong files or they may had got put into the folder by accident and they're safe to delete.
ChaosKing
31st May 2019, 01:27
How about like this?
🤨 Notice - Probably a Plugin dependency (not a VS Plugin):
------------------------------------------------------------
libfftw3-3.dll
libfftw3f-3.dll
lansing
31st May 2019, 13:38
i tried putting an avs dll in the plugin folder and the diagnostic test is also putting it in the same category as the fftw files. Maybe adding a logic to separate the dependencies file to any other random files?
ChaosKing
31st May 2019, 14:43
I can't check if it is a real dependency. Only that it is not a VS plugin.
Myrsloik
31st May 2019, 15:06
I can't check if it is a real dependency. Only what it is not a VS plugin.
If you're really insane you could parse the package json and see which files belong to a plugin and simply exclude them. I don't recommend that you do this.
ChaosKing
31st May 2019, 15:12
Hmm this would at least work for files that are in that package. The file is parsed and read anyway :P
ChaosKing
31st May 2019, 21:45
Better? Comparison is at filename level, maybe I will add hash compare someday so what w2xc-abc.dll would be also recognized.
🤨 Notice - Probably a Plugin dependency (not a VS Plugin):
------------------------------------------------------------
libfftw3-3.dll [belongs to FFTW3 Library]
libfftw3f-3.dll [belongs to FFTW3 Library]
libmfxsw64.dll [belongs to DGMVCSourceVS]
libRandom.dll
svml_dispmd.dll [belongs to Waifu2x]
w2xc.dll [belongs to Waifu2x]
w2xc-abc.dll
lansing
31st May 2019, 22:46
Better? Comparison is at filename level, maybe I will add hash compare someday so what w2xc-abc.dll would be also recognized.
🤨 Notice - Probably a Plugin dependency (not a VS Plugin):
------------------------------------------------------------
libfftw3-3.dll [belongs to FFTW3 Library]
libfftw3f-3.dll [belongs to FFTW3 Library]
libmfxsw64.dll [belongs to DGMVCSourceVS]
libRandom.dll
svml_dispmd.dll [belongs to Waifu2x]
w2xc.dll [belongs to Waifu2x]
w2xc-abc.dll
Something like this?
dependency files:
------------------------------------------------------------
libfftw3-3.dll [belongs to FFTW3 Library]
libfftw3f-3.dll [belongs to FFTW3 Library]
unidentify files:
------------------------------------------------------------
libRandom.dll
w2xc-abc.dll
ChaosKing
31st May 2019, 23:37
Checked Plugins: 118, Notices: 2, Errors: 1
.
.
.
🙂 Identified non-VapourSynth Plugins:
------------------------------------------------------------
libfftw3-3.dll [belongs to FFTW3 Library]
libfftw3f-3.dll [belongs to FFTW3 Library]
libmfxsw64.dll [belongs to DGMVCSourceVS]
svml_dispmd.dll [belongs to Waifu2x]
w2xc.dll [belongs to Waifu2x]
🤨 Unidentified DLLs (maybe also Plugin dependencies?):
------------------------------------------------------------
libRandom.dll
w2xc-abc.dll
Maybe also list non DLL files, like avsmeter does?
lansing
1st June 2019, 00:05
Maybe also list non DLL files, like avsmeter does?
I don't know about that, because the VMAF filter has a model folder that has like 90 files inside, that's going to be a long list.
The diagnostic test is use to check when something goes wrong, and I don't think those files are going to matter.
ChaosKing
6th June 2019, 16:24
I worked a bit on the dependency stuff.
Question: I know that for example that "MSVCP140.dll" is a "Visual C++ Redistributable" Runtime dll, but can I know from which Runtime it is? from 2015, 2017? Or replaces the 2017 dll the 2015 version?
🔥 Error 126 - A DLL dependency is probably missing:
------------------------------------------------------------
bilateralGPU.dll
requires following dependencies (one of these should be missing):
- opencv_core320.dll
- opencv_cudaimgproc320.dll
- VCRUNTIME140.dll
- api-ms-win-crt-heap-l1-1-0.dll
- api-ms-win-crt-runtime-l1-1-0.dll
- api-ms-win-crt-math-l1-1-0.dll
opencv_core320.dll
requires following dependencies (one of these should be missing):
- cudart64_80.dll
- MSVCP140.dll
- CONCRT140.dll
- VCRUNTIME140.dll
- api-ms-win-crt-heap-l1-1-0.dll
- api-ms-win-crt-stdio-l1-1-0.dll
- api-ms-win-crt-string-l1-1-0.dll
- api-ms-win-crt-runtime-l1-1-0.dll
- api-ms-win-crt-math-l1-1-0.dll
- api-ms-win-crt-convert-l1-1-0.dll
- api-ms-win-crt-environment-l1-1-0.dll
- api-ms-win-crt-time-l1-1-0.dll
- api-ms-win-crt-filesystem-l1-1-0.dll
Myrsloik
6th June 2019, 16:53
I worked a bit on the dependency stuff.
Question: I know that for example that "MSVCP140.dll" is a "Visual C++ Redistributable" Runtime dll, but can I know from which Runtime it is? from 2015, 2017? Or replaces the 2017 dll the 2015 version?
...
2019 replaces both 2017 and 2015.
Dreamject
8th June 2019, 18:06
It does not work with portable versions. Imo it should detect vs like
If vapoursynth library in current folder, then apply updates to currentdir. Portable/usual mode has different folder strucrure
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.