# Изменения версий Avisynth

## Отличия от 2.57

### Добавления

* Добавлен чешский перевод документации.
* Добавлен польский перевод документации (от Slim, Krismen & Co).
* Добавлен японский перевод документации (от niiyan).
* Особая опция установщика установить avisynth.dll и др., но НЕ обновлять реестр (только распаковка).
* Blankclip: добавлены параметры audio channels= и sample_type=.
* ConvertAudio(cii) доступен для плагинов через env->Invoke().
* Добавлен аспект, поворот и альфа шрифта к текстовым функциям.
* Добавлен /* xxx */ блоковый комментарий.
* Добавлен [* [* xxx *] *] гнездовые (вложенные) блоковые комментарии.
* SetMemoryMax(0) теперь возвращает величину Memory Max.
* Добавлен планарный YV12 цветовой формат к Compare()
* ColorKeyMask: Позволяет независимый уровень допуска для каждого канала.
* Добавлено Tweak Hue/Saturation ограничение диапазона.
* Добавлены AudioLevels и Color2 режимы к Histogram.
* Добавление global OPT_UseWaveExtensible=True к вашему скрипту разрешает WAVE_FORMAT_EXTENSIBLE аудио выход.
* Добавлена команда ShowTime(), подобно ShowSMPTE() но с миллисекундами.
* Добавлены BlackmanResize() и Spline64Resize().
* Модифицированы DeleteFrame()/DuplicateFrame() для обработки нескольких аргументов.
* Добавлены Min()/Max() скрипт-функции.

### Исправления ошибок

* Исправлена ShowFiveVersions() YV12 позиции цветности в нижней половине. Возврат.
* Исправлена Histogram() Classic mode - восстановлена яркость графика. Возврат.
* Исправлена Compare() величины пикселов графика выхощие за пределы YUV.
* Исправлена AddBorders() ограничение отрицательных величин.
* Исправлено AviSource() декодирование в RGB24 логическая регрессия.
* Добавлен обход для HuffYUV, Xvid чтения за концом входного буфера.
* Исправлено значение current_frame во вложенных вызовах времени выполнения (Gavino).
* Исправлено проверка перекрывающихся диапазонов аргументов Dissolve (gzarkadas).
* Исправлена проблема многопоточности OpenDMLSource(). (QuaddiMM).
* Исправлено несохраняемая строка имени переменной variableName в ConditionalReader.
* Исправлены пропущенные обязательные аргументы в распознавателе FunctionTable::TypeMatch(). Ошибки в Dissolve (различные).
* Исправлено DirectShowSource() QueryId() использование CoTaskMemAlloc как возвращаемой величины (Dean Pavlekovic).
* Исправлено DirectShowSource() использование GraphBuilder объект для управление медиа (Avery Lee).
* Исправлено DirectShowSource() удален вызов PulseEvent (Avery Lee).
* Исправлено DirectShowSource() QueryAccept() модификация VideoInfo в выполняемом скрипте (Haali).
* Исправлено распознавание аргумента Blankclip clip=.
* Исправлено ImageReader неполностью инициировавшееся videoInfo.
* Исправлена Layer реализация RGB32 100% альфа, использование level=257 (новое умолчание).
* Исправлено avisynth_c.h avs_is_parity_known().
* Исправлено C++ ConvertAudio::Saturate_int32() округление.
* Исправлен WriteFile(), теперь помнит абсолютный путь к файлу.
* Исправлен Info() питч кадра, показывает питч входного кадра.
* Исправлено Invert() правого края переполнение / повреждение памяти.
* Исправлен Histogram() классический режим, величины пикселов превышали пределы YUV.
* Исправлена Histogram() инициализация цветности в 128.
* Исправлен Conditional читатель/писатель неверно сохранял указатель IScriptEnvironment.
* Исправлен YV12 Blur()/Sharpen() повреждение правых пикселов с не записываемыми входными кадрами.
* Исправлен MMX Blur()/Sharpen() код до полной 8 бит точности.
* Исправлены IsAudioFloat()/IsAudioInt() скрипт функции.
* Исправлен превышение индекса кэша памяти предела SetMemoryMax().

### Оптимизация

* DirectShowSource() convertfps=true добавить 0.5ms округление к ожидаемому времени отсчета. Улучшает выполнение с миллисекундно базированными DS сплиттерами.
* DirectShowSource() FPS попробовать длительность 1-го кадра как последняя попытка.
* DirectShowSource() convertfps зависит только от начального времени образца.
* Переделан горизонтальный планарный масштабировщик, без ограничений на ширину или переписывания 2 байтов.
* Обеспечены простые и быстрые примитивы вывода текста, смотри info.h
* Сделано аудио кэширование действительно работающим.
* Улучшения скорости Tweak.
* Улучшения скорости Subtract.
* Подстройка Overlay() ISSE Convert444ChromaToYV12 и также сделана версия MMX.
* Реализован интерфейс PokeCache.
* Усовершенствования управления кэшем и памятью.

### Изменения

* Начальное значение Memory Max ограничено 512MB.
* Memory Max по умолчанию восстановлено до четверти свободной памяти. Минимум 16Mb. Как в 2.5.7.
* Проверка VFB буфера данных на NULL после выделения памяти malloc, если так, то Выход (Throw)!
* Переведены ярлыки меню установщика.
* Проверка UTF-8 и Unicode BOM префиксов и выдача полезного предупреждения.
* Удален бесполезный current_sample из скриптового окружения времени выполнения.
* Добавлена критическая секция к класу CAVIFileSynth.
* Возможность многоязыковой поддержки установщика, спасибо Fizick, gzarkadas, Malow, manusse, niiyan, talen9, TiGR, Underground78, WarpEnterprises, Wracko.
* FunctionTable::Lookup() теперь рассматривает именованные аргументы при выборе.
* ImageWriter поддерживает отрицательные величины как -count для параметра End.
* ChanegFPS() использует отбрасывание дробной части (floor) вместо округления (round) при вычислениях номера кадра источника.
* Переделан в Динамически собираемый код преобразования rgb в yuy2.
* Avisynth_c.h логические функции возвращают 1 для true вместо произвольного ненулевого.
* Внутренний RGB2YUV() теперь копирует Alpha старший байт на выход.
* CoUninitialize() делается немедленно для S_FALSE CoInitialize() возврата, то есть мы не держим счетчик использований COM.
* Pfc, Softwire and SoundTouch обновлены и добавлены как зависимые проекты.
* UPX обновлена до версии 2.03 (2006-11-07).
* Величина Memory Max по умолчанию увеличена до половины минус 64Mb, если свободно свыше 256MB.
* AVISource/WavSource отображают WAVEFORMATEXTENSIBLE назад к эквивалентному WAVEFORMATEX.
* DirectShowSource() теперь распознает некорректный AM_MEDIA_TYPE подтип для WAVE_FORMAT_EXTENSIBLE аудио, корректирует данные и принимает их.
* DirectShowSource() теперь пытается использовать частичный граф из неудачного вызова RenderFile.
* DirectShowSource() теперь детектирует и обрабатывает выровненные не на 32 бит строки изображения от плохих кодеков.
* Crop(align=true) проверяет действительное выравнивание при каждом вызове GetFrame.
* Ослаблено ограничение ширины YV12 ресайза, теперь кратно 2 вместо 4.
* Отказы .AVSI при env->CreateScriptEnvironment() теперь доступны интерфейсу GetError().
* SetCacheHints(CACHE_RANGE, n) будет теперь уступать кадры, чтобы удовлетворить SetMemoryMax().
* CoInitialize()/CoUninitialize() теперь сделаны как часть создания/уничтожения ScriptEnvironment.
* Много кода из ветви версии 2.6 включено. Типично IsYV12() заменено на IsPlanar().

