View Full Version : AviSynth internals documentation?
WarpEnterprises
4th June 2003, 08:31
I am interested in how AviSynth interacts with the OS but have no clue where to begin:
Where and how is AviSynth invoked?
What is the procedure to give back the AVI properties?
The video data?
...
There are often questions around why e.g. AviSource does not work in a specific case or about DirectShowSource or or or.
Maybe there can be more people found to assist in those questions if there is a basic AviSynth guide or docu of those internals.
We have a filter SDK/examples (and you see the climbing number of filter devs) but nothing about the kernel.
It is all in the heads of sh0dan, Richard, Bidoche (maybe some few else) only - please let it out and write it here.
sh0dan
4th June 2003, 10:38
There are a lot of bits and pieces scattered all around, but I'll see if I can find the time to write something on avisynth.org
Bidoche
4th June 2003, 11:06
I never much looked into it but i can say that :
What does avisynth is create at demand an IAVIFile/IPersistFile COM Object.
When opening an avs, the approppiate info is found in the register.
- Request for the IFactory COM object able to create this one (avisynth.dll gets loaded)
- Creation by factory object of the IAVIFile/IPersistFile object (it's blanck at this point)
- Use IPersistFile methods to read from disk (avisynth does its job, parse script, create result)
- Use IAVIFIle methods to render the clip
WarpEnterprises
4th June 2003, 14:36
Links to sources would be very useful too, if you have some at hand / in mind.
e.g. those objects, what a "factory object/method" is,...
although I have read not that little about C, C++ I'm missing quite much and don't know where to start.
You could answer the question "where did you learn about those things?"
Thanks alot so far!
Bidoche
4th June 2003, 14:55
It refers to code from main.cpp
class CAVIFileSynth: public IAVIFile, public IPersistFile, public IClassFactory, public IAvisynthClipInfo Avisynth use this one class as both factory object and clip object.
class CAVIStreamSynth: public IAVIStreamReturn result for IAVIFile GetStream method
You probably need to read about COM to understand it though, check msdn about it. That's what I did, i was totally clueless about it when Richard first mentioned it.
For C++, you can read Borland C Builder C++ Help (dl the beta)
Then STL(Standard Template Library aka C++ standard lib) docs at http://www.sgi.com/tech/stl/table_of_contents.html (it's one version of the lib)
Edit: factory object is used in COM to create other objects.
When creating objects from others dlls you can't use new, code is not related.
Factory objects (objects implementing IClassFactory interface) are COM solution to that.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.