Changes from 3.7.5 to 3.7.6¶
Additions, changes¶
Added
SetFilterProp,GetFilterProps, andSetFilterPropPassthrough:SetFilterProp— automatically inject a frame property on the output of a named filter every time it is instantiated, without modifying the script. Rules are typically placed in an auto-loaded.avsifile. The property value may be a static int/float/string, a function object evaluated per frame (e.g. to derive_Matrixfrom output resolution), or captured from the filter's own call argument (undefined()capture mode).SetFilterPropconditional form — inject a property only when a specific named call argument equals a given match value or any element of an alias array. String comparison is case-insensitive. Both positional and named call sites are matched.SetFilterPropPassthrough— compatibility shim for old filters that predate frame-property support (e.g.ColorMatrix). Copies all input frame properties to the filter's output; self-healing: becomes a no-op per frame once the plugin is updated to useNewVideoFrameP.GetFilterProps— returns the registered rule table as a JSON string for diagnostics.
Addresses issue #393 and more. See SetFilterProp.
Bump year to 2026
Overlay: "add" and "subtract" direct RGB mode
Overlay: "add" and "subtract" supports 32-bit float.
Added utf8 parameter to AddAutoLoadDir
Added utf8 parameter to ListAutoLoadDirs
Added utf8 parameter to LoadPlugin
Added utf8 parameter to DumpFilterGraph
"Info": Optimize AVX512 features display, group features, make a bit more compact
"Info": add L2 cache size display
"SetMaxCPU": add "avx512base" and "avx512fast" options to enable/disable AVX512 grouped features. see SetMaxCPU . Users of base-only AVX512 CPUs can enable Avisynth-optimizations with SetMaxCPU("avx512base+").
ARM64 (aarch64) area:
"Info": add ARMV8-A features display (NEON, DOTPROD, SVE2)
Add ArmV8-A cpu feature detection (NEON, DOTPROD, SVE2) on ARM64 Windows/Linux/macOS builds. On Windows, only up-to DOTPROD can be detected due to OS limitations.
New CPU flags in
cpuid.handavisynth_c.h: CPUF_ARM_NEON, CPUF_ARM_DOTPROD, CPUF_ARM_SVE2"SetMaxCPU": add "neon", "dotprod", "sve2" options to enable/disable ARM64 (aarch64) features.
"ConvertToPlanarRGB(A)":
bitsparameter: on-the-fly bit-depth conversions to YUV->RGB conversion. See ConvertToPlanarRGB.ConvertToPlanarRGB(A): addedqualityparameter: forces 32-bit float internal processing instead of S18.13 fixed-point arithmetic when converting from YUV, regardless of source or target bit-depth. See ConvertToPlanarRGB."ConvertToYUV(A)xxx" and legacy 8 bit name versions:
bitsparameter: on-the-fly bit-depth conversions to RGB->YUV conversion. See ConvertToYUV444.ConvertToYUV(A)xxxand legacy 8 bit name versions: addedqualityparameter: forces 32-bit float internal processing instead of S18.13 fixed-point arithmetic when converting to YUV, regardless of source or target bit-depth. See ConvertToYUV444."ResetMask": add parameter float "opacity"
"AddAlphaPlane": add parameter float "opacity"
"Layer": YUY2 is handled as YV16 (lessen source code bloat)
"Histogram" Color and Color2 mode additions and fixes:
Added
matrixparameter (Color and Color2): specifies the YUV matrix for chroma interpretation (BT.601, BT.709, BT.2020, etc.), following the same convention as theConvertToYUVfamily. If not set, the matrix is read from the clip's_Matrixand_ColorRangeframe properties.Added
graticulestring parameter (Color and Color2): controls the danger zone shading (Color) or valid chroma boundary square (Color2)."on"(default) always draws it, preserving pre-3.7.6 behavior;"off"never draws it;"auto"draws it only for limited-range clips and suppresses it for full-range clips.Added
circleparameter (Color and Color2, default false for Color, default true for Color2): draws the hue circle with 15° tick marks. In Color2 mode this was previously always drawn; it can now be disabled.Added
targetsparameter (Color and Color2, default false): draws target boxes at the six 75%-amplitude ColorBars Cb/Cr positions (Yellow, Cyan, Green, Magenta, Red, Blue). Positions are computed from ground-truth linear RGB values through the active matrix, giving accurate coordinates at all bit depths.Added
targets100parameter (Color and Color2, default false): draws target boxes at the same six ColorBars Cb/Cr positions astargets, but placed at 100% luma level instead of 75%.Added
axesparameter (Color and Color2, default false): draws horizontal and vertical crosshair lines through the vectorscope center.Added
iqparameter (Color and Color2, default false): draws target boxes for the NTSC −I, +I and +Q chroma-phase references, using the luma-corrected broadcast convention (Y raised until the most negative RGB component reaches Code 0, avoiding illegal RGB values).Added
iq_linesparameter (Color and Color2, default false): draws radial lines at the fixed NTSC subcarrier phase angles of 33°, 123°, 213° and 303°, marking the I and Q chroma axes.Fix: "Color" and "Color2" modes: copy alpha channel from source for alpha-carrying formats (YUVA, RGBPA, RGB32, RGB64); initialize alpha to zero in the histogram panel area.
Fix: accurate pixel positioning and scaling throughout the histogram panel, limited/full range aware. Marker positions use the same conversion path as the vectorscope signal dots, ensuring exact alignment at any bit depth and color range.
Vectorscope is now fully matrix-aware: all overlay marker positions are computed from ground-truth linear RGB values converted through the active YUV matrix, giving accurate Cb/Cr coordinates at all bit depths including 32-bit float.
"ConvertToYUY2": rewritten to route all conversions through YV16 as intermediate format, using the full
ConvertToPlanarGenericinfrastructure.ChromaOutPlacementparameter added (was missing, present in ConvertToYV16). All source formats (YV12, YUV420/422/444, planar/packed RGB, high bit depth) are now handled correctly.bitsparameter accepted; must be 8 if specified. See Convert."ConvertBackToYUY2": kept for backward compatibility; now forwards to
ConvertToYUY2. The pre-2.5 left-pixel-only chroma hack is no longer needed or applied; the YV16 lossless repack path avoids chroma resampling loss entirely for roundtrip workflows."ConvertToYV12" (legacy 8-bit name): the YUY2 fast-path shortcut is removed; now routes directly through
ConvertToPlanarGeneric::CreateYUV420.bits=parameter semantics corrected: the legacy 8-bit-named functions (ConvertToYV12,ConvertToYV16,ConvertToYV24) now check the target bit depth rather than the source bit depth, allowing high-depth sources whenbits=8is explicitly specified.8 bit packed RGB formats are converted to planar RGB before 444 conversion. Stop using direct rgb-yv24 conversions (16 bits were already converted for long time).
Add ColorBarsUHD ITU-R BT.2111-3 (05/2025) with three signal variants: HLG narrow range (mode=0), PQ narrow range (mode=1) and PQ full range (mode=2)
"Layer": add
"mulovr"op — Overlay-style multiply for YUV(A) formats only (RGB raises an error). The overlay luma (Y) plane drives darkening of all base planes: dark overlay Y pulls base luma toward black and simultaneously desaturates base chroma toward neutral (128 for 8-bit integer, 0.0 for float). Bright overlay Y (max value) leaves the base unchanged. MatchesOverlay(mode="multiply")within ±1 LSB for all bit depths and all chroma placements. Supports 8–16-bit integer and 32-bit float; all YUV subsampling (Y, 4:1:1, 4:2:0, 4:2:2, 4:4:4); alpha-aware (YUVA) and non-alpha sources. Uses a two-pass structure like "lighten"/"darken": pass 1 processes chroma using spatially-averaged overlay Y; pass 2 processes luma at full resolution. The"placement"parameter is respected for correct 4:2:0 / 4:2:2 mask downsampling. See Layer.ShowFrameNumber,ShowSMPTE,ShowTime,ShowCRC32,Info,Compare: addgdibool parameter.When
gdi=true(default on Windows with GDI), the Windows GDI Antialiaser is used for antialiased text rendering (existing behavior). Whengdi=false, the built-in bitmap font (Terminus) is used instead: faster, cross-platform compatible, and the only option on non-Windows builds.fontdefault is nowgdi-dependent: "Arial" / "Courier New" for GDI, "Terminus" otherwise.bolddefault is nowgdi-dependent:truefor GDI,falsefor the bitmap font path.
See showframes, info, and compare.
ShowCRC32: addchannels,mode, andshowmodeparameters.channels— selects which planes to checksum using their initial letters (Y, U, V, A for YUV; R, G, B, A for RGB), defaulting to all planes. Unrecognised letters are silently ignored.mode—0(default): one combined CRC32 over all selected planes;1: separate CRC32 per plane displayed as"Y:XXXXXXXX U:XXXXXXXX ...".showmode—0(default): display text only;1: display text and store result as frame property"ShowCRC32"(int64array — one element formode=0, one per active plane formode=1);2: store frame property only, no text drawn. Values are unsigned 32-bit integers stored asint64.For packed formats (YUY2, RGB24/32/48/64) with default parameters the raw interleaved buffer is hashed directly, preserving backward compatibility.
Planar RGB(A): planes are always processed in R, G, B, A logical order.
See showframes.
"Layer": add
"top_left"option for the"placement"parameter — HEVC/AV1 left+top co-sited chroma (point-sample, fastest). Affects"mul","add","subtract","lighten","darken", and"mulovr"modes with 4:2:0 / 4:2:2 sources."Overlay"
"blend"mode: add"placement"parameter for correct luma-mask-to-chroma downsampling in 4:2:0 and 4:2:2 clips. Values:"mpeg2"(default),"mpeg1","top_left".Subtitle: addplacementstring parameter — chroma location hint for subsampled YUV formats (4:2:0, 4:2:2, 4:1:1). Whengdi=trueall three siting modes are supported:"MPEG2"/"left"(default),"MPEG1"/"center", and"top_left"(UHD 4:2:0 / 4:2:2 co-sited chroma). The default is read from the_ChromaLocationframe property, falling back to"left". Whengdi=falseonly"left"and"center"are implemented (same asText). See Subtitle / Text.Subtitle: addgdibool parameter. Whenfalse, Subtitle uses the built-in bitmap font (Terminus) instead of Windows GDI rendering — the same path as theTextfilter. Faster and cross-platform compatible;placementis then limited to"left"/"center". Default:true. See Subtitle / Text.Text: addgdibool parameter (accepted, has no effect; present for API compatibility withSubtitle— on non-Windows,Subtitleis aliased toTextso everySubtitleparameter must exist inText). Default:false. See Subtitle / Text.
Build environment, Interface¶
introduce
AVS_RESTRICTtoavs/config.h(compiler invariant c++__restrict)AVX512: CMake to recognize
*_avx512b.*and*_avx512.*file pattern, add compiler specific AVX512 compile flags accordingly (AVX512 Base and Ice Lake extensions)AVX512 support by conditional define. Define INTEL_INTRINSICS_AVX512 if avx512 modules are enabled and compiler supports it. For MSVC,AVX512 support enabled only from MSVC 2019 16.2 (19.22) or newer.
add
.editorconfig, update .gitignore to include the new .slnx format of Visual Studio 2026v12 interface: Global Lock support (https://github.com/AviSynth/AviSynthPlus/issues/444), mainly for plugins using common fftw3 library:
env->AcquireGlobalLock,env->ReleaseGlobalLock(C++),avs_acquire_global_lock,avs_release_global_lock(C)
v12 interface: ApplyMessageEx supporting utf8 parameter. see ApplyMessageEx
v12 interface: inform plugins about the effective thread count after Prefetch() via cache hints:
CachePolicyHint::CACHE_INFORM_NUM_THREADS(C++)AVS_CACHE_INFORM_NUM_THREADS(C)
See SetCacheHints .
the internal IScriptEnvironment2 methods AddAutoLoadDir and ListAutoLoadDirs explicitely work in UTF-8.
New CPU flags:
cpuid.h and ``avisynth_c.h- added AVX512 group feature flags CPUF_AVX512_BASE and CPUF_AVX512_FAST (Ice Lake, usable AVX-512 since that point). - added many new AVX512 individual feature flags - added ARM64 feature flags CPUF_ARM_NEON, CPUF_ARM_DOTPROD, CPUF_ARM_SVE2 - CPUF_xxxxx flags are now 64 bit, replace enum with constexpr.CMakeLists.txt: avx512 compile flag support for gcc/clang ("base" and "fast", latter is Ice Lake-like feature set).
V12 interface:
GetCPUFlagsExreturning 64 bit flags (too many AVX512 subfeatures to fit in 32 bit). C interface:avs_get_cpu_flags_ex. see GetCPUFlagsEx and GetCPUFlagsV12 interface: L2 cache size query support. New entry in
AvsEnvProperty:AEP_CACHESIZE_L2(C++),AVS_AEP_CACHESIZE_L2(C) to query L2 cache size in bytes withIScriptEnvironment->GetEnvProperty(). x86/x64 architecture only for now. See AvsEnvProperty .Refactor CMakeLists.txt:
Correct default of
ENABLE_INTEL_SIMDfor cross-compiling scenarios (e.g.ARM64target onx86_64host) Old logic relied on the host processor:${CMAKE_SYSTEM_PROCESSOR}Add back option to compile
ARM64builds with Visual Studio on Windows. On VS2026 even clangcl (LLVM) is supported out-of-box for ARM64 platform, in an easily cross-compilable way from an x64 machine.VDubFilter: allow building on Windows only x86/x64 targets (and not for ARM64).
Fix LLVM/clangcl/Intel ICX compile warning:
'WIN32' macro redefined as "#define WIN32 /D_WINDOWS /W3 /GR /EHsc 1 ", when CMake injects a command-line macro wrongly and thus redefines WIN32 . The fix: converts globaladd_definitions("/D ...")and other option string magics into per-targettarget_compile_definitions()andtarget_compile_options(). Thus removing the accidental injection of${CMAKE_CXX_FLAGS}intoadd_compile_options(), and prevents the WIN32 macro redefinition.
CMakeLists: add option to pre-supply external DevIL library path and include directory (
-DDEVIL_LIBRARY/-DDEVIL_INCLUDE_DIR).CMakeLists: apply compiler parameter settings (warnings, compile flags) to all plugin sub-projects in addition to the core library.
Bugfixes¶
Fix: "ConvertToYUY2" / "ConvertToYV12": YV12<->YUY2 interlaced conversion used asymmetric 0.75/0.25 chroma interpolation coefficients instead of the MPEG-2 specified 7/8,1/8 and 3/8,5/8 coefficients, introducing opposite- direction vertical chroma shifts in top and bottom fields. First diagnosed by Gavino in 2009; now resolved by routing through
ConvertToPlanarGeneric.Fix: "ConvertToYUY2" / "ConvertToYV12": progressive YV12<->YUY2 conversion used asymmetric 0.75/0.25 averaging (quarter-pixel offset) instead of the correct 0.5/0.5 midpoint average for left-sited chroma, introducing a 1/4-pixel vertical chroma shift.
Fix: "ConvertToYUY2":
_ChromaLocation,_Matrixand_ColorRangeframe properties were not read from YV12 source frames and not written to YUY2 output frames in the legacy direct conversion path.Fix: "ConvertToYUY2": SSE2 interlaced upsampling used wrong weighting direction for the lower line of each field pair (75%/25% toward current instead of 25%/75% toward next), differing from the C reference implementation.
Fix: memory leak and stability issue in frame recycling for static-frame sources (ColorBars, BlankClip): subframes created by Subframe/MakePropertyWritable accumulated without bound in permanently-live VFB buckets, and a race in frame property cleanup could cause access violations under multi-threaded use.
Fix: LruCache self-tuning cache resize: raised the ghost-hit threshold from
ghosted > 0toghosted > 1, preventing unbounded cache growth during backward seeking (Issue #379) and Bob()/SeparateFields access patterns (Issue #270). Frames evicted only once no longer trigger a resize; an undersized cache still grows once the same frame has been evicted twice.Fix: "Histogram" Color2 mode to copy alpha channel from source for alpha-carrying formats (YUVA, RGBPA, RGB32, RGB64); initialize alpha to zero in the histogram panel area. (Was: garbage)
Fix: C-only vertical resampling code added more rounding than needed (regression since pre-3.7.5 20250427).
Fix: "Invert": corrected chroma inversion to pivot around signed 0 instead of XORing with max_pixel_value.
Fix: YUV->RGB limited range matrix accuracy for 10-16 bits, plus use a symmetric rounding in matrix coefficient's integer approximation.
Fix: inaccurate ColorBars 10+ bit values. Now they are derived from the 32-bit float RGB definitions instead of upscaling a 8 bit precalculated YUV value. -I and +Q are still kept at legacy Avisynth values.
Fix: inaccurate ColorBarsHD 10+ bit values. Now they are derived from the 32-bit float RGB definitions instead of upscaling a 8 bit precalculated YUV value. Add 100% White after Ramp section.
Fix: GreyScale + SSE2 + RGB32 + matrix="RGB" overflow. Rare usage; "RGB" matrix (Identity) uses a 1.0 coefficient which exceeds the signed 16-bit SIMD limit of 32767 at 15-bit precision. Added bounds checking to fallback to C-code for any coefficients >= 1.0 or < −1.0.
Fix #448: Resolved an issue where MT_MULTI_INSTANCE filters using relative paths (e.g. "video.mp4" or "../image.png") failed under Prefetch() when used in imported scripts from different directories. The problem occurred because new thread instances did not inherit the original working directory, causing path resolution to fail. Now, the current directory is captured at filter instantiation and passed to worker threads, ensuring consistent path resolution.
Fix #456: "Reverse" corrupts 24-bit audio (https://github.com/AviSynth/AviSynthPlus/issues/456)
Fix BDF font rendering when it contains variable width characters like mixed Latin and CJK. Preparing feature request #446 (https://github.com/AviSynth/AviSynthPlus/issues/446)
Fix #462: Report: "AviSynth scripts don't work in a folder with a Unicode name." Plugin autoload folders are internally stored in UTF-8, regardless of which Windows ANSI codepage is set.
Folder names used in macros in AddAutoLoadDir (SCRIPTDIR, MAINSCRIPTDIR, PROGRAMDIR) and no longer restricted to contain ANSI-only characters
Registry-backed macros that can contain plugin folder paths (USER_PLUS_PLUGINS, MACHINE_PLUS_PLUGINS, USER_CLASSIC_PLUGINS, MACHINE_CLASSIC_PLUGINS) are read in Unicode friendly way as well.
Fix: Not existing registry entries won't appear as a macro string in auto-load path. E.g. Avisynth would automatically add
USER_CLASSIC_PLUGINSat the beginning, but if no such entry exist, it kept being in the folder list as<current_directory>\USER_CLASSIC_PLUGINS\. Now this false entry is removed.Fix: Overlay give proper error message if 32-bit float is not supported in that mode.
Change video-framebuffer over-allocation from 16 to 64 bytes. Allocate 64 bytes more than needed for video frame buffer in order to be able to read 64 bytes safely with AVX512 without risking access violation on the last pixels of the frame.
Fix: The Animate() function now explicitly clamps interpolated values to ensure they remain strictly between the start and end range. Due to the high precision of 64-bit double introduced in v3.7.5, intermediate calculations could slightly exceed the boundary (e.g., 360.00000000000006 when interpolating from 0 to 360.0 in 564 steps), requiring this clamp to prevent out-of-range errors.
Fix:
Textfilter crash when input contains a zero-length line (e.g.Text("\n")).Fix: "Layer"/"Overlay" subsampled YUV chroma alignment:
"Layer": x/y offsets that are not aligned to the chroma grid (e.g. odd x for 4:2:0/4:2:2) are now accepted as-is, matching "Overlay" behaviour. Previously they were silently snapped to the nearest aligned value; that snap also incorrectly shifted the luma start position, causing a one-pixel luma displacement that did not occur in Overlay.
"Layer"/"Overlay": the last chroma column/row of the blend region is now correctly processed when the overlay position is not chroma-grid-aligned. A ceiling formula replaces the old floor division, which caused the rightmost column or bottom row of affected chroma pixels to be skipped.
Optimizations¶
"Layer" YUVA/YUV/RGBP "add", "subtract", "mul", "darken", "lighten": refactor chroma placement calculation and function dispatchers; main algorithm SIMD vectorization is now possible for non-444 chroma placements by precalculating a mask for the actual row. Add AVX2 path (LLVM/clangcl recommended).
"Overlay" Blend: improved speed while keeping accuracy; use float arithmetic only where strictly needed.
"Invert": planar formats no longer pre-copy all planes from source before conversion; only planes that are unchanged are copied, avoiding unnecessary work.
TurnLeft, TurnRight: AVX2 support (1,5-3x speed on i7-11700 compared to SSE2 version)
Turn180 AVX2 support (very slight speed gain)
Resamplers:
introduce a SIMD-like C header (avs_simd_c.h) for smart auto-vectorizing compilers.
restore vertical float performance (3.7.4 was slower than 3.7.3) + SSE2 special optimization
further optimize verticals, use
AVS_RESTRICT(quicker RGB32/64 horizontal on AVX2 since TurnRigh/Left was optimized - packed RGB H-resize = TurnLeft-V-Resize-TurnRight)
optimize SSSE3 and AVX2 horizontal resampler for 32-bit float for small (<=4) kernel sizes
optimize 32-bit float vertical avx2
add AVX512 code path
32-bit float resamplers, verticals; horizontals up to kernel size 16.
8-16-bit horizontal resamplers, for kernel size <= 16 and specific ratios; speed gain up to 300%+ (DTL2020)!!
8-16-bit vertical resamplers
(Work In Progress) unify horizontal and vertical plane processing flow
add NEON optimizations for ARM64 (aarch64) for TurnLeft/TurnRight/Turn180. (First aarch64 code in Avisynth)
add NEON optimizatons for Overlay blend
(filter graph) avoid MTGuard and CacheGuard creation if a filter returns one of its clip parameter unaltered.
Add some avx2 stuff to Invert (no really gain, filter is too simple) and some Layer subfilter.
"Layer", "Overlay", "Merge": unify three separate masked-merge kernel families into shared
masked_merge_{c,sse41,avx2,neon}templates parameterized onMaskModeand pixel type. SIMD precalculation of chroma-placement-corrected mask rows (SSE4.1, AVX2, NEON) for all subsampled formats (4:2:0, 4:2:2, 4:1:1) enables full SIMD throughput in the main blend loop for non-444 sources. Accuracy: integer masked merge uses magic-number division for exact per-element results at all bit depths; plain weighted merge uses the same 15-bit arithmetic in C as in SIMD, eliminating C/SIMD parity issues. AVX2 flat-weight float weighted merge added."Merge"
AveragePlane/MaskedMerge: add AVX2 float weighted-merge path; remove obsolete iSSE code; make memory loads unaligned so the routine is safely reusable from Overlay/Layer."Layer": remove legacy MMX/iSSE (x86-only) code paths; replace hand-rolled min/max with
std::min/std::max."Invert": add proper AVX2 and SSE2 SIMD paths for planar luma and chroma.
ExtractX(ExtractR/G/B/A/Y/U/V): handle packed RGB formats directly, avoiding a PlanarRGB(A) conversion round-trip."ConvertBits": restructure integer-to-integer depth-reducing C loop to be more auto-vectorization-friendly.
PlanarRGB(A)→RGB32/RGB64: add AVX2 conversion path.SubtitleAntialiaser (Windows GDI path):GetAlphaRect()— the per-pixel alpha/color weight computation from the 8×-supersampled GDI DIB — now has SSE4.1, AVX2, and AVX512 SIMD implementations in addition to the scalar fallback; best tier is selected once at construction time from cpu flags.SubtitleAntialiaser: internal mask buffer refactored from AoS (interleaved alpha/Y/U/V per pixel) to row-interleaved SoA layout, enabling correct chroma-placement-aware UV compositing. Each UV output pixel is derived by spatially downsampling the luma-resolution mask row(s) viaprepare_effective_mask_for_row(same family as Overlay/Layer); eight MaskModes cover all subsampling ratios (4:4:4, 4:2:2, 4:2:0, 4:1:1) × siting variants (MPEG2/MPEG1/top_left); SIMD rowprep dispatch (AVX2 / SSE4.1 / scalar) is selected at construction.
Documentation¶
Build on Raspbian, Raspberry Pi 5 and llvm/gcc This page describes linux builds process.
Extend
env->Allocate/Freesee at AllocateInterface V12 changes: see API v12 changes for more details.
Add folder macro description to AddAutoLoadPlugins
Update Overlay
Update SetCacheHints with
CACHE_INFORM_NUM_THREADSUpdate GetCPUFlags, add GetCPUFlagsEx
Update CPU Feature Flags with AVX512 and ARM64 features
Update SetMaxCPU with AVX512 and ARM64 features
Update AvsEnvProperty with L2 cache size entry
Update Russian GPL notice in UTF-8 format
Update ConvertToPlanarRGB with "bits" and "matrix" syntax ":same"
Update ResetMask with "opacity" and additional insights
Update AddAlphaPlane with "opacity" and additional insights
Update Overlay with "add" and "subtract" direct RGB mode and 32-bit float support.
Update Layer with "use_chroma" and opacity details, and YUY2/YV16 internal handling.
Update Histogram with new vectorscope parameters
Update ColorBars
Update matrix syntax
Update Convert with
ConvertToYUY2ChromaOutPlacementparameter and corrected chroma placement behavior.Update Convert with
bitsandqualityparametersUpdate Sampling with historical content notes on legacy
YUY2handling.Add another Ubuntu->Windows DLL cross-compilation guide: See Ubuntu->Windows mingw crosscompilation
Add ColorBarsUHD
Add
ShowCRC32documentation to showframes (filter exists since 3.7.0; rst page was not updated at the time). Document newchannelsandmodeparameters added in 3.7.6.Update Layer with
"mulovr"mode,"top_left"placement option, and related chroma-placement refactoring notes.Update Overlay with
"placement"parameter for"blend"mode.
Please report bugs at github AviSynthPlus page - or - Doom9's AviSynth+ forum
$Date: 2026/04/30 12:00:00 $