## Отличия от 2.56

### Добавления

* Blur()/Sharpen() MMX=False опция для вынужденного использования C++ функций.
* Попытка явно запросить входную частоту отсчетов от аудио кодека (Tritical).
* Опция инсталлятора для avisynth.lib, avisynth.exp и avisynth.map файлов.
* DirectShowSource() теперь устанавливает _HIRESOUTPUT свойство WMAudio Decoder DMO. Позволяет 24 битные отсчеты и 6 канальное декодирование.
* Avisynth COM объект теперь поддерживает IAVIStreaming интерфейс. Многие приложения слепо ожидают это и не могут загрузить AVS скрипты.
* Conditional Reader теперь также принимает T, F, Yes и No для логических данных.
* DirectShowSource() протоколирует отладочные сообщения в лог-файл.
* DirectShowSource() вынужденная установка числа кадров.
* DirectShowSource() принимает аудиопотоки типа WAVE_FORMAT_IEEE_FLOAT.
* Добавлена функция KillVideo().
* TimeStretch теперь предоставляет настроечные параметры библиотеки SoundTouch.
* Добавление global OPT_AllowFloatAudio=True к вашему скрипту разрешает выход аудио с плавающей точкой WAVE_FORMAT_IEEE_FLOAT.
* Явный запрос всех каналов, доступных в аудиопотоке [acm AC3]
* Явная попытка запросить float, 32 bit затем 24 bit отсчеты от аудио кодека.
* Принимает сырые аудиопотоки типа WAVE_FORMAT_IEEE_FLOAT.
* Добавлена опция установки, чтобы добавить пункт "Avisynth Script" в оболочку Explorer для создания нового .avs файла.
* Добавлены avs_delete_script_environment и avs_subframe_planar в avisynth_c интерфейс.
* Трюк чтобы допустить работу Fraunhoffer MP3 кодека при wBitPerSample==16. (Squid_80)
* Добавлен португальский перевод (RoLon), и частичный французский перевод (JasonFly)
* Subtitle: Многострочный текст субтитров, установи аргумент LSP и используй \n. (foxyshadis, tateu)
* xxxFPS("preset") строковые синонимы ряда величин FPS. (Tritical)
* Лучшее детектирование и защита несоответствий avisynth_c вариантов cdecl/stdcall (Tritical).

### Исправления ошибок

* Исправлена регрессия многочисленного кэша через кэш для бесскобочных вызовов (Tritical).
* Исправлен DirectShowSource возврат серых кадров.
* Исправлен DirectShowSource возврат установления аудиоформата.
* Исправлен TCPDeliver YV12 перенос 50% данных.
* Исправлен TCPDeliver делает Makewritable перед получением параметров.
* Исправлен TCPDeliver перенос аудио смещен на 4 байта.
* Исправлены ошибки граничные условия ядра ресайзера.
* Исправлен крах Invert() с малыми ширинами.
* Исправлен небольшая утечка памяти в Amplify().
* Исправлены серые кадры с внутреним старт, стоп, старт, при инициализации DirectShowSource.
* Исправлено AudioChannels() возвращал не ноль при отсутствии аудио (Tritical).
* Исправлено ConvertFPS() в режиме смешения соотношение mix_ratio было неверным (Fizick).
* Исправлена AviSource() обработка плохих AVI файлов, начинающихся с пропущенных пустых кадров, просто возвращая первый ключевой кадр.
* Исправлена DirectShowSource() обработка пересогласования пинов.
* Исправлена Overlay() обработка аргумента "PC_Range".
* Исправлен SubTitle() крах при исчерпании ресурсов.
* Исправлена проверка аргумента обрезки ресайзеров.
* Исправлено текстовое сообщение о плохом аргументе оператора %.
* Исправлена набивка аудиобуфера видеографикой при исключении. Теперь возвращает E_FAIL. Видеопоток в последующем будет возвращать текст ошибки в графической форме.
* Исправлено в KillAudio() сброс nchannels и sample type в 0.
* Исправлено в Conditional Reader переполнение буфера sscanf.
* Исправлены расхождения времени Version() и VersionString().
* Исправлены серьезные неточности в TimeStretch. Она все еще не с точностью до отсчета!
* Исправлена обработка отрицательного целого аргумента для ApplyRange() and Animate().
* Исправлен обработка инсталлятором перезаписываемых файлов с атрибутом "только для чтения".
* Исправлены ConvertAudio SSE2 в Float тест выравнивания.
* Исправлена генерация альтернативных имен (auto)LoadPlugin. (Tritical)
* Исправлена переполнение блока памяти SaveString.
* Исправлена ошибка $Plugin!Functionname!Param$. (Fizick)
* Исправлена утечка держателя реестра в $PluginDir$ таблице. (Dave Brueck)
* Исправлена утечка памяти avisynth_c.
* Исправлено возвращение запертых/защищенных VBF's в LRU. (Tritical)
* Исправлена обработка исключений SEH/C++ времени выполнения для XPsp2. (Tritical)
* Исправлен CAVIStreamSynth::Read переполнение аудио буфера. (Avery Lee)
* Исправлена утечка держателей DLL в LoadPlugin. (Tritical)
* Исправлено Assert("text") больше не распознает % аргументы.
* Исправлено распознавателя чисел возвращение неточного преобразования float.
* Исправлена ConvertFPS() не обработка плоскостей цветности в режиме смешения.
* Исправлена попытка использования узора ресайзера после уничтожения.
* Исправлена функциональность ресайзера - субпиксельный сдвиг был нерабочим.
* Исправлена Info() метрика автовыбора шрифта.
* Исправлена ошибочная условная проверка float RHS.
* Исправлены цвета в YUV ColorBars, теперь согласуются с BT.801-1.
* TCPDeliver обновления: Клиент: Исправлено аварийное завершение, если клиент отсоединен.
* TCPDeliver обновления: Сервер: Помнит отсоединить клиентов при завершении.
* Исправлены Turn*() YUY2 mod 2 высоты тесты.
* Исправлены AVISource() поврежденные сообщения об ошибках.
* Исправлена AVISource() прямая обработка пропущенных кадров (дропов).

### Оптимизация

* Анализатор пытается предотвратить добавление к графу кэша к кэшу.
* ImageSource() больше не использует статический буфер, использует кэш и freezeframe.
* TCPDeliver большие улучшения буфера (взято из версии 2.6).
* SubTitle() освобождает все ресурсы когда построен последний кадр клипа.
* SubTitle() освобождает GDI ресурсы после создания текстовой карты.
* ApplyRange() строит только две цепочки вместо 3.

### Изменения

