- Since it’s based on VFW it’s permanently stuck in the 90’s
- It isn’t threadsafe at all
- It STILL doesn’t support high bitdepth YUV and won’t do so in 2.6 either, because colorspaces are handled in a retarded way
- It uses a C++ interface and throws C++ exceptions across library boundaries
- It doesn’t support VFR
- It doesn’t support any sort of frame metadata at all, really
- The codebase is absolutely insane and full of hilarious hacks and inline assembly
- For something that is so adaptable it really is remarkably rigid and un-extendable
- Part of the API is compiled into each and every plugin, resulting in a lot of funky issues
- Despite being so shitty, it’s so useful that people keep hacking retarded things into it because they want to use it in new and funny ways
- The source code repository uses CVS
- It can only be compiled with MSVC 6.0 (or maybe they finally fixed this, idk)
- Memory leaks, memory leaks everywhere
- The scripting language lacks basic control structures, resulting in funny recursive calls to emulate loops
- Most plugins are really fucking shitty
Contributions to this list are welcome.
Comments (33)
AND THE ALTERNATIVE IS … ?
Nothing! That’s yet another reason to hate it.
@pokerface.jpg
Are you confused between “hate” and “not to use”? or just missingthepoint.avs?
Why aren’t memory leaks (distinctly) added to the list?
@4: added
Huge plugin codebase compatibility bullshit aside … how big an endeavor would it be to develop an alternative? Core functionality only. Seems like something a small group of talented developers could handle over the course of a couple months.
Also, throw in the fact that plugins aren’t required to be open-source or have any documentation. So a lot of the time you’ll run into a plugin where no one has any chance of figuring out what it actually does, e.g. checkmate.
I’ll be waiting for you the make the fork :D
* The scripting language lacks basic control structures, resulting in funny recursive calls to emulate loops
* Lots of plugins made by incompetent programmers are not maintained but still in use, and exhibit various bugs and glitches.
@nitephire
It’s been tried. Ever heard of Avisynth 3.0? It was a rewrite from the ground up by different guys to make a cross-platform version of Avisynth. Shit’s dead now.
@analanguished
I’m familiar with Avisynth 3.0. From what I know, it did not qualify for either of points I listed. It tried to do more than just the core, and it was mainly just one guy whose competency is questionable.
Never had problem with mt (except with ffms2… but yeah, surely fflibavmpeg fault). Who cares about vfr and high bit depth, seriously ? For the other points, I must admit you are right or half right.
DLL hell? I had to hunt for some libraries used by some denoising script from Rapidshare and Russian filesharing sites.
Not so.
http://avisynth.org/mediawiki/High_bit-depth_Support_with_Avisynth
Gscript gives you the control structures.
http://avisynth.org/mediawiki/Advanced_Scripting_Tips
Again not true.
Check mate is well documented:
http://www.aquilinestudios.org/avsfilters/dotcrawl.html#checkmate
It removes dotcrawl.
ffms2 supports reading VFR. A guide to dealing with it http://avisynth.org/mediawiki/VFR
But agreed, not native VFR.
per-frame meta-data and vfr extension:
http://forum.doom9.org/showthread.php?t=162436
What’s wrong with inline assembly? How else are you supposed to write optimized code?
ffmpeg uses it; yasm is the assembler. ffmpeg specifically *doesn’t* support MSVC because it *can’t* do inline assembly.
http://ffmpeg.org/faq.html#SEC34
http://ffmpeg.org/general.html#SEC20
And there is sort of an alternative; an image converter called ImageMagick allows pretty advanced image processing in script.
Small example creates 16bit image and returns lower 8 bits:
convert -size 256×256 canvas:#010204 -evaluate rightshift 8 -evaluate and 255
-evaluate leftshift 8 lsbtest.bmp
-fx supports all sorts of mathemtical expressions; there’s also usual filters like sharpen, blurr, etc.
I may be wrong about the inline assembly, sorry.
One pass cfr to vfr
http://forum.doom9.org/showthread.php?t=161386
holy shit that is a lot of hurfing
No, the dither package’s ugly hack does not count as “supporting” high bit depth stuff.
The per-frame metadata stuff is vaporware and not actually implemented anywhere yet, but even if it was it still wouldn’t count as “support”.
Yes, I sorta know about ffms2 since I am one of its maintainers.
Yes, you’re wrong about inline assembly.
Regarding dll hell. Now there’s some installers appearing which include all requirements:
http://www.sendspace.com/filegroup/S%2FsOTQDtCjklZTskl%2BsD2w
Hey, it’s open source – if there’s a problem, fix it, right?
There is a filter which implements the new per-frame meta-data and high bit-depth support:
http://svn.int64.org/viewvc/int64/hqas/hqas/converttolq.cpp?view=markup
Support for high bit-depth is there as a practical application for users. It may not meet the requirements of clean code for some developers; hopefully as this is improved we can attract talented coders as yourself. Thanks.
Do you want to see the meta-frame merged into the main branch? That’s simple to arrange.
@asdfd
re: checkmate
If you consider that well-documented, you obviously have never seen good documentation.
re: “Hey, it’s open source – if there’s a problem, fix it, right?”
Keep in mind the point I brought up earlier about some plugins being closed source.
@TheFluff
Are you interested in actually fixing what’s wrong with Avisynth in the form of a new frameserver? If so, please make it known so the right people can help.
I ‘checked’ out the Checkmate documentation. There is a part which talks about “he doesn’t remember what this does”, so I can agree with that point. However, there is enough information to be useable. I have to say, that in making algorithms you don’t always know what a setting will do. It’s just a matter for experimentation and tuning. What correlation value corresponds to a scenechange? I’d like to know myself.
I’d really like to see the language be better, but it’s the best we have and I don’t hate it. Keep mentioning the problems, I’m a contributor and I will fix them!
hey fluff steve jobs is dead how do you feel???
(expecting notasinglefuckwasgiven.jpg)
sammy: too zune, too zune.
>FORK
OLEDOIT~
Add “arbitrarily decides not to work even though the very same script worked just fine yesterday”.
No way to avoid it, huh.
I think it’s very ironic that now 2 AviSynth alternatives exist [AvisynthPlus & VapourSynth] and yet the author of this “list” has yet to contribute anything useful for any of the two. Talk is cheap.
Hush – thank you for your comment. While AvisynthPlus has some things that anybody that used Avisynth would welcome, I think VapourSynth is something with a great future.