Talk:AviSynth

From Wikipedia, the free encyclopedia

Could you guys merge http://en.wikipedia.org/wiki/Avisynth and http://en.wikipedia.org/wiki/AVISynth . Since the official name is Avisynth, i prefer you move the contents from the second link to the first one.

Thanks, Wilbert Dijkhof (AviSynth doc writer) 131.155.54.18 12:53, 15 September 2005 (UTC)

Merge in progress. -Yipdw 19:51, 16 September 2005 (UTC)
Eep... this is not good. I will try and help with that later too. —EatMyShortz 15:25, 5 October 2005 (UTC)
Actually, it seems the most common way to write it on the website is AviSynth. Therefore I suggest MOVING the AVISynth page (the most built-up one) to AviSynth and then merging Avisynth into that. —EatMyShortz 15:18, 13 October 2005 (UTC)
Merge complete. I think I've been very fair in including all the possible info from both pages. It is all there - there may now be "too much" info, so feel free to edit it down. The most important thing is I haven't just hacked out one of the articles. —EatMyShortz 15:18, 13 October 2005 (UTC)

[edit] Loops and subroutines in AVISynth

It is possible to construct a loop via recursion, and subroutines are also possible via the function syntax.

Here's an example:

function multiblur(clip clipin, int "numberofblurs") { 
   numberofblurs<=0 ? clipin : multiblur(clipin.Blur(1.5), numberofblurs - 1)
}

This works because AVISynth isn't passing the clip by value (thank goodness :) )

I've removed the comment re: Turing completeness because I'd like to see a proof of that before we mark it as such. (I haven't done one myself due to lack of time, but if one exists, I'd have no problem with going through it.) -Yipdw 07:52, 2 October 2005 (UTC)

Ah! Did not know that. Thanks. Also... sorry about the Turing completeness, I assumed it wasnt since there's no loops. But given that there is recursion, I suspect it would be TC. —EatMyShortz 15:25, 5 October 2005 (UTC)

[edit] Turing Completeness

I want to have a discussion about this so we can write on the page "THIS IS TURING-COMPLETE" or "THIS IS NOT". I'm not entirely sure what classifies as TC - I'm learning about it currently at uni. So hopefully I'll be able to contribute better soon. But, from the wiki article Turing completeness, here are the language features I understand you need to be turing complete:

  • Some sort of looping - iteration or recursion or both. (As we discussed above, AVS has recursive functions so its OK for this criteria).
  • An infinitely expandable set of memory cells - ie. the language must support either arrays, lists, stacks, raw access to memory, or something like that. Unfortunately (as far as I can see) AVS has none of these features. Which *almost* makes me discredit TC except that I figured it supports arbitrarily-long strings! So although it's quite stupid to do so, it seems feasible to implement an array or stack/queue using string concatenation and substring reading.
    • I know there's no char data type, or (from what I've seen) any way to write binary/ASCII data to a string, but it's still possible to implement an array in a really dodgy way by first converting bytes or other numbers to decimal notation and writing that to the string.
  • Ability to accept an arbitrarily-long input stream. This one has me the most "worried" that it isn't TC. Unlike most general-purpose languages, AVS has no "standard" input at all. The only input is from videos which doesn't really count (simply because you have to open files from the hard disk and that doesn't really fit with the "turing machine"). So, I'm not sure if this is actually a barrier to its TCness. Does anybody know?
  • Summary: It seems that although AVS can "solve" any problem that a turing machine can solve, the parameters have to be built into the program and can't be supplied by an input stream, which may make it non-TC. Any thoughts?

EatMyShortz 05:37, 14 October 2005 (UTC)

[edit] Not all programs that handle AVIs work with avisynth

AviSynth uses the windows VFW system to interface with the media software. Any program that uses the VFW codec system will work with avisynth, assuming it allows file without an extension '.avi'.

Programs such as VLC Player handle avi's with their own routines and do not use the vfw system, you cannot use avisynth with such a player.

I have made a small change to reflect this. HighInBC 19:39, 22 February 2006 (UTC)