* TCPDeliver добавлена иконка, сделаны все ресурсы US English.
* Avisynth.Map файл теперь генерится для выпускаемых версий.
* ConvertTo*() and GreyScale() теперь принимает "Rec601" как пригодную матрицу.
* DirectShowSource.dll сжата upx.
* Обновил SoundTouch библиотеку до 1.3.1.
* SoundTouch теперь доступна в RelSym сборке.
* Animate нумерация целого аргумента больше не округляется к положительной бесконечности. Как положительная, так и отрицательная нумерации идентичны. то есь для Animate(0, 10, "Foo", 0, 0, 10, -10), Foo's arg1 = -arg2 для всех кадров.
* Выборочная ассоциация Открыть с Notepad для .avs файлов в инсталляторе теперь также включает файлы .avsi.
* Инсталлятор теперь выдает диалог восстановления, если неперезаписываемые файлы встретятся при инсталляции. Пользователь может вручную исправить проблему и повторить установку этого файла.
* SetMemoryMax() минимум теперь 4Mb вместо 16. (Tritical)
* Удален предел автозагрузкиt 50 плагинов. (Tritical)
* COM QueryInterface вызовы теперь возвращают S_OK вместо NULL.
* Вызов функции, не имеющей аргументов, без скобок, теперь получает кэш. (Tritical)
* Числа вне диапазона теперь вызывают ошибку времени компиляции.
* xxxFPS(float) теперь использует продолженные доли, чтобы генерировать минимальную пару отношений. (Raymod2)
* ChangeFPS(linear) теперь вызывает ошибку времени компиляции, если относительное изменение > 10.
* ConvertFPS() режим смешения работает для всех форматов пиксела. (Tritical)
* Info() реконструирована из обновлений 2.60.
* TCPDeliver.dll сжата upx.
* RGB ColorBars полосы +Q и -I, Hue теперь коректны, Luma НЕ ноль, чтобы достичь этого.
* AVISource аудио больше не ограничено 2 каналами.
* SaveString блоки памяти теперь выровнены на 32 бита.
* По умолчанию планарные плоскости цветности выровнены на mod 16. Смотри SetPlanarLegacyAlignment().

## Отличия от 2.55

### Добавления

* Детектирование поддерживающих SSE3 CPU в env->GetCPUFlags и Info().
* RGB32 режим в TemporalSoften
* *Resize(), src_height и src_width, если отрицательные, работают как в crop.
* Добавлены опции к DirectShowSource (seekzero, timeout и pixel_type).
* Добавлена AudioDubEx(), слепо принимает видео и аудио потоки.
* Добавлена Load_Stdcall_Plugin(), синоним для LoadCPlugin() (не исчезает когда загружена avisynth_c.dll)
* Добавлена поддержка DevIL для RGB32 к ImageSource.
* Добавлена документация на русском языке. Спасибо Fizick и его команде (прим. перев.: то есть нам :-). Хорошо сделано.
* Добавлен фильтр Merge(). Включает очень быстрый iSSE pavgb код для веса=0.5
* Добавлен фильтр MergeARGB(), MergeRGB().
* Добавлены фильтры ShowRed(), ShowGren(), ShowBlue().
* Добавлен планарная версия env->SubFrame() (спасибо TSP).
* Добавлен SetPlanarLegacyAlignment() для выбора алгоритма выравнивания планарных форматов в памяти.
* Добавлен контроль дополнения (padding) аудио в Trim().
* Добавлен оператор muldiv(множимое, множитель, делитель).
* Добавлен AssumeScaledFPS(multiplier, divisor, sync_audio), отображающий vi.MulDivFPS.
* Добавлен метод VideoInfo.MulDivFPS(целый множитель, целый делитель), делающий рациональное масштабирование с нормализацией и защитой от переполнения ствойства FPS.
* Добавлены параметры offsets, gamma и analyze (подобно ColorYUV) в RGBAdjust.
* Добавлена предварительная поддержка фильмов 23.976fps с прореженными (drop) кадрами к ShowSMPTE(), кто-нибудь знает предлагаемый алгоритм SMPTE?
* Добавлены Spline16Resize, Spline36Resize, GaussResize и LanczosResize(tap=xx)
* Добавлены параметры в ShowFrameNumber: ShowFrameNumber(offset=10, x=360, y=576, font="georgia", size=24, text_color=$ff0000)
* Добавлено целый отступ в ShowSMPTE: ShowSMPTE(offset_f=10)
* Добавлены параметры к ShowSMPTE: ShowSMPTE(offset="00:00:00:30", x=360, y=576, font="georgia", size=24, text_color=$ff0000)
* Добавлен опциональный параметр FPS=24 в Dissolve и Fade*() для обработки клипов содержащих только аидио.
* Добавлены FadeIn0(), FadeOut0(), FadeIO0() варианты, которые не добавляют дополнительного кадра.
* Добавлена поддержка дробной передискретизации в ResampleAudio().
* Добавлены HasVideo() и HasAudio() скриптовые функции.
* Добавлен параметр Level в Tone().
* Добавлена поддержка SFloat в ResampleAudio().
* Добавлен ColorBars(pixel_type="YUY2, YV12").
* Добавлен env->ManageCache() интерфейс в AviSynth.h.
* Добавлена 16 байт охранная зона защиты/детектирования VideoFrameBuffer в режиме отладки.
* Добавлена защита от EBX ошибки компилятора / короткий обход в Cache::GetFrame().
* Добавлена поддержка YV12 для ShowFiveVersions().
* Добавлен пареметр "[sse]b" в Tweak, чтобы разрешить (медленый) SSE код (возможно AMD могут выполнять его быстрее).
* Добавлен Limiter(show=show_luma/show_luma_grey/show_chroma/show_chroma_grey), что показывает выходящие за пределы яркость/цветность; *_grey делает остальные пикселы серыми.
* ConvertTo*(Matrix="Rec709, PC.709, PC.601") преобразование теперь поддерживается.
* ConvertFPS()/ChangeFPS() копирует FPS из второго клипа.
* GreyScale() RGB поддерживает Matrix="Rec709, Average".

### Исправления ошибок

