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

Reply via email to