Autor Thema: AviSynth / AviSynth+  (Gelesen 2764 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline SiLæncer

  • Cheff-Cubie
  • *****
  • Beiträge: 191383
  • Ohne Input kein Output
    • DVB-Cube
AviSynth / AviSynth+
« am: 01 Juni, 2015, 18:15 »
AviSynth is a powerful tool for video post-production. It provides ways of editing and processing videos. AviSynth works as a frameserver, providing instant editing without the need for temporary files.

AviSynth itself does not provide a graphical user interface (GUI), but instead relies on a script system that allows advanced non-linear editing. While this may at first seem tedious and unintuitive, it is remarkably powerful and is a very good way to manage projects in a precise, consistent, and reproducible manner. Because text-based scripts are human readable, projects are inherently self-documenting. The scripting language is simple yet powerful, and complex filters can be created from basic operations to develop a sophisticated palette of useful and unique effects.

License : GPL

Changelog
Additions:

AviSource: added multiple video and audio track support.
Add IScriptEnvironment::GetVarDef() nothrow version of GetVar().
Partial 2.6 update of Avisynth_C interface.
Add current dwAvail{Phys, Virtual} to out of memory error message.
Add #ifndef KSDATAFORMAT_SUBTYPE_{PCM IEEE_FLOAT} for newer SDK's.
DirectShowSource support negotiation of non-standard MediaSubTypes "I420", "NV12", "YV24" and "YV16".
AviSource and DirectShowSource support '+' prefix on pixel_type to handle bad padded planar data.
Added Eval(clip, string name, string) alias for oop processing of argument.
DirectShowSource support non-standard pixel types "YV24" and "YV16".
Info: Audio only clip now creates its own canvas video.
AviSource: Include packed/padded processing and -ve biHeight logic for compressed input.
Add Script Functions :- BitLRotate, BitRRotate, BitChange, BitClear, BitSet, BitTest and their asm aliases.
Add WeaveRows (blit cost) and WeaveColumns (slow) frame combining filters.
Add AudioDuration() [as float seconds], IsY8(), IsYV411() & PixelType() [as a string] script functions.
Add Echo and Preroll filters.
Add IScriptEnvironment::GetAVSLinkage() and DLLExport AVS_linkage for host usage of avisynth.dll.
DirectShowSource, 2.6 plugin, support pixel types "AYUV" as YV24, "Y41P" and "Y411" as YV411.
AviSource: Add Full and Auto pseudo pixel_types. Full is all supported. Auto is YV12, YUY2, RGB32, RGB24 & Y8.
Add "AudioLengthS" [as a string], "Ord" & "FillStr" script functions.
Add AudioTrim(clip, float, float) audio priority trimming, args in fractional seconds.
Add Trim(M, Length=N[, Pad=False]) and Trim(M, End=N[, Pad=False]) function overloads for explicit Trimming. Length=0 means zero frame clip. End=0 means end at frame 0.
Add SeparateRows (zero cost) and SeparateColumns (slow) frame slashing filters.
Add Script Functions :- Acos, Asin, Atan, Atan2, Cosh, Sinh, Tanh, Fmod, Log10, BitLShift, BitRShiftS, BitRShiftU and Hex.
Add "ConditionalSelect","csc+[show]b" runtime filter.
Add dither option to Levels, RGBAdjust & Tweak.
Add BitAnd(), BitNot(), BitOr() & BitXor() script functions.
Add StrCmp() & StrCmpI() script functions.
Add YV24 support for Limiter show option.
Add "Global OPT_dwChannelMask={int}"
Add 0x0063F speaker mask for 7.1 WAVE_FORMAT_EXTENSIBLE.
Add .dll DelayLoad exception texts to crash message formatter.
ImageWriter, add support for printf formating of filename string, default is ("d.%s", n, ext);
Add avs_get_error(AVS_ScriptEnvironment*); to avisynth_c interface.
Catch and save AvisynthError text in more avisynth_c entry points, for kemuri-_9.
Add ScriptName(), ScriptFile(), ScriptDir() functions (WarpEnterprises).
Add SkewRows filter.
Histogram, Levels mode, Improve colour of chroma legends.
ConditionalFilter, teach about string results.
Add some more "Add/Remove Software" registry keys to the Installer (XhmikosR).
AviSource: Support both packed and DWORD padded raw planar input like with DSS.
Add IScriptEnvironment::ApplyMessage()
Add ImageSourceAnim (Wilbert)
Support user upgrade to 178 DevIL.dll (They need to manage CRT dependancies).
ImageSource: palette and compressed bmp images load correctly now (issue 894702) [need 178 DevIL.dll]
ImageSource: support for other formats like: gif, exr, jp2, psd, hdr [need 178 DevIL.dll]
Add YV24 mode to ColorBars.
Add ColorBarsHD based on arib_std_b28.
C-api usability enhancements from kemuri9 [Work in progress!]
Add Undefined(), AudioLengthLo(), AudioLengthHi(), IsYV16() & IsYV24() script functions
Allow newlines (and hence comments) before '{' -- Gavino
Added IScriptEnvironment::DeleteScriptEnvironment()
Added Histogram, population clamp % factor for "Levels" mode,
Histogram, revert "Stereo" mode to YV12, Add "StereoY8" mode,
AviSource: Support fourcc "GREY" as Y8
Added support for argument passing and EAX return value to SoftwireHelper.
Added "Global OPT_VDubPlanarHack=True" to flip YV24 and YV16 chroma planes for old VDub's.
Added "Global OPT_AVIPadScanlines=True" option for DWORD aligned planar padding
Added Matrix="AVERAGE" mode.
Added ContinuedDenominator/ContinuedNumerator(f[]i[limit]i) script functions.
Tweak: fix MaskPointResizing + put back Dividee ISSE code (use sse=true).
Added ChromaInPlacement, ChromaOutPlacement and ChromaResample options to planar colour conversions.
Added MaskHS.
Source tweaks to get ready for VC8.
Add Y8 for DevIL, planarize EBMP.
Planar support for many filters.
Added Info() time indicator on audio length and video (current frame & total). (2.5.8)
Added UtoY8 and VtoY8.
Added more info to Info(). (2.5.8)
ColorYUV: Added all adjustment parameters as conditional variables "coloryuv_SETTING". Enable by setting conditional=true.
ConditionalReader: Added support for type String.
ConditionalReader: Added offset keyword to offset all frame numbers after the keyword.
Added SincResize() with optional taps parameter (default is 4).
Added Custom band setting to SuperEQ to allow all 16 bands to be set from script. Usage: SuperEQ(clip,band1, band2, band3....) values are dB in float.
Added fast 0-1-0 kernel for YV24 to ConvertBacktoYUY2().
Added core formats: YV24, YV16, Y8, YV411.

Bugfixes:

Fixed VideoInfo::Is property to reference image_type (not pixel_type).
Fixed YV16->YUY2 always ran both mmx and C code.
Fixed YV12 Blur C code skiping left column.
Fixed Conditional functions with Y8 referencing non-existant chroma.
Fixed frame range clamping in ComparePlane (ultim).
Fixed posible leak with realloc in ConditionalReader (ultim).
Fixed posible double free in text-overlay (ultim).
Fixed RGB32 to Y8 pixel right shift from 4th pixel on (Robert Martens).
Fixed Overlay YV24 Image444 leak.
Fixed AVISource "AUTO" and "FULL" handling.
Fixed ImageSource handling of missing ebmp files.
Fixed DirectShowSource incorrect byte order for unpacking of pixel type "AYUV".
Fixed HexValue parsing values greater than 7FFFFFFF, now as unsigned hex.
Fixed ConditionalReader memory overrun parsing bools.
Fixed ResampleAudio NOP test to compare vi.num_audio_samples, not sample rate.
Fixed YV24 -> RGB24 overrun cleanup for widths == 5.
Fixed RGB24 AddBorders with right=0.
Fixed conditional_functions error message names (Wilbert).
Fixed Audio cache ac_expected_next regression.
Fixed ImageSource deal with add 1 to IL_NUM_IMAGES bug (Wilbert)
Fixed Overlay YV24 V plane conversion.
Fixed Overlay YV24 mode with shared input clip, needed a MakeWritable.
Fixed ImageReader upside down TIFF in 178 DevIL. (Wilbert)
Fixed string+string bug when total length is 4096*K-1.
Fixed SincResize misuse of "int abs(int)" (Gavino). Fix Lanczos and Blackman sinc use of float == 0.0, use small limit "> 0.000001".
Fixed Classic mode legend drawing for planar right limit and yuy2 centre line.
Fixed possible MT race. Use "env->ManageCache(MC_IncVFBRefcount, ...)" in ProtectVFB.
Fixed SwapYToUV output image size bug for 3 clip case.
Fixed Crop limit tests for RGB.
Fixed Overlay yellow tint on rec601 RGB import conversion.
Fixed YtoUV() output image size bug for 3 clip case.
Fixed ConvertToPlanar chroma alignment.
Fixed Levels (RGB) change use of PixelClip(x) to min(max(x, 0), 255).
Fixed SwapYtoUV yuy2 crash (StainlessS).
Fixed Overlay saturate UV in add and subtract mode.
Fixed Info.h range protect display characters (StainlessS).
Fixed AviSource packed planar import chroma offsets.
Fixed AviSource NULL GetWritePtr() failure due to premature setting of last_frame.
Fixed Mask rounding in greyscale calcs (Wilbert), minor refactor.
Fixed SelectRangeEvery audio snafu (Gavino).
Fixed LoadPlugin, SaveString of result string.
Fixed LoadPlugin, use _vsnprintf.
Fixed LoadVirtualdubPlugin, don't add vdub filter to chain on load failure.
Fixed rounding in RGB HResize (JoshyD) (affects all resizers)
Fixed error message name in the filter VerticalReduceBy2
Fixed SeparateFields() with variable parity input clip (Wilbert)
Fixed AviSource, cannot cast__int64* to long*, it does not work!
Fixed ConditionalReader: Don't allow out of range "Range" to overwrite edge values
Fixed MonoToStereo with stereo sources.
Fixed MergeChannels with only 1 input clip.
Fixed AviSource support for negative height DIB format AVI's.
Fixed Audio cache crashes.
Fixed resize with YV411, missing code.
Fixed ConditionalReader rounding with integer interpolation.
Fixed Softwire SSE2 bugs.
Fixed SSSE3 CPU detection.
Fixed SSSE3, SSE4.1 & SSE4.2 detection.
Fixed Fastwire encoding of instructions that are >2 opcodes (SSSE3+4).
Fixed _RPT5() macro for debug builds

Optimizations:

Cache auto increase span on sparse misses.
Cache prevent inactive instances returning VFB early and spoiling active instances hit rate (LaTo).
ConvertToPlanarGeneric explicit add Cache before chroma rescaler.
Overlay minor refactor YV12 -> 444 chroma
Speedup ConvertToMono(), minor refactor MixAudio().
Change StackVertical/Horizontal to interative instead of recursive, 2^N performace increase for 3 and more clips, i.e. 1 blit total instead of blit(blit(blit(...
RGBtoY8 Dynamic ASM code, support for RGB24.
YV24backtoYUY2 Dynamic ASM code.
UtoY8, VtoY8 abuse subframe, zero cost.
YV24RGB Add SSE2 and SSSE3 code paths, get rid of wide_enough.
ConvertToYUY2 Add SSE2, MMX restore full speed on platforms with poor ooox.
ConvertAudio, manage tempbuffer and floatbuffer independantly.
ConvertAudio, prefer SSE2 over 3DNow for super AMD cores.
Info.h, full refactor, a good example of "Never look down", thx StainlessS
DoubleWeaveFrames, If A not writable, try to write to B, else make new frame
Histogram, fix GetFrame/NewVideoFrame call order
HResizer, interleave code +4% faster
YtoUV() Abuse Subframe to snatch the Y plane / UV planes, Derestrict destination colorformat autogeneration.
ImageSource: Improve thread interlock code
ConditionalReader/WriteFile: Full refactor.
Replace _strdup with SaveString in AddFunction (Thanks Gavino)
SuperEQ: Improve channel unpacking/packing code.
H-Resize: Use SSE4.1 (movntdqa) loads for use once memory access.
H-Resize: Added SSE2 horizontal unpacker.
Resize: Use SSE3 (lddqu) loads for unaligned memory access.
Added ultra fast vertical PointResizer (64 pixel/cycle).
Added dynamic SSSE3 vertical resizer (16 pixel/cycle) ~ twice as fast as old MMX.
Added dynamic SSE2 vertical resizer (16 pixel/cycle).
Added dynamic MMX vertical resizer (8 pixel/cycle).
Added SSSE3 version for RGBYV24 conversions.
Added dynamic compiled MMX/iSSE for RGBYV24 conversions. Speed is approx 200% of C-code.

Changes:

Bump AVISYNTH_INTERFACE_VERSION to 6.
Changed recursive include protection #define from __AVISYNTH_H__ to __AVISYNTH_6_H__
Changed mem size elements from signed int to unsigned size_t.
Removed CACHE_25_* enums.
Removed AlignedPlanar, FillBorder, ConvertAudio.
Change CPUF_SSE4_2 to 0x1000 to match VirtualDub. 0x800 reserved for AVX.
Removed MIN_INT, MAX_INT.
BMPSize() use mod 4 rowsize for all formats.
LoadPlugin errs 0x7e and 0x7f have descriptive text.
Import: Increase full path buffer to MAX_PATH*4 for multi char code pages like CP932 (Chikuzen).
Throw error when output number of frames will exceed MAXINT.
BlankClip: Supply useful defaults for new Audio/Video when using a Video/Audio only template clip.
BlankClip: Use duration from Audio only template as default length for new clip.
Bob: Retain parity sense of input clip.
Define new IClip::SetCacheHints cachehint constants.
Force int call arguments to user script function float params to be explicit floats.
Splice pass CacheHints through to both children in + and ++ mode.
WriteFileStart/End save current_frame and set Last.
ConditionalReader do not ignore syntax errors in input file.
ImageSourceAnim Pad/Crop images to match first frame (Wilbert)
ImageSource Add version to messages (Wilbert)
Initial 2.6 API entry point linkage.
Use Invoke for graph tail, enhance non-clip output error reporting.
PopContext when inner block Asserts/throws (maxxon).
Remove duplicate definitions (Wilbert).
Enhance non-clip output error reporting.
Explicitly specify calling sequence as __cdecl for Avisynth softwire routines, (was the compiler default)
Use env->Invoke("Cache", ...) everywhere instead of Cache::Create_Cache(), allows for Cache to be overloaded by a plugin.
ConvertToYUY2 Change from 0-1-1 kernel to 1-2-1 kernel.
Tweak make Interp same units as minSat and maxSat.
Check HKEY_CURRENT_USER for PluginDir first. (henktiggelaar)
Make forced, -ve, planar alignment of chroma planes match subsampling.
Enforce planar alignment restrictions.
C-api: Remove func sub-struct from AVS_Library struct
Add error code to plugin load failure message
Make default planar AVI output packed. Control with OPT_AVIPadScanlines=True.
WriteFile() now supports unlimited number of unlimited strings. (was 16 by 254 byte strings).
ConvertToRGB*, make C++ code sample chroma the same as the MMX code i.e. use both pixels.
ConvertToRGB*, use YV24 path for planar, complain when options are present for YUY2.
ConvertToYUY2, use YV16 path for planar, complain when options are present for RGB.
see: http://forum.doom9.org/showthread.php?p=1378381#post1378381
Thread safe code, part 2.
Correct IClip baked documentation
Passify compilation error/warnings (XhmikosR)
for, const, extern and ansi patches for VC2008 (SEt)
Disable OPT_RELS_LOGGING option
Change implicit Last parsing for argless, bracketless calls to match bracketed cases. (Gavino)
DirectShowSource: Support last minute format renegotiation thru IPin::QueryAccept() & Validate the size of the provided directshow buffer.
Remove non ascii chars from comments.
Add core stubs for DirectShowSource, TCPServer & TCPSource, report when plugins are missing.
Add note for original source downloads - SoundTouch
Add more lineage history to Info()
Move convertaudio, alignplanar, fillborder & MIN/MAX_INT definitions.
Run AtExit before dismantling world.
Change setcachehints definition from void to int. Test IClip version >= 5.
Move PixelClip definition to avisynth.cpp
SubTitle, etc, make X & Y options float (0.125 pixel granularity).
ShowSMPTE() supports all integer FPS and multiplies of drop frame FPS.
SubTitle, stop overwriting string constants (Gavino).
SubTitle, improve pixel registration (Gavino).
Make Info() CPU display hierarchical.
Thread safe code, part 1.
SoftwireHelper: explicit hardware exception handling.
Resize: Moved GetResampleFunction into Resamplefuntion, to allow overrides.
Resampler: Removed dead stlf code.
Updated Soundtouch to 1.31 (2.5.8)
Put dynamic matrix conversion into separate file.
Moved chroma subsampling to image_type section.
Added specific error reporting when requesting chromasubsampling with Y8.
Split up merge and plane Swappers.
Split up Plane transfers into separate classes.
Added automatic destination colorspace detection on planar YtoUV.
Took out greyscale and RGB32RGB24 from convert.cpp and placed them in separate files.
All code assuming UVwidth = Ywidth/2 and similar should be gone.
[close]

http://avisynth.nl/index.php/Main_Page

Arbeits.- Testrechner :

Intel® Core™ i7-6700 (4 x 3.40 GHz / 4.00 GHz)
16 GB (2 x 8 GB) DDR4 SDRAM 2133 MHz
250 GB SSD Samsung 750 EVO / 1 TB HDD
ZOTAC Geforce GTX 1080TI AMPExtreme Core Edition 11GB GDDR5
MSI Z170A PC Mate Mainboard
DVD-Brenner Laufwerk
Microsoft Windows 10 Home 64Bit

TT S2 3200 ( BDA Treiber 5.0.1.8 ) + Terratec Cinergy 1200 C ( BDA Treiber 4.8.3.1.8 )

Offline SiLæncer

  • Cheff-Cubie
  • *****
  • Beiträge: 191383
  • Ohne Input kein Output
    • DVB-Cube
AviSynth+ 3.7.1
« Antwort #1 am: 01 Januar, 2022, 19:40 »
A fork of the popular AviSynth that brings to the table various improvements, faster script startup and a dedicated x64 version, while preserving support for all the original AviSynth plugins.

License: GPLv2

Changelog

Additions:

    Linux: Show more information when dlopen fails
    Expr: allow auto scaling effect on pixels obtained from relative addressing
    New array manipulators: ArrayDel, ArrayAdd, ArrayIns, ArraySet with accepting multi dimensional indexes
    ExtractY/U/V/R/G/B/A, PlaneToY: delete _ChromaLocation property. Set _ColorRange property to "full" if source is Alpha plane
    Add new AEP (Avisynth Environtment Property) constants to directly query Avisynth interface main and bugfix version and system endianness:
    AEP_HOST_SYSTEM_ENDIANNESS, AEP_INTERFACE_VERSION, AEP_INTERFACE_BUGFIX (c++)
    AVS_AEP_HOST_SYSTEM_ENDIANNESS, AVS_AEP_INTERFACE_VERSION, AVS_AEP_INTERFACE_BUGFIX (c)
    Interface: introduce AVISYNTHPLUS_INTERFACE_BUGFIX_VERSION.
    New interface functions env->MakePropertyWritable/VideoFrame::IsPropertyWritable.
    Expr: allow 'f32' as internal autoscale target (was: i8, i10, i12, i14, i16 were accepted, only integers)
    Expr: LUT mode! 'lut'=1 or 2 for 1D (lut_x) and 2D (lux_xy) support
    xPlaneMin/Max/Median/MinMaxDifference to accept old packed formats (RGB24/32/48/64 and YUY2) by autoconverting them to Planar RGB or YV16
    New runtime function: PlaneMinMaxStats returns an array and/or set global variables.
    Language syntax: accept arrays in the place of "val" script function parameter type regardless of being named or unnamed.
    Histogram "Levels": more precise drawing when bit depth is different from histogram's resolution bit depth, plus using full/limited flag.
    Expr: no more banker's rounding when converting back float result to integer pixels. Using the usual truncate(x+0.5) rounding method
    ColorYUV: More consistent and accurate output across different color spaces, match with ConvertBits fulls-fulld conversions
    ColorYUV: set _ColorRange frame property
    ColorYUV: when no hint is given by parameter "levels" then it can use _ColorRange (limited/full) frame property for establishing source range for gamma
    ColorYUV "showyuv_fullrange"=true: fix shown U and V ranges. E.g. for bits=8: 128 +/- 127 (range 1..255 is shown) instead of 0..255
    propShow: display _Matrix, _ColorRange and _ChromaLocation constants with friendly names
    Expr: new function "sgn". Returns -1 when x is negative; 0 if zero; 1 when x is positive
    Expr: add "neg": negates stack top: a = -a
    ConvertBits: Support YUY2 (by autoconverting to and from YV16), support YV411
    ConvertBits: "bits" parameter is not compulsory, since bit depth can stay as it was before. Call like ConvertBits(fulld=true)
    ConvertBits: much nicer output for low bit depth targets such as dither_bits 1 to 7.
    ConvertBits: allow dither down from 8 bit sources by giving a lower dither_bits value
    ConvertBits: dither=1 (Floyd-S) to support dither_bits = 1 to 16 (similar to ordered dither)
    ConvertBits: dither=0 (ordered) to allow odd dither_bits values. Any dither_bits=1 to 16 (was: 2,4,6,8,..)
    ConvertBits: dither=0 (ordered) allow larger than 8 bit difference when dither_bits is less than 8.
    ConvertBits: Correct conversion of full-range chroma at 8-16 bits. Like 128+/-112 -> 128+/-127 in 8 bits
    ConvertBits: allow dither from 32 bits to 8-16 bits
    ConvertBits: allow different fulls fulld when converting between integer bit depths (was: they must have been the same)
    ConvertBits: allow 32 bit to 32 bit conversion
    frame property support: _ChromaLocation in various filters (e.g. ConvertToYUV422)
    Support additional chroma locations "top", "bottom_left", "bottom"
    New syntax for "matrix" parameters (e.g. in ConvertToYUV444 old:"rec601" new "170m:l") which separate matrix and full/limited marker.
    Old syntax is still valid but does not support all new matrix values.
    frame propery support: _Matrix and _ColorRange in various filters. New "matrix" string constants
    RGB<->YUV (YUY2) conversions: frame property support _Matrix and _ColorRange (_Primaries and _Transfer is not used at all yet)
    ConvertBits: use input frame property _ColorRange to detect full/limited range of input clip
    ColorBars, ColorBarsHD, BlankClip: set frame properties _ColorRange and _Matrix
    New function: propCopy to copy or merge frame properties from one clip to another.
    xxxPlaneMin xxxPlaneMax, xxxPlaneMinMaxDifference for 32 bit float formats:
    when threshold is 0 then return real values instead of 0..1 (chroma -0.5..0.5) clamped histogram-based result
    Allow propGetXXX property getter functions called as normal functions, outside runtime. Frame number offset can be used.
    YUY2 RGB conversions now allow matrix "PC.2020" and "Rec2020"
    4:2:2 conversions: allow ChromaInPlacement and ChromaOutPlacement:
    Valid values: left/mpeg2, center/mpeg1/jpeg
    4:2:0 conversions: new ChromaInPlacement and ChromaOutPlacement values:
    top_left, left (alias to mpeg2), center (alias to mpeg1), jpeg (alias to mpeg1) (see http://avisynth.nl/index.php/Convert)
    Expr: atan2 (SIMD acceleration as well)
    Expr: sin and cos SIMD acceleration (SSE2 and AVX2) port from VapourSynth (Akarin et al.)
    Expr: x.framePropName syntax for injecting actual frame property values into expression
    Script functions to supports arrays with _nz type suffix. (one or more)
    Expr: arbitrary variable names (instead of single letters A..Z), up to 128 different one.
    Expr: add 'round', 'floor', 'ceil', 'trunc' operators (nearest integer, round down, round up, round to zero)
    Acceleration requires at least SSE4.1 capable processor or else the whole expression is running in C mode.
    Recognize \' and \b and \v in escaped (e"somethg") string literals (see http://avisynth.nl/index.php/The_full_AviSynth_grammar#Literals)
    Expr: allow TAB, CR and LF characters as whitespace in expression strings
    Clip types for propSet, propGet, add propSetClip, propGetClip
    Clip content support for propGetAsArray, propSetArray and propGetAll
    RGBAdjust: analyse=true 32 bit float support

Build environment, Interface:

    Added stubs for compiling on RISC-V and SPARC
    Visual Studio 2022: Add /fp:contract to compilation parameters (addition to /fp:precise)
    Check Visual Studio 2022, add build examples to documentation. Recognized: it has still an option to use v141_xp toolkit
    CMake build environment: older GCC can be used which knows only -std=c++-1z instead of c++17
    AviSynth programming interface V8.1 / V9:
    Add 'MakePropertyWritable' to the IScriptEnvironment (CPP interface), avs_make_property_writable (C interface)
    Add 'VideoFrame::IsPropertyWritable' (CPP interface), avs_is_property_writable (C interface)
    Info on Windows XP compatibility (must revert to an older Visual C++ Redistributable)
    CMake/source: Intel C++ Compiler 2021 and Intel C++ Compiler 19.2 support
    experimental! Fix CUDA plugin support on specific builds, add CMake support for the option.
    Fixes for building the core as a static library

Fixes:

    Fix: "Text" filter would crash when y coord is odd and format has vertical subsampling
    Fix: MinMax runtime filter family: check plane existance (e.g. error when requesting RPlaneMinMaxDifference on YV12)
    Fix: prevent x64 debug AviSynth builds from crashing in VirtualDub2 (opened through CAVIStreamSynth)
    Expr: fix conversion factor (+correct chroma scaling) when integer-to-integer full-scale automatic range scaling was required
    ColorYUV: fix 32 bit float output
    ColorYUV: fix display when showyuv=true and bits=32
    ConvertBits: "dither" parameter: type changed to integer. Why was it float? :)
    ConvertBits: Fix: fulls=true -> fulld=true 16->8 bit missing rounding
    Fix: Planar RGB 32 bit -> YUV matrix="PC.709"/"PC.601"/"PC.2020" resulted in greyscale image
    SelectRangeEvery: experimental fix on getting audio part (TomArrow; #232)
    Fix: Overlay "blend" 10+ bit clips and "opacity"<1 would leave rightmost non-mod8 (10-16 bit format) or non-mod4 (32 bit format) pixels unprocessed.
    Fix: Overlay "blend" with exactly 16 bit clips and "opacity"<1 would treat large mask values as zero (when proc>=SSE4.1)
    Parser: proper error message when a script array is passed to a non-array named function argument
    (e.g. foo(sigma=[1.1,1.1]) to [foo]f parameter signature)
    Fix: Expr: wrong constant folding optimization when ternary operator and Store-Only (like M^) operator is used together.
    ColorBars: fixed studio RGB values for -I and +Q for rgb pixel types
    ColorBarsHD: use BT.709-2 for +I (Pattern 2), not BT.601.
    Also fixed Pattern 1 Green.Y to conform to SMPTE RP 219-1:2014 (133, not 134).
    Overlay mode "multiply": proper rounding in internal calculations
    Fix: ConvertAudio integer 32-to-8 bits C code garbage (regression in 3.7)
    Fix: ConvertAudio: float to 32 bit integer conversion max value glitch (regression in 3.7)
    Fix: Crash in ColorBars very first frame when followed by ResampleAudio
    Fix: frame property access from C interface
    Fix: StackVertical and packed RGB formats: get audio and parity from the first and not the last clip

Optimizations:

    Quicker ClearProperties and CopyProperties filters (by using MakePropertyWritable instead of MakeWritable).
    ConvertBits: AVX2 support
    ConvertBits: Special case for: 8->16 bit fulls=true, fulld=true
    Expr: consume less bytes on stack. 48x Expr call in sequence caused stack overflow
    xxxPlaneMin xxxPlaneMax, xxxPlaneMinMaxDifference for threshold 0 became a bit quicker for 8-16 bit formats (~10% on i7-7700)
    Speedup: Overlay mode "multiply": overlay clip is not converted to 4:4:4 internally when 420 or 422 subsampled format
    (since only Y is used from that clip)
    Speedup: Overlay mode "multiply": SSE4.1 and AVX2 code (was: C only)
    SSE4.1: ~1.2-2.5X speed, AVX2: ~2-3.5X speed (i7700 x64 single thread, depending on opacity full/not, mask clip yes/no)
    ConvertAudio: Add direct Float from/to 8/16 conversions (C,SSE2,AVX2)

Legend:
_vcredist = Includes the MSVC 2019 Redistributable
_xp = Can be used on Windows XP
-filesonly = Only the .dll files themselves, no installer. Includes both normal and -xp variants.

[close]

https://avs-plus.net/

Arbeits.- Testrechner :

Intel® Core™ i7-6700 (4 x 3.40 GHz / 4.00 GHz)
16 GB (2 x 8 GB) DDR4 SDRAM 2133 MHz
250 GB SSD Samsung 750 EVO / 1 TB HDD
ZOTAC Geforce GTX 1080TI AMPExtreme Core Edition 11GB GDDR5
MSI Z170A PC Mate Mainboard
DVD-Brenner Laufwerk
Microsoft Windows 10 Home 64Bit

TT S2 3200 ( BDA Treiber 5.0.1.8 ) + Terratec Cinergy 1200 C ( BDA Treiber 4.8.3.1.8 )

Offline SiLæncer

  • Cheff-Cubie
  • *****
  • Beiträge: 191383
  • Ohne Input kein Output
    • DVB-Cube
AviSynth+ 3.7.2
« Antwort #2 am: 18 März, 2022, 20:10 »
Changelog


    C interface Win32 access: fix issue by adding V8 interface function…
    … names to avisynth.def
    or else names are decorated (Issue #276)
    e.g. DLL published _avs_get_frame_props_ro@8 instead of avs_get_frame_props_ro
    ShowRed/Green/Blue/Alpha/Y/U/V: addition to earlier fixes:
    When clips are planar and both source and destination format have alpha plane,
    then it will be copied instead of filled with 255d.
    Additional checking is done for alpha plane size when ShowU/V, because when
    source is subsampled the original alpha plane cannot be copied (larger).

    ConvertBits:

    Does not get frame 0 in constructor for frame properties if 'fulls' is directly specified. (magiblot)
    May make script initialization much quicker (Issue #275)
    #275
    Trim, AudioTrim: bool 'cache' (default true) parameter.
    Workaround for Issue #274, lower memory consumption but may be slower.
    Benefits heavily depend on how trimmed clips are used later.
    Expr: scale_inputs to case insensitive and add floatUV to error message as an allowed value.
    propCopy: able to specify that the property list is negative.
    bool "exclude" = false # default: "props" is positive list
    propCopy(org,true,props=["_Matrix", "_ColorRange"], exclude=false) # merge only two properties
    propCopy(org,true,props=["_Matrix", "_ColorRange"], exclude=true) # merge all, except listed ones
    propCopy(org,props=["_Matrix", "_ColorRange"]) # erase all then copy only selected
    propCopy(org,props=["_Matrix", "_ColorRange"], exclude = true) # erase all, then copy all, except listed ones
    Version()
    New optional parameters
    int length, int width, int height, string pixel_type, clip c

    Version clip defaults:

    length=240, width = -1, height = -1 (-1: automatically sized to fit for font size 24)
    pixel_type = "RGB24"
    When 'clip' (a format template) is specified then pixel_type, length,
    fps data, width and height are defined from it.
    If any additional 'length', 'width', 'height', 'pixel_type' parameter is given, it overrides defaults.
    When width and height is given and is <= 0 then it is treated as 'automatic'
    Covers feature request Issue #261
    BlankClip: allow 'colors' with array size more than the number of actual planes.
    If an array is larger, further values are simply ignored.
    BlankClip, AddBorders, LetterBox: no A=0 check for non-YUVA
    Fade filter family new parameters
    int 'color_yuv'
    array of float 'colors'
    similar to BlankClip
    MergeRGB, MergeARGB
    add MergeARGB parameter "pixel_type", similar to MergeRGB
    accept pixel_type other than packed RGB formats, plus a special one is "rgb"
    output format is planar rgb(a) (MergeRGB/MergeARGB) when
    pixel_type = "rgb" or
    pixel_type is empty and
    either input is planar RGB
    either input is different from 8 or 16 bits (no packed RGB formats there)
    pixel_type is explicitely set to a valid planar rgb constant e.g. "RGBP10"
    Accept planar RGB clip in place of input clips and the appropriate color plane is copied from them
    Fill alpha channel with zero when MergeRGB output pixel_type format is specified to have an alpha plane
    frame property source is the R clip; _Matrix and _ChromaLocation are removed if R is not an RGB clip
    PropDelete: accept a non-empty array string as list of property names to remove
    Parameter is not optional, and has no name. It can be either a string (as before) or an array of strings
    propDelete("_Matrix") # old syntax, still accepted
    propDelete(["_Matrix", "_ColorRange"])
    PropCopy: new string parameter "props" as list of property names to remove
    "props": a non-empty array of strings

    old syntax, still accepted:

    propCopy(org,true) # merge from all org's properties
    propCopy(org,false) # erase all then copy all org's properties (exact copy)
    new syntax
    propCopy(org,true,props=["_Matrix", "_ColorRange"]) # merge
    propCopy(org,props=["_Matrix", "_ColorRange"]) # erase all then copy only selected
    Histogram Levels: stop using shades of grey on top of bars.
    Histogram Levels: use bar color 255 for RGB instead of Y's 235. (and scaled eqivivalents)
    Fix: Histogram "Levels": prevent crash when factor=0.0
    Fix: Histogram "Levels": fix regression incorrect "factor" applied for U/V part drawing when format was subsampled (non-444)
    Regression since 20160916 r2666 (commit 986e275)
    Histogram "Audiolevels" and StereoOverlay to deny planar RGB
    Histogram "Luma": support 10-16 and 32 bits
    Histogram: give parameter name "factor" and type 'float' for Histogram's unnamed optional parameter used in "Level" mode.
    Other modes just ignore this parameter if given.
    Fix: Histogram "color" may crash on certain dimensions for subsampled formats.
    Regression since 20180301 r2632.
    Fix: Histogram "color" and "color2" mode check and give error on Planar RGB
    Fix: missing Histogram "color2" CCIR rectangle top and bottom line (black on black)
    Regression since 3.6.2-test1 (commit 1fc82f0)
    Fix: Compare to support 10-14 bits
    was: factor was always using 65535 (2^16-1) instead of (2^bit depth - 1)
    was: 16 bit luma/rgb color values were used for drawing graph
    Fix: Compare
    'channels' parameter default to "Y" when input is greyscale;
    instead of "YUV" which was giving error because of U and V does not exist for this format.
    ShowRed/Green/Blue/Alpha/Y/U/V
    support YUY2 input
    support YV411 output
    (not changed: ShowU/ShowV may give error for 420, 422 or 411 format outputs when clip dimensions are
    not eligible for a given output subsampling (check for appropriate mod2 or mod4 width or height)
    Copy alpha from source when target is alpha-capable
    Fill alpha with maximum pixel value when target is alpha-capable but source ha no alpha component
    Delete _Matrix and _ChromaLocation frame properties when needed.
    More consistent behaviour for YUV and planar RGB sources.
    Default pixel_type is adaptive. If none or empty ("") is given for pixel_type then target format is
    YUV444 when source is Y, YUV or YUVA
    RGB32/64 (packed RGB) when source is RGB24/32/48/64
    RGBP (planar RGB) when source is RGBP or RGBAP
    When 'rgb' is given for pixel_type then then target format is
    RGB32/64 (packed) when source is RGB24/32/48/64 - old, compatible way
    RGB planar when source is planar RGB(A) or YUV(A) or Y - changed from rgb32/64 because all bit depth must be supported
    When 'yuv' is given (new option!) for pixel_type then then target format is
    YUV444 for all sources
    Also there is a new option when pixel_type is still not exact, and is given w/o bit depth.
    pixel_type which describes the format without bit depth is automatically extended to a valid video string constant:
    y, yuv420, yuv422, yuv444, yuva420, yuva422, yuva444, rgbp, rgbap

    Examples:

    32 bit video and pixel_type 'y' will result in "Y32"
    16 bit video and pixel_type 'yuv444' will result in "YUV444P16"
    8 bit video and pixel_type 'rgbap' will result in "RGBAP8"
    Fix #263. Escaping double-quotes results in error
    Allow top_left (2) and bottom_left (4) chroma placements for 422 in colorspace conversions, they act as "left" (0, "mpeg2")
    in order not to give error with video sources which have _ChromaLocation set to other than "mpeg2"
    See https://trac.ffmpeg.org/ticket/9598#comment:5
    Fix: Expr LUT operation Access Violation on x86 + AVX2 due to an unaligned internal buffer (<32 bytes)
    Fix: Chroma full scale as ITU Rec H.273 (e.g +/-127.5 and not +/-127) in internal converters, ColorYUV and Histogram
    Fix #257: regression in 3.7.1: GreyScale to not convert to limited range when input is RGB. Regression in 3.7.1
    Accepts only matrix names of limited range as it is put in the documentation.
    Fix #256: ColorYUV(analyse=true) to not set _ColorRange property to "full" if input has no such
    property and range cannot be 100% sure established. In general: when no _ColorRange for input and
    no parameter which would rely on a supposed default (such as full range for gamma), then an
    output frame property is not added.
    When no _ColorRange for input and no other parameters to hint color range then
    gamma<>0 sets full range
    opt="coring" sets limited range
    otherwise no _ColorRange for output would be set
    Overlay (#255): "blend": using accurate formula using float calculation. 8 bit basic case is slower now when opacity=1.0.
    Higher bit depths and opacity<1.0 cases are quicker.
    Mask processing suffered from inaccuracy. For speed reasons mask value 0 to 255 were handled
    as mask/256 instead of mask/255. Since with such calculation maximum value was not the expected 1.0 but rather 255/256 (0.996)
    this case was specially treated as 1.0 to give Overlay proper results at least the the two extremes.
    But for example applying mask=129 to pixel=255 resulted in result_pixel=128 instead of 129. This was valid on higher bit depths as well.
    Note 3.7.2 Test2 has a regression of broken maskless mode for 0<opacity<1 which was fixed in 3.7.2 test 3
    Fix: Attempt to resolve deadlock when an Eval'd (Prefetch inside) Clip result is
    used in Invoke which calls a filter with GetFrame in its constructor.
    (AvsPMod use case which Invokes frame prop read / ConvertToRGB32 after having the AVS script evaluated)
    Remark: problem emerged in 3.7.1test22 which is trying to read frame properties of the 0th frame in its constructor.
    A similar deadlock situation was already fixed earlier in Neo branch and had been backported but it did not cover this use case.
    Note: Prefetch(1) case was fixed in 3.7.2 Test3

[close]

https://avs-plus.net/

Arbeits.- Testrechner :

Intel® Core™ i7-6700 (4 x 3.40 GHz / 4.00 GHz)
16 GB (2 x 8 GB) DDR4 SDRAM 2133 MHz
250 GB SSD Samsung 750 EVO / 1 TB HDD
ZOTAC Geforce GTX 1080TI AMPExtreme Core Edition 11GB GDDR5
MSI Z170A PC Mate Mainboard
DVD-Brenner Laufwerk
Microsoft Windows 10 Home 64Bit

TT S2 3200 ( BDA Treiber 5.0.1.8 ) + Terratec Cinergy 1200 C ( BDA Treiber 4.8.3.1.8 )

Offline SiLæncer

  • Cheff-Cubie
  • *****
  • Beiträge: 191383
  • Ohne Input kein Output
    • DVB-Cube
AviSynth+ 3.7.3
« Antwort #3 am: 16 Juli, 2023, 20:10 »
Changelog


    Add "bold"=true (linux/NO_WIN_GDI: false), "italic"=false, "noaa"=false parameters to "ShowFrameNumber", "ShowCRC32", "ShowSMPTE", ShowTime" filters.
    Add "noaa" parameter to SubTitle and Info. Setting it true will disable antialiasing. Useful when someone would use "VCR OSD Mono" as-is, without beautifying the outlines.
    Fix: plane fill wrongly assumed that pitch is rowsize, which is not the case after a Crop It would result in crash e.g. in HistogramRGBParade.
    Enhancement: much quicker YV24 to RGB32/RGB24 conversion when AVX2 instruction set is supported. (+50% fps at i7-11700).
    UserDefined2Resize got an 's' parameter (to the existing b and c): support, default value = 2.3 (following DTL2020's addition in jpsdr's MT resizer repo, UserDefined2ResizeMT filter).
    Fix: ConvertXXX to accept YV411 clip's frame property _ChromaLocation set to 'left' (and 'topleft' and 'bottomleft' which give the same result) instead of giving an error message.
    Fix: bitrol/bitror functions return incorrect results when first argument is negative. Regression since the asm code of Avisynth 2.6 classic was ported to C in Avisynth+ project.
    Add SetChannel parameter: channel string syntax: (similar to ffmpeg) a channel number followed by "c" for getting the default layout for a given number of channels.
    Add SetChannel parameter: channel string syntax: a simple number is treated as the actual numeric mask.
    Add "speaker_all" to accepted layout mask strings.

[close]

https://avs-plus.net/

Arbeits.- Testrechner :

Intel® Core™ i7-6700 (4 x 3.40 GHz / 4.00 GHz)
16 GB (2 x 8 GB) DDR4 SDRAM 2133 MHz
250 GB SSD Samsung 750 EVO / 1 TB HDD
ZOTAC Geforce GTX 1080TI AMPExtreme Core Edition 11GB GDDR5
MSI Z170A PC Mate Mainboard
DVD-Brenner Laufwerk
Microsoft Windows 10 Home 64Bit

TT S2 3200 ( BDA Treiber 5.0.1.8 ) + Terratec Cinergy 1200 C ( BDA Treiber 4.8.3.1.8 )