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

latest release: v3.7.6pre-r4726
pre-release3 hours ago

For online documentation check https://avisynthplus.readthedocs.io/en/latest/

Actual:
https://avisynthplus.readthedocs.io/en/latest/avisynthdoc/changelist376.html

20260928 3.7.5.r4721 (pre 3.7.6)

  • ConvertBits: source range (_ColorRange) is now detected per frame when "fulls" is not given, instead
    of being fixed once from frame 0 at filter creation. Fixes AviSynth#516: the frame#0 request during filter
    creation could hide an error message/exception raised by an upstream filter.
    • Use case: e.g. spliced clips with different _ColorRange flags; ConvertBits no longer calls GetFrame(0)
      during script evaluation.
    • "fulld" omitted: mirrors each frame's source range; "fulld" given: output range is pinned.
    • "fulls" given explicitly: classic fixed-range behavior.
    • Same bit depth with "fulls"/"fulld" omitted (e.g. ConvertBits(16) on a 16-bit clip) still returns
      the clip unchanged.
    • Internal ConvertBits calls (ConvertToRGB/YUV "bits", VfW export bit-depth mapping) benefit as well.
    • Fix (could be reached only from this new per-frame mode): same-bit-depth limited->limited integer
      conversion (C/SSE4.1/AVX2) computed an invalid shift and misread 8-bit data; 32-bit float
      same-range conversion added rounding noise. Both are now plain pixel copies.
  • New formats: YUV(A) 4:4:0 and 4:1:0 (8-32 bits), 4:1:1 over 8 bits, Y+alpha (YA, 8-32 bits).
    • ConvertToYUV(A)440, ConvertToYUV(A)410, ConvertToYUV(A)411 (all bit depths), ConvertToYA.
    • Internal filters support the new formats (Is411() replaces the 8-bit-only IsYV411() checks);
      Layer, Overlay, Text/Subtitle: 4:1:0 and 4:4:0 support; Text/Subtitle: 4:1:1 "left" placement.
    • Overlay: YA support; YUVA/YA "output" keeps (or adds) alpha instead of dropping it.
    • ColorBars: 4:1:0 and 4:4:0 support. ImageReader: 8-bit YUV440 and YUV410.
    • AviSource: YVU9, I410, I411, I440 input (410/440 new, alternative 411 FourCC).
    • VfW export: YUV410 as YVU9, YUV440 as I440; 8-bit YA as Y2[0][8] (interleaved Y,A like ffmpeg's YA8);
      high bit depth 411/410/440 silently down-converted to 8 bits.
    • BuildPixelType: 440/410/YA support.
    • Added "YUV410"/"YUVA410" to the allowed 8-bit format strings, and FFmpeg-style alternate names for
      32-bit float formats (e.g. YUV420PF32, RGBPF32, YF32, YAF32).
  • Fix AviSynth#518: "Mask" on RGB32 clips narrower than 4 pixels: the SSE2/AVX2 code wrote 16 bytes starting
    before the row (memory corruption before the frame buffer).
  • Fix AviSynth#520: Possible access violation on script environment destruction when a frame held another frame
    as a frame property depending on internal frame registry ordering.
  • Bump interface version to v13 (new video format constants).
  • Fix: ConvertBits: ordered dither on packed RGB48/RGB64 with dither_bits 1-7 (bit-depth gap over 8)
    failed with "truerange specified for non-planar source". The packed->planar conversion used for
    dithering now happens before the automatic pre-conversion step, so the whole dither chain runs planar.
  • rstdoc: add BuildPixelType page; update filter docs for YA; document ConvertBits per-frame range
    handling and its dither helper conversions; document AcquireGlobalLock/ReleaseGlobalLock better (AviSynth#444).
  • Fix test version regressions (3.7.6 not yet released):
    • Overlay: masked blend (greymask=false, native non-4:4:4) read the chroma mask at luma resolution
      (access violation).
    • AVX-512 horizontal resampler (16-bit output): up to the last 31 pixels of a row were left unwritten
      for certain widths (seen in 410->444 chroma upscaling).
    • Fix AviSynth#514: Layer op="mul" ignored the overlay's alpha mask when not using full opacity.
      (regression since r4589 test).
  • Fix: TurnLeft/TurnRight: the mod alignment check for sources with different horizontal and vertical
    chroma subsampling (4:2:2, 4:1:1, and the new 4:4:0) tested the source dimensions instead of the
    post-turn ones (e.g. 4:2:2 needs a mod-2 source height, which becomes the width), so invalid clips
    passed and wrong error messages were shown. Pre-existing bug.

Don't miss a new AviSynthPlus release

NewReleases is sending notifications on new releases.