FAQs for AVSLib :: Usage
In principle not; the code of AVSlib itself has been designed to be as generic and robust as possible.
However, since AVSLib uses the machinery provided by Avisynth in order to provide its services, it does get limited in various aspects by the resources made available to scripts by the host application (ie Avisynth).
In addition, video editing is a resource instensive operation and thus there are resource limitations imposed by the hosting hardware and operating system.
The consequence is that - depending also on the Avisynth version that you use - there are practical limitations, a list of which has been compiled to a dedicated AVSLib specifications page. Please take the time to read it carefully before starting developing scripts with AVSlib.
The answer to this question depends mainly on factors external to the project and thus it cannot be answered directly by the AVSLib project.
The AVSlib development team has the intention to try devising smarter ways for utilising the given resources available to Avisynth scripts but this is at this time lower in priority compared to the horizontal expansion of AVSLib features (ie features increase).
You may also examine the example scripts included at the documentation to see real cases of script development using AVSLib.
Either you have mispelled an AVSLib function name or you didn't supply the correct module or package or library configuration constant to LoadModule(), LoadPackage() or LoadLibrary() or you didn't install properly the AVSLib distribution.
Check the above cases in the order specified, until you find the cause and repair the error.
See the installation and use instructions page for details.
Yes, we did; many times. Most probably the errors are not located in operator functions but inside the user-code that you have ordered them to execute.
See the last section of the container operators tutorial for best-coding guidelines and ways to debug your script.
Animation filters use a different coordinate system than Overlay does. (x,y) values passed to them are interpreted as specifying the position of the center of the clip and not its top-left corner. Add Round(ovl.Width/2) to all x's and Round(ovl.Height/2) to all y's to solve the problem.
You may also see the tutorial "Understanding animation filters" for getting a better insight on animation filters.
Most probably your code has hit onto a resource limit (memory is the first to look, especially if it took a long time before the error appeared). Break your script to a number of succesive scripts (ie construct a script chain) to lower the memory requirements of each step.
Other possible causes include:
Try to isolate the error using the facilities of the debug package (the Break() and BreakIf() functions are especially useful for this) and decide which case of the above is more plausible. Afterwards either recode your script or ask for support from the corresponding project.
You are using Avisynth version 2.5.5 or lower and you are trying to construct an array with overall size that exceeds the allowable array lenght (ie string lenght) limits. See the AVSLib specifications for details.
To workaround this either upgrade your Avisynth dll to a version greater than 2.5.5 or recode your script to use smaller arrays.
I try to use the EditJoin filter with a custom join function but I get an "invalid arguments to function..." error? What's going wrong?
Both the join function and the operation argument (extra_info and op, respectively) must be specified with positional notation:
EditJoin(c1, c2, ..., op=EDOP_USER, exta_info="my_func")