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.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Development

Closed Thread
 
Thread Tools Search this Thread Display Modes
Old 8th March 2003, 23:03   #1  |  Link
Mr.Shine
Registered User
 
Join Date: Oct 2001
Posts: 21
Avisynth 2.0/2.5 plugin chaos (or: why can't 2.5 load 2.0 plugins?)

Here we go, we have Avisynth 1.x/2.0, and Avisynth 2.5, which can't load plugins compiled for pre-2.5.

Then we have LoadPluginEx from the warpsharp package, which can apparently load 2.0 plugins in 2.5 and vice versa (can it? I only briefly tested the latter).

Then we have loads of people trying to get Avisynth 2.0 and 2.5 to work simultaneously (and even writing switcher-programs!!), because certain plugins they need to use aren't yet available compiled for 2.5 (or no source is available at all), but they still don't want to miss the new features from the new Avisynth version completely - with these people, Avisynth 2.5 is losing a lot of beta testers, since they will switch back to 2.0 whenever they don't really need YV12 processing.

Then we have people (like me) who would love to use Avisynth 2.5, but don't desperately need YV12 processing and thus are still sticking with 2.0 because of the sheer amount of plugins noone felt like compiling for that version yet (or where no source is available at all) - with them, Avisynth 2.5 is also losing lots of beta testers.

Not to speak of the chaos and disadvantages that causes to people who just want to USE the program, without having to worry about plugin versions and incompatibilities (which are artificially created in the first place).

Now let me ask you Avisynth developers for at least ONE sensible reason why Avisynth 2.5, although e.g. being able to load plugins for third-party programs just fine (vdub, vfapi), CANNOT load ITS OWN plugins just because they were compiled for a previous version?
Why can't there be a "LoadOldPlugin" or "LoadLegacyPlugin" function, or even the LoadPlugin function falling back to 1.x/2.0 plugin handling when it doesn't find the ..Init2 export?

Of course, LoadPluginEx is available, probably it even works just fine both ways, who knows, but do we really need, or want, a PLUGIN to be able load PLUGINS? Do we need, or want, that unnecessary overhead?

It would add a lot to the power of Avisynth 2.5 if it could fall back to the huge plugin base there is for previous versions, just like it can use VFAPI and Vdub plugins. In fact, it would completely supercede Avisynth 2.0 then.

Just my 2 Euro-Cents.

P.S.: Thanks to WarpEnterprises for his Avisynth plugin list (http://www.avisynth.org/~warpenterprises/) which, when I saw the huge list of 1.x/2.0-only filters before my eyes, finally motivated me to post my thoughts :-)
Mr.Shine is offline  
Old 9th March 2003, 02:01   #2  |  Link
Kurosu
Registered User
 
Join Date: Sep 2002
Location: France
Posts: 426
AVS 2.5 and 2.0x plugins can't be fully compatible because of the API changes. The structures aren't exactly the same, so when pointing at some part of memory, the data there isn't the same for the 2 versions. To be able to run a 2.0x plugin without recompiling, you need a wrapper, able to get the data from avs 2.0x structures to put in 2.5 structures.

That's what LoadPluginEx does. But it contains some C++ (pogramming stuff) that I, for instance, don't understand (well, it would give me nightmares first). The fact is that such problem seems pretty strange from the outside, but is hard to tackle.

This leads me to another point: I had a discussion with a friend that found strange there was no graphic script builder (a la graphedit) or the like, more generally that there were design flaws. The real fact is that such problems, despite their importance, needs an amount of time bigger than available. AFAIK, there are only 3 Core developpers:
- Sh0dan
- Bidoche
- Richard Berg
They are already pretty busy, and there are already important things on their todo list (directshow stuff, avs3.0 planning, compatibility).

AVS2.5 filters can harly be used in 2.0x, because many restrictions can't be known at first (like only working in YV12, which isn't available in 2.0x). Add to this the same need of a wrapper.

Last edited by Kurosu; 9th March 2003 at 02:04.
Kurosu is offline  
Old 9th March 2003, 18:18   #3  |  Link
sh0dan
Retired AviSynth Dev ;)
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
@Mr.Shine: No offence, but if you place all plugins in the respective plugin directory, switching between both versions are not that much of an issue - only a matter of replacing avisynth.dll, or reinstalling the avisynth version you want to use.
__________________
Regards, sh0dan // VoxPod
sh0dan is offline  
Old 9th March 2003, 21:08   #4  |  Link
Richard Berg
developer wannabe
 
