Jetzt wollen wir die obige Definition etwas genauer betrachten. Die Laufzeitumgebung ist:
Der letzte ist der größte Unterschied. Normaler Script-Code wird
analysiert und ausgewertet (kompiliert) am Anfang der Skriptausführung (der
Parsing-Phase) in linearer Weise, von oben nach unten. Das Ergebnis ist
die Schaffung eines Filtergraphen, der von AviSynth verwendet wird, um
Bilder an die Host-Video-Anwendung zu übergeben. Runtime Script-Code wird
nach dem Parsen ausgeführt, wenn die Frames ausgeliefert werden.
Darüber hinaus wird er bei jeden angeforderten Frame kompiliert und
nur für dieses spezielle Frame, in einer ereignisbasierten Weise.
Hinweis: Audio wird nicht
von der Laufzeitumgebung behandelt, es wird unberührt weitergereicht.
Dies bedeutet auch, dass man mit Laufzeitfiltern Clip-Audio nicht
verändern kann.
Die folgenden Filter sind der Bais-Satz der sogenannten "Laufzeitfilter":
Zusätzlich kann auch der WriteFile
Filter als Laufzeitfilter betrachtet werden, weil ihm die von Laufzeitfiltern gesetzten Sondervariablen übergeben wurden, die spezielle Laufzeitfunktionen verwendet haben können.
Alle Runtime-Filter setzen die folgenden Sondervariablen und stellen sie Laufzeitscripten zur Verfügung.
Alle oben genannten Variablen sind im top-level
script localen Bereich definiert. Das heißt, du kannst sie in einem
Runtime-Skript lesen und schreiben, als ob sie Variablen wären, die du auf Skript-Ebene deklariert hast.
Runtime-Skripte können auch eine breite Palette von Spezialfunktionen aufrufen, die verschiedene Teilinformationen für den aktuellen Frame ihres Eingangs-Clips bereitstellen.
Die Laufzeitumgebung ist einfach zu nutzen: du verwendest einen der Laufzeitfilter und versorgst ihn mit den benötigten Argumenten. Die zwei wichtigsten darunter sind:
Letzteres ist als ein String-Argument, das die AviSynth-Skript-Befehle
enthält. Skripte können viele Anweisungen enthalten (man kann
einen mehrzeiligen String verwenden), lokale und globale Variablen und
Funktionsaufrufe, sowie spezielle Lauzeitfunktionen und Variablen. Im
Allgemeinen sind alle Aussagen der AviSynth-Syntax erlaubt, aber
du musst darauf achten, allzu komplexe Skripte zu vermeiden, weil dies
mit großem Zeitbedarf bestarft wird, der mit jedem Frame gezahlt wird. Siehe
auch im Laufzeit Abschnitt der Performancebetrachtungen der Scripting
Referenz für
weitere Einzelheiten.
Lasst uns ein paar Beispiele ansehen:
TODO...EXAMPLES (fehlen hier noch)
Zurück zur AviSynth Syntax.
$Date: 2008/12/07 15:46:17 $