rationalize member names in tiff read

they were rather confusing
This commit is contained in:
John Cupitt 2019-04-20 17:34:59 +01:00
parent 6acfcb0506
commit 472293c8ed
1 changed files with 34 additions and 36 deletions

View File

@ -264,6 +264,7 @@ typedef struct _RtiffHeader {
*/
uint32 rows_per_strip;
tsize_t strip_size;
tsize_t scanline_size;
int number_of_strips;
/* If read_scanlinewise is TRUE, the strips are too large to read in a
@ -271,12 +272,12 @@ typedef struct _RtiffHeader {
*/
gboolean read_scanlinewise;
/* Strip read geometry. These are the read params as they will be used
* to read, with either TIFFReadScanline() or TIFFReadEncodedStrip(),
* not as they are stored in the file.
/* Strip read geometry. Number of lines we read at once (whole strip
* or 1) and size of the buffer we read to (a scanline, or a strip in
* size).
*/
uint32 read_rows_per_strip;
tsize_t read_strip_size;
uint32 read_height;
tsize_t read_size;
} RtiffHeader;
/* Scanline-type process function.
@ -1764,16 +1765,15 @@ static int
rtiff_strip_read_interleaved( Rtiff *rtiff, tstrip_t strip, tdata_t buf )
{
int samples_per_pixel = rtiff->header.samples_per_pixel;
int read_rows_per_strip = rtiff->header.read_rows_per_strip;
int read_height = rtiff->header.read_height;
int bits_per_sample = rtiff->header.bits_per_sample;
int strip_y = strip * read_rows_per_strip;
int strip_y = strip * read_height;
if( rtiff->header.separate ) {
int page_width = rtiff->header.width;
int page_height = rtiff->header.height;
int strips_per_plane = 1 + (page_height - 1) /
read_rows_per_strip;
int strip_height = VIPS_MIN( read_rows_per_strip,
int strips_per_plane = 1 + (page_height - 1) / read_height;
int strip_height = VIPS_MIN( read_height,
page_height - strip_y );
int pels_per_strip = page_width * strip_height;
int bytes_per_sample = bits_per_sample >> 3;
@ -1813,9 +1813,9 @@ rtiff_stripwise_generate( VipsRegion *or,
void *seq, void *a, void *b, gboolean *stop )
{
Rtiff *rtiff = (Rtiff *) a;
int read_rows_per_strip = rtiff->header.read_rows_per_strip;
int read_height = rtiff->header.read_height;
int page_height = rtiff->header.height;
tsize_t scanline_size = TIFFScanlineSize( rtiff->tiff );
tsize_t scanline_size = rtiff->header.scanline_size;
VipsRect *r = &or->valid;
int y;
@ -1840,7 +1840,7 @@ rtiff_stripwise_generate( VipsRegion *or,
* strip in the image.
*/
g_assert( r->height ==
VIPS_MIN( read_rows_per_strip, or->im->Ysize - r->top ) );
VIPS_MIN( read_height, or->im->Ysize - r->top ) );
VIPS_GATE_START( "rtiff_stripwise_generate: work" );
@ -1855,7 +1855,7 @@ rtiff_stripwise_generate( VipsRegion *or,
/* Strip number.
*/
tstrip_t strip_no = y_page / read_rows_per_strip;
tstrip_t strip_no = y_page / read_height;
VipsRect image, page, strip, hit;
@ -1873,9 +1873,9 @@ rtiff_stripwise_generate( VipsRegion *or,
page.height = page_height;
strip.left = 0;
strip.top = page.top + strip_no * read_rows_per_strip;
strip.top = page.top + strip_no * read_height;
strip.width = rtiff->out->Xsize;
strip.height = read_rows_per_strip;
strip.height = read_height;
/* Clip strip against page and image ... the final strip will
* be smaller.
@ -1980,10 +1980,10 @@ rtiff_read_stripwise( Rtiff *rtiff, VipsImage *out )
rtiff->header.strip_size );
printf( "rtiff_read_stripwise: header.number_of_strips = %d\n",
rtiff->header.number_of_strips );
printf( "rtiff_read_stripwise: header.read_rows_per_strip = %u\n",
rtiff->header.read_rows_per_strip );
printf( "rtiff_read_stripwise: header.read_strip_size = %zd\n",
rtiff->header.read_strip_size );
printf( "rtiff_read_stripwise: header.read_height = %u\n",
rtiff->header.read_height );
printf( "rtiff_read_stripwise: header.read_size = %zd\n",
rtiff->header.read_size );
#endif /*DEBUG*/
/* Double check: in memcpy mode, the vips linesize should exactly
@ -2000,7 +2000,7 @@ rtiff_read_stripwise( Rtiff *rtiff, VipsImage *out )
else
vips_line_size = VIPS_IMAGE_SIZEOF_LINE( t[0] );
if( vips_line_size != TIFFScanlineSize( rtiff->tiff ) ) {
if( vips_line_size != rtiff->header.scanline_size ) {
vips_error( "tiff2vips",
"%s", _( "unsupported tiff image type" ) );
return( -1 );
@ -2015,7 +2015,7 @@ rtiff_read_stripwise( Rtiff *rtiff, VipsImage *out )
*/
if( rtiff->header.separate ) {
if( !(rtiff->plane_buf = vips_malloc( VIPS_OBJECT( out ),
rtiff->header.read_strip_size )) )
rtiff->header.read_size )) )
return( -1 );
}
@ -2032,7 +2032,7 @@ rtiff_read_stripwise( Rtiff *rtiff, VipsImage *out )
rtiff->n > 1 ) {
tsize_t size;
size = rtiff->header.read_strip_size;
size = rtiff->header.read_size;
if( rtiff->header.separate )
size *= rtiff->header.samples_per_pixel;
@ -2046,7 +2046,7 @@ rtiff_read_stripwise( Rtiff *rtiff, VipsImage *out )
NULL, rtiff_stripwise_generate, NULL,
rtiff, NULL ) ||
vips_sequential( t[0], &t[1],
"tile_height", rtiff->header.read_rows_per_strip,
"tile_height", rtiff->header.read_height,
NULL ) ||
rtiff_autorotate( rtiff, t[1], &t[2] ) ||
vips_image_write( t[2], out ) )
@ -2139,14 +2139,15 @@ rtiff_header_read( Rtiff *rtiff, RtiffHeader *header )
header->rows_per_strip = 0;
header->strip_size = 0;
header->number_of_strips = 0;
header->read_rows_per_strip = 0;
header->read_strip_size = 0;
header->read_height = 0;
header->read_size = 0;
}
else {
if( !tfget32( rtiff->tiff,
TIFFTAG_ROWSPERSTRIP, &header->rows_per_strip ) )
return( -1 );
header->strip_size = TIFFStripSize( rtiff->tiff );
header->scanline_size = TIFFScanlineSize( rtiff->tiff );
header->number_of_strips = TIFFNumberOfStrips( rtiff->tiff );
/* libtiff has two strip-wise readers. TIFFReadEncodedStrip()
@ -2170,9 +2171,8 @@ rtiff_header_read( Rtiff *rtiff, RtiffHeader *header )
header->photometric_interpretation !=
PHOTOMETRIC_YCBCR ) {
header->read_scanlinewise = TRUE;
header->read_rows_per_strip = 1;
header->read_strip_size =
TIFFScanlineSize( rtiff->tiff );
header->read_height = 1;
header->read_size = rtiff->header.scanline_size;
}
else {
header->read_scanlinewise = FALSE;
@ -2183,11 +2183,9 @@ rtiff_header_read( Rtiff *rtiff, RtiffHeader *header )
*
* And it musn't be zero.
*/
header->read_rows_per_strip =
VIPS_CLIP( 1,
header->rows_per_strip,
header->height );
header->read_strip_size = header->strip_size;
header->read_height = VIPS_CLIP( 1,
header->rows_per_strip, header->height );
header->read_size = header->strip_size;
}
/* Stop some compiler warnings.
@ -2221,8 +2219,8 @@ rtiff_header_equal( RtiffHeader *h1, RtiffHeader *h2 )
return( 0 );
}
else {
if( h1->read_rows_per_strip != h2->read_rows_per_strip ||
h1->read_strip_size != h2->read_strip_size ||
if( h1->read_height != h2->read_height ||
h1->read_size != h2->read_size ||
h1->number_of_strips != h2->number_of_strips )
return( 0 );
}