FAQs for AVSLib :: Usage
Id | Question |
---|---|
1 | |
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. | |
2 | Will these limitations be removed in a future version of 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). | |
3 | Are there any recommendations regarding the use of AVSLib features? |
Yes. See the Reserved Actions section at the AVSLib structure page and all tutorials included at the documentation. You may also examine the example scripts included at the documentation to see real cases of script development using AVSLib. | |
4 | I try to run a script containing calls to AVSLib functions and I get the "I don't know what xxx means" error from Avisynth. What's going wrong? |
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. | |
5 | I get unexpected errors pointing to array operator functions (ArrayOpValue / ArrayOpFunc / ArrayOpArray / ArrayOpArrayFunc). Didn't you tested them for errors? |
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. | |
6 | |
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. | |
7 | VirtualDub either crashes or displays a "sctip open failed!" messagebox when I try to run a script containing AVSLib commands. What's going wrong? |
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. | |
8 | I made a script using arrays but I always get a "__left_str: string has > 1024 chars" message when I try to run it. What's going wrong? |
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. | |
9 | 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") |