GEGL-0.4.18 2019-10-27
----------------------
Build
~~~~~
Drop autotools, GEGL is now using meson, most things are working again now -
documentation/website build is a work in progress, many issues have been
fixed, more a sure to surface with this first meson only release following the
babl one.
Core
~~~~
Support ui labels and descriptions for aux pads of ops.
Guard against uint32_t overflows in memory computations, improved memory
usage stat on FreeBSD.
Added support for hygon dhyana architecture.
Added gegl_try_malloc and use it to allocate storage for tiles.
gegl-stats gained active- and assigned-threads members.
Buffer
~~~~~~
New API for aligning to regular tile grid, gegl_rectangle_align[_to_buffer]
added gegl_rectangle_xor
gegl_buffer_create_sub_bufer now always returns a new object.
Improved tile compression, more accurate accounting and avoidiance when it is
determinetal.
gegl_buffer_save : store BablSpace
take into consideration concurrent use of different tile sizes in
gegl_tile_alloc
Fast path for gegl_buffer_copy is entirely in abyss.
Improved api misuse handling in gegl_buffer_set|get
Improved consistency of results when doing COW of abyss.
Improved Gobject Intospection annotations.
Use a binary tree for tile swap, improving tile removal speed.
Avoid gegl_buffer_set avoid set_pixel fast path if level>0
Operations
~~~~~~~~~~
Dynamic computation of per-operation thread cost, making GEGL fully use available cores on more operations.
new operations:
bayer-matrix, linear-sinusoid, color-assimilation-grid, normal-map.
new operations in workshop:
boxblur, alpha-inpaint
pass-through for infinite planes for:
apply-lens, polar-coordinates, whirl-pinch, convolution-matrix, maze,
cartoon, waterpixels, tile, distance-transform, spherize, tile-paper, dither,
mantiuk06, reinhard05, fattal02, fractal-trace, motion-blur-zoom,
motion-blur-circular, wind, little-planet, mirrors, cubism and long-shdow.
improved property ranges/meta-data or copyright for:
motion-blur-zoom, edge-neon, cartoon, photocopy, softglow, oilify, bump-map, remap,
convolution:
fix source-buffer offsets of filtered-out components,
avoiding excessive shifting.
jpg-save:
force grayscale if incoming buffer is grayscale
sdl-display:
port to SDL2
gamma:
handle negative input values
apply-lens;
enable auto threading
matting-global:
disable auto threading, allocate less temporay memory.
maze:
reimplemented without recursion
newsprint:
added black pullout and per colorant pattern and period parameters, enable threading.
saturation:
add a colormodel property which permits operating in RGB instead
of CIE Lab, enabling hue preserving saturation changes.
exr-load/exr-save:
only use associated alpha with EXR files
ff-load:
fix audio track decoding for pure audio files
c2g:
fixed initialization data race and out of bounds array access when threaded.
color-enhance:
fixed a buffer leak
perlin-noise:
fix initialization race
domain-transform:
faster nop for edge-preservation=1.0, support BablSpace
oilify:
support specifying mask-radius with aux buffer
linear-gradient, readial-gradient:
use colors in correct order.
pixelize:
avoid potential glitches
weighted-blend:
harmonize opencl implementation with C
edge-neon:
performane improvements
GEGL UI
~~~~~~~
gcut video editor ui has been removed, all its functionality is latent in
the new media browser/manipulator/viewer UI.
Permit start/end times for playlist items, enabling use of folder as EDL.
Add ability loop currently shown media element.
Nearest neighbor decoding; for realtime playback of HD video content.
Frame-cache for rendered video frames (with associated PCM data)
Drag and drop from file-managers to collection view.
Contributors to this release:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Abderrahim Kitouni, Alexandre Prokoudine, Asier Sarasua Garmendia, Bruce
Cowan, Debarshi Ray, Dimitris Spingos, Ell, fanjinke, Félix Piédallu,
Jan Vesely, Jordi Mas, Marco Ciampa, Martin Srebotnjak, Michael Natterer,
Michael Schumacher, Niels De Graef, Øyvind Kolås, Pawan Chitrakar,
Piotr Drąg, Rodrigo Lledó, Sabri Ünal, Schwan Carl, Shlomi Fish, Stefan Brüns,
Thomas Manni and Ting-Wei Lan.
Changelog:
GEGL-0.4.16
Not available
GEGL-0.4.15
Build
Added gitlab continuous integration.
Core
Platform specific build fixes for both win32 and OSX.
Avoid in-place processing for cached nodes.
Indentation consitency improvements.
Permit more detailed specifying/overriding of OpenCL device through the
GEGL_USE_OPENCL environment variable.
New call gegl_update_anim_time for applying the animation curves of
properties.
Buffer
Swapped behavior of cubic interpolation from cubic to mithcell
coefficients, leading to crisper results in all uses of the cubic
sampler.
Permit tiles to be unreffed after GEGL shut-down without crash, which
is likely when using bindings to dynamic languages.
Use malloc_trim when compiled with glibc to possibly decrease the
resident size of progress when buffers are destroyed.
Improved deadlock prevention in gegl_buffer_copy() when using copy on
write.
Operations
Use indirect buffer inputs on main thread during multi-processed
processing for point-filters/composers and tranform base classes.
Smaller required/invalided ROI for map-absolute/relative when using
nearest neighbor.
tiff-save and jpg-save fixed dimensions when buffer saved has non-zero
origin
Added missing descriptions of properties for cubism, mosaic,
tile-paper, color, mantiuk06 and vignette operations.
ff-load fix some of the deprecation warnings.
ff-save avoid crashing if audio or video codec fails to initialize.
cache, parent class changed - it is no longer a point operations, also
speed up processing and permit copy on write handling of tiles.
opacity and invert - crash for 8bpc buffers, reimplemented logic for
(non-)associated alpha OpenCL kernel selection.
Tools
Drop direct dependency on exiv2 - we now only transiently depend on it
through the gexiv2 abstraction.
commandline tool/gui
Store per image editing chains in .gegl folder instead of sidecars.
Set window title, permit interaction with opened .lui documents, fixed
playback of audio for opened videos - it now works; if the video is
decoding, scaling and display is fast enough to leave spare cycles.
Support for nearest neighbor scaling of imagry; aiding video playback
without dropping audio frames.
Support for custom collection order and per-file key-value metadata.
Changelog:
GEGL-0.4.14 2019-03-xx
Core
New Scratch allocator for short lived buffers.
Removed unneeded buffer copies in some processing code paths in
GeglNode and GeglProcessor.
Add gegl_babl_variant API for getting variations on an existin
pixel-format/encoding.
Expose gegl_node_is_graph()
GeglBuffer
Compression of tile data.
Handle dynamically changing swap dir.
Improvements to mipmap damage propagation.
Fixes to threading race conditions.
Low-level tile handling more adapted to buffers creating from existing
linear data.
New iterator API is now the default, GEGL_BUFFER_ITERATOR2_API is no
longer needed.
CMYK/grayscale handling for scaled blits, code paths in samplers,
serialization.
New default tile-cache size, 50% of RAM.
Initialize the first OpenCL device with IMAGE support.
Added gegl_parallell_ from gimp_parallell_ API to distribute processing
for multiple cores.
Operations
crop, added aux-pad - if connected the incoming bounding box determines
the crop size.
Input-format specific processing for performance in watershed-transform
and invert ops. CMYK handling in jpg-load/save, tiff-load/save,
gaussian-blur, opacity, most composing and blending operations, text,
vector-stroke, path, and transform operations.
Improved or fixed mipmap preview rendering of emboss, linear-gradient
and radial-gradient.
Better ui strings/range/defaults for: distort/waves and dropshadow,
value-propagate.
gaussian-blur: fix mistake in implementation of IIR Young blur 1d,
which caused non circular halos.
New operation: pdf-load with build dependency on poppler-glib
Added offset properties to pixelize filter.
new ops in workshop: voroni diagram, Grey Color Removal, spyrograph.
Handle mipmap rendering for linear-gradient and radial-gradient.
UI
The existing microraptor-gui (immediate mode touch UI+CSS with cairo)
image viewer that can be built as part of the gegl binary has been
revisted, a graph/property editor has been added, and migration/
extension to lua has begun for parts of the code.
many parts of the UI is of exploratory proof of concept/alpha
Warning quality but released since it is part of the GEGL repository
and useful development tools both for creating and testing new
GEGL operations as well as GEGL itself.
Some screenshots showing some the process towards the state and
capabilties of the UI in this release can be seen at https://
www.patreon.com/posts/24123574
To build with this UI the following dependencies also need to be
satisifed, for now this is not intended to be packaged by distributions
yet.
libluajit-dev
lua-lgi (debian package name) upstream:
mmm https://github.com/hodefoting/mmm
mrg https://github.com/hodefoting/mrg
Features: folder view resolution independent UI touch oriented
navigation GIF / video playback PDF pagination goats that expose
performance and capabilty issues in GEGL efficient (though not
sandboxed) thumbnailing embedded simple commandline graph editor
zoomable automatic, consistent graph layout autogenerated
property-inspector ui visualization of color model/bitdepth through
styling of edges live-extendable with lua code for per-operation canvas
UI
Contributors to this release:
Alan Mortensen, Alexandre Prokoudine, Anders Jonsson, Andre Klapper,
Debarshi Ray, elad, Ell, Jehan, Marco Ciampa, Michael Natterer, Øyvind
Kolås, Piotr Drąg, Richard B. Kreckel, Rodrigo Lledó, sabri ünal,
thetoastcaper, Thomas Manni and woob.
This release depends on the new features of babl-0.1.62 which has the
following change summary for the last release:
Continuous integration with gitlab. Initial CMYK spaces with lcms2
based ICC support, much room for optimization. Improved custom space
support for palette formats. scRGB space, works like sRGB but always
with linear TRCs. Model introspection API permitting low overhead
checks whether a format/model is RGB, CMYK type of alpha and similar.
Changelog:
GEGL-0.4.12 2018-10-23
GeglBuffer
~~~~~~~~~~
Fix fix of scaled blitting, the fix from last release introduced scaling
artifacts for all formats that are non-8bit.
Contributions to this relase
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Ell, Øyvind Kolås and Rodrigo Lledó
GEGL-0.4.10 2018-10-16
----------------------
GeglBuffer
~~~~~~~~~~
Fix integer overflow issues for u32 blit scaling code paths.
Reduced memory clearing overhead for temporary buffers during blit.
Round alpha component during u8 bilinear/box filtering (this caused artifacts
on OSX through interaction without unknown platform differences in
libc/compilter/graphics stack)
gegl_buffer_dup now matches source buffer abyss, shift and tile-size more
closely.
Added GEGL_TILE_COPY command for backends, for more efficient buffer
duplication/copies.
New GeglBufferIterator API.
Move type-generic scaling algorithms to GeglBuffer folder, move opencl
integration bits out of buffer.
Operations
~~~~~~~~~~
gif-load: new operation for decoding GIF images/animations, with frame delay
exposed as an out-property.
exr-save: do not hard-code a version name space
long-shadow: add 'Fading (fixed length)' style with a new user-defined
'Midpoint' parameter
maniuk06: use double precision, permitting to work on larger images.
watershed-transform: improved description
unsharp-mask: permit std-dev radius of up to 1500px (from 300).
Updated all operations to use new iterator API
Contributors to this release
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Alexandre Prokoudine, Anders Jonsson, Debarshi Ray, Ell, Hussam Al-Tayeb, Marco
Ciampa, Massimo Valentini, Øyvind Kolås, Piotr Drąg, Rodrigo Lledó and Tim
Sabsch.
Header location and library names changed, so bump API version.
No users in pkgsrc (yet).
Changes in GEGL 0.3.0
---------------------
• Improvements to thread safety and parallelism.
• Lower overhead graph travesal due from rewrite of visitors
• OpenCL support now enabled by default when detected.
• Experimental multithreading, enable by setting
GEGL_THREADS=<number of threads> in the environment.
• Experimental mipmap rendering, which permits transparent rendering of
previews on smaller sized versions, enable by setting
GEGL_MIPMAP_RENDERING=true in the environment.
• Operations:
• new operations: alien-map, antialias, apply-lens, bilateral-filter,
bump.map, cartoon, channel-mixer, color-enhance, color-exchange,
color-reduction, color-rotate, convolution-matrix, copy-buffer, cubism,
deinterlace, diffraction-patterns, distance-transform, displace, edge,
emboss, engrave, exposure, fractal-trace, high-pass, image-compare,
illusion, invert-gamma, lens-flare, linear, linear-gradient, mosaic,
motion-blur-circular, motion-blur-zoom, noise-cell noise-cie-lch,
noise-hsv, noise-hurl, noise-pick, noise-rgb, noise-simplex, noise-spread,
n-point deformation ops, oilify, panorama-projection, photocopy, plasma,
radial-gradient, red-eye-removal, scale-size-keep-aspect, softglow,
stretch-contrast, texturize-canvas, tile-glass, tile-seamless, tile-paper,
tile, warp, whirl-pinch, wind, cache, cast-format, lcms-from-profile,
npy-save, webp-load, webp-save, scale-ratio, scale-size, seamless-clone,
sinus, supernova, value-propagate, video-degradation
• reimplementation of gaussian-blur faster and more accurate
• support for using URIs in image loaders
• Buffer:
• New default tile backend, doing disk writes in a separate thread.
1e92e5235ded0415d555aa86066b8e4041ee5a53
and
4757cdf73d3675478d645a3ec8250ba02168a230
to fix integer overflow, leading to heap-based buffer overflow
in the ppm image reader (CVE-2012-4433)
bump PKGREV
* OpenCL support
* build improvements.
* High level API to apply ops directly to buffers with arguments.
* Final bits of translation infrastructure.
* Invalidate regions when disconnecting input pads.
* Operations:
* New operation: global-matting
* Allow transform core to do perspective transforms.
* Added string based key/value pairs to operations.
* Added arguments for dealing with scaled down preview rendering.
* Added human interaction ranges and non-linear mapping to properties.
* Buffer:
* Removed broken lanczos sampler.
* Add gegl_buffer_set_color and gegl_buffer_set_pattern
* Added ability to drop cached tiles.
* Added API for handling abyss policy (not implemented yet)
* Avoid iterating global tile cache when flushing/destroying buffers
that have no tiles in the cache.
GeglOperation
* operation names are now prefixed, the ops in GEGL use 'gegl:' as prefix.
* gegl:opacity - combine value and aux mask input when both are available.
* gegl:src-in - deal correctly with extens.
* gegl:path - new op covering the stroke/fill needs of SVG.
* deprecated gegl:shift, the affine familiy of operations now
uses the same fast code paths for integer translations.
GeglBuffer
* Profiling motivated speed ups in data reading/writing.
* Remove left-over swapfiles from dead processes at startup.
GeglNode
* made gegl_node_add_child and gegl_node_remove_child public API.
GeglPath
* Vector path representation infrastructure, supporting poly lines and beziers
by default, the infrastructure allows extensions from applications with
other curve types (smooth curves, spiro curves and others.).
framework.
GEGL provides infrastructure to do demand based cached non destructive
image editing on larger than RAM buffers. Through babl it provides
support for a wide range of color models and pixel storage formats for
input and output.