* Исправлено повреждение в конце таблицы IScriptEnvironment vtable.
* Исправлена утечка памяти в Overlay и AVSChar/AVSTime.
* Исправлен End_of_Stream сброс при поиске в AudioStreamSource::
* Исправлен SegmentedDirectShowSource() разбор аргументов.
* Исправлены *Resize(), src_height и src_width если отрицательные, работают корректно.
* Исправлена небольшая утечка памяти в env.VSprintf(), для [ul]case() и *str() также убраны 4k пределы, спасибо Tritical.
* Исправлено Normalize scribling в памяти для float отсчетов.
* Маскировано "Evaluate: System Exception - Access Violation" в :- FadeIO*(), RGBAdjust(), Tweak(), Lanczos*Resize() и GaussResize().
* Исправлено округление в YUY2 turnleft/right цветности.
* Исправлено AVSC_USE_STDCALL объявление в avisynth_c.h (было ACSC_USE_STDCALL).
* Исправлена BlankClip(clip) теперь полностью дублирует видеоинфо донорского клипа, включая четность.
* Исправлена AssumeTFF/BFF() чтобы корректно обновлять внутреннее состояние четности.
* Исправлена Animate переключение аудио.
* Исправлена округление выровненного UVpitch из width.
* Исправлен 2х битовый перекрест в YUV горизонтальных изменениях размера, спасибо Squid.
* Исправлена утечка ресурсов в DirectShowSource(), спасибо Tritical.
* Исправлена набольшая утечка памяти в Subtitle() и string(), спасибо Tritical.
* Де-инсталлятор теперь удаляет Docs\pictures папку, и плагины DirectShowSource и TcpDeliver.
* Исправлена обработка одного файла ImageReader.
* Исправлено в ImageWriter info==false больше не пишет статусный текст на кадре.
* Поймана ошибка .WAV clsid handler GPF с именами более 47 символов.
* Исправлено нарушение доступа YUV текста, скоректированы тесты выравнивания границ (регрессия).
* Исправлена утечка памяти ExpFunctionCall::Call, спасибо Tritical.
* Исправлена утечка PClip в MergeChannels(). Деструктор не вызывался.
* Испрвален нарушение доступа в YUV тексте, скорректированы тесты выравнивания границы.
* Исправлена инверсия выравнивания RGB текста. Регрессия в версии May 5th.
* Исправлены утечки vfw ресурсов при открытии плохих AVI файлов.
* Исправлено Циклическая (Loop) аудио обработка * Исправлен GeneralConVolution аварии с обрезанным (cropped) входом. * Восстановлена функциональность вынужденного (негативного) выравнивания планарной яркости. * Исправлена утечка памяти стека, спасибо Tritical.
* Исправлен Прямой AviSource ввод сырых YV12 и I420 источников.
* Исправлены (скрестите пальцы:) "Evaluate: Recognized exception!" проблемы с жестким прерыванием Windows XPsp2.
* Исправлен CACHE_RANGE внутренний тест границ, спасибо Tritical.
* Исправлены Mask() вычисления серой шкалы, красный/синий обменены.
* Исправлено FPS переполнение с Select...(), Interleave() и вариантами.
* Исправлен режим вычитания в Overlay (цветность корректно вычитается).
* Исправлен параметр align в Subtitle.
* завершения код работает снова (нарушенный в предыдущих бетах).
* исправлено затухание многоканального аудио.
* Dissolve и Fade*() обрабатывают клипы из только аудио, предполагая 24fps для вычислений позиций.
* Исправлена неверная цветность в DoubleWeave() для FrameBased YV12 материала.
* Исправлено аварийное завершение от BlankClip() с шаблоном клипа из только аудио.
* Исправлено AudioCache повреждение при изменении размера буфера.
* Исправлены ResampleAudio() щелчки/стуки из-за ползущей ощибки.
* Исправлено SSE/SSE2 ConvertAudioTo16/32Bit() насыщение положительной величины.
* маскирована EBX ошибка компилятора в :- audio.cpp converaudio.cpp convert_yv12.cpp memcpy_amd.cpp focus.cpp layer.cpp merge.cpp resample.cpp resize.cpp text_overlay.cpp conditional_functions.cpp 444convert.cpp blend_asm.cpp
* Исправлена ConvertToRGB() src->rowsize==8 авария.
* Исправлена утечка памяти, уничтожены VideoFrameBuffers.
* Исправлена env->NewVideoFrame() возвращающая короткий буфер кадров.
* Исправлено vi.FrameFromAudioSamples() округление.
* Исправлена ShowFiveVersions() неиспользванные угловые прямоугольники имели случайное содержимое. теперь оно заполнено
* Исправлено YUV плоскости обменник сообщает корректное имя.
* Исправлено MergeChroma сообщает о себе как MergeLuma.
* Исправлена MergeChroma делает MakeWriteable() с не тем клипом.
* Исправлена Normalize (была дискретизация только половины отсчетов на глоток; игнорировался масштабный фактор).
* Исправлена GreyScale() EBX ошибка компилятора.
* Исправлен перевернутый кадр в imagesources.
* PlaneDifference в ConditionalFilter не сообщал точно 0, если плоскости были теми же.
* Исправлена большая ошибка в сжатом YV12 TCPSource / TCPClient в TCPDeliver.
* увеличен буфер строк, с 4K до 32K (проблема WarpSharp).
* Исправлено переполнение Overlay(softlight/hardlight).
* маскировано "Unknown exception" в :- audio.cpp avs_soundtouch.cpp color.cpp field.cpp focus.cpp fps.cpp levels.cpp resample.cpp source.cpp
* Исправлена WavSource() оставляющая .WAV файлы открытыми.
* Исправлены помехи в многоканальны аудиопереходах в Dissolve() и Fade*()
* Исправлен зеленый/голубой обмен каналов в C версии Layer()
* восстановлен GreyScale() RGB C код.
* Исправлен MMX YV12 Blur() дважды размазывал каждый 8ой пиксел.
* Blur()/Sharpen() края все обработаны согласовано (края отражаются).
* Исправлена YV12 Blur() ширина < 16 фатальная ошибка.

### Оптимизация

* Улучшение производительности в функцияя передачи в TCPDeliver.
* Normalize() для 16 bit останавливается, когда найдена величина максимального целого отсчета .
* Выполнена сортировка -unique|detab в color_rgb.avsi, удалены все дубликаты.
* YV12 MergeLuma(), MergeChroma() включают очень быстрый iSSE pavgb код для веса=0.5
* Очищена коллекция мусора VideoFrame по закрытии скрипта (Спасибо TSP).
* Text overlay antialiaser tweaked, 8% faster Work in progress, more to come.
* RGB32 FlipHorizontal() code tweaked.
* ResampleAudio() MMX для int16 отсчетов, примерно 3.25 раз быстрее.
* ResampleAudio() переделан C++ int16 код, примерно 35% быстрее.
* ResampleAudio() переделано управление буфером, теперь линейно обращается child->GetAudio().
* Управление Кэшем и Памятью переделаны!
* ConvertAudioToFloat() быстый SSE и очень быстрый SSE2, оптимизация/пропуск ненужного копирования выхода.
* ConvertAudioTo16,32Bit() очень быстрый SSE2.
* SwapUV() YV12 swaps pointers in PVideoFrame, zero cost!, YUY2 fast iSSE code.
* UtoY(), VtoY(), YtoUV() YUY2 faster C++ code.
* MergeLuma(), MergeChroma() теперь MMX (не iSSE), имеет C++ версии, YV12 BlendPlane теперь делает 8 пикселов на цикл, почти 2x быстрее!.
* ColorBars() генерирует Tone в буффере конструктора, копируемый в GetAudio(), избегая 48000 sin(double) в секунду.
* EnsureVBRMP3Sync() использует 256K передаточный буфер при поиске (должен быть > 5 раз быстрее теперь.)
* Normalize() использует 256K передаточный буфер чтобы анализировать пики (должен быть > 5 раз быстрее теперь).
* Tweak: Добавлен C++ код (таблица соответствия), которая теперь быстрее чем старый iSSE код.
* Audio.cpp переделан код в аудио фильтрах, которые делают 64 bit операции (большинство функций от 2 до 5 раз быстрее).
* ConvertToRGB32() MMX RGB24 -> RGB32.
* Blur()/Sharpen() если H или V = 0 пропускает этот проход.
* GreyScale() MMX YUY2.
* Blur()/Sharpen() теперь MMX (не iSSE), быстрее, меньше ограничений mod(2^n).

### Изменения

