github pinterf/AviSynthPlus v3.7.6pre-r4669
Avisynth+ v3.7.6pre-r4669 test build

pre-release2 hours ago

20260827 3.7.5.r4669 (pre 3.7.6)

  • New array syntax: add dictionary-style ArraySet (replaces or appends)
  • New array syntax: add dictionary-style ArrayDel (deletes by key, no-op if not found)
  • New array syntax: add ArrayIndexOf which returns the actual index of the dictionary-style array search
    See https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/script_ref/script_ref_arrays.html
  • Fix AviSynth#505: Expr Vector-C relative-row addressing (x[dx,dy]) ignored the current row
    entirely, and additionally mis-scaled the row byte offset for 16-bit/float sources.
  • Fix AviSynth#506: Compare 32-bit SAD/SD accumulators (8-bit packed/planar, C and SSE2/ISSE
    paths) could overflow on large frames (e.g. 4K RGB32); now 64-bit unconditionally.
  • Fix AviSynth#507: Compare RGB24/RGB48 MAD/MD denominator divided by a hardcoded 4 (assumed
    4 channels/pixel) instead of the actual per-pixel component count (3).
  • Fix AviSynth#508: Compare uninitialized internal mask could give non-deterministic MAD/MD
    results for RGB48/RGB64.
  • Fix AviSynth#509: ConvertBits automatic preconversion for large dither_bits gaps (e.g.
    16-bit source with dither_bits=1) silently dropped the dithering, falling back to
    a plain bit-depth expansion.
  • Fix AviSynth#510: Layer "Mul" raw multiply product used a plain bit shift instead of the
    existing MagicDiv, so near-max products came out one unit too low (e.g. 255*255 -> 254).
  • Fix AviSynth#511: ConvertYUV444ToRGB/ConvertRGBToYUV444 left the synthesized alpha plane
    uninitialized when converting an alpha-less source to an alpha-carrying target.
  • Fix AviSynth#512: "Overlay" masked "add"/"subtract"/"darken"/"lighten"/"difference"/"exclusion"/
    "softlight"/"hardlight" a fully-opaque mask did not reproduce the same result as omitting the mask.
    As a side effect, also added finer opacity-granularity over 8 bits at integer formats.
  • Fix: ArrayIns/ArraySet/ArrayDel: bounds check the index parameter(s) (preventing Access Violation)
  • Fix/optimize: avs/minmax.h content now is force-inlined, since MSVC placed a function call for them!
    (checked with actual disassembly).
    Plus: wrap min/max/clamp in an anonymous namespace to prevent a theoretical translation unit mismatch across archs
    (e.g. when SSE2/AVX2/AVX512 specific .cpp files are built with different per-file compiler flags).
    Part of our public headers, but no interface change was done.
  • various memory related fixes (msg7086)
  • fix various regressions (to be detailed later)

Don't miss a new AviSynthPlus release

NewReleases is sending notifications on new releases.