All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
- custom expr optimisations:
not(1-x)faster thaneq(x,1) for ints inif&while` gl_LinearBlur5 X/Y passes centred instead of 6 offset- custom expression optimisations in
gl_kaleidoscope,gl_powerKaleido
slideleftslideuprevealleftrevealuptransitions read out-of-boundsAVFramedata whenprogressis 1 – Issue #22273:
- custom expr optimisations: use
mod(x,1)forfract(x)-->x-floor(x) - updated performance analysis in README
- more alphabetical order of Xfade transition in README
- no clipping in plot generation
- resolution for
backandelasticeasing overshoots:- custom ffmpeg shows other input in gaps
- custom expressions clip progress to unit interval
- resolution for other easing overshoots (CSS): clip
- added
flipelasticandflipbackalternatives forbackandelastic
- more C code optimisations
squeeze[hv]divide by zero invf_xfade.ccauses access violation exceptions when progress is 0 – Issue #22273:
- detailed custom expression and native performance analysis in README
.webp(VP8) animated WebP output format inxfade-easing.shscript.png(APNG) animated PNG output format inxfade-easing.shscript
- dropped
-goption for GIF transparency as it was unreliable - GIF animation via gifski if installed
gl_EdgeTransitionYUV format rendering greengl_powerKaleidoboth versions fixed and optimised-Loption omits CSS easings inxfade-easing.shscript
.y4m(yuv4mpeg) animated output format inxfade-easing.shscript
gl_Lissajous_Tilesaddedpowerparameter for transition curve
- custom expression
bounceeasing error (D63_64) inxfade-easing.shscript
- support for FFmpeg version 8 (altered logging broke plotting)
gl_Swirladdedclockwiseparameter for direction control
- brighter red for
gl_StageCurtainsdefault colour
- optimised colour argument conversion in C code (now converted when needed)
- other optimisations in both versions
gl_StageCurtainstransition by scriptituk (custom ffmpeg only)
gl_Bounceparameter order- use of Tau instead of Pi in C code (τ = 2π)
gl_fadecolortransition by gre (custom ffmpeg only)gl_LinearBlurtransition by gregl_windowslicetransition by gre
- smoothstep optimisations in custom expressions
- use uneased non-reversed progress for texture backgrounds
gl_CrossZoomalpha fade reversed
- Windows build guidelines using new repos
- ffmpeg-makexe to make FFmpeg with xfade-easing patch
- msys2-vcvars to ingest MSVC environment variables into Msys2
gl_Swirltransition: addedradiusparameter
- C code optimisations
- remove warnings compiling
xfade-easing.hwith MSVC
- renamed custom expression files for clarity
- sundry custom expression optimisations
gl_hexagonalizeoptimisation fault
-ooption toxfade-easing.shscript to append ffmpeg options for generated video- raw encoding for
xfade-easing.shgenerated videos for fast batch processing
(to decode:ffmpeg -f rawvideo -pixel_format f -framerate r -video_size s -i in.raw …)
- vp9 (webm) encoding tuned to 1080p in
xfade-easing.shscript - sundry custom expression optimisations in
xfade-easing.shscript - many README updates
- README: need
-uunified context patch option in build
- rounded conversions of pixel coordinates and colour values (custom ffmpeg)
- transparency (grey) now variable from black to white (custom ffmpeg)
- code optimisations and refactored aggregates
gl_Barstransition by Mark Craiggl_blendtransition by scriptituk (custom ffmpeg only)gl_EdgeTransitiontransition by Woohyun Kim (custom ffmpeg only)gl_morphtransition by paniq (custom ffmpeg only)gl_StereoViewertransition: addedtrkMatparameter- textured backgrounds feature
- blending discussion in README
- incorrect grey rendering of alpha (custom ffmpeg)
gl_ButterflyWaveScrawlertransition by mandubian (custom ffmpeg only)gl_chessboardtransition by lqlgl_CrossZoomtransition by rectalogic (custom ffmpeg only)gl_StereoViewertransition by Ted Schundler (custom ffmpeg only)
- all backgrounds now customisable in GLSL-ported transitions
- improved colour parser and processing (custom ffmpeg)
- optimised plane data read/write (custom ffmpeg)
- patch file
vf_xfade.patchproblem - abort on unbalanced parenthesis in parameter parsing
- minor custom expression optimisations
gl_randompseudo transition, cycles through shuffled GLSL transition names
- standardised colour parameter values:
- negative for transparent
- 0.0 to 1.0 for greyscale
- ffmpeg colour spec for RGBA (custom ffmpeg)
- consolidated background colour parameters, now all called
background - simpler
PLANEtests in custom expressions - updated and reorganised README details on colour
- transparent backgrounds for non-RGB formats in custom expressions
gl_heartcustom expression div zero- minor issues, efficiencies and improvements
- support for FFmpeg version 7.1 (
FilterLinkrefactoring)
gl_StarWipecustom transition expression-goption for gif transparent colour inxfade-easing.shscript
- cache transition vars during config in
xfade-easing.hC file - optimise
gl_Lissajous_Tilesinxfade-easing.hC file - README transparency: details about transparent GIFs
- README build instructions: info about external component packages
gl_Lissajous_Tilestransition by Boundless (custom ffmpeg only at present)gl_StarWipetransition by Ben Lucas (custom ffmpeg only at present)
- colour parameter error parsing sign bit
gl_SimplePageCurlcustom transition expression
gl_SimplePageCurladd roll shadow on rolled-over side- README build instructions: use stable not snapshot
- generic xfade
reverseoption to reverse any transition effect or easing or both - README section Reversing xfade effects
gl_InvertedPageCurloptionradius
- initialise transition vars during thread slice not during config in C version
- reorganised README sections that had become disordered
gl_SimpleBookCurltransition by Raymond Luckhurst:- 360° curl in any direction to simulate page-forward and page-back
- variable cylinder radius
- variable shadow intensity
gl_SimplePageCurloptiongreybackto render overleaf greyscale instead of colour- README section Curls and Rolls
gl_SimplePageCurlroll rendering radius not diameter
- improved performance of C version by initialising transition vars during config
gl_SimplePageCurltransition by Andrew Hung, greatly altered:- 360° curl in any direction
- variable cylinder radius
- roll rendering option
- reverse-effect uncurl/unroll option
- variable underside opacity
- variable shadow intensity
- support for Bash version 5.0, readarray redirection syntax error
- improved support for Ubuntu
- support for FFmpeg version 7 (deprecated option
-filter_complex_script)
- this CHANGELOG
- 8 GLSL transitions by Mark Craig transpiled from his 38+ Video Transitions contribution on shadertoy:
gl_CornerVanish,gl_CrossOut,gl_Diamond,gl_DoubleDiamond,gl_FanIn,gl_FanOut,gl_FanUp,gl_Flower
all butgl_CornerVanishtake asmoothingparameter - uploaded all GLSL transitions adapted to the GL Transition Specification to glsl/
- all transition parameter names in lowerCamelCase for consistency
- added
angleparameter togl_InvertedPageCurlwhich may be 30 or 100 (default) - added
reverseEffectparameter togl_InvertedPageCurlfor an uncurl effect (only available in custom ffmpeg variant) - sundry README changes and example animated GIF of
gl_InvertedPageCurl30° with uncurl
- removed variable length array in xfade-easing.h, unsupported by some compilers
- minor code and documentation improvements
- 6 more GL Transitions transpiled from the GL Transitions repository:
gl_BowTie,gl_cannabisleaf,gl_crosshatch,gl_Exponential_Swish,gl_GridFlip,gl_heart,gl_Stripe_Wipe,gl_windowblinds - 2 GLSL transitions by Boundless transpiled from the Vegas Forum post on GL Transitions:
gl_Exponential_Swish,gl_Stripe_Wipe
- simpler vector math in xfade-easing.h using inline functions
- transition parameters now saved as static vars during xfade config in xfade-easing.h, boosts performance by not processing parameters every call
- README corrections and amendments
- FFmpeg Xfade filter extended by #including xfade-easing.h in libavfilter/vf_xfade.c, with:
- new
easingoption- 10 standard easing functions by Robert Penner
- 2 supplementary easing functions
- 3 CSS Level 2 easing functions plus the predefined Cubic Bézier and Step functions
- altered
transitionoption to take additional transitions - easing & transitions take optional parameters
- 32 extended transitions, all GL Transitions transpiled from GLSL to C
- easy install & build
- new
- altered CLI wrapper script xfade-easing.sh to detect and use the custom build
- wrapper script bugfixes
- previous version changes not logged