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.
- Use case: e.g. spliced clips with different _ColorRange flags; ConvertBits no longer calls GetFrame(0)
- 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).
- Overlay: masked blend (greymask=false, native non-4:4:4) read the chroma mask at luma resolution
- 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.