Changes in TIFF v3.8.0 — LibTIFF 4.7.2 documentation

# Changes in TIFF v3.8.0

References
Current Version | v3.8.0 (tag Release-v3-8-0)
Previous Version | v3.7.4
Master Download Site | https://download.osgeo.org/libtiff/
Master HTTP Site | http://www.simplesystems.org/libtiff/

This document describes the changes made to the software between the previous and current versions (see above). If you don't find something listed here, then it was not done in this timeframe, or it was not considered important enough to be mentioned. The following information is located here:

## Major changes

- Read-only support for custom directories (e.g. EXIF directory).

- Preliminary support for MS MDI format.

## Software configuration changes

- Make the default strip size configurable via the `--with-default-strip-size` and `STRIP_SIZE_DEFAULT` options.

## Library changes

- `tiffio.h`: Added `VC_EXTRALEAN` definition before including `windows.h`, to reduce the compile time.

- `tif_jpeg.c`: Improve compilation under MinGW.

- `tif_aux.c`, `tif_dir.c`, `tif_dir.h`, `tif_dirwrite.c`, `tif_print.c`, `tif_getimage.c`: Make `InkSet`, `NumberOfInks`, `DotRange` and `StoNits` tags custom.

- `tif_aux.c`, `tif_dir.c`, `tif_dir.h`, `tif_print.c`: Make `WhitePoint` tag custom.

- `tiffio.h`: fixed typo that potentially resulted in redefininition of `USE_WIN32_FILEIO`

- `tif_dir.c`, `tif_dir.h`, `tif_print.c`: Make `RichTIFFIPTC`, `Photoshop` and `ICCProfile` tags custom.

- `libtiff/*`, `contrib/*`: Added 'dual-mode' error handling, enabling newer code to get context indicator in error handler and still remain compatible with older code: Done `TIFFError()` calls everywhere except in tools.

- `tiffinfo.c`: Print `EXIF` directory contents if exist.

- `tif_dirinfo.c`, `tif_dirread.c`, `tif_dir.h`, `tif_dir.c`: Custom directory read-only support.

- `tif_aux.c`, `tif_dirinfo.c`, `tif_dirread.c`, `tif_dir.h`, `tif_dir.c`, `tif_print.c`: Make `YCbCrCoefficients` and `ReferenceBlackWhite` tags custom.

- `tif_dirread.c`: One more workaround for broken `StripByteCounts` tag. Handle the case when `StripByteCounts` array filled with completely wrong values.

- `tif_dirinfo.c`: Release file descriptor in case of failure in the `TIFFOpenW()` function as per bug Remote Sensing bugzilla #1003 [no longer available]

- `tif_dirinfo.c`: Correctly use `bsearch()` and `lfind()` functions as per bug Remote Sensing bugzilla #1008 [no longer available]

- `tif_open.c`, `tiff.h`, `tiffdump.c`: Incorporate preliminary support for MS MDI format. Remote Sensing bugzilla #1002 [no longer available]

- libtiff.def, `tiffiop.h`, `tiffio.h`: Made `TIFFFreeDirectory()` public.

- `/tif_dirinfo.c`: Make `XResolution`, `YResolution` and `ResolutionUnit` tags modifiable during write process. As per bug Remote Sensing bugzilla #977 [no longer available]

- `if_dirread.c`: Don't try and split single strips into "0" strips in `ChopUpSingleUncompressedStrip()`. This happens in some degenerate cases (like 1×1 files with `stripbytecounts==0` (`gtsmall.jp2` embed tiff)

- `tif_fax3.c`: changed 'at scanline ...' style warning/errors with incorrect use of tif_row, to 'at line ... of strip/tile ...' style.

## Tools changes

- `tiffcp.c`: Added many error reporting messages; fixed integer overflow as per bug Remote Sensing bugzilla #789 [no longer available]

- `tiffcp.c`: Return non-zero status when reading fails.

- `fax2tiff.c`: Properly calculate sizes of temporary arrays as per bug Remote Sensing bugzilla #943 [no longer available]

- `fax2tiff.c`: Added option -r to set RowsPerStrip parameter as per bug Remote Sensing bugzilla #944 [no longer available]

- `tiffdump.c`: Fixed `typeshift` and `typemask` arrays initialization problem as per bug Remote Sensing bugzilla #946 [no longer available]

- `bmp2tiff.c`: Fixed possible integer overflow error as per bug Remote Sensing bugzilla #965 [no longer available]

- `tiffsplit.c`: Copy fax related fields over split parts as per bug Remote Sensing bugzilla #983 [no longer available]

- `tiffdump.c`: Fixed crash when reading malformed tags.

- `tiff2pdf.c`: Added missed `break` statement as per bug Remote Sensing bugzilla #932 [no longer available]

## Contributed software changes

- `contrib/addtiffo/*`: Major upgrade by Joris to support subsampled YCbCr images in jpeg compressed TIFF files.