2012.06.28 09:23 "[Tiff] tiff 4.0.2 raw_decode test failing on ppc64", by Dinar Valeev

2012.07.03 18:08 "Re: [Tiff] tiff 4.0.2 raw_decode test failing on ppc64", by Frank Warmerdam

Tom,

The approach looks good to me. I'm a bit embarassed at having written the test without realizing the endian dependent nature of TIFFReadRGBATile's output. If you are ok to fix this that is great otherwise I could do so.

Best regards,

On Tue, Jul 3, 2012 at 10:53 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

rgba part of the raw_decode test fails on ppc64 machine:

I received a patch for this, uncredited but apparently originating somewhere in opensuse:

diff -up tiff-4.0.2/test/raw_decode.c.bigendian tiff-4.0.2/test/raw_decode.c

--- tiff-4.0.2/test/raw_decode.c.bigendian      2012-07-03 15:27:37.168543695 +0200

+++ tiff-4.0.2/test/raw_decode.c        2012-07-03 15:28:47.795051599 +0200

@@ -85,9 +85,9 @@ static int check_rgb_pixel( int pixel, i
 static int check_rgba_pixel( int pixel, int red, int green, int blue, int alpha, unsigned char *buffer ) {
        /* RGBA images are upside down - adjust for normal ordering */

        int adjusted_pixel = pixel % 128 + (127 - (pixel/128)) * 128;
-       unsigned char *rgba = buffer + 4 * adjusted_pixel;

+       unsigned int *rgba = (unsigned int*)(buffer + 4 * adjusted_pixel);

-       if( rgba[0] == red && rgba[1] == green && rgba[2] == blue && rgba[3] == alpha ) {
+       if( TIFFGetR(*rgba) == red && TIFFGetG(*rgba) == green && TIFFGetB(*rgba) == blue && TIFFGetA(*rgba) == alpha ) {

                return 0;
        }

Now, this patch is crummy --- for one thing it ought to correct the fprintf call just below here. But I think it's on the right track: the result of TIFFReadRGBAImage is documented to be accessed via these macros not directly. Does anyone think this is not an appropriate fix approach?

--
---------------------------------------+--------------------------------------
I set the clouds in motion - turn up | Frank Warmerdam, warmerdam@pobox.com
light and sound - activate the windows | http://pobox.com/~warmerdam
and watch the world go round - Rush | Geospatial Software Developer