external/libtiff/UnpackedTarball_libtiff.mk | 1 + external/libtiff/ofz65182.patch | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+)
New commits: commit f78a9d7d86af7d513ec7020ccfa96f6051d45fdc Author: Caolán McNamara <[email protected]> AuthorDate: Tue Dec 19 17:37:00 2023 +0000 Commit: Caolán McNamara <[email protected]> CommitDate: Wed Dec 20 09:31:22 2023 +0100 ofz#65182 putcontig8bitYCbCr22tile issue Change-Id: I0242059b17d07c0ab4ec83aabd073ee31c4631d2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161031 Tested-by: Jenkins Reviewed-by: Caolán McNamara <[email protected]> diff --git a/external/libtiff/UnpackedTarball_libtiff.mk b/external/libtiff/UnpackedTarball_libtiff.mk index f7eeb6ace868..7f27c8d3fee7 100644 --- a/external/libtiff/UnpackedTarball_libtiff.mk +++ b/external/libtiff/UnpackedTarball_libtiff.mk @@ -16,6 +16,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,libtiff,1)) $(eval $(call gb_UnpackedTarball_add_patches,libtiff,\ external/libtiff/libtiff.linknolibs.patch \ external/libtiff/0001-ofz-54685-Timeout.patch \ + external/libtiff/ofz65182.patch \ )) # vim: set noet sw=4 ts=4: diff --git a/external/libtiff/ofz65182.patch b/external/libtiff/ofz65182.patch new file mode 100644 index 000000000000..d4b18e4ade3e --- /dev/null +++ b/external/libtiff/ofz65182.patch @@ -0,0 +1,23 @@ +diff --git a/libtiff/tif_strip.c b/libtiff/tif_strip.c +index 820a2544..afd7cb6e 100644 +--- a/libtiff/tif_strip.c ++++ b/libtiff/tif_strip.c +@@ -287,7 +287,17 @@ uint64_t TIFFScanlineSize64(TIFF *tif) + else + { + uint64_t scanline_samples; +- scanline_samples = _TIFFMultiply64(tif, td->td_imagewidth, ++ uint32_t scanlinewidth = td->td_imagewidth; ++ ++ if (td->td_photometric == PHOTOMETRIC_YCBCR) ++ { ++ uint16_t SubsamplingHor, SubsamplingVer; ++ TIFFGetFieldDefaulted(tif, TIFFTAG_YCBCRSUBSAMPLING, &SubsamplingHor, &SubsamplingVer); ++ if (SubsamplingHor > 1) // roundup width for YCbCr ++ scanlinewidth = TIFFroundup_32(scanlinewidth, SubsamplingHor); ++ } ++ ++ scanline_samples = _TIFFMultiply64(tif, scanlinewidth, + td->td_samplesperpixel, module); + scanline_size = + TIFFhowmany_64(_TIFFMultiply64(tif, scanline_samples,
