diff --git a/ChangeLog b/ChangeLog index 344903d4..d3177013 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +22/1/14 started 7.38.2 +- auto RAD decode for affine + 19/1/14 started 7.38.1 - bump soname, thanks benjamin - better conversion to and from scrgb/xyz for rad (hdr) diff --git a/configure.ac b/configure.ac index e314ed56..0850b6bc 100644 --- a/configure.ac +++ b/configure.ac @@ -2,7 +2,7 @@ # also update the version number in the m4 macros below -AC_INIT([vips], [7.38.1], [vipsip@jiscmail.ac.uk]) +AC_INIT([vips], [7.38.2], [vipsip@jiscmail.ac.uk]) # required for gobject-introspection AC_PREREQ(2.62) @@ -17,7 +17,7 @@ AC_CONFIG_MACRO_DIR([m4]) # user-visible library versioning m4_define([vips_major_version], [7]) m4_define([vips_minor_version], [38]) -m4_define([vips_micro_version], [1]) +m4_define([vips_micro_version], [2]) m4_define([vips_version], [vips_major_version.vips_minor_version.vips_micro_version]) @@ -37,7 +37,7 @@ VIPS_VERSION_STRING=$VIPS_VERSION-`date` # binary interface changes not backwards compatible?: reset age to 0 LIBRARY_CURRENT=37 -LIBRARY_REVISION=0 +LIBRARY_REVISION=1 LIBRARY_AGE=0 # patched into include/vips/version.h diff --git a/libvips/resample/affine.c b/libvips/resample/affine.c index a8988f3e..44d15b60 100644 --- a/libvips/resample/affine.c +++ b/libvips/resample/affine.c @@ -79,6 +79,8 @@ * 14/12/12 * - redone as a class * - added input space translation + * 22/1/14 + * - auto RAD decode */ /* @@ -392,7 +394,7 @@ vips_affine_build( VipsObject *object ) if( VIPS_OBJECT_CLASS( vips_affine_parent_class )->build( object ) ) return( -1 ); - if( vips_check_coding_noneorlabq( class->nickname, resample->in ) ) + if( vips_check_coding_known( class->nickname, resample->in ) ) return( -1 ); if( vips_check_vector_length( class->nickname, affine->matrix->n, 4 ) ) @@ -463,23 +465,28 @@ vips_affine_build( VipsObject *object ) return( -1 ); } - /* Unpack labq for processing. + /* Unpack for processing. */ if( in->Coding == VIPS_CODING_LABQ ) { if( vips_LabQ2LabS( in, &t[0], NULL ) ) return( -1 ); in = t[0]; + } + else if( in->Coding == VIPS_CODING_RAD ) { + if( vips_rad2float( in, &t[1], NULL ) ) + return( -1 ); + in = t[1]; } /* Add new pixels around the input so we can interpolate at the edges. */ - if( vips_embed( in, &t[1], + if( vips_embed( in, &t[2], window_offset, window_offset, in->Xsize + window_size, in->Ysize + window_size, "extend", VIPS_EXTEND_COPY, NULL ) ) return( -1 ); - in = t[1]; + in = t[2]; /* Normally SMALLTILE ... except if this is a size up/down affine. */