# AVISource / OpenDMLSource / AVIFileSource / WAVSource

## AVISource(string filename [, ...], bool "audio", string "pixel_type")
OpenDMLSource(string filename [, ...] [,bool audio = true] [, string pixel_type = YV12])
AVIFileSource(string filename [, ...] [,bool audio = true] [, string pixel_type = YV12])
WAVSource(string filename [, ...])

filename: dokładna ścieżka do pliku
audio: przyjmuje wartość true (prawda) - włącza ścieżkę audio (wartość domyślna) - a false (fałsz) ją wyłącza
pixel_type: przestrzeń kolorów klipu wynikowego, możliwe wartości: "RGB24", "RGB32", "YUY2" lub "YV12"

AVISource jako argumentu wymaga co najmniej jednej nazwy pliku, wpisanej w cudzysłowach, i wyczytuje z pliku/plików używany interfejs pliku AVI (Video-for-Windows), lub wykorzystuje wewnętrzny szyfr OpenDML (zapożyczone z VirtualDub). Filtr ten potrafi czytać każdy plik, który jest handlerem AVIFile. Obejmuje to nie tylko pliki AVI, ale również pliki WAV, AVS (skrypt AviSynh) i VDR (serwer klatek VirtualDub). Jeśli jako argument zostanie podanych kilka plików to będą one scalane w jeden za pomocą filtru UnalignedSplice. Argument bool jest dodatkowy i domyślnie ma wartość "true" ("prawda").
Filtr AVISource analizuje plik, by określić jego typ i podać go któremuś z handlerów, AVIFile lub OpenDML, jako właściwy plik. W przypadku problemów z chociaż jednym handlerem, można skorzystać z jednego z filtrów: OpenDMLSource lub AVIFileSource, które usiłują użyć jednego z handlerów. Handlery potrafią wczytać zwykłe pliki AVI (mniejsze od 2GB), ale tylko handler OpenDML potrafi obsłużyć większe pliki AVI, i tylko handler AVIFile potrafi wczytać inne typy plików, takie jak: WAV, VDR i AVS.
Do wersji 2.04, WAVSource był pseudonimem AVIFileSource. W późniejszych wersjach, WAVSource nie próbuje już otwierać strumieni video. Potrafi być użyteczny jeśli jest potrzeba odzyskania strumienia audio z pliku AVI, w którym strumień video jest uszkodzony lub jego metoda kompresji nie jest wspomagana przez system.
Powyżej wersji 2.04 filtr ten jest wspomagany przez ACM audio (Audio Compression Manager, np.: mp3-AVIs). AVISource również nie otwiera plików WAV, które muszą być wczytane przez filtr WAVSource.
Od wersji 2.06 można określić argument pixel_type, który pozwala na zmianę formatu wyjściowego dekompresora. Możliwe wartości to: "YUY2", "RGB32" i "RGB24". Jeśli video jest w formacie nie skompresowanym (YUY2, RGB32 lub RGB24) to nie ma najmniejszego sensu określanie jakiegokolwiek argumentu dla pixel_type, ponieważ w tym przypadku dekompresor nie będzie z niego korzystał. Od wersji 2.5 domyślną wartością dla pixel_type jest YV12, czyli gdy nie zostanie ustawiony argumentu dla pixel_type to dane wyjściowe w AVI będą rzutowane do YV12, jeśli jest to niemożliwe filtr spróbuje rzutowania do YUY2, a jeśli i to jest niewykonalne, to pozostaje próba rzutowania do RGB.
Czasem kolory w klipie wynikowym mogą być zniekształcone, gdy do AviSynth zostania wczytany klip DivX (kanały chromy (kolor) U i V są zamieniane) - jest to błąd po stronie DivX (do wersji 5.02 włącznie). Można użyć filtru SwapUV do zniwelowania tych zniekształceń.
Od wersji 2.53 AVISource potrafi również otwierać video w formacie DV typu 1 (tylko video, nie audio).
Niektóre kodeki MJPEG/DV podczas używania filtru AVISource, przekazują niepoprawnie, uzgodnione dane wyjściowe CCIR 601. Problem mógł powstać jeśli przestrzeń kolorów kodeka danych wejściowych i wyjściowych jest różny. Na przykład, jeśli przestrzenią kolorów danych wejściowych jest YUY2, gdy dla danych wyjściowych formatem tym jest RGB, lub odwrotnie. Są dwa sposoby na rozwiązanie tego problemu:
1) Zmusić dane wyjściowe by miały taką samą przestrzeń kolorów jak dane wejściowe, a zatem (jeśli dane wejściowe mają przestrzeń RGB32):
AVISource("file.avi", pixel_type="RGB32")
2) Za pomocą filtra ColorYUV:
AVISource("file.avi").ColorYUV(levels="PC->TV")

Przykłady:

AVISource("d:\capture.avi") | # | programiści w C zauważą zapewne, że backslash'e (\) nie są podwójne, ale być nie muszą
AVISource("c:/capture/00.avi") | # | slash'e (/) również działają
WAVSource("f:\soundtrack.wav") | # | czyli ten przykład też jest poprawny
WAVSource("f:/soundtrack.wav") | # | i ten również
AVISource("cap1.avi","cap2.avi") | # | tak samo jak: AVISource("cap1.avi")+AVISource("cap2.avi")
AVISource("cap.avi",false,"RGB32") | # | wyłączona ścieżka audio i zażyczona dekompresja do RGB32

### translated by Slim