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. |
28th September 2013, 13:56 | #41 | Link |
Registered User
Join Date: Aug 2007
Posts: 374
|
Let me add some thought to the discussion.
Avisynth in current 2.6 form is effectively dead. I.e. it will work ok, but isn't endangered by any major improvements. There are several reasons for that: 1) The unsolvable one that makes it really dead and not just in bad shape or unmaintained: license. GPLv2 was bad choice – it should've been LGPL. I don't see any realistic way to change it to LGPL, so for that change all existing code needs to be thrown out and rewritten. 2) Bad interfaces. No one sane uses С++ for open plugin system. C interface with trivial wrappers to C++ or whatever else is what should've been done. In 2.6 we break old interfaces but get the same C++ hell. 3) No care for threading. Can you guess how many people need what was added in recent years (!) to official 2.6 and how many need working threading? 4) No care for submitted patches. Besides MT my build differs by several important source clarifications (specified calling conventions where they are needed, improved exception handling). How many years have they been open? Were they merged? (Note: most time I spend on updating my build to official is manually re-merging these small but extensive changes since CVS is often unable to automerge them.) 5) Absolutely refusing to remove old hacks, clean code and move to newer software. Who uses CVS today? With words VC6 most modern developers jump in panic or start to cry. How about this nice quote from sources: Code:
// Warning! : If you modify this routine, check the generated assembler to make sure // the stupid compiler is saving the ebx register in the entry prologue. // And don't just add an extra push/pop ebx pair around the code, try to // convince the compiler to do the right thing, it's not hard, usually a // slight shuffle or a well placed "__asm mov ebx,ebx" does the trick. But saying that all I have to add that while Avisynth has plenty of problems there isn't anything better. And it works quite ok too. I thought many times of rewriting it but still don't have enough resolve (due to 1 it's quite a daunting task) and it does what I need from it reasonably well (I would be pressed to write better threading if i had like 16-thread CPU, but no hardware upgrade here in 3 years and future doesn't look bright at all – looks like all focus of manufactures is shifted towards mobile). |
28th September 2013, 15:08 | #42 | Link |
Beyond Kawaii
Join Date: Feb 2008
Location: Russia
Posts: 724
|
You're wrong about hardware, SEt. I'm currently aiming to get myself new PC with double 12-core Xeon. Which makes it 48 threads. As for "nothing better" - VapourSynth looks promising. You could join the development. Manao, Fizick and Tritical certainly should, so we could have motion compensation and high quality deinterlacing and denoising in VS.
__________________
...desu! |
28th September 2013, 16:11 | #43 | Link |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Nice to see you SEt! Some of the problems you have listed are exactly why I started my fork. Obviously, I can't correct all of them, like the GPL issue. But we can help the rest! I agree that there isn't anything better yet than Avisynth, and while VapourSynth looks promising, Avisynth is still better in many aspects ATM, which is why I'm putting my energy into Avisynth.
CVS, VC6, the hacks, the C++ interfaces and all those /are/ bad, but these can be helped. I'm removing hacks like the one you listed one by one (many of them are already gone in my sources), and AFAICT porting to new software is finished - with the exception of a last bug that Groucho reported, but I've found the reason for that too. My hope is that by porting to newer software, getting rid of the old and deprecated cruft, and by being more open to submitted patches, we'll be able to breath some new life into Avisynth and invite new development. Additionally I'll be making small improvements here and there too. I hope to push my next set of changes to GitHub soon. Groucho2004: After some more investigation, I believe I have found the real reason for the changed exception behavior: http://stackoverflow.com/questions/550451/will-new-return-null-in-any-case . |
28th September 2013, 21:18 | #44 | Link |
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,443
|
RE: naming, since all the other forks are in the same boat and just tack on a suffix (MT or 64 for example, although those are really just descriptive titles), I'd think it safe to just go ahead and do the same thing. As previously noted, I like 'AviSynth+', since it is a more general-purpose fork.
Also, the developer(s?) that worked on the dead 3.0 branch seem to be different than 2.x, and 3.0 changed things around too, yet it still kept the AviSynth name, so I wouldn't think that to be too aggressive either (especially if you pair it with a new fork name). I wasn't around for the early history, but if it seems to be a tendency for each of the major versions to have different groups of contributors working on them then there is a historical precedent involved. How about collecting whatever suggestions there are for names and then putting it to a forum poll? |
29th September 2013, 04:39 | #45 | Link |
Registered User
Join Date: Jul 2003
Location: India
Posts: 890
|
Appeal to all forkers
Request all who fork from the official version to please start separate threads and do not use the main thread. I request the moderators to remove already posted fork related matter to different threads
|
29th September 2013, 09:15 | #46 | Link |
Registered User
Join Date: May 2008
Posts: 1,840
|
I agree this talk should be moved into another thread once ultim comes up with a name and makes a thread but now that alpha 5 is out this thread would become inactive anyways.
To continue OT, I look forward to a fork with proper 64 bit handling and improved threading (if possible). Many FOSS go through forks and it gives ultim control to do what they want to do as opposed to being approved by IanB, which is a current issue. As far as name goes, isn't 'avi' a bit old now, would 'AVSynth' work?
__________________
PC: FX-8320 GTS250 HTPC: G1610 GTX650 PotPlayer/MPC-BE LAVFilters MadVR-Bicubic75AR/Lanczos4AR/Lanczos4AR LumaSharpen -Strength0.9-Pattern3-Clamp0.1-OffsetBias2.0 |
29th September 2013, 23:07 | #49 | Link | |
Beyond Kawaii
Join Date: Feb 2008
Location: Russia
Posts: 724
|
Quote:
__________________
...desu! |
|
30th September 2013, 00:26 | #50 | Link | ||
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,443
|
Quote:
But there's only a few plugins currently that actually make use of the C interface (off the top of my head, FFMS2's C plugin variant, AssRender, and yadif), and it's still subject to the huge caveat that C plugins aren't included in the autoloading feature. Quote:
IMO, 'avi' being old has little bearing on the name. When using NLE software, lossless codecs are still usually best transported in AVI (if you aren't using something Apple-specific or device-specific, anyway) due to the least common denominator familiarity with that container and the simple one frame in, one frame out I/O mechanism of Video for Windows, and the basic I/O features of an AviSynth script still match the way AVIs are used with lossless codecs (even with projects moving away from accessing AviSynth through Video for Windows and just accessing the library directly). |
||
30th September 2013, 06:51 | #51 | Link |
Registered User
Join Date: May 2008
Posts: 1,840
|
All I could find for avsynth is https://github.com/LRN/gst-avsynth which seems abandoned, does ffmpeg have something in the pipe named AVsynth?
I agree avi is still useful but modern lossy encoders have given it a bad name and often seen as a last resort or unsupported.
__________________
PC: FX-8320 GTS250 HTPC: G1610 GTX650 PotPlayer/MPC-BE LAVFilters MadVR-Bicubic75AR/Lanczos4AR/Lanczos4AR LumaSharpen -Strength0.9-Pattern3-Clamp0.1-OffsetBias2.0 |
30th September 2013, 08:01 | #52 | Link | ||
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Quote:
I wanted to get a release out yesterday in the evening (CET), but I've realized last minute that the new shadow plugin folder feature's API could be improved, so I've delayed. I hope I'll be able to release tonight, but no guarantees, since I'll be getting home later today. And yes, the above means C plugins are autoloaded with my rewritten plugin management, I worked on that since I was also missing that feature, and find it very useful and even necessary to encourage using it. Quote:
p.s. I still haven't decided on a name so keep 'em coming Last edited by ultim; 30th September 2013 at 08:06. |
||
30th September 2013, 09:27 | #53 | Link | ||
...?
Join Date: Nov 2005
Location: Florida
Posts: 1,443
|
Quote:
Quote:
I've been refining the build instructions some, now that I've also got the DirectShowSource-related stuff documented step-by-step. |
||
30th September 2013, 15:31 | #55 | Link |
User of free A/V tools
Join Date: Jul 2006
Location: SK
Posts: 826
|
ModAviSynth
ModAviSynth is my proposal which should define this fork as modern and modified project at the same time. Thumbs up, ultim and for all your hard work on improving AviSynth.
VapourSynth looks promising but not yet quite there. |
30th September 2013, 18:43 | #56 | Link |
AVS+ Dev
Join Date: Aug 2013
Posts: 359
|
Thank you everybody for the suggestions. Right now I'm leaning towards qyot27's "AviSynth+". I find it good because it expresses exactly what the project is, and what its intention is. It makes it easy to distinguish between the two projects, while it still notes that it is rooted in Avisynth, and has a clear message that it is supposed to be an enhanced version of the original project.
|
Thread Tools | Search this Thread |
Display Modes | |
|
|