BigTIFF & libtiff library version

Agelos Pappas agelos at smartcode.gr
Sun Jun 17 15:22:58 EDT 2012


Hello,

I was trying to compile OpenSlide using the unofficial BigTIFF modified 
version of libtiff available here:
http://bigtiff.org/

in order to add support for BigTIFF in OpenSlide. Although I was able to 
compile BigTIFF and then OpenSlide successfully, I was getting runtime 
errors signifying that there was a problem in the libtiff library.
I tried to test the library with an Aperio SVS file that previously 
worked fine, but was now giving errors.

Specifically the problem was in this call:
openslide-hash.c, Line 117:

if (TIFFGetField(tiff, TIFFTAG_TILEBYTECOUNTS, &sizes) == 0)

Even though TIFFGetField returned a correct value, the sizes pointer did 
not receive a value. The TIFFGetField function is implemented in 
tifflib, in the file tif_dir.c:

This is an extract from libtiff
         case TIFFTAG_TILEBYTECOUNTS:
             _TIFFFillStriles( tif );
             *va_arg(ap, uint64**) = td->td_stripbytecount;
             break;

in the modified BigTIFF libtiff version, the equivalent implementation 
looks like this (tif_dir.c):
     case TIFFTAG_TILEBYTECOUNTS:
             *va_arg(ap, uint32**) = td->td_stripbcsbuf;
             break;

As you can see, the call to _TIFFFillStriles( tif ) is missing from the 
BigTIFF version and the function is nowhere defined. Thus OpenSlide does 
not work when built against the BigTIFF version.
Does OpenSlide use a modified libtiff version? Has anyone else managed 
to add support for BigTIFF? Is there an official version of libtiff 
supporting BigTIFF?

Regards
Agelos




More information about the openslide-users mailing list