Richard Berg's Avatar
 
Join Date: Nov 2001
Location: Brooklyn, NY
Posts: 1,211
Nevertheless -- it's worth investigating whether LoadPluginEx can be added to the core.
Richard Berg is offline  
Old 9th March 2003, 21:13   #5  |  Link
sh0dan
Retired AviSynth Dev ;)
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
It would be great, if you had the time for this one!
__________________
Regards, sh0dan // VoxPod
sh0dan is offline  
Old 17th March 2003, 09:24   #6  |  Link
N_F
Do you find me... pretty?
 
N_F's Avatar
 
Join Date: Apr 2002
Location: Sweden
Posts: 760
Could anyone tell me where to find a warpsharp package containing LoadPluginEx? The last version I've been able to find is about a half a year old and doens't include anything named LoadPluginEx.
N_F is offline  
Old 17th March 2003, 10:48   #7  |  Link
Wilbert
Moderator
 
Join Date: Nov 2001
Location: Netherlands
Posts: 6,337
Last plugin and last version in Q3.4.

Last edited by Wilbert; 17th March 2003 at 11:00.
Wilbert is offline  
Old 17th March 2003, 11:29   #8  |  Link
N_F
Do you find me... pretty?
 
N_F's Avatar
 
Join Date: Apr 2002
Location: Sweden
Posts: 760
Thanks (and sorry...).
N_F is offline  
Old 17th March 2003, 22:11   #9  |  Link
Richard Berg
developer wannabe
 
Richard Berg's Avatar
 
Join Date: Nov 2001
Location: Brooklyn, NY
Posts: 1,211
FWIW, I had a look at the LoadPluginEx code. I think I understood much of it, but would have trouble integrating it into existing code. Anyone else have any opinions on the matter? Also, from a user perspective, how well does it work?
Richard Berg is offline  
Old 18th March 2003, 09:52   #10  |  Link
Wilbert
Moderator
 
Join Date: Nov 2001
Location: Netherlands
Posts: 6,337
Quote:
Also, from a user perspective, how well does it work?
I didn't test it thoroughly. But I tried filters like NoMoSmooth, Peach and Dust, and they all worked well.
Wilbert is offline  
Old 19th March 2003, 11:46   #11  |  Link
N_F
Do you find me... pretty?
 
N_F's Avatar
 
Join Date: Apr 2002
Location: Sweden
Posts: 760
I only tried it briefly with dust and it seemed to work well. Something that perhaps should be looked into is the speed of it: Avisynth 2.0x + filters for Avisynth 2.0x vs. Avisynth 2.5x + LoadPluginEx + filters for Avisynth 2.0x.

I didn't play with it long enough to see wheter speed took a significant hit or not (perhaps you can judge just by looking at the code anyway).
N_F is offline  
Old 20th March 2003, 17:24   #12  |  Link
CruNcher
Registered User
 
CruNcher's Avatar
 
Join Date: Apr 2002
Location: Germany
Posts: 4,949
@ Wilbert
i looked in the Avisynth faq on the site and in the newest release and all both are linking to this thread http://forum.doom9.org/showthread.php?s=&threadid=34076 but i cant find this Loadpluginex.dll mentioned in the text nor i can find it in the attachments am i dumb now ?
CruNcher is offline  
Old 20th March 2003, 17:42   #13  |  Link
Wilbert
Moderator
 
