Amin Bandali [Mon, 4 Sep 2023 13:50:12 +0000 (09:50 -0400)]
Change debian-branch from debian/master to debian/latest
Jeremy Bicha [Mon, 12 Jun 2023 17:08:09 +0000 (13:08 -0400)]
releasing package babl version 1:0.1.106-2
Jeremy Bicha [Wed, 24 May 2023 15:30:31 +0000 (11:30 -0400)]
releasing package babl version 1:0.1.106-1
Jeremy Bicha [Wed, 24 May 2023 15:27:38 +0000 (11:27 -0400)]
debian/control.in: Set Rules-Requires-Root: no
Jeremy Bicha [Wed, 24 May 2023 15:26:57 +0000 (11:26 -0400)]
Update standards version to 4.6.2, no changes needed.
Changes-By: lintian-brush
Fixes: lintian: out-of-date-standards-version
See-also: https://lintian.debian.org/tags/out-of-date-standards-version.html
Jeremy Bicha [Wed, 24 May 2023 15:26:57 +0000 (11:26 -0400)]
Set upstream metadata fields: Bug-Database, Bug-Submit.
Changes-By: lintian-brush
Jeremy Bicha [Wed, 24 May 2023 15:26:40 +0000 (11:26 -0400)]
Update lintian override info format in d/libbabl-0.1-0.lintian-overrides on line 2, 4.
Changes-By: lintian-brush
Fixes: lintian: mismatched-override
See-also: https://lintian.debian.org/tags/mismatched-override.html
Jeremy Bicha [Wed, 24 May 2023 15:26:00 +0000 (11:26 -0400)]
autopkgtest: Update for renamed pkgconfig file: babl-0.1 instead of babl
Jeremy Bicha [Wed, 24 May 2023 15:20:10 +0000 (11:20 -0400)]
New upstream release
Jeremy Bicha [Wed, 24 May 2023 15:20:10 +0000 (11:20 -0400)]
Update upstream source from tag 'upstream/0.1.106'
Update to upstream version '0.1.106'
with Debian dir
562092e7b513326aa8d6d85c1ed9885e38cc82de
Jeremy Bicha [Wed, 24 May 2023 15:20:09 +0000 (11:20 -0400)]
New upstream version 0.1.106
Øyvind Kolås [Fri, 5 May 2023 12:37:51 +0000 (14:37 +0200)]
release 0.1.106
Øyvind Kolås [Tue, 2 May 2023 20:55:55 +0000 (22:55 +0200)]
LUT: speed up 3bpp->4bpp LUT
Keep alpha (0xff) as computed rather than stripping and reapplying.
Øyvind Kolås [Tue, 2 May 2023 20:49:58 +0000 (22:49 +0200)]
LUT: avoid zeroing alpha in 1bpp to 4bpp LUT
Fixing issue #92.
Øyvind Kolås [Sat, 22 Apr 2023 19:27:13 +0000 (21:27 +0200)]
spaces: built-in RGB to XYZ matrices for default spaces
Babl uses matrices which have been bit-optimized - which is a time consuming
task done at every startup. As reported in now fixed issue #67.
Øyvind Kolås [Sat, 22 Apr 2023 13:29:33 +0000 (15:29 +0200)]
LUT: disable when running on big-endian systems
We are crashing due to endian assumptions - we now only try to do the LUT
optimizations on little endian - no functionality is lost on big-endian
though conversion might be a tad slower. Hopefully fixing issue #91
Øyvind Kolås [Thu, 20 Apr 2023 22:29:07 +0000 (00:29 +0200)]
post release version bump
Øyvind Kolås [Thu, 20 Apr 2023 22:14:25 +0000 (00:14 +0200)]
release 0.1.104
Øyvind Kolås [Thu, 20 Apr 2023 22:13:45 +0000 (00:13 +0200)]
NEWS: update
Øyvind Kolås [Thu, 20 Apr 2023 21:49:19 +0000 (23:49 +0200)]
meson: bump minimum meson version to 0.55.0
As per issue #87 this is the minimum we can build with - and 0.56.x is
available in debian stable which we is used as a bar for inclusion.
Øyvind Kolås [Thu, 20 Apr 2023 21:04:09 +0000 (23:04 +0200)]
babl: make space remodelling array dynamic
Thus fixing issue #89
We protect this behind a mutex, initialization of color managed code from
multiple threads have been known to trigger babl races in GEGL/GIMP code.
Øyvind Kolås [Thu, 20 Apr 2023 20:08:15 +0000 (22:08 +0200)]
babl: make naming more defensive against overflow
Not neccesary while the static strings are 512 bytes, in regular
use we might however want to reduce this to 256bytes.
babl-format: make more more defensive
Øyvind Kolås [Thu, 23 Mar 2023 12:59:49 +0000 (13:59 +0100)]
LUT: make LUTs default to on
The BABL_LUT environment variable still controls whether it is enabled, to
turn off the LUT usage set BABL_LUT=0.
Øyvind Kolås [Thu, 23 Mar 2023 12:57:10 +0000 (13:57 +0100)]
LUT: handle with 4bpp associated aplha to 4bpp straight alpha conversions
Øyvind Kolås [Thu, 23 Mar 2023 10:18:58 +0000 (11:18 +0100)]
LUT: (temporarily) opt out of conversions from R'aG'a'B'aA u8 formats
Øyvind Kolås [Thu, 23 Mar 2023 09:34:46 +0000 (10:34 +0100)]
LUT: initialize LUTs from 4bpp with full alpha
Use alpha=255 in seeding of premultiplied - this might not be enough
we might also have to disassociate and reassociate alpha during conversion.
Øyvind Kolås [Sat, 25 Feb 2023 19:03:40 +0000 (20:03 +0100)]
build: post release version bump
Øyvind Kolås [Sat, 25 Feb 2023 19:01:55 +0000 (20:01 +0100)]
build: release 0.1.102
Øyvind Kolås [Sat, 25 Feb 2023 19:01:42 +0000 (20:01 +0100)]
NEWS: update
Øyvind Kolås [Sat, 25 Feb 2023 18:46:35 +0000 (19:46 +0100)]
LUT: do not use LUTs by default
The code marking LUTs as available for fishes is now protected behind an
environment variable BABL_LUT if it is set, the LUT code is re-enabled.
Øyvind Kolås [Mon, 20 Feb 2023 17:07:14 +0000 (18:07 +0100)]
meson: post release version bump
Øyvind Kolås [Mon, 20 Feb 2023 16:54:32 +0000 (17:54 +0100)]
release 0.1.100
Øyvind Kolås [Mon, 20 Feb 2023 16:54:25 +0000 (17:54 +0100)]
NEWS: update
Jehan [Fri, 17 Feb 2023 22:27:32 +0000 (23:27 +0100)]
babl: limit LUT creation for 4→8 and 4→16 bpp further.
Looking at LUT conversion code, we are clearly only supporting
converting from "u8" (to "u16" or "float" respectively).
Conversions such as "YA half" to "R'G'B'A float" for instance would be
completely broken (it was trying to use only one byte of the "YA half",
assumed it was "u8" and transform it to "float"). This is why the sample
image in #85 was appearing on display as more transparent than it should
when converted to 16-bit floating point grayscale image.
Jehan [Fri, 17 Feb 2023 21:45:11 +0000 (22:45 +0100)]
babl: make LUT from 2bpp to 4bpp totally generic.
The deleting of the first byte when creating the LUT, then copying the
first byte from source to destination, worked for cases such as "YA u8" to
"RGBA u8" but it would not work for say:
* "Y half" to anything: in such a case, deleting the first byte in LUT's
content, when creating it, we are basically deleting source's color
information!
* "YA u8" to "Y float": in such a case, when copying the first byte, at
conversion time, we are destroying the result color (which didn't need
any copying of alpha channel as there is no alpha channel in the
result).
* And so on.
In such cases, it's just better to include everything in the LUT, in a
totally model-agnostic way. In some cases, the alpha channel will be
stored in the LUT, in others, not. But it's not really a problem. It
doesn't even make the LUT bigger; if anything, it makes the LUT creation
and the conversion calculus simpler, hence faster.
Øyvind Kolås [Wed, 15 Feb 2023 16:21:56 +0000 (17:21 +0100)]
babl: LUT, only exclude associated alpha when copied
Øyvind Kolås [Wed, 15 Feb 2023 15:27:37 +0000 (16:27 +0100)]
NEWS: update
Øyvind Kolås [Tue, 14 Feb 2023 22:13:33 +0000 (23:13 +0100)]
babl: narrow conditions for doing LUT conversion
We can do LUTs where the LUT depends only on the 24first bit - for some
formats this ends up including half of the alpha, which is OK when
3->4bpp conversions copy the last 8bits.
Jehan [Tue, 14 Feb 2023 10:21:18 +0000 (11:21 +0100)]
babl: LUT from 3bpp to 4bpp must add a fully opaque alpha.
For instance, conversion from "RGB u8" to "RGBA u8". With previous code,
the resulting color was right but the pixel was fully transparent.
Jehan [Tue, 14 Feb 2023 09:50:20 +0000 (10:50 +0100)]
Issue #85: Troubles opening 16-bit floating point grayscale files.
All current LUT conversion and creation clearly assume that we are
operating on 1 byte per channel (the flag we use right now to determine
if we may have a LUT is even called `is_u8_color_conv`). So let's
enforce this.
Otherwise we might end up with problems such as in issue #85, where we
convert from or to "YA u16", which is still under 4bpp but not 1bpc. As
a consequence, the first byte of the alpha only was copied and the rest
(including the second alpha byte) was used as belonging to the color
components.
Of course, we can update this code later to also support such cases
(taking into account the source and target alpha size), but for now,
let's simply exclude these.
Jehan [Mon, 13 Feb 2023 22:34:48 +0000 (23:34 +0100)]
babl: fix LUT from grayscale to RGBA images.
Images from "Y'A" to "R'G'B'A" for instance would end up completely
transparent because we were not reporting the alpha channel from the
source to destination buffer.
Jehan [Sun, 12 Feb 2023 12:05:14 +0000 (13:05 +0100)]
babl: don't create LUT for destination formats with premultiplied colors.
This is a different issue than previous commit, but was revealed by
fixing the bug. So in a way, it's a followup.
When the destination format uses premultiplied colors, we would end up
with a LUT where all colors in the table are (0, 0, 0) since we store
them with alpha = 0. We could also generate them with alpha = 1, but
then we'd have to special-case the conversion step, re-multiplying each
pre-multiplied value with the real alpha, etc. So instead, I just bypass
these conversion cases and don't create LUT for these.
For the record, we had this case on GIMP when rendering u8 images to
display, since it would require for instance a LUT from R'G'B'A u8 to
cairo-ARGB32 (Cairo's ARGB32 being pre-multiplied with alpha). So the
whole image would render black (even though, when color-picking colors,
we'd see pixels' colors are not black).
Note that this bug existed before, but was simply hidden by the bug
fixed in the previous commit (since conversion was done twice: first
with LUT, then through usual conversion paths, the second conversion was
hiding the broken LUT conversion).
Jehan [Sun, 12 Feb 2023 11:58:19 +0000 (12:58 +0100)]
Issue #84: do not process color conversion twice.
Until now babl_fish_lut_process_maybe() was always returning 0, even
when a LUT existed, hence a LUT-based conversion happened.
This was bad, first because it was inefficient (the point of the LUT is
that we didn't have to process through usual conversion code paths). But
worse: when the source and destination buffers were the same, we would
end up getting wrong result (since we'd have the source converted
in-place, then re-converted, hence double conversion!).
This was the reason for issue #84 (see screenshot showing very wrong
colors because of double conversion).
Jehan [Sat, 11 Feb 2023 15:53:42 +0000 (16:53 +0100)]
bin: fix size of dest memory.
I guess I was lucky I never got a crash for out-of-bound memory access.
Luca Bacci [Mon, 2 Jan 2023 13:16:47 +0000 (14:16 +0100)]
Rework _babl_mkdir ()
Luca Bacci [Thu, 29 Dec 2022 17:37:44 +0000 (18:37 +0100)]
Use babl utility to iterate over directory contents
Luca Bacci [Thu, 29 Dec 2022 17:32:57 +0000 (18:32 +0100)]
Use LoadLibraryW
This makes it possible to load modules in path names having characters
outside of the ANSI codepage
Luca Bacci [Thu, 29 Dec 2022 17:22:06 +0000 (18:22 +0100)]
Use the newer SHGetKnownFolderPath instead of the deprecated SHGetFolderPathA
SHGetKnownFolderPath is available since Vista
Luca Bacci [Thu, 29 Dec 2022 17:18:35 +0000 (18:18 +0100)]
Unify variables for Windows and non-Windows in fish_cache_path ()
Luca Bacci [Thu, 29 Dec 2022 17:02:19 +0000 (18:02 +0100)]
Make mk_ancestry () / mk_ancestry_iter () work without fixed-size buffers
Luca Bacci [Thu, 29 Dec 2022 16:57:34 +0000 (17:57 +0100)]
Make fish_cache_path () return a string allocated on the heap
Luca Bacci [Thu, 29 Dec 2022 14:37:22 +0000 (15:37 +0100)]
Add overflow check helpers
Luca Bacci [Thu, 29 Dec 2022 14:24:34 +0000 (15:24 +0100)]
Make use of the libc wrappers
Luca Bacci [Thu, 29 Dec 2022 14:14:38 +0000 (15:14 +0100)]
Add a few babl libc wrappers
Add the following wrappers:
* babl_fopen
* babl_rename
* babl_remove
* babl_mkdir
* babl_stat
And the following util:
* babl_dir_list
On Windows, the wrappers internally convert from UTF8 to UTF16 and
call the wide char routines, that way the string need not be limited
to the ANSI character set. Outside of Windows the wrappers are no-op.
babl_dir_list is implemented using opendir / readdir on non-Windows
and _wfindfirst64 / _wfindnext64 on Windows.
Luca Bacci [Thu, 29 Dec 2022 13:58:49 +0000 (14:58 +0100)]
Add two functions for converting between UTF-16 and UTF-8 on Windows
Luca Bacci [Thu, 29 Dec 2022 13:51:43 +0000 (14:51 +0100)]
Simpler way to get the module HANDLE
Also works in case of static compilation
Ulf Prill [Sat, 3 Dec 2022 16:41:46 +0000 (17:41 +0100)]
update -dependency for wrap builds babl.pc -> babl-0.1.pc
Debian Janitor [Wed, 2 Nov 2022 13:55:38 +0000 (13:55 +0000)]
Use secure URI in Homepage field.
Changes-By: lintian-brush
Fixes: lintian: homepage-field-uses-insecure-uri
See-also: https://lintian.debian.org/tags/homepage-field-uses-insecure-uri.html
Jehan [Tue, 6 Dec 2022 20:00:54 +0000 (21:00 +0100)]
Issue #83: improve babl_space_get_rgb_luminance() docs.
One of GIMP layer modes was using wrongfully these coefficients on
non-linear data (see gimp#3471). It was not clear from babl docs whether
babl was returning wrong coefficients for non-linear spaces, or whether
we were supposed to only ever use these coefficients on linear data.
This is the second case. So let's make the in-code docs clearer.
Jeremy Bicha [Fri, 18 Nov 2022 16:49:47 +0000 (11:49 -0500)]
releasing package babl version 1:0.1.98-1
Jeremy Bicha [Fri, 18 Nov 2022 16:49:21 +0000 (11:49 -0500)]
Bump Standards-Version to 4.6.1
Jeremy Bicha [Fri, 18 Nov 2022 16:47:19 +0000 (11:47 -0500)]
debian/libbabl-0.1-0.symbols: Add new symbol
Jeremy Bicha [Fri, 18 Nov 2022 16:45:55 +0000 (11:45 -0500)]
New upstream release
Jeremy Bicha [Fri, 18 Nov 2022 16:45:55 +0000 (11:45 -0500)]
Update upstream source from tag 'upstream/0.1.98'
Update to upstream version '0.1.98'
with Debian dir
84208dc67ca6027df8aee915475679ea93d72657
Jeremy Bicha [Fri, 18 Nov 2022 16:45:54 +0000 (11:45 -0500)]
New upstream version 0.1.98
Jeremy Bicha [Fri, 18 Nov 2022 16:44:57 +0000 (11:44 -0500)]
Add debian/upstream/metadata
Ulf Prill [Fri, 18 Nov 2022 04:00:44 +0000 (05:00 +0100)]
Update meson.build
Fix Issue #80
Øyvind Kolås [Sun, 13 Nov 2022 15:08:54 +0000 (16:08 +0100)]
post-release version bump
Øyvind Kolås [Sun, 13 Nov 2022 14:45:36 +0000 (15:45 +0100)]
meson, NEWS: release 0.1.98
Øyvind Kolås [Sat, 12 Nov 2022 22:36:09 +0000 (23:36 +0100)]
babl: add babl_gc
The LUT garbage collection was running ad-hoc as a side effect of processing,
this is problematic since it could trigger during processing of other threads
that might be using or freeing the same fish leading to races. The new babl_gc
function is to be called from the main thread, at times when processing is not
occuring, calling babl_gc is not neccesary in short lived commandline tools
and similar.
Jeremy Bicha [Thu, 25 Aug 2022 13:53:15 +0000 (09:53 -0400)]
releasing package babl version 1:0.1.96-1
Nathan Pratta Teodosio [Thu, 25 Aug 2022 13:48:46 +0000 (10:48 -0300)]
Update changelog
Nathan Pratta Teodosio [Thu, 25 Aug 2022 13:46:39 +0000 (10:46 -0300)]
Don't install newly introduced bin/babl yet
Nathan Pratta Teodosio [Thu, 25 Aug 2022 13:23:35 +0000 (10:23 -0300)]
Drop patch applied upstream
Nathan Pratta Teodosio [Thu, 25 Aug 2022 13:17:38 +0000 (10:17 -0300)]
New upstream release
Nathan Pratta Teodosio [Thu, 25 Aug 2022 13:17:38 +0000 (10:17 -0300)]
Update upstream source from tag 'upstream/0.1.96'
Update to upstream version '0.1.96'
with Debian dir
3d9913af4b14396c9919981df2d2490021699e16
Nathan Pratta Teodosio [Thu, 25 Aug 2022 13:17:37 +0000 (10:17 -0300)]
New upstream version 0.1.96
Øyvind Kolås [Wed, 24 Aug 2022 11:30:18 +0000 (13:30 +0200)]
icc: make bounds protection more robust
Further improvements to issue #78
Øyvind Kolås [Wed, 24 Aug 2022 11:23:15 +0000 (13:23 +0200)]
ICC: verify validity of data-ranges for ICC tags
Fixing issue #78
Øyvind Kolås [Tue, 23 Aug 2022 13:14:18 +0000 (15:14 +0200)]
post release version bump
Øyvind Kolås [Tue, 23 Aug 2022 12:52:30 +0000 (14:52 +0200)]
release 0.1.96
Øyvind Kolås [Tue, 23 Aug 2022 10:18:32 +0000 (12:18 +0200)]
meson: remove unneded check: true
This check meant to check if we are in a git checkout or a tarball
caused failures when building from tarballs. Hopefully fixing issue #77.
Øyvind Kolås [Sun, 21 Aug 2022 13:28:33 +0000 (15:28 +0200)]
post-release version bump
Øyvind Kolås [Sun, 21 Aug 2022 13:25:25 +0000 (15:25 +0200)]
release 0.1.94
Øyvind Kolås [Sun, 21 Aug 2022 10:24:34 +0000 (12:24 +0200)]
NEWS: update
Lukas Oberhuber [Tue, 5 Jul 2022 15:07:34 +0000 (15:07 +0000)]
meson: fix export_packages for generate_gir
This is required in order for babl to link properly in vapigen.
C.f. https://gitlab.gnome.org/Infrastructure/gimp-macos-build/-/commit/
22fc8dafa3e5edc065c035b12024bb7ebb35801a
last file
Axel Viala [Fri, 25 Mar 2022 15:51:22 +0000 (16:51 +0100)]
-Wimplicit-fallthrough add commit according to gcc doc.
Axel Viala [Fri, 25 Mar 2022 14:25:00 +0000 (15:25 +0100)]
main args not used.
Axel Viala [Fri, 25 Mar 2022 14:18:08 +0000 (15:18 +0100)]
Fix warn in CHECK_CONV_FLOAT
Axel Viala [Fri, 25 Mar 2022 15:08:22 +0000 (16:08 +0100)]
-Wsign-compare babl-memory
Axel Viala [Fri, 25 Mar 2022 14:59:28 +0000 (15:59 +0100)]
-Wold-style-declaration
Axel Viala [Fri, 25 Mar 2022 14:42:56 +0000 (15:42 +0100)]
-Wsign-compare conversions.c
Axel Viala [Fri, 25 Mar 2022 14:36:16 +0000 (15:36 +0100)]
Fix warning: -Wsign-compare babl-fish-path
Axel Viala [Thu, 24 Mar 2022 16:14:40 +0000 (17:14 +0100)]
babl-lut-verify: warning: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]
Axel Viala [Thu, 24 Mar 2022 16:12:15 +0000 (17:12 +0100)]
babl_fish_path: comparison of integer expressions of different signedness
Axel Viala [Thu, 24 Mar 2022 16:01:01 +0000 (17:01 +0100)]
Fix warning: comparison of integer expressions of different signedness: ‘int’ and ‘long unsigned int’ [-Wsign-compare]
Jehan [Wed, 17 Aug 2022 13:53:25 +0000 (15:53 +0200)]
bin: profile-aware babl format defaults.
Instead of always defaulting to "R'G'B' float", if a input/output
profile was set, check if it's CMYK, grayscale or RGB.
The defaults are:
* For a CMYK profile: "CMYK float"
* For a grayscale profile: "Y' float"
* For anything else (or no profile): "R'G'B' float"
Jehan [Wed, 17 Aug 2022 13:18:04 +0000 (15:18 +0200)]
babl: fix typos in error strings.
Jehan [Wed, 17 Aug 2022 13:16:12 +0000 (15:16 +0200)]
bin: add -r/--intent for setting the rendering intent on the CLI tool.
Øyvind Kolås [Fri, 29 Jul 2022 20:26:56 +0000 (22:26 +0200)]
bin: show source format in verbose/default output