AfterDawn | News | Guides | Software downloads | Tech Support | Forums | HIGH.FI
AfterDawn

Version history for AviSynth

<<Back to software description

Changes for v2.5.8 - v2.6.0

  • Identical to AviSynth_150419.exe release candidate 3.
  • Additions
  • =========
  • * TCPDeliver, 2.6 plugin, support all pixel types. (Wilbert)
  • * 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 ("%06d.%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 missing I420 in DirectShowSource pixel type error message.
  • * 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%16 == 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.
  • * YV24<->RGB 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 tem...



Changes for v2.5.7 - v2.5.8

  • Additions:
  • Added Czech doc translation.
  • Added Polish doc translation by Slim, Krismen & Co.
  • Added Japanese doc translation by niiyan.
  • Added Installer standalone unpack option.
  • Added Blankclip audio channels= and sample_type= arguments.
  • ConvertAudio(cii) available to plugins via env->Invoke().
  • Added font aspect, rotation and alpha to text routines.
  • Added /* xxx */ block comments.
  • Added [* [* xxx *] *] nestable block comments.
  • SetMemoryMax(0) now just returns Memory Max value.
  • Added planar YV12 color format to Compare().
  • ColorKeyMask: Allow independant tolerance levels for each channel.
  • Added Tweak Hue/Saturation range limiting.
  • Added AudioLevels and Color2 modes to Histogram.
  • Added WAVE_FORMAT_EXTENSIBLE audio output.
  • Added ShowTime() script verb, like ShowSMPTE() but with milliseconds.
  • Added BlackmanResize() and Spline64Resize().
  • Modified DeleteFrame()/DuplicateFrame() to process multiple arguments.
  • Added Min()/Max() script functions.
  • Bugfixes:
  • Fixed Compare() graph pixel values exceeding YUV limits.
  • Fixed AddBorders() args negative value clamping.
  • Added workaround for HuffYUV, Xvid reading past end of input buffer.
  • Fixed current_frame value in nested runtime script invocations (Gavino).
  • Fixed Dissolve overlap arg range checking (gzarkadas).
  • Fixed OpenDMLSource() multithreading race problem (QuaddiMM).
  • Fixed unsaved variableName string in ConditionalReader.
  • Fixed Parser FunctionTable::TypeMatch() missing compulsory arguments. Dissolve bug (Various).
  • Fixed DirectShowSource() Flush task interlock race.
  • Fixed DirectShowSource() QueryId() use CoTaskMemAlloc for returned value (Dean Pavlekovic).
  • Fixed DirectShowSource() use GraphBuilder object for media control (Avery Lee).
  • Fixed DirectShowSource() remove PulseEvent calls (Avery Lee).
  • Fixed DirectShowSource() QueryAccept() modifying VideoInfo in running script (Haali).
  • Fixed Blankclip clip= argument parsing.
  • Fixed trashed GPF report, i.e reading 0x0 at 0x0 exception reporting.
  • Fixed and refactored Overlay RGB<->YUV conversion routines.
  • Fixed ImageReader incompletely inited videoInfo.
  • Fixed Layer RGB32 100% alpha implementation, use level=257 (new default).
  • Fixed avisynth_c.h avs_is_parity_known().
  • Fixed C++ ConvertAudio::Saturate_int32() rounding.
  • Fixed WriteFile(), Now remembers absolute path to file.
  • Fixed Info() frame pitch, reports pitch of input frame.
  • Fixed Invert() right edge memory overrun/corruption.
  • Fixed Histogram() Classic mode pixel values exceeding YUV limits.
  • Fixed Histogram() chroma plane initialization to 128.
  • Fixed Conditional reader/writer illegally saving pointer to IScriptEnvironment.
  • Fixed YV12 Blur()/Sharpen() right edge pixel corruption with non-writable input frames.
  • Fixed MMX Blur()/Sharpen() code to full 8 bit precision.
  • Fixed IsAudioFloat()/IsAudioInt() script functions.
  • Fixed Cache memory oversubscription of SetMemoryMax() limit.
  • Optimizations:
  • DirectShowSource() convertfps=true add 0.5ms rounding to expected sample
  • - time. Improves performance with millisecond based DS spliters.
  • DirectShowSource() FPS detection as last attempt try getting the duration of 1st frame.
  • DirectShowSource() convertfps=true rely only on sample start time values.
  • Cache: Trap returned NULL PVideoFrames, i.e. Don't crash, Winge about it!.
  • Refactor horizontal planar resizer, no width restrictions or 2 byte overwrite.
  • Provide a simple and fast text writing primatives, see info.h
  • Make audio cache actually functional.
  • Tweak speed improvements.
  • Subtract speed improvements.
  • Tuneup Overlay() ISSE Convert444ChromaToYV12 and also provide MMX version.
  • PokeCache interface implemented.
  • Cache and Memory management enhancements.
  • Changes:
  • Initial Default Memory Max value clamped to 512MB.
  • Initial Default Memory Max value still quarter of Free
  • - memory. Minimum 16Mb. As per 2.5.7.
  • Test VFB data buffer for NULL malloc's, if so then Throw!
  • Installer Start menu shortcut names translated.
  • Test for UTF-8 and Unicode BOM prefixes and issue a useful warning.
  • Removed useless current_sample from runtime script environment.
  • Added critical section to CAVIFileSynth class.
  • Enable Installer multi language support.
  • FunctionTable::Lookup() now considers named arguments in making its selection.
  • ImageWriter supports negative values as -count for End argument.
  • ChangeFPS() use floor instead of round in source frame number calculation.
  • Update usage of correct (updated) Rec.709 coefficients.
  • Add TCPDeliver.map and DirectShowSource.map to releases.
  • Convert to 2.6 Dynamic Assembled rgb to yuy2 code.
  • Avisynth_c.h boolean functions return 1 for true instead of arbitrary non-zero.
  • Internal RGB2YUV() now copies Alpha top byte through.
  • CoUninitialize() done immediately for S_FALSE CoInitialize() returns.
  • Pfc, Softwire and SoundTouch updated and added as dependency projects.
  • UPX updated to version 2.03 (2006-11-07).
  • AVISource/WavSource map WAVEFORMATEXTENSIBLE back to equivalent WAVEFORMATEX.
  • DirectShowSource() now recognises incorrect WAVE_FORMAT_EXTENSIBLE audio and accepts it.
  • DirectShowSource() now attempts to use partial graph from failing RenderFile call.
  • DirectShowSource() now detects and handles non 32 bit aligned picture lines from dud codecs.
  • Crop(align=true) tests actual alignment in each GetFrame call.
  • Relax YV12 resizer width restriction, now mod 2 was mod 4.
  • .AVSI failures during env->CreateScriptEnvironment() are now available to the GetError() interface.
  • SetCacheHints(CACHE_RANGE, n) will now surrender frames to satisfy SetMemoryMax().
  • CoInitialize()/CoUninitialize() now done as part of ScriptEnvironment creation/deletion.
  • Much code from 2.6 base included. Typically IsYV12() changed to IsPlanar().



Changes for v2.5.7 RC3 (311206) - v2.5.7

  • This Release is the same as 2.5.7-RC3 [311206]
  • It has just been repackaged for the Russian Documentation.



Changes for v2.5.7 RC2 (241206) - v2.5.7 RC3 (311206)



Changes for v2.5.7 alpha 3 (220406) - v2.5.7 RC2 (241206)



<<Back to software description