Update of /cvsroot/ufraw/ufraw In directory sfp-cvs-1.v30.ch3.sourceforge.com:/tmp/cvs-serv31230
Modified Files: configure.ac dcraw_api.cc dcraw.cc dcraw.h Log Message: dcraw modified 9.18 (1.455). Chagelog: Support the Fuji HS50, X20, X100S, SL1000, Samsung NX300, Canon A3300 and EOS C500, and Olympus XZ-10. Added Frank Markesteijn's X-Trans demosaic algorithm. Lowercased the names of all camera makers. Hardened dcraw against corrupt input files. Tableized away large chunks of code in identify(). Fix build errors with MinGW-w64. Index: dcraw.cc =================================================================== RCS file: /cvsroot/ufraw/ufraw/dcraw.cc,v retrieving revision 1.290 retrieving revision 1.291 diff -u -d -r1.290 -r1.291 --- dcraw.cc 5 May 2013 03:30:20 -0000 1.290 +++ dcraw.cc 1 Jun 2013 18:30:13 -0000 1.291 @@ -1,6 +1,6 @@ /* dcraw.cc - Dave Coffin's raw photo decoder - C++ adaptation - Copyright 1997-2012 by Dave Coffin, dcoffin a cybercom o net + Copyright 1997-2013 by Dave Coffin, dcoffin a cybercom o net Copyright 2004-2013 by Udi Fuchs, udifuchs a gmail o com This program is free software; you can redistribute it and/or modify @@ -22,7 +22,7 @@ #include "uf_progress.h" } [...3913 lines suppressed...] crop_masked_pixels(); free (raw_image); @@ -9720,11 +9530,14 @@ if (filters && !document_mode) { if (quality == 0) lin_interpolate(); - else if (quality == 1 || colors > 3 || filters < 1000) + else if (quality == 1 || colors > 3) vng_interpolate(); - else if (quality == 2) + else if (quality == 2 && filters > 1000) ppg_interpolate(); - else ahd_interpolate(); + else if (filters == 9) + xtrans_interpolate (quality*2-3); + else + ahd_interpolate(); } if (mix_green) for (colors=3, i=0; i < height*width; i++) Index: dcraw.h =================================================================== RCS file: /cvsroot/ufraw/ufraw/dcraw.h,v retrieving revision 1.76 retrieving revision 1.77 diff -u -d -r1.76 -r1.77 --- dcraw.h 16 Mar 2013 05:15:14 -0000 1.76 +++ dcraw.h 1 Jun 2013 18:30:13 -0000 1.77 @@ -1,6 +1,6 @@ /* dcraw.h - Dave Coffin's raw photo decoder - header for C++ adaptation - Copyright 1997-2012 by Dave Coffin, dcoffin a cybercom o net + Copyright 1997-2013 by Dave Coffin, dcoffin a cybercom o net Copyright 2004-2013 by Udi Fuchs, udifuchs a gmail o com This program is free software; you can redistribute it and/or modify @@ -43,26 +43,27 @@ short order; /*const*/ char *ifname, *ifname_display; - char *meta_data; + char *meta_data, xtrans[6][6]; char cdesc[5], desc[512], make[64], model[64], model2[64], artist[64]; float flash_used, canon_ev, iso_speed, shutter, aperture, focal_len; time_t timestamp; - unsigned shot_order, kodak_cbpp, filters, exif_cfa, unique_id; - off_t strip_offset, data_offset; - off_t thumb_offset, meta_offset, profile_offset; + off_t strip_offset, data_offset; + off_t thumb_offset, meta_offset, profile_offset; + unsigned shot_order, kodak_cbpp, exif_cfa, unique_id; unsigned thumb_length, meta_length, profile_length; unsigned thumb_misc, *oprof, fuji_layout, shot_select, multi_out; unsigned tiff_nifds, tiff_samples, tiff_bps, tiff_compress; unsigned black, cblack[4], maximum, mix_green, raw_color, zero_is_bad; unsigned zero_after_ff, is_raw, dng_version, is_foveon, data_error; unsigned tile_width, tile_length, gpsdata[32], load_flags; + unsigned flip, tiff_flip, filters, colors; ushort raw_height, raw_width, height, width, top_margin, left_margin; ushort shrink, iheight, iwidth, fuji_width, thumb_width, thumb_height; ushort *raw_image, (*image)[4]; ushort white[8][8], curve[0x10000], cr2_slice[3], sraw_mul[4]; - int mask[8][4], flip, tiff_flip, colors; double pixel_aspect, aber[4], gamm[6]; float bright, user_mul[4], threshold; + int mask[8][4]; int half_size, four_color_rgb, document_mode, highlight; int verbose, use_auto_wb, use_camera_wb, use_camera_matrix; int output_color, output_bps, output_tiff, med_passes; @@ -174,6 +175,7 @@ void imacon_full_load_raw(); void packed_load_raw(); void nokia_load_raw(); + void canon_rmf_load_raw(); unsigned pana_bits(int nbits); void panasonic_load_raw(); void olympus_load_raw(); @@ -195,13 +197,14 @@ void sony_load_raw(); void sony_arw_load_raw(); void sony_arw2_load_raw(); + void samsung_load_raw(); void smal_decode_segment(unsigned seg[2][2], int holes); void smal_v6_load_raw(); int median4(int *p); void fill_holes(int holes); void smal_v9_load_raw(); void redcine_load_raw(); - void foveon_decoder(unsigned size, unsigned code); + void foveon_decoder(int size, unsigned code); void foveon_thumb(); void foveon_sd_load_raw(); void foveon_huff(ushort *huff); @@ -228,10 +231,12 @@ void wavelet_denoise(); void scale_colors(); void pre_interpolate(); - void border_interpolate(int border); + void border_interpolate(unsigned border); void lin_interpolate(); void vng_interpolate(); void ppg_interpolate(); + void cielab(ushort rgb[3], short lab[3]); + void xtrans_interpolate(int passes); void ahd_interpolate(); void median_filter(); void blend_highlights(); @@ -253,7 +258,7 @@ void parse_minolta(int base); void parse_external_jpeg(); void ciff_block_1030(); - void parse_ciff(int offset, int length); + void parse_ciff(int offset, int length, int depth); void parse_rollei(); void parse_sinar_ia(); void parse_phase_one(int base); Index: configure.ac =================================================================== RCS file: /cvsroot/ufraw/ufraw/configure.ac,v retrieving revision 1.176 retrieving revision 1.177 diff -u -d -r1.176 -r1.177 --- configure.ac 26 Mar 2013 16:30:12 -0000 1.176 +++ configure.ac 1 Jun 2013 18:30:12 -0000 1.177 @@ -29,6 +29,8 @@ AC_SEARCH_LIBS(pow, m) AC_CHECK_FUNCS(canonicalize_file_name) AC_CHECK_FUNCS(memmem) +AC_CHECK_FUNCS(strcasecmp) +AC_CHECK_FUNCS(strcasestr) # For binary package creation, adjusting for the build CPU is not appropriate. case $host_cpu in Index: dcraw_api.cc =================================================================== RCS file: /cvsroot/ufraw/ufraw/dcraw_api.cc,v retrieving revision 1.90 retrieving revision 1.91 diff -u -d -r1.90 -r1.91 --- dcraw_api.cc 16 Mar 2013 03:45:08 -0000 1.90 +++ dcraw_api.cc 1 Jun 2013 18:30:13 -0000 1.91 @@ -92,7 +92,7 @@ } d->identify(); #ifndef UFRAW_X_TRANS - if (d->filters == 2) d->is_raw = 0; + if (d->filters == 9) d->is_raw = 0; #endif /* We first check if dcraw recognizes the file, this is equivalent * to 'dcraw -i' succeeding */ @@ -216,7 +216,7 @@ h->raw.height = d->iheight = (h->height + h->shrink) >> h->shrink; h->raw.width = d->iwidth = (h->width + h->shrink) >> h->shrink; /* copied from the end of dcraw's identify() */ - if (d->filters && d->colors == 3) { + if (d->filters > 999 && d->colors == 3) { d->filters |= ((d->filters >> 2 & 0x22222222) | (d->filters << 2 & 0x88888888)) & d->filters << 1; } @@ -723,9 +723,9 @@ /* It might be better to report an error here: */ /* (dcraw also forbids AHD for Fuji rotated images) */ - if (interpolation == dcraw_ahd_interpolation && (h->colors > 3 || h->filters < 1000)) + if (interpolation == dcraw_ahd_interpolation && h->colors > 3) interpolation = dcraw_vng_interpolation; - if (interpolation == dcraw_ppg_interpolation && (h->colors > 3 || h->filters < 1000)) + if (interpolation == dcraw_ppg_interpolation && h->colors > 3) interpolation = dcraw_vng_interpolation; f4 = h->fourColorFilters; for (r = 0; r < h->height; r++) @@ -747,7 +747,7 @@ ahd_interpolate_INDI(f->image, ff, f->width, f->height, cl, h->rgb_cam, d); smoothPasses = 3; - } else if (interpolation == dcraw_ppg_interpolation) + } else if (interpolation == dcraw_ppg_interpolation && h->filters > 1000) ppg_interpolate_INDI(f->image, ff, f->width, f->height, cl, d); if (smoothing) ------------------------------------------------------------------------------ Get 100% visibility into Java/.NET code with AppDynamics Lite It's a free troubleshooting tool designed for production Get down to code-level detail for bottlenecks, with <2% overhead. Download for free and get started troubleshooting in minutes. http://p.sf.net/sfu/appdyn_d2d_ap2 _______________________________________________ ufraw-cvs mailing list ufraw-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ufraw-cvs