* Остановлен излишний поиск LIBC, добавлено relsym построение - выпуск с Символами (with Symbols).
* Входная точка avisynth_c плагинов теперь официально "avisynth_c_plugin_init@4" (не включайте @4 нигде, компилятор делает это за Вас), это в действительности не изменение из-за ошибки в avisynth_c.h, которая случайно вызывала это уже ранее.
* Info() теперь автовыбирает меньший шрифт чтобы подогнать инфо в меньшие кадры.
* Info() теперь различает "подразумеваемую" четность полей и четность полей.
* Animate теперь выбирает четность через цепочку фильтров.
* Новое улучшенное кэширование!
* Инсталлятор теперь заполняет "All Users" дерево оболочки на вариантах NT. Admin/Uninstaller пункты добавляются только к текущему пользователю.
* Анинсталлятор теперь удаляет DirectShowSource.dll и TCPDeliver.dll из папки плагинов.
* ImageReader атоматически не падает к DevIL для DIB/BMP типа файлов.(DevIL аварийно завершается на палитровых BMP)
* ImageWriter теперь вызывает исключение для не RGB24 формата с обработкой DevIL.
* Заменено VideoFrame::SubFrame() на env->SubFrame() (Готовность к многопоточности, Спасибо TSP).
* Опция выравнивание планарных форматов (по умолчанию 16 байт) должна быть основана на плоскостях цветности, выравнивание яркости равно (все еще) удвоенному цветности. Станет по умолчанию в следующей версии.
* Поддержка для vfr контента в DSS: DirectShowSource("F:\Guides\Hybrid\vfr_startrek.mkv", fps=119.88, convertfps=true) превращает поток переменной частоты (vfr ) в поток постоянной частоты (cfr) путем дублирования кадров.
* Histrogram: в режиме color_mode - YUY2: Неверные величины (ниже 16 и выше 235) будут окрашены коричневыми/желтыми. Делает эти величины более заметными.
* Evaluate: Теперь прерывается и сообщает системное исключение вместо бесполезного сообщения "Evaluate: Unrecognized exception!".
* BlankClip() больше не хватает любой неявный последний (last) клип как шаблон. Вы должны явно указать, что вы хотите использовать как шаблон, то есть BlankCLip(Last). "BlankClip()" теперь возвращает пустой клип по умолчанию.
* Avisynth.h FrameFromAudioSamples/AudioSamplesFromFrames() теперь тестирует на деление на ноль и возвращает ноль, если это встретится, вместо аварийного завершения.
* SeparateFields() теперь генерирует исключение для источников типа IsFieldBased().
* Weave() теперь генерирует исключение для источников типа IsFrameBased().
* Политика кэширования CACHE_NOTHING сейчас больше не возвращает все буферы видеокадров. Пересматривается.
* Avisynth.h SetFPS() теперь проверяет на ноль числитель или знаменатель, если найдено, то устанавливает num=0, den=1.
* Автодетектирование аудио кэширования понижает метрику с 25 до 5 при пропусках вперед (при пропусках назад все еще 25).
* ConvertAudio() включает предпочтительный тип в качестве допустимого типа.
* ConvertAudio() передает SetCacheHints() по наследству к внуку (дочернему дочернего).
* Normalize() показывает номер кадра пика.

## Changes from 2.54

### Additions

* Added a huge list of color presets, that can be used instead of colors (which can be found in the plugins folder: colors_rgb.avsi).
* Added: BlankClip now has color_yuv, that allows setting and YUV color for YUV clips.
* Added GZIP huffman compression to TCPDeliver.
* Added AssumeFPS(clip1, clip2 [, sync_audio=true/false]) (stickboy again)
* Added audio=true/false to SelectRangeEvery. This will optionally also cut up audio according to the select. Default: true.
* Added Turn180().
* Added IsAudioFloat() and IsAudioInt() as clip properties.
* Added FrameRateNumerator() and FrameRateDenominator() as clip properties.
* Added AudioLenghtF() as clip property.
* Added experimental "after_frame=true/false" to ScriptClip.
* Added FOURCC parameter to AviSource by stickboy.
* Added Lanczos4Resize().
* Added french documentation.
* Added float audio and multiple channels support to Dissolve.
* Added WriteFile, WriteFileIf, WriteFileStart, WriteFileEnd. (WarpE)
* Added dll-name prefix to plugins as per http://forum.doom9.org/showthread.php?s=&threadid=72235.
** Syntax is DLLNAME_function(), where DLLNAME is the filename of the dll containing the function.
* Added automatic audio cache.
* Added dotted lines at zero levels to view bias in Histogram(mode="stereo").
* Added CPU stuff to Info().
* Added GeneralConvolution divisor, auto.
* Added audio cache after EnsureVBRMp3Sync.
* Added TimeStretch(). This filter can change speed of the sound without changing the pitch, and change the pitch of a sound without changing the length of a sound.

### Bugfixes

* Fixed "Unknown exception" in conditional filter expressions. (August 17th regression)
* Fixed: DirectShowSource properly releasing filters on unload.
* Fixed: Huge stability fix by IanB. This should remove a bunch of "Evaluate: Unregnized exception", and crashes on reload in vdub.
* Fixed: ImageReader/ImageSource flipped error messages and info overlay.
* Fixed MergeLuma not always updating properly.
* TCPDeliver should compile now.
* AssumeFPS: Added sanity check to ensure that denominator isn't zero.
* Fixed Loop() when called with no video (stickboy)
* Fixed error not being thrown in Conditionalfilter on an invalid operator.
* Proposed fix for zero coefficient.
* Fixed crash on certain resolutions in Resize.
* Made TCPDeliver compile without complaining about missing files.
* Fixed linecount on multiline strings (Bug ID 989276]
* Fix VideoFrameBuffer cache corruption
* Fixed VideoFrameBuffer cache corruption during "Plan C" memory recovery.
* The problem with ApplyRange/Animate's inability to use functions that take no additional arguments should be fixed.
* Removed overflow bug in ssrc upsampler.
* Fixed Audio cache crash if no audio.
* Cleaned up ApplyYV12 in textoverlay.
* Fixed float audio in Dissolve.
* Fixed audiobits clip properties now returning bits and not bytes.
* Fixed ConditionalReader inaccuracies on integer interpolation.
* Fixed Mask() problem with footage with different pitches.
* Subtract now clamps errors instead of overflowing.
* Fixed old plugin names actually working.
* Added specific (and simpler) stereo mode to TimeStretch - no more drifting.
* Made ISSE YUY2 HorizontalReduceBy2() more "safe".
* Fixed missing plane in TemporalSoften.
* Corrected some quirks in TemporalSoften scenechange on artificial sources.
* Fixed IsParityKnown() in avisynth.h - thanks to stickboy.
* Random in scalemode is not returning limit value - thanks you stickboy!
* Fixed: Trim audio could crash, if sample types were different.
* Fixed crash-on-exit in SSRC, if rateconversion was skipped.
* Fixed one frame missing in TemporalSoften.
* Fixed chroma moving half a pel in Overlay() with YV12-input mode.
* Fixed Trim audio crash if sample types were different.
* Fixed crash-on-exit in SSRC, if rateconversion was skipped.
* Fixed minor glitches in audio cache (out of range requests)
* Fixed ConvertToYV12(interlaced) incorrect sampling for top field chroma.
* Fixed Memory leak in Vertical Resizer.
* Fixed PointResize() exact odd sub/multiple width/height returning trash frames.
* Fixed PointResize() image not centred when expanding.
* Fixed TurnLeft()/TurnRight() crash with multiple colour spaces in same script.
* Fixed TurnLeft() in yuy2 colour space off by 1 pixel down.

### Optimizations

* SSRC now has aligned data (slightly faster and SSE ready).
* Added MMX optimizations to Overlay mode lighten+darken with opacity=1.0, with no mask.
* Added SSE float to int audioconversion.
* Added 3DNOW! optimizations to sample-type conversions int to float, and float to int. Much faster.
* Added faster MMX to Invert by ARDA.
* Added RGB24, YUY2 and YV12 MMX Invert() function.
* Added MMX/ISSE chroma convertion to Overlay with YV12 input.
* Added MMX function for Overlay(mode="blend"), when a mask is used and opacity = 1.0.
* Removed unneeded DevIL components

### Changes

