Changes.

Changes from 3.5 to 3.6 (20200520)

Additions

  • User defined functions add array parameter types: "array" or "val_array", "bool_array" "int_array", "float_array", "string_array", "clip_array", "func_array"

  • New: Format function

  • Add frame property getter and setter functions

  • Add SetMaxCPU to limit reported CPU level (useful for debugging)

  • Allow multiple prefetchers (MT) (from Neo fork)

  • Add argument to Prefetch to change # of prefetch frames without changing # of threads (from Neo fork)

  • Caching enhancements SetCacheMode (from Neo fork)

  • ScriptClip and variable stability in multithreading, add 'local' parameter to ConditionalSelect, ConditionalFilter, ScriptClip, ConditionalReader, FrameEvaluate, WriteFile, WriteFileIf, WriteFileStart, WriteFileEnd

  • UseVar, special filter, opens a clean variable environment in which only the variables in the parameter list can be seen (from Neo fork)

  • "escaped" string constants: with e prefix right before the quotation mask (from Neo fork)

  • Introduce function objects into scripts (from Neo fork)

  • Filter graph to e.g. svg. SetGraphAnalysis and DumpFilterGraph. (from Neo fork)

  • POSIX: better behaviour under non-Windows because of having multiple sized fixed fonts

  • Text filter (the only way to "SubTitle" for non-Windows)

  • Info() filter: when parameter "size" < 0, font is automatically enlarged over 640x480

  • SIL OPEN FONT LICENSE added because of usage of Terminus fonts

  • Exist() to have bool utf8 parameter (file existance check)

Build environment, Interface, Internal source

  • frame properties framework, IScriptEnvironment extension, Interface V8

  • re-enable and fix script arrays (NEW_AVSVALUE define at the moment)

  • Big Neo Merge

  • Added predefined macros for ARM processors. Tested on Raspberry Pi 4B with the aarch64 image of Ubuntu 20.04.

  • Added support for disabling the Intel SIMD intrinsics. Gets automatically disabled on non-x86 targets.

  • Added submodule to allow macOS 10.13 and 10.14 to build AviSynth+ with the native Clang compiler

  • Support for various processors and OSs

  • IScriptEnvironment new additions Ex-IScriptEnvironment2: no-throw version of Invoke name change to -> InvokeTry Ex-INeo Invoke versions to -> Invoke2Try, Invoke3, Invoke3Try New (was not implemented in any former Interface): Invoke2 (Exception Thrower version of Invoke2Try)

Bugfixes

  • Fix: broken Exist for directories (regression appeared in 3.5.0)

  • Fix: ColorYUV: really disable variable search when parameter "conditional" is false

  • Fix: ReplaceStr when the pattern string to be replaced is empty

  • Fix: BuildPixelType: chroma subsampling of sample clip was ignored.

  • Fix: Mix/Max Runtime function 32bit float chroma: return -0.5..0.5 range (was: 0..1 range)

  • Multithreading and deadlock fixes for ScriptClip (Neo fork)

Optimizations

  • Enhanced: Planar RGB to YUV 444 10-14 bits: more precision (32 bit float internally)

  • Enhanced: Planar RGB to YUV 444 10-16 bits: AVX2 (speed improvement)

Please report bugs at github AviSynthPlus page - or - Doom9's AviSynth+ forum

$Date: 2021/12/07 13:36:0 $