Join Date: Nov 2001
Location: Netherlands
Posts: 6,337
Q3.4:
(...) Last version can be found here.
.......................................^^^^

I will change it with the next updates
Wilbert is offline  
Old 20th March 2003, 17:56   #14  |  Link
CruNcher
Registered User
 
CruNcher's Avatar
 
Join Date: Apr 2002
Location: Germany
Posts: 4,949
thx puh and i thought i begin to get blind

update: looks like loadpluginex.dll doesn't work anymore with the latest Cvs avisynth 2.51

Last edited by CruNcher; 20th March 2003 at 18:06.
CruNcher is offline  
Old 20th March 2003, 22:10   #15  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Hollola, Finland
Posts: 4,900
Works for me, tested on the binary from SourceForge.
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline  
Old 20th March 2003, 23:06   #16  |  Link
DDogg
Retired, but still around
 
DDogg's Avatar
 
Join Date: Oct 2001
Location: Lone Star
Posts: 3,058
boulder, did you try it with the latest from Sh0dan's site (in his sig)?
DDogg is offline  
Old 21st March 2003, 06:58   #17  |  Link
Boulder
Pig on the wing
 
Boulder's Avatar
 
Join Date: Mar 2002
Location: Hollola, Finland
Posts: 4,900
Quote:
Originally posted by DDogg
boulder, did you try it with the latest from Sh0dan's site (in his sig)?
Oops, missed that I thought that the released beta was still the latest one..sorry for any caused confusion.
__________________
And if the band you're in starts playing different tunes
I'll see you on the dark side of the Moon...
Boulder is offline  
Old 25th March 2003, 20:34   #18  |  Link
DDogg
Retired, but still around
 
DDogg's Avatar
 
Join Date: Oct 2001
Location: Lone Star
Posts: 3,058
CruNcher, this worked ok for me with the march 19 csv version from Sh0dan's sig.
Code:
LoadPlugin("LoadPluginEx.dll") # Warpsharp and this DLL must NOT reside in Plugins dir  see note **
LoadPlugin("D:\Temp\DustV5.dll")# source interlaced DV
AviSource("V:\Video_Cap\Clip 001-8.avi")
AssumeFieldBased() # Still proper to use? Confused on that
FixBrokenChromaUpsampling()# People have said this is needed with Canopus DV codec
ConvertToYUY2(interlaced=true)
PixieDust (5)
** http://forum.doom9.org/showthread.php?s=&threadid=49492
DDogg is offline  
Old 28th March 2003, 10:02   #19  |  Link
CruNcher
Registered User
 
CruNcher's Avatar
 
Join Date: Apr 2002
Location: Germany
Posts: 4,949
@DDogg
ah i thought it would be loaded autmaticly left in the plugin dir was not aware that this produces errors i'll try again with the 25 march release of avisynth thx
CruNcher is offline  
Old 28th March 2003, 10:12   #20  |  Link
sh0dan
Retired AviSynth Dev ;)
 
sh0dan's Avatar
 
Join Date: Nov 2001
Location: Dark Side of the Moon
Posts: 3,480
You should get the same result with:
Code:
LoadPlugin("LoadPluginEx.dll") # Warpsharp and this DLL must NOT reside in Plugins dir  see note **
LoadPlugin("D:\Temp\DustV5.dll")# source interlaced DV
AviSource("V:\Video_Cap\Clip 001-8.avi")
FixBrokenChromaUpsampling()# People have said this is needed with Canopus DV codec
PixieDust (5)
AssumeFieldBased() - doesn't do anything in your script.
ConvertToYUY2 - Your source is already YUY2().

Does PixieDust treat interlaced video properly? I seem to remember it is a spatial filter, so you should probably use:

SeparateFields().PixieDust(5).Weave()
__________________
Regards, sh0dan // VoxPod
sh0dan is offline  
Closed Thread

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 20:28.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.