* TCPDeliver: Simplification and cleanup. Planar pitches handled more consistently.
* DirectShowSource now requests interlaced material to avoid internal (crappy) WMV9 deinterlacer. (Thanks to Russel Lang)
* ImageReader/ImageSource now accepts relative paths in all configurations.
* Adjust audio length in SelectRangeEvery to match new video length.
* Updated installer.
* ImageReader: tweaked default parameters.
* ImageReader: made ColorBars parameters optional (like docs claim!)
* ImageReader: No more "Image not in range". First frame is ALWAYS frame 0.
* Updated SoftWire codegenerator to latest version.
* ImageReader: Static image support, Floating-point FPS, aliased to ImageSource, frames automatically flipped when necessary.
* ImageWriter: Optional "info" parameter to show filename.
* ImageReader / ImageWriter: All errors returned as text clips.
* AviSynth will longer resize to non-mod4 widths in YV12 mode!
* Dissolve can now handle audio input with different sample types.
* Dissolve now checks if samplerates are the same.
* Trim/Dissolve: Better error reporting.
* Updated DevIL libs; removed unneeded !DevIL components; improved error reporting in ImageReader / ImageWriter.
* Updated Overlay(mode="multiply") to work more logical. Old functionality is no more!
* DirectShowSource() is now a plugin, and is automatically placed in the plugin directory by the installer.
* Disabled avisynth_c plugin autoloading (no longer a compatible way to do so).
* FrameRate() now calcs as (double)numerator/(double)denominator. (still returns a float)

## Changes from 2.53

### Additions

* Added ConditionalReader(). This enables users to load per frame settings into variables accessible to conditional variables.
* Added "Hardlight", "SoftLight", "Difference" and "Exclusion" as Overlay blend modes.
* Added mode="chroma", "luma", "lighten", "darken" to Overlay.
* Overlay() now accepts RGB24/32 output.
* Added "pc_range=true/false" parameter to overlay(). This will make all RGB<->YUV conversions inside Overlay assume [0->255] YUV range, and not CCIR 601 [16->235] range. Default is false.
* Added RGB input conversion to overlay.
* ShowAlpha now returns RGB, YUY2, or YV12 via the pixel_type argument. The latter two can be used to layer an RGB clip with alpha transparency data onto a YUV clip using the 3-argument form of Overlay().
* Added Overlay() for doing advanced video overlays/layers.
* Added SuperEQ(). SuperEQ is a very precise 16 band equalizer.
* Added IsYUV(clip) to script (it was only present in the documentation). (Party Time)
* Added internal audiocache by [WarpEnterprises]. Added automatically by the filters that need it.
* Added fast=true/false mode to SSRC. This will use a faster mode for resampling. Default is false.
* Added Histogram(mode="stereo") shows a clasic stereo graph (I guess) from the audio in the clip. Some may know these from recording studios. Quite nice actually.
* Added Histogram(mode="stereooverlay"). Draws the stereograph on top of the original image. YV12 only.
* Added ChangeFPS(linear=true/false). This will make AviSynth request frames in a linear fashion, when skipping frames. Default:true.
* Added SSRC(int samplerate) SSRC resampling. Note that it only downsamples. Audio is always converted to float.
* Added Tone(float length, float frequency, int samplerate, int channels, string type). This will generate sound.

- Length is in seconds. Type can be "Silence", "Sine" (default), "Noise", "Square", "Triangle" or "Sawtooth".
- Defaults are Tone(10.0, 440, 48000, 2, "sine").

### Bugfixes

* Fixed out-of-bounds read in Normalize.
* Fixed compiler warnings in avisynth_c
* Fixed very small sample corruption in SSRC.
* Fixed audio corruption problem if audio with start < 0 was requested. (introduced in Dec. 30th binary).
* Fixed very small sample corruption in SSRC.
* Better seeking precision in audio in DirectShowSource.
* Fixed crashes and Audio corruption in ConvertToMono().
* Fixed UnalignedSplice if only audio was present.
* Fixed Trim crash, if only audio was present (throws an error).
* Fixed slowdown on multiple Directshow Sources.
* Fixed green bars in small video with mode="levels" and mode="color". For Histogram

### Optimizations

* Internal audio cache now has better efficiency.
* Optimization: MMX in Dissolve.

### Changes

* Added Kevin Atkinsons avisynth_c 0.20 (stdcall) API.
* Updated installer. Removed the old one.
* SSRC: "fast" is now true per default. This setting is recommended, unless you are doing a big samplerate adjustment (not just 48000 -> 44100).
* Updated installer. (Thanks to V_ICE for inspiration).
* Re-Added German documentation.
* EMMS is now executed between all filters to avoid potential FPU-states to be carried from one filter to the next.
* Reimplemented SSRC. It is now capable of running multiple instances, it has been better tested (occational strange sample should be eliminated). This version support both upsampling and downsampling with very high precision.
* If any filter should request audio that is out of bounds, if will no longer be passed to the filter above, but the invalid parts will be filled with silence.
* Documentation restructured and much has been updated.
* Added C-versions of conditional planedifference filters, for non-ISSE machines (not well tested though).

## Changes from 2.52

### Additions

* Added audio support to DirectShowSource.
* Added seeking support to DirectShowSource.
* Added .GRF file loading to load filter graphs from GraphEdit. Be sure there is an open pin, to which AviSynth is able to connect, otherwise expect "the filter graph won't talk to me".
* Added optional coring=true/false to Levels and Tweak. both true by default, as previously.
* German documentation.
* Added DV type 1 video input, using AviSource(). Video only!
* DirectShowSource() is now capable of properly opening audio with more than 2 channels. Tested with AC3Filter.
* DirectShowSource() now accepts and properly decodes float-precision samples. Tested with AC3Filter.
* Added checks for samplerate and framerate in Splice.
* SwapUV(), UToY(), VToY() and YToUV() now also works in YUY2 mode.
* Added C-style plugin support (still in testing) to allow plugin writers to use other compilers than MSVC. See this thread for further info.
* Added Invert(), ShowAlpha().
* Added default parameters to ColorBars.
* Extensive updates of German documentation.
* DirectShowSource capable of opening audio only. WAV/AC3/MP3 can be opened using DirectshowSource.
* Added experimental "align=true/false" to crop - this will realign frames if they aren't already. Alignement is 16 for SSE2 machines, 8 for others.
* Added "Overall PSNR for Compare()" - thanks to temporance.
* ResampleAudio now accepts any number of channels.
* Added "after_frame=true/false" option to FrameEvaluate. This determines if the script should be evaluated before (default operation) or after the frame has been fetched from the filters above.

### Bugfixes

* Fixed memory leak in Plugin name export.
* Incorporated file lock fix in AviSource by WarpEnterprises.
* Minor fixes to field information in Info().
* Fixed occational hang in DirectShowSource (this might lead to leaks on unload/load!)
* Fixed crashbug in Compare, when logfile was specified.
* Fixed distortion on Crop(align=true).
* Fixed overflow in ResampleAudio (Thanks to IanB!). [Bug 770853].
* Fixed Mergechannel broken with more than 2 channels.
* Made adjustments for longer sample support in ResampleAudio.
* Fixed crash in ResampleAudio, if no audio was present.
* Fixed crash in MonoToStereo().
* Fixed: Normalize(show = true) displaying invalid value, and added a dB amplification indication.
* Fixed minor issues in audio routines with very long samples.
* Fixed wrong colors in ShowSMPTE YV12 mode.
* Corrected several performance problems in Limiter, YUY2 mode (thanks again ARDA!).
* Fixed YUY2 FlipHorizontal giving garbage/crashing.
* General Convolution now properly processes 5x5 matrices. Thanks IanB for the patch.
* Fixed minor stuff in TemporalSoften.
* (Hopefully) fixed precision in PointResize.

