Hey all,

I work with Kurt Schwehr, and we've been debugging failures where an
explicit mask isn't preserved through a CreateCopy operation to create a
COG through the GTiff driver at HEAD.

This failure only started occurring after
https://github.com/OSGeo/gdal/commit/3bdc81a205bad8342688873e4ed5716f1208e8f5
.

After the CreateCopy, when we read back the mask, the mask is expanded from
the 1-bit mask to the 8-bit mask inside of gtiffoddbitsband.h. However, the
mask is not a 1-bit mask when I add logging here; instead, it's the
original 8-bit mask (with 255s and 0s). So when it gets expanded to 8-bits,
it's no longer the original mask:
E.g., 255 0 255 255 becomes 255 255 ... 255 255 0 0 ... 0 0 255 255 ...

So my guess is that somewhere along the line we either copy the mask
without turning it back into a bitmask, or we lose metadata tracking that
the mask is encoded a certain way.

Does anything obvious jump out to folks here? The issue *does not* occur
when either COPY_SRC_OVERVIEWS="YES" is removed or INTERLEAVE is set to
PIXEL (it only fails on band interleaving).

Here's a gist containing an example test that fails at head but previously
succeeded: https://gist.github.com/orglofch/40cf4d9136978b0384141cc74d1039b6
.

Thanks,
Owen
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/gdal-dev

Reply via email to