Changes in TIFF v3.7.3 — LibTIFF 4.7.1 documentation

# Changes in TIFF v3.7.3

References
Current Version | v3.7.3 (tag Release-v3-7-3)
Previous Version | v3.7.2
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

- Replace runtime endianness check with the compile time one.

- Added support for the new predictor type (floating point predictor), defined at the TIFF Technical Note 3.

- Added Support for custom tags, passed by value.

- Added support for all DNG tags.

## Software configuration changes

- Do not use empty `-R` option when linking with `--enable-rpath`.

- Added workaround for OpenBSD/MirOS soname problem as per bug Remote Sensing bugzilla #838 [no longer available]

- Fixed parallel compilation of the libtiff and libtiffxx libraries as per bug Remote Sensing bugzilla #826 [no longer available]

- `configure.ac`, `libtiff/Makefile.am`: Use libtool machinery to pass `rpath` option.

- `make.opt`: Build with Win32 CRT library by default.

## Library changes

- `tiffiop.h`, `tif_open.c`: Added open option "`h`" to avoid reading the first IFD when needed. As per bug Remote Sensing bugzilla #875 [no longer available]

- `tiff.h`: Use correct int size on Sparc 64bit/Sun compiler platform. As per bug Remote Sensing bugzilla #855 [no longer available]

- `tif_dirinfo.c`: Added support for `ClipPath`, `XClipPathUnits` and `YClipPathUnits` tags.

- `tif_dirinfo.c`, `tif_dir.h`, `tif_dir.c`, `tif_print.c`: Make `DocumentName`, `Artist`, `HostComputer`, `ImageDescription`, `Make`, `Model`, `Copyright`, `DateTime`, `PageName`, `TextureFormat`, `TextureWrapModes` and `TargetPrinter` tags custom.

- `tif_jpeg.c`: Cleanup the codec state depending on `TIFF_CODERSETUP` flag (to fix memory leaks).

- `tif_dirwrite.c`: Use `tdir_count` when calling `TIFFCvtNativeToIEEEDouble()` in the `TIFFWriteDoubleArray()` function as per bug Remote Sensing bugzilla #845 [no longer available]

- `tif_dirinfo.c`, `tif_print.c`: `TIFFFetchByteArray()` returns `uint16` array when fetching the `BYTE` and `SBYTE` fields, so we should consider result as pointer to `uint16` array and not as array of char. As per bug Remote Sensing bugzilla #831 [no longer available]

- `tif_dir.c`: More efficient custom tags retrieval as per bug Remote Sensing bugzilla #830 [no longer available]

- `tif_win32.c`: Use `FILE_SHARE_READ | FILE_SHARE_WRITE` share mode in `CreateFile()` call as per bug Remote Sensing bugzilla #829 [no longer available]

- `tif_jpeg.c`: Substantial fix for addtiffo problems with JPEG encoded TIFF files. Pre-allocate lots of space for jpegtables in directory.

- `tif_dirread.c`: Changed the code that computes `stripbytecount[0]` if it appears bogus to ignore if `stripoffset[0]` is zero. This is a common case with GDAL indicating a "null" tile/strip.

- `tif_jpeg.c`: added `LIB_JPEG_MK1` support in `JPEGDecodeRaw()`.

- `tif_dirread.c`: Ensure that broken files with too many values in `TIFFFetchPerSampleShorts()`, `TIFFFetchPerSampleLongs()` and `TIFFFetchPerSampleAnys()` work ok instead of crashing. Remote Sensing bugzilla #843 [no longer available]

- `tif_predict.h`, `tif_predict.c`: Added ability to decode and encode floating point predictor, as per TIFF Technical Note 3. See http://chriscox.org/TIFF_TN3_Draft2.pdf for details.

- `tiffio.h`, `tiffiop.h`, `tif_dir.c`, `tif_read.c`, `tif_swab.c`: Added `_TIFFSwab24BitData()` and `TIFFSwabArrayOfLong()` functions used to swap 24-bit floating point values.

- `tiff.h`: Added predictor constants.

- `tiffiop.h`, `tif_dir.c`: Use `uint32` type for appropriate values in `_TIFFVSetField()` function. Inspired by the bug Remote Sensing bugzilla #816 [no longer available]

- `tif_open.c`: Do not read header in case the output file should be truncated (Ron).

- `tif_dirinfo.c`, `tif_config.h`.vc: Use `lfind()` instead of `bsearch()` in `_TIFFFindFieldInfoByName()` function (Ron).

- `tif_dir.c`, `tif_print.c`: Properly handle all data types in custom tags.

- `dirinfo.c`: Added DNG tags.

- `tiff.h`: Added missed DNG tag (`LensInfo`); added DNG 1.1.0.0 tags.

- `tif_dir.c`, `tif_print.c`: Added Support for custom tags, passed by value.

- `tiff.h`, `tif_dirinfo.c`, `tiffiop.h`: Added EXIF related tags.

## Tools changes

- `tiff2pdf.c`: Print two characters per loop in the `t2p_write_pdf_trailer()`. As per bug Remote Sensing bugzilla #594 [no longer available]

- `tiffgt.c`: Use MacOS X OpenGL framework when appropriate. As per bug Remote Sensing bugzilla #844 [no longer available]

- `ppm2tiff.c`: Fixed format string when read PPM file header with the `fscanf()` function. As per bug Remote Sensing bugzilla #861 [no longer available]

- `tiffsplit.c`: Check for `JPEGTables` tag presence before copying.

- `tiff2pdfr.c`: Calculate the tile width properly; added new option "`-b`" to use interpolation in output PDF files (Bruno Ledoux).

- `tiffdither.c`: Copy the PhotometricInterpretation tag from the input file.

- `tif2pdf.c`: Fixed problem with alpha channel handling as per bug Remote Sensing bugzilla #794 [no longer available].

## Contributed software changes

- `addtiffo/tif_overview.c`, `addtiffo/tif_ovrcache.c`, `addtiffo/tif_ovrcache.h`: Make overviews working for contiguous images.