### Optimizations

* Added heavily optimized memory copy mode, that will be used in some blits.
* Conditional unroll of fetch/unpack loop in dynamic compiled resizer. Now only unrolls if 1) Athlon 2) Source width < 512.

### Changes

* Further clarification in Info() regarding field information.
* Minor changes to Limiter code (block prefetch).
* ApplyRange now accepts startframe = stopframe. This will only process the specified frame.
* ApplyRange now supports audio and processes it to the end of stopframe.
* Updated avisynth_c API to v0.14.
* Reenabled function name export for VDubMod syntax highlighting - I'm not sure if it had much effect on stability.
* Corrected ParseMultiplication so it parses from left to right.
* The default luma range in Limiter is corrected to 16-235 (it was 16-236).
* Temporarily disabled plugin function export for VDubMod. I'm suspecting this of the "crash+disappear" of VdubMod.
* Removed HSIAdjust().
* Removed ffvfw from installation.
* ShowSMPTE does no longer require fps parameter - only if the current fps cannot be used.

## Changes from 2.51 beta

### Additions

* Added light version of "ffvfw" to the installer. No "Cannot locate decompressor (YV12)" messages.
* Added ConditionalFilter, that returns one of two sources based on an expression.
* Added conditional filters:
** AverageLuma(), AverageChromaU(), AverageChromaV() functions. ''Returns a float from 0 to 255 based on the average pixel values of a plane.''
** YDifferenceFromPrevious(), UDifferenceFromPrevious(), VDifferenceFromPrevious() and YDifferenceToNext(), UDifferenceToNext(), VDifferenceToNext()'''.
** LumaDifference(clip,clip), ChromaUDifference(clip,clip), ChromaUDifference(clip,clip). ''They return a float value between 0 and 255 of the absolute difference.''
** RGBDifference(clip1,clip2), RGBDifferenceFromPrevious(clip), RGBDifferenceToNext(clip).
** YPlaneMax(clip, float threshold), YPlaneMin(clip, float threshold), YPlaneMedian(clip), YPlaneMinMaxDifference(clip, float threshold). ''Threshold is a percentage, on how many percent of the pixels are allowed above or below minimum. The threshold is optional and defaults to 0. There are similar funtions for U and V.''
* Added ScriptClip(clip, string function, [show=true/false]). This will return the clip returned by the function evaluated on every frame.
* Added FrameEvaluate(clip, script) - Similar to ScriptClip, except the output of the filter is ignored. This can be used for assigning variables, etc.
* YV12 <-> RGB conversions now use an intermediate YUY2 conversion to achieve better chroma upsamplig. As a result of this ConvertToRGB now also take an "interlaced=true/false" parameter.
* Added ImageWriter.
* Added "show" parameter to ConditionalFilter. This will overlay the results on the screen.
* Added dynamic compiled limiter.
* Implemented Belgabors patch for exporting plugin functions.
* Build date is now (semi)automatically updated in version.
* Added script functions: IsYV12(clip), IsPlanar(clip), IsInterleaved(clip)
* Loads of documentation updates.

### Bugfixes

* Fixed cache hints a bit up.
* Hopefully fixed jumping frame bugs in temporalsoften.
* Fixed crashed in temporalsoften on some setups.
* Fixed I420 / YV12 mismatch in Interleave.
* Fixed problems with implicit last giving problem with multiple filter instances of ScriptClip/ConditionalFilter.
* Many ImageReader/Writer fixes and updates.
* Fixed bug when height > 512 in RGB -> YV12 conversion.
* AviSynth now mimics VDubs way of handling dropped frames to avoid problems with buggy codecs.
* Trim now returns (x-1) frames as supposed.
* Fixed stereo setting in BlankClip

### Optimizations

* Added MMX RGB24->YUY2 conversion.
* Minor changes to existing RGB32 -> YUY2 MMX.
* Minor speedup to ISSE limiter.
* Added SoftWire dynamic compiled horizontal resizer. Approximately 10-15% faster - maybe even more on P4.

### Changes

* AviSynth will now attempt to deallocate framebuffers, if memory usage is 25% above default values or SetMemoryMax().
* Improved rounding precision in ISSE YV12 <-> YUY2 conversions.
* Improved chroma upsampling quality in planar YV12 -> YUY2.
* Better chroma alignment on interlaced YUY2 ->YV12.
* Slightly better precision in audio conversion.
* ApplyRange now checks if size and colorspace are the same.
* Fixed float point exceptions being thrown in some applications, based on the CPU register settings. (Especially Delphi-based apps).

## Changes from 2.50 beta

### Additions

* Added start/end parameters to ImageWriter.
* Added Chr, Time and Spline script functions.
* Added ISSE and MMX YUY2->YV12 conversions. Faster than XviD - and both interlaced and noninterlaced modes supported. Use ConvertToYV12(interlaced=true).
* Added rewritten YV12->YUY2 (progressive) conversion to avoid using buggy XviD conversion. It also has better quality as it properly interpolates chromas as opposed to simply copying it. Speed should be the same. Use ConvertToYUY2(interlaced=true).
* Added TurnLeft /TurnRight.
* YToUV() now takes an optional third parameter, that contains luma for the final clip.
* AudioLength() now returns the size in samples (do however beware of overflows on very long clips)
* Added ApplyRange.

### Bugfixes

* Fixed Splice problems with YV12 from different sources. Audio is now automatically converted to the same format.
* Fixed bug in YV12 stackvertical, causing corrupt images.
* Fixed memory exception problem in Blur.
* Fixed non-matching image type in Stack.
* Fixed rounding in Temporalsoften mode 2.
* Fixed crashbug in YUY2 mergechroma.
* Fix bug in C version of YUY2->RGB24.
* Fixed bug with uninitialized data in AviSource.
* Fixed wrong pitch being used in Temporalsoften scenechange - could in rare cases lead to unexpected results.
* Fixed rounding in some cases in Temporalsoften.
* Doesn't add audio to track, if there is no present in AssumeSampleRate().
* Fixed isBFF() and isTFF().

### Optimizations

* Put in Steady's new BitBlt code, and enabled it for ISSE capable processors.
* Much "conservative" code removed. A general speedup should be expected.
* Made SwapUV faster.

### Changes

* Removed all fieldbased/mod 4 checks.
* Restored how fieldbased/framebased works.
* Removed startup Box from installer.
* Greyscale inserts value 128, instead of 127. Some users have reported a greenish tint.
* Updated AssumeTFF and BFF to also write the information to VideoInfo.
* Updated icons.
* BMP support (output only) in ImageWriter.

## Major changes from the 2.0.x line:

- Native planar YV12 support.
- Multiple audiochannels. Unlimited number of channels is now supported.
- Float samples support. AviSynth is now capable of processing samples as floats.
- Automatic sample conversion. If some filters doesn't support a specific sample type, they are converted to the format preserving most quality (most often floats).
- Optimizations. Many basic features has been optimized, and now performs much better than previous versions.
- Temporalsoften has a significant speed improvement, scenechange detection and a new improved blend mode.
- Limiter can limit the YUV ranges, to avoid invalid color values and improve compression.
- ColorYUV makes it possible to do very exact color corrections. ColorYUV has built-in auto-whitebalance and auto-gain features.
- Select separate planes using UToY, VToY and merge them together again, using YToUV.
- Fliphorizontal. implemented.
- SelectRangeEvery is now part of the core functions.
- Blur, Sharpen, Resize optimized.
- Fast XviD colorspace conversions.
- See clip info using the info() command.

#### Changes from 2.07

- Fixed crashbug in resize.
- AviSynth now only includes "*.avsi" from the plugin directory
- Changed maximum number of arguments from 40 to 1024.
- Resampleaudio() caused crashes, if no audio was present.
- Fixed: Exist() didn't work.

#### Changes from 2.06

- Script extensions:
`- - LeftStr(string, int size), RightStr(string, int size), MidStr(string, int first, int length), FindStr(string, string), RevStr(string), StrLen(string)`
`- - Sign(int), sign(float), Nop, Rand([int limit]), Select(index, item0 [,item1...]), Exist(string filename)`
`- - VersionNumber(), VersionString()`
`- - IsRGB24(clip), IsRGB32(clip), Int(float), Frac(float), Float(int), Value(string), HexValue(string).`
- Strings can be compared using "<" ,">","<=",">=" operators (case insensitive).
- Color option for Fades , Letterbox, and Addborders.
- Subtitle alignment and spacing options, added y=-1 centering support (x=-1 undocumented support remains) and defaults for x,y and align vary depending on each other's settings.
- Optimization for recent BlankClip() RGB24 bug fix.
- Fixed ceil, floor and round functions.
- Fixed BlankClip RGB24 with odd widths.
- Fixed DB scale off by 2x in volume.
- Added FadeIn / FadeIn2 to fade in video and audio.
- Added AssumeSampleRate to change the samplerate without resampling (yes, this will lead to desync!).
- Fixed one frame wrong offset in trim, when second argument is negative.
- Added abs(integer) and abs(float).
- Fixed '%' (mod) in scripts, so it returns absolute values.
- Added a boolean to DirectShowSource, so seeking can be manually disabled, if it works very slowly.
- Added PointResize() function. Resamples as "Nearest Neighbour" in Virtual Dub.
- Added SetWorkingDir() function.
- Fixed Normalize crashes.
- Added German documentation.

#### Changes from 2.05

- Fixed potential crashbug in Resize - real fix instead of previous hack.
- Default alignment is now 16 bytes, which should be faster on P4.
- Fixed bug in RGB32 greyscale, when with not divideable with 2.
- Added example scripts. - Added installer/uninstaller. No more need to fiddle with .reg files and regedit.
- Fixed Trim, so negative values works as documented.
- Fixes to plugin autoloading: - freezed when invalid dll encountered, was locking files unnecessarily, now also loads avisynth plugins with VDF extension.
- Made forward seeking fallback code in DirectShowSource files - it will not freeze anymore, just be very slow, since it has to decode all inbetween frames!
- Added LanczosResize which uses the Lanczos3 algorithm - it provides better quality than BicubicResize in many cases.
- Better rounding precision in BicubicResize/BilinearResize.
- Optimizations to YUY2 BicubicResize/BilinearResize.
- New ResetMask() filter: sets the mask to "all-opaque" (RGB32 only).
- ChangeFPS() now changes the framecount (thanks to Xesdeeni).
- AVI files, that contains an invalid first frame are now rejected - there is no way of handling this situation gracefully. Segmented AVI's automatically skip these segments, and will NOT return an error.
- Better parameter checks on Crop() and LetterBox().
- Fixed wrap at right side of picture in RGB BicubicResize()/BilinearResize().
- Fixed another Chroma wrap issue in BicubicResize()
- Added optional pixel_type parameter to AVISource and siblings to force a decompression format (YUY2, RGB32 or RGB24).
- Added optional left and right parameters to Letterbox - parameters are placed after the existing to preserve compatibility.
- Added EnsureVBRMP3Sync(clip), to avoid desync of VBR-compressed mp3-soundtrack. This will slow seeking down considerably, but is very useful when using trim() for instance. Always use before trim().
- BugFix: Fixed crashbug in Resize functions on some machines.
- AviSource always returns last valid frame on decompression errors.
- Added check for invalid frame 0 (mostly seen in SegmentedAviSource()).

#### Changes from 2.04

- Additions to the Compare filter (Statistics over several frames)
- Reorder function loading to hopefully give plugins precedence over filters
- Added LowPassAudio(frequency) and HighPassAudio(frequency)
- Many updates and additions to documentation.
- New function: String(value) - converts any AVSValue to string.
- Bumped number of plugins to 50 from 30
- Avisynth now allocates minimum 16MB cache, or otherwise 1/4th of free physical memory.
- Plugin autoloading (Create string regkey: HKEY_LOCAL_MACHINE\Software\Avisynth\PluginDir) (still in alpha)
- Crash-on-exit bugfix in SegmentedAviSource.
- Audio-related bugfix in AVISource.
- Bugfix in FilteredResizeH (see bug [ 588402 ]) minor optimizations too.
- Bugfix: TemporalSoften
- Bugfix: dropped frame (introduced in 2.04).
- Fixed bug in Pow(x,y)

#### Changes from 2.03

- Compressed audio support in AVISource, AVIFileSource and OpenDMLSource. Boolean parameter after clip turns it off.
- Compile fix in temporalsoften.

#### Changes from 2.02

- Fixed EMMS bug in ColorKeyMask
- Fixed YUY2 detection issues in Layer
- Added friendly error message for Layer ops
- GetLeftChannel - Returns left channel.
- GetRightChannel - Returns right channel.
- MonoToStereo(clip1_left,clip2_right) - muxes two clips together as one stereo clip.
- MixAudio(clip_1,clip_2,float clip1_volume, float clip2_volume) Mixes two audio sources together.
- Added ConvertBackToYUY2() That only uses chroma from the left pixel to avoid shifting chroma color by multiple YUY2->RGB>YUY2 conversions. ConvertToYUY2 remains unchanged.
- Added Documentation for new parameters
- Added sound to Loop() function.
- New function ConvertToMono(clip) - convert stereo to mono.
- New function KillAudio(clip) removes audio from clip. Use this if you get crashes with compressed AVI sound.
- new filter: ColorKeyMask + bugfix in Layer
- New function Normalize(clip, float max_left, float max_right). Normalizes audio. Both floats are optional. If maximum values (0 to 1) are used, the stream will peak at this level, otherwise the peak will at full volume.
- TemporalSoften (MMX & C ) (previously released as plugin TemporalSoften2)
- MMX optimized HorizontalReduceBy2() in YUY2 mode.
- Corrected one pixel offset bug in VerticalReduceby2().
- MMX is now pixelperfect in compare with C implementations.
- Changed order in ReduceBy2() since VerticalReduceBy2 is faster.
- VerticalReduceBy2() has been MMX optimized. More than twice as fast. Filter checks if image is too small to be reduced.
- Colorbars() now also generates a test tone. Test tone is a 440Hz sine at 48KHz, 16 bit, stereo. The tone pulses in the RIGHT speaker, being turned on and off once every second.
- ResampleAudio() now skips conversion, if samplerate is already at the given rate.
- No athlon codes in merge.
- Converttoyuy2 MMX optimized.
- Fixes in greyscale() in RGB mode.
- Optimized layer() and decomb-filters.
- Compare(clip filtered, clip original, string channels="", string logfile="", bool show_graph=true)
- AssumeTFF() and AssumeBFF() to force parity
- Documentation restructured and updated.

Пожалуйста сообщайте об ошибках в Sourceforge Avisynth 2 page - или - форум по AviSynth на Doom9

`$English Date: 2008/12/22 01:26:05 $
Русский перевод 19.05.2005-22.12.2008 Fizick http://avisynth.org.ru`