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. |
![]() |
#2921 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,407
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#2922 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,407
|
Quote:
Otherwise (called from AutoLoadPlugins) the exception is not shown because there can be other - non Avisynth - helper DLLs in the *.dll list which could prematurely finish the autoloading procedure. I think this is why it is silent in this case. |
|
![]() |
![]() |
![]() |
#2925 | Link |
Formerly davidh*****
Join Date: Jan 2004
Posts: 2,608
|
Ah yes, that makes complete sense. Still, it would be nice to see the exception if the parameter string is wrong, otherwise us developers are left scratching our heads over an Access Violation (still not sure why that happens, since the plugin shouldn't be pushed to the plugins structure; at one point debugging took me to code for a completely different plugin of mine that I wasn't even compiling at the time), or, if that Access Violation is solved, our plugin silently failing to load.
|
![]() |
![]() |
![]() |
#2926 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,407
|
Quote:
I was using Avsmeter64 which reports the exception text properly, since it works on the console. 1.) Direct use of LoadPlugin: LoadPlugin("c:\Github\RemoveDirt\x64\Debug\RemoveDirt.dll") The console message: 'c:/Github/RemoveDirt/x64/Debug/RemoveDirt.dll' plugin loading error: RestoreMotionBlocks has an invalid parameter string (bug in filter) (d:\Tape13\myfolder\s1.avs, line 1) 2.) Then I put the bad DLL to Avisynth's plugins64 folder for autoloading. Obviously the function with the wrong parameter string did not load at all, so any referencing gave an error on the console output: Script error: There is no function named 'RestoreMotionBlocks'. (d:\Tape13\myfolder\s1.avs, line 39) (d:\Tape13\myfolder\s1.avs, line 13) |
|
![]() |
![]() |
![]() |
#2927 | Link |
Formerly davidh*****
Join Date: Jan 2004
Posts: 2,608
|
Hmm, so no Access Violation. I'll see if I can narrow it down on my computer.
Edit: AVSMeter64.exe aborts in the same manner as GUI programs do. Visual Studio debugging told me "Unhandled exception at 0x00007FFD4C0D36F8 (SubtitleEx_x64.dll) in VirtualDub64.exe: 0xC000001D: Illegal Instruction." ![]() I moved SubtitleEx_x64.dll out and this time it showed an access violation in one of my own filters, but also debugging took me to line 25 of FilterConstructor.cpp: Code:
AVSValue retval = Func->apply(funcArgs, Func->user_data, Func->isAvs25 ? (IScriptEnvironment *)Env25 : Env); Last edited by wonkey_monkey; 14th January 2025 at 18:45. |
![]() |
![]() |
![]() |
#2929 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,407
|
Quote:
https://github.com/AviSynth/AviSynthPlus/issues/421 |
|
![]() |
![]() |
![]() |
#2930 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,407
|
Quote:
|
|
![]() |
![]() |
![]() |
#2931 | Link | |
HeartlessS Usurer
Join Date: Dec 2009
Location: Over the rainbow
Posts: 11,060
|
Quote:
dartheditous@YouTube:- https://www.youtube.com/@DarthEditous/videos EDIT: A dartheditous favourite:- https://www.youtube.com/watch?v=ZkkUNFXaYyk EDIT: And source clip transformed by dartheditous to above clip:- https://www.youtube.com/watch?v=dPPjUtiAGYs EDIT: And conversion script on D9:- https://forum.doom9.org/showthread.p...66#post1792366 EDIT: A frame from 2nd link clip, converted from 3rd link clip by 4th link script: ![]()
__________________
I sometimes post sober. StainlessS@MediaFire ::: AND/OR ::: StainlessS@SendSpace "Some infinities are bigger than other infinities", but how many of them are infinitely bigger ??? Last edited by StainlessS; 17th January 2025 at 12:25. |
|
![]() |
![]() |
![]() |
#2933 | Link |
Big Bit Savings Now !
Join Date: Feb 2007
Location: close to the wall
Posts: 1,835
|
Just a quick test if r4096 x64 would finally be able to feed frames to Topaz 2.6.4:
Not. First frame #0, last frame #-1. All uvz builds I have tested fail in that regard. 3973; 4073 LLVM, 4073 Clang stalls anyway here; 4096 LLVM, Clang both work in AvsPmod) Last good for me is pinterf's r4066.
__________________
"To bypass shortcuts and find suffering...is called QUALity" (Die toten Augen von Friedrichshain) "Data reduction ? Yep, Sir. We're that issue working on. Synce invntoin uf lingöage..." |
![]() |
![]() |
![]() |
#2934 | Link |
Formerly davidh*****
Join Date: Jan 2004
Posts: 2,608
|
I think I figured this one out. If there are multiple AddFunctions in a plugin's init function, some of them can get added to the AviSynth environment before a faulty one is reached. The faulty one stops the plugin from being properly loaded, but the earlier functions are still created, and calling one of them results in the Access Violation.
|
![]() |
![]() |
![]() |
#2935 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,407
|
Quote:
|
|
![]() |
![]() |
![]() |
#2936 | Link |
Formerly davidh*****
Join Date: Jan 2004
Posts: 2,608
|
This is a vague idea I've had for a while and I'm wondering how practical/useful it might be...
Could GenericVideoFilter be extended, without breaking old filters, to allow communication between filters? I'm thinking of something dead simple like Code:
AVSValue GenericVideoFilter::GetAVSValue(AVSValue input) Code:
AVSValue result = child->GetAVSValue(val); // val is whatever the "child" (really should be called "parent"...) clip is expecting - array, string, integers representing different instructions Too esoteric? I rolled my own version with GetAudio and magic numbers before frame properties were implemented and it's been surprisingly useful, but the disadvantage is that clips have to have audio and you can't use certain audio filters. But maybe it's just me who writes such ridiculously complicated filters. |
![]() |
![]() |
![]() |
#2938 | Link |
Formerly davidh*****
Join Date: Jan 2004
Posts: 2,608
|
That's the idea. Something like MVtools wouldn't need separate "super" clips any more; Manalyse could return the original video while also providing access to its motion data through the same clip. A simple helper filter could "dub" clips with other clips' data, and with magic numbers to differentiate (maybe required by the function to help developers avoid clashing with each other), a clip could have multiple sets of data/pointers associated with it.
|
![]() |
![]() |
![]() |
#2939 | Link | |
Registered User
Join Date: Jan 2014
Posts: 2,407
|
Quote:
When mvtools was ported to Vapoursynth it was one of their first step to replace the inter-filter datapointer-in-sound-vi-data hack to frame property usage. I did not yet backported this feature. Also, in the VapourSynth TIVTC pack the magic-number related things were eliminated as well, I have backported them, if they exists they are used, otherwise the good old magic 32 bits are used for marking the specific properties. |
|
![]() |
![]() |
![]() |
#2940 | Link | |
Registered User
Join Date: Jul 2018
Posts: 1,242
|
Quote:
1. Provide padded original frames so that MVs can run slightly out of the frame borders. 2. Provide multi-levels downsized hierarchy of frame copies for hierarchical search algorithm (at least in MAnalyse onCPU but any other filter can use this data). 3. Provide sub-sample shifted copies of frame (sort of upscaled-separated) for sub-sample precision processing (pel > 1). It takes lots of RAM but still faster in comparison with runtime sub-shifting at time of MAnalyse at least. So you can not simply use pointers to original frames (in most use cases). Only with MAnalyse with DX12-ME feature - it sends full unpadded frames to ME engine and without downsized versions. Only if you somewhere use MSuper(levels=1, hpad=vpad=0, pel=1) you can make pointers. Last edited by DTL; 24th January 2025 at 04:14. |
|
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|