May 26th, 2011Additions:
· 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 ContinuedDenominator/ContinuedNumerator(f[]i[limit]i) script functions. [undocumented]
· Tweak: fix MaskPointResizing + put back Dividee ISSE code (use sse=true, can't use all settings in that case). [undocumented]
· Added ChromaPlacement and ChromaResample options to planar colour conversions.
· Added MaskHS.
· Minor 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. [undocumented]
· ConditionalReader: Added support for type String. [undocumented]
· ConditionalReader: Added offset keyword to offset all frame numbers after the keyword. [undocumented]
· 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 formats: YV24, YV16, Y8, YV411.
Bugfixes:
· Fixed MonoToStereo with stereo sources.
· Fixed MergeChannels with only 1 input clip.
· Fixed support for negative height DIB format AVI's. (Oops still not quite right yet)
· 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:
· WriteFile() now supports 32 unlimited strings. (was 16 by 254 byte strings).
· 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:
· ConditionalReader/WriteFile: Full refactor.
· 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.
September 28th, 2009· Additions
· 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 ContinuedDenominator/ContinuedNumerator(f[]i[limit]i) script functions. [undocumented]
· Tweak: fix MaskPointResizing + put back Dividee ISSE code (use sse=true, can't use all settings in that case). [undocumented]
· Added ChromaPlacement and ChromaResample options to planar colour conversions.
· Added MaskHS.
· Minor 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. [undocumented]
· ConditionalReader: Added support for type String. [undocumented]
· ConditionalReader: Added offset keyword to offset all frame numbers after the keyword. [undocumented]
· 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 formats: YV24, YV16, Y8, YV411.
· Bugfixes
· Fixed MonoToStereo with stereo sources.
· Fixed MergeChannels with only 1 input clip.
· Fixed support for negative height DIB format AVI's. (Oops still not quite right yet)
· 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
· WriteFile() now supports 32 unlimited strings. (was 16 by 254 byte strings).
· 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
· ConditionalReader/WriteFile: Full refactor.
· 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.
August 31st, 2009· The main pupose of this release is to confirm compatibility with version 2.5.8. For scripts using only 2.5.8 features the results should be identical.
· This version does not contain all of the latest features in the experimental 2_6 CVS tree. It supports Y8, YV24 and YV16 colour spaces in most existing filters. Other features will be imported in an on going manner.
· Note this installer does not include any of the documentation. You should install 2.5.8 and then install this version over the top.
December 27th, 2008· Includes Czech documentation.
· Other minor documentation updates.
· Fix YV12 regression is ShowFiveVersions()
· Add 0.5millisecond rounding to convertfps logic n DirectShowSource()
July 31st, 2008Additions:
· Added Polish doc translation (by Slim, Krismen & Co).
· Added Japanese translation (by niiyan).
· Installer standalone option for putting avisynth.dll, etc into install directory and NOT updating registry.
· Blankclip added 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) to just return current Memory Max value.
· Added planar YV12 color format to Compare() [Fizick].
· ColorKeyMask: Allow independant tolerance levels for each channel.
· Added Tweak Hue/Saturation range limiting.
· Added AudioLevels and Color2 modes to Histogram.
· Adding global OPT_UseWaveExtensible=True to your script enables 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 AviSource() decoding to RGB24 logic regression.
· 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() 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 RGBYUV 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 IScriptEnvironment pointer.
· 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() FPS detection as last attempt tries getting the duration of 1st frame.
· DirectShowSource() convertfps=true rely only on sample start time.
· 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 internal interface implemented.
· Cache and Memory management enhancements.
Changes:
· Test VFB data buffer for NULL malloc's, if so then Throw!
· Initial Memory Max value clamped to 1GB.
· 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 [Need volunteers to do translations].
· FunctionTable::Lookup() now considers named arguments in making its selection.
· ImageWriter supports negative values as -count for End argument.
· ChanegFPS() 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 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, i.e we do not hold a COM use count.
· Pfc, Softwire and SoundTouch updated and added as dependency projects.
· UPX updated to version 2.03 (2006-11-07).
· Default Memory Max value increased to half minus 64Mb when over 256MB free.
· AVISource/WavSource map WAVEFORMATEXTENSIBLE back to equivalent WAVEFORMATEX.
· DirectShowSource() now recognises incorrect AM_MEDIA_TYPE subtype for WAVE_FORMAT_EXTENSIBLE audio and corrects the data 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().
May 28th, 2008· Additions
· 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) to just return current Memory Max value.
· Added planar YV12 color format to Compare() [Fizick].
· ColorKeyMask: Allow independant tolerance levels for each channel.
· Added Tweak Hue/Saturation range limiting.
· Added AudioLevels and Color2 modes to Histogram.
· Adding global OPT_UseWaveExtensible=True to your script enables 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 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 remebers 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 IScriptEnvironment pointer.
· 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() FPS last attempt try for duration of 1st frame.
· DirectShowSource() convertfps rely only on sample start time.
· 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
· Convert to 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, i.e we do not hold a COM use count.
· Pfc, Softwire and SoundTouch updated and added as dependency projects.
· UPX updated to version 2.03 (2006-11-07).
· Default Memory Max value increased to half minus 64Mb when over 256MB free.
· AVISource/WavSource map WAVEFORMATEXTENSIBLE back to equivalent WAVEFORMATEX.
· DirectShowSource() now recognises incorrect AM_MEDIA_TYPE subtype for WAVE_FORMAT_EXTENSIBLE audio and corrects the data 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().
January 7th, 2007· Avisynth COM object now implements IAVIStreaming interface.
· DirectShowSource() enhancements.
· Added KillVideo() verb.
· TimeStretch SoundTouch library update, fixes and access to tuning parameter.
· Explicitly try to request full sample rate, all channels and float, 32 bit then 24 bit samples from the audio codec.
· File input/output support for WAVE_FORMAT_IEEE_FLOAT audio.
· File input more than 2 channels in the audio stream.
· Installer enhancments. Handling of readonly/protected target files.
· Avisynth_c interface enhancments.
· Hack for Fraunhoffer MP3 codec to work when wBitPerSample==16.
· Added Portugese translation by RoLon.
· Partly updated French translation by JasonFly.
· Subtitle multi line text.
· xxxFPS("preset") string preset FPS values.
· ImageSource no longer uses static buffer.
· Fixed Negative int arg handling for ApplyRange() and Animate().
· Fixed SaveString memory block overrun.
· Fixed $Plugin!Functionname!Param$ bug.
· Fixed Various resource leaks.
· Fixed runtime mixed SEH/C exception handling for XPsp2.
· Fixed CAVIStreamSynth::Read audio buffer overrun.
· Fixed Assert("...%...") crash.
· Fixed Number parser returning inaccurate float conversions.
· Fixed resizer subpixel shifting functionality and bad edge condition handling.
· YUV ColorBars now match BT.801-1.
· TCPDeliver updates, crash fixes and enhancments, big buffers.
· Fixed Turn*() YUY2 mod 2 height test.
· Fixed AVISource() corrupted error messages.
· Fixed AVISource() direct input drop frame handling.
· Remove 50 plugin auto prescan load limit.
· Bracketless call of functions without arguments now get a cache.
· Over-range numbers now raise a compile time exception.
· xxxFPS(float) now uses continued fraction to generate a minimal rational pair.
· ConvertFPS() blend mode works for all pixel formats.
· SaveString memory blocks are now 32 bit aligned.
· Default planar chroma planes mod 16 aligned.
January 2nd, 2007· Fix Cache of a cache of a cache .... problem (regression)
· Have parser check for cache of a cache and skip extra instances.
· Change ImageSource to not use a static buffer.