Blame SOURCES/libtiff-subsampling.patch

e4d7d2
Use the spec-mandated default YCbCrSubSampling values in strip size
e4d7d2
calculations, if the YCBCRSUBSAMPLING tag hasn't been provided.
e4d7d2
See bug #603703.
e4d7d2
e4d7d2
Filed upstream at http://bugzilla.maptools.org/show_bug.cgi?id=2215
e4d7d2
e4d7d2
NB: must be applied after libtiff-scanlinesize.patch to avoid fuzz issues.
e4d7d2
e4d7d2
e4d7d2
diff -Naur tiff-3.9.2.orig/libtiff/tif_strip.c tiff-3.9.2/libtiff/tif_strip.c
e4d7d2
--- tiff-3.9.2.orig/libtiff/tif_strip.c	2006-03-25 13:04:35.000000000 -0500
e4d7d2
+++ tiff-3.9.2/libtiff/tif_strip.c	2010-06-14 12:00:49.000000000 -0400
e4d7d2
@@ -124,9 +124,9 @@
e4d7d2
 		uint16 ycbcrsubsampling[2];
e4d7d2
 		tsize_t w, scanline, samplingarea;
e4d7d2
 
e4d7d2
-		TIFFGetField( tif, TIFFTAG_YCBCRSUBSAMPLING,
e4d7d2
-			      ycbcrsubsampling + 0,
e4d7d2
-			      ycbcrsubsampling + 1 );
e4d7d2
+		TIFFGetFieldDefaulted(tif, TIFFTAG_YCBCRSUBSAMPLING,
e4d7d2
+				      ycbcrsubsampling + 0,
e4d7d2
+				      ycbcrsubsampling + 1);
e4d7d2
 
e4d7d2
 		samplingarea = ycbcrsubsampling[0]*ycbcrsubsampling[1];
e4d7d2
 		if (samplingarea == 0) {
e4d7d2
@@ -234,9 +234,9 @@
e4d7d2
 		    && !isUpSampled(tif)) {
e4d7d2
 			uint16 ycbcrsubsampling[2];
e4d7d2
 
e4d7d2
-			TIFFGetField(tif, TIFFTAG_YCBCRSUBSAMPLING,
e4d7d2
-				     ycbcrsubsampling + 0,
e4d7d2
-				     ycbcrsubsampling + 1);
e4d7d2
+			TIFFGetFieldDefaulted(tif, TIFFTAG_YCBCRSUBSAMPLING,
e4d7d2
+					      ycbcrsubsampling + 0,
e4d7d2
+					      ycbcrsubsampling + 1);
e4d7d2
 
e4d7d2
 			if (ycbcrsubsampling[0]*ycbcrsubsampling[1] == 0) {
e4d7d2
 				TIFFErrorExt(tif->tif_clientdata, tif->tif_name,
e4d7d2
@@ -308,9 +308,9 @@
e4d7d2
 		    && !isUpSampled(tif)) {
e4d7d2
 			uint16 ycbcrsubsampling[2];
e4d7d2
 
e4d7d2
-			TIFFGetField(tif, TIFFTAG_YCBCRSUBSAMPLING,
e4d7d2
-				     ycbcrsubsampling + 0,
e4d7d2
-				     ycbcrsubsampling + 1);
e4d7d2
+			TIFFGetFieldDefaulted(tif, TIFFTAG_YCBCRSUBSAMPLING,
e4d7d2
+					      ycbcrsubsampling + 0,
e4d7d2
+					      ycbcrsubsampling + 1);
e4d7d2
 
e4d7d2
 			if (ycbcrsubsampling[0]*ycbcrsubsampling[1] == 0) {
e4d7d2
 				TIFFErrorExt(tif->tif_clientdata, tif->tif_name,