Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
27th June 2017, 14:08 | #3481 | Link |
German doom9/Gleitz SuMo
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,781
|
Some time ago, I had issues with threading in complex functions (probably QTGMC?) and was recommended to remove avstp.dll from the auto-load directory, but that was with AviSynth 2.6 MT (SEt). Unfortunately, I do not remember the details of the circumstances, only the conclusion. Is the cooperation different under AviSynth+?
|
27th June 2017, 14:36 | #3482 | Link |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
Since AVS+ has a different multi-threading implementation I would say yes, it's different. If it's better or worse, I don't know.
Either way, I don't think it's a good idea to mix Avisynth's multi-threading with plugins that have internal MT. It's not only less efficient because of increased scheduling overhead, it also adds unnecessary complexity. |
27th June 2017, 16:31 | #3484 | Link | |
Soul Architect
Join Date: Apr 2014
Posts: 2,559
|
Quote:
Perhaps if avstp.dll is using internal multi-threading and was never meant to be called several times, and it is being called multiple times, then the various threads lock each other.
__________________
FrameRateConverter | AvisynthShader | AvsFilterNet | Natural Grounding Player with Yin Media Encoder, 432hz Player, Powerliminals Player and Audio Video Muxer Last edited by MysteryX; 27th June 2017 at 16:35. |
|
27th June 2017, 20:54 | #3486 | Link | |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
Quote:
|
|
28th June 2017, 06:57 | #3488 | Link |
Registered User
Join Date: Jun 2017
Posts: 2
|
Hello, guys. I've switched from AVS 2.6 to AVS+ and got my plugin broken. It can not even load the dll and says this:
Code:
--------------------------- VirtualDub Error --------------------------- Avisynth open failure: 'D:/Личные папки/Projects/Ретранслятор/Osd/MyOSD.dll' cannot be used as a plugin for AviSynth. (D:\Личные папки\Projects\Ретранслятор\Измерения\Скрипт.avs, line 29) --------------------------- The error I mentioned can be found on the line 534 and next on the 659. And the only check there is this: Code:
AvisynthCPluginInit = (AvisynthCPluginInitFunc)GetProcAddress(plugin.Library, "avisynth_c_plugin_init@4"); if (AvisynthCPluginInit == NULL) return false; Last edited by postscripter; 28th June 2017 at 07:09. |
28th June 2017, 08:11 | #3490 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
Yes, you are using probably the old, not supported interface.
Quote:
https://github.com/pinterf/AviSynthP...nager.cpp#L942 Code:
#ifdef _WIN64 AvisynthCPluginInitFunc AvisynthCPluginInit = (AvisynthCPluginInitFunc)GetProcAddress(plugin.Library, "avisynth_c_plugin_init"); if (!AvisynthCPluginInit) AvisynthCPluginInit = (AvisynthCPluginInitFunc)GetProcAddress(plugin.Library, "_avisynth_c_plugin_init@4"); #else // _WIN32 AvisynthCPluginInitFunc AvisynthCPluginInit = (AvisynthCPluginInitFunc)GetProcAddress(plugin.Library, "_avisynth_c_plugin_init@4"); if (!AvisynthCPluginInit) AvisynthCPluginInit = (AvisynthCPluginInitFunc)GetProcAddress(plugin.Library, "avisynth_c_plugin_init@4"); #endif |
|
28th June 2017, 11:10 | #3491 | Link | |
Registered User
Join Date: Jun 2017
Posts: 2
|
Absolutely no idea what 2.0 means, but I've just changed the export name and have it usable now. Magic?
Well.. yeah. By the way. About current versions. Which one is the latest? Which is the latest for those, who need MT? What happened with the original AviSynth repo, which is referred by in Wiki and on avs-plus.net? I can see the same contributors there and last activity in 2014'th... Did they lost the password? Quote:
Code:
AvisynthCPluginInitFunc AvisynthCPluginInit = (AvisynthCPluginInitFunc)GetProcAddress(plugin.Library, "_avisynth_c_plugin_init"); if (!AvisynthCPluginInit) AvisynthCPluginInit = (AvisynthCPluginInitFunc)GetProcAddress(plugin.Library, "avisynth_c_plugin_init"); if (!AvisynthCPluginInit) AvisynthCPluginInit = (AvisynthCPluginInitFunc)GetProcAddress(plugin.Library, "_avisynth_c_plugin_init@4"); if (!AvisynthCPluginInit) AvisynthCPluginInit = (AvisynthCPluginInitFunc)GetProcAddress(plugin.Library, "avisynth_c_plugin_init@4"); Last edited by postscripter; 28th June 2017 at 11:25. |
|
28th June 2017, 11:30 | #3492 | Link | |
Join Date: Mar 2006
Location: Barcelona
Posts: 5,034
|
The Avisynth C 2.0 API was the first C implementation by Kevin Atkinson. See here.
Quote:
|
|
28th June 2017, 19:19 | #3494 | Link | |
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,420
|
Quote:
https://github.com/AviSynth/AviSynthPlus/commits/MT The stuff pinterf is working on is currently being treated as an ad hoc development HEAD, there's an open pull request for it. The reason MT hasn't been merged into the master branch has less to do with stability (to wit, you have to use builds from the MT branch if you want to use AviSynth+ with FFmpeg, since only the MT branch is synced up with AviSynth 2.6.0/2.6.1), and more to do with ultim going on hiatus every so often and wanting bugs that had existed in the MT branch to be resolved first. They mostly have*, but like I previously mentioned, hiatus. The same largely applies to pinterf's pull request, although the recent Unicode fixes broke GCC again. *save for the problems inherent to synchronous access, as discussed at length over the last few pages of this thread. Supported compilers are Visual Studio 2015 and higher, and GCC (experimental). I was in the middle of testing weird function decoration stuff with GCC and the C plugin back in April, but since I can only use 64-bit Wine or take a huge performance hit and run 64-bit Windows in a VM, that stalled out somewhat. Last edited by qyot27; 29th June 2017 at 22:59. Reason: decoration |
|
29th June 2017, 10:37 | #3495 | Link |
Registered User
Join Date: Jan 2014
Posts: 2,314
|
New release with TemporalSoften fix.
Thanks to Sharc for the report. Download Avisynth+ r2508-MT Code:
20170629 r2508 - Fix TemporalSoften: threshold < 255 (bug exists probably since r1576) |
29th June 2017, 18:24 | #3496 | Link | |
Registered User
Join Date: May 2006
Posts: 3,997
|
Quote:
|
|
1st July 2017, 03:46 | #3497 | Link |
Registered User
Join Date: May 2016
Posts: 197
|
Is it normal that using Levels with high-bitdepth input and enabled dithering eats incredibly much RAM? Is this a gigantic LUT?
Code:
Video = BlankClip(10000,pixel_type="YUV420P10") Return Video.Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ /*.Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)\ .Levels(0,1.0,1023,0,1023,coring=false,dither=true)*/ On a related note: Would it be possible to add a switch to avsmeter to disable the "Script runtime is too short for meaningful measurements" error? I needed to increase the framecount of the blankclip |
1st July 2017, 09:44 | #3499 | Link |
Registered User
Join Date: May 2016
Posts: 197
|
Are you sure about this? avsmeter reports exactly the same memory usage for 10, 12, 14 and 16 bits. And strangely: It doesn't matter if it is a greyscale format or what chroma subsampling it uses, the difference is negligible. I always thought that Levels treats Luma and Chroma differently (i.e. knows that luma should be scaled normally, but that chroma should be scaled from 128 so that one should need two LUTs for them).
|
Thread Tools | Search this Thread |
Display Modes | |
|
|