Update of /cvsroot/ufraw/ufraw
In directory vz-cvs-3.sog:/tmp/cvs-serv15675

Modified Files:
      Tag: dcraw-original-branch
        dcraw.cc 
Log Message:
dcraw original 9.11 (1.445).

Index: dcraw.cc
===================================================================
RCS file: /cvsroot/ufraw/ufraw/dcraw.cc,v
retrieving revision 1.1.2.115
retrieving revision 1.1.2.116
diff -u -d -r1.1.2.115 -r1.1.2.116
--- dcraw.cc    24 Jul 2011 14:31:35 -0000      1.1.2.115
+++ dcraw.cc    7 Oct 2011 11:52:08 -0000       1.1.2.116
@@ -1,6 +1,6 @@
 /*
    dcraw.c -- Dave Coffin's raw photo decoder
-   Copyright 1997-2010 by Dave Coffin, dcoffin a cybercom o net
+   Copyright 1997-2011 by Dave Coffin, dcoffin a cybercom o net
 
    This is a command-line ANSI C program to convert raw photos from
    any digital camera on any computer running any operating system.
@@ -23,7 +23,7 @@
    $Date$
  */
 
-#define DCRAW_VERSION "9.10"
+#define DCRAW_VERSION "9.11"
 
 #ifndef _GNU_SOURCE
 #define _GNU_SOURCE
@@ -1731,7 +1731,7 @@
       if ((r = row-top_margin - (shot >> 1 & 1)) >= height) continue;
       for (col=0; col < raw_width; col++) {
        if ((c = col-left_margin - (shot & 1)) >= width) continue;
-        image[r*width+c][FC(row,col)] = pixel[col];
+       image[r*width+c][FC(row,col)] = pixel[col];
       }
     }
   }
@@ -2215,7 +2215,7 @@
     for (col=0; col < raw_width; col++) {
       val = curve[pixel[col]];
       if ((unsigned) (col-left_margin) < width)
-        BAYER(row,col-left_margin) = val;
+       BAYER(row,col-left_margin) = val;
       else lblack += val;
     }
   }
@@ -2494,7 +2494,7 @@
   merror (data, "sony_arw2_load_raw()");
   for (row=0; row < height; row++) {
     fread (data, 1, raw_width, ifp);
-    for (dp=data, col=0; col < width-30; dp+=16) {
+    for (dp=data, col=0; col < raw_width-30; dp+=16) {
       max = 0x7ff & (val = sget4(dp));
       min = 0x7ff & val >> 11;
       imax = 0x0f & val >> 22;
@@ -2509,7 +2509,7 @@
          bit += 7;
        }
       for (i=0; i < 16; i++, col+=2)
-       BAYER(row,col) = curve[pix[i] << 1] >> 2;
+       if (col < width) BAYER(row,col) = curve[pix[i] << 1] >> 2;
       col -= col & 1 ? 1:31;
     }
   }
@@ -3651,7 +3651,7 @@
       lpass = size*((lev & 1)+1);
       for (row=0; row < iheight; row++) {
        hat_transform (temp, fimg+hpass+row*iwidth, 1, iwidth, 1 << lev);
-        for (col=0; col < iwidth; col++)
+       for (col=0; col < iwidth; col++)
          fimg[lpass + row*iwidth + col] = temp[col] * 0.25;
       }
       for (col=0; col < iwidth; col++) {
@@ -4442,6 +4442,7 @@
    The MakerNote might have its own TIFF header (possibly with
    its own byte-order!), or it might just be a table.
  */
+  if (!strcmp(make,"Nokia")) return;
   fread (buf, 1, 10, ifp);
   if (!strncmp (buf,"KDK" ,3) ||       /* these aren't TIFF tables */
       !strncmp (buf,"VER" ,3) ||
@@ -5571,7 +5572,7 @@
   } else
     while (isdigit(*--jext)) {
       if (*jext != '9') {
-        (*jext)++;
+       (*jext)++;
        break;
       }
       *jext = '0';
@@ -6298,7 +6299,7 @@
     { "Canon PowerShot SX1 IS", 0, 0,
        { 6578,-259,-502,-5974,13030,3309,-308,1058,4970 } },
     { "Canon PowerShot SX110 IS", 0, 0,        /* DJC */
-        { 14134,-5576,-1527,-1991,10719,1273,-1158,1929,3581 } },
+       { 14134,-5576,-1527,-1991,10719,1273,-1158,1929,3581 } },
     { "CASIO EX-S20", 0, 0,            /* DJC */
        { 11634,-3924,-1128,-4968,12954,2015,-1588,2648,7206 } },
     { "CASIO EX-Z750", 0, 0,           /* DJC */
@@ -6367,6 +6368,8 @@
        { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
     { "FUJIFILM FinePix F550EXR", 0, 0,
        { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
+    { "FUJIFILM FinePix F600EXR", 0, 0,
+       { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
     { "FUJIFILM FinePix X100", 0, 0,
        { 12161,-4457,-1069,-5034,12874,2400,-795,1724,6904 } },
     { "Imacon Ixpress", 0, 0,          /* DJC */
@@ -6537,6 +6540,8 @@
        { 9698,-3367,-914,-4706,12584,2368,-837,968,5801 } },
     { "NIKON COOLPIX P7000", 0, 0,
        { 11432,-3679,-1111,-3169,11239,2202,-791,1380,4455 } },
+    { "NIKON COOLPIX P7100", 0, 0,
+       { 11053,-4269,-1024,-1976,10182,2088,-526,1263,4469 } },
     { "OLYMPUS C5050", 0, 0,
        { 10508,-3124,-1273,-6079,14294,1901,-1653,2306,6237 } },
     { "OLYMPUS C5060", 0, 0,
@@ -6585,14 +6590,18 @@
        { 8343,-2050,-1021,-7715,15705,2103,-1831,2380,8235 } },
     { "OLYMPUS E-P2", 0, 0xffd,
        { 8343,-2050,-1021,-7715,15705,2103,-1831,2380,8235 } },
-    { "OLYMPUS E-P3", 0, 0,            /* DJC */
-       { 7488,-3021,-55,-2377,8348,4029,-816,2405,6327 } },
+    { "OLYMPUS E-P3", 0, 0,
+       { 7575,-2159,-571,-3722,11341,2725,-1434,2819,6271 } },
     { "OLYMPUS E-PL1s", 0, 0,
        { 11409,-3872,-1393,-4572,12757,2003,-709,1810,7415 } },
     { "OLYMPUS E-PL1", 0, 0,
        { 11408,-4289,-1215,-4286,12385,2118,-387,1467,7787 } },
     { "OLYMPUS E-PL2", 0, 0,
        { 15030,-5552,-1806,-3987,12387,1767,-592,1670,7023 } },
+    { "OLYMPUS E-PL3", 0, 0,
+       { 7575,-2159,-571,-3722,11341,2725,-1434,2819,6271 } },
+    { "OLYMPUS E-PM1", 0, 0,
+       { 7575,-2159,-571,-3722,11341,2725,-1434,2819,6271 } },
     { "OLYMPUS SP350", 0, 0,
        { 12078,-4836,-1069,-6671,14306,2578,-786,939,7418 } },
     { "OLYMPUS SP3", 0, 0,
@@ -6687,6 +6696,8 @@
        { 16197,-6146,-1761,-2393,10765,1869,366,2238,5248 } },
     { "LEICA V-LUX 2", 143, 0xfff,
        { 16197,-6146,-1761,-2393,10765,1869,366,2238,5248 } },
+    { "Panasonic DMC-FZ150", 143, 0xfff,
+       { 11904,-4541,-1189,-2355,10899,1662,-296,1586,4289 } },
     { "Panasonic DMC-FX150", 15, 0xfff,
        { 9082,-2907,-925,-6119,13377,3058,-1797,2641,5609 } },
     { "Panasonic DMC-G10", 0, 0,
@@ -6695,28 +6706,32 @@
        { 8199,-2065,-1056,-8124,16156,2033,-2458,3022,7220 } },
     { "Panasonic DMC-G2", 15, 0xf3c,
        { 10113,-3400,-1114,-4765,12683,2317,-377,1437,6710 } },
-    { "Panasonic DMC-G3", 143, 0xfff,  /* DJC */
-       { 6460,-2578,-366,-2786,8728,4059,-1073,2525,6254 } },
+    { "Panasonic DMC-G3", 143, 0xfff,
+       { 6763,-1919,-863,-3868,11515,2684,-1216,2387,5879 } },
     { "Panasonic DMC-GF1", 15, 0xf92,
        { 7888,-1902,-1011,-8106,16085,2099,-2353,2866,7330 } },
     { "Panasonic DMC-GF2", 143, 0xfff,
        { 7888,-1902,-1011,-8106,16085,2099,-2353,2866,7330 } },
-    { "Panasonic DMC-GF3", 143, 0xfff, /* DJC */
-        { 8407,-3261,-502,-3997,10651,3347,-1095,2742,7294 } },
+    { "Panasonic DMC-GF3", 143, 0xfff,
+       { 9051,-2468,-1204,-5212,13276,2121,-1197,2510,6890 } },
     { "Panasonic DMC-GH1", 15, 0xf92,
        { 6299,-1466,-532,-6535,13852,2969,-2331,3112,5984 } },
     { "Panasonic DMC-GH2", 15, 0xf95,
        { 7780,-2410,-806,-3913,11724,2484,-1018,2390,5298 } },
     { "Phase One H 20", 0, 0,          /* DJC */
        { 1313,1855,-109,-6715,15908,808,-327,1840,6020 } },
+    { "Phase One H 25", 0, 0,
+       { 2905,732,-237,-8134,16626,1476,-3038,4253,7517 } },
     { "Phase One P 2", 0, 0,
        { 2905,732,-237,-8134,16626,1476,-3038,4253,7517 } },
     { "Phase One P 30", 0, 0,
        { 4516,-245,-37,-7020,14976,2173,-3206,4671,7087 } },
     { "Phase One P 45", 0, 0,
        { 5053,-24,-117,-5684,14076,1702,-2619,4492,5849 } },
+    { "Phase One P40", 0, 0,
+       { 8035,435,-962,-6001,13872,2320,-1159,3065,5434 } },
     { "Phase One P65", 0, 0,
-       { 7914,1414,-1190,-8777,16582,2280,-2811,4605,5562 } },
+       { 8035,435,-962,-6001,13872,2320,-1159,3065,5434 } },
     { "RED ONE", 704, 0xffff,          /* DJC */
        { 21014,-7891,-2613,-3056,12201,856,-2203,5125,8042 } },
     { "SAMSUNG EX1", 0, 0x3e00,
@@ -6765,20 +6780,28 @@
        { 5413,-1162,-365,-5665,13098,2866,-608,1179,8440 } },
     { "SONY DSLR-A900", 128, 0,
        { 5209,-1072,-397,-8845,16120,2919,-1618,1803,8654 } },
+    { "SONY NEX-5N", 128, 0,
+       { 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 } },
+    { "SONY NEX-C3", 128, 0,
+       { 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 } },
     { "SONY NEX-3", 138, 0,            /* DJC */
        { 6907,-1256,-645,-4940,12621,2320,-1710,2581,6230 } },
     { "SONY NEX-5", 116, 0,            /* DJC */
        { 6807,-1350,-342,-4216,11649,2567,-1089,2001,6420 } },
-    { "SONY NEX-C3", 128, 0,           /* DJC */
-       { 5171,-1786,-46,-3375,9315,4061,-611,1865,6473 } },
-    { "SONY NEX", 128, 0,              /* Adobe's matrix */
+    { "SONY NEX-3", 128, 0,            /* Adobe */
+       { 6549,-1550,-436,-4880,12435,2753,-854,1868,6976 } },
+    { "SONY NEX-5", 128, 0,            /* Adobe */
        { 6549,-1550,-436,-4880,12435,2753,-854,1868,6976 } },
     { "SONY SLT-A33", 128, 0,
        { 6069,-1221,-366,-5221,12779,2734,-1024,2066,6834 } },
-    { "SONY SLT-A35", 128, 0,          /* DJC */
-       { 4504,-1495,115,-3507,9101,4407,-669,1844,6806 } },
+    { "SONY SLT-A35", 128, 0,
+       { 5986,-1618,-415,-4557,11820,3120,-681,1404,6971 } },
     { "SONY SLT-A55", 128, 0,
-       { 5932,-1492,-411,-4813,12285,2856,-741,1524,6739 } }
+       { 5932,-1492,-411,-4813,12285,2856,-741,1524,6739 } },
+    { "SONY SLT-A65", 128, 0,
+       { 5491,-1192,-363,-4951,12342,2948,-911,1722,7192 } },
+    { "SONY SLT-A77", 128, 0,
+       { 5491,-1192,-363,-4951,12342,2948,-911,1722,7192 } }
   };
   double cam_xyz[4][3];
   char name[130];
@@ -7171,13 +7194,13 @@
     { height  = 2616;   width  = 3896; }
   if (height == 3136 && width == 4864)  /* Pentax K20D and Samsung GX20 */
     { height  = 3124;   width  = 4688; filters = 0x16161616; }
-  if (!strcmp(model,"K-r") || !strcmp(model,"K-x"))
+  if (width == 4352 && (!strcmp(model,"K-r") || !strcmp(model,"K-x")))
     {                  width  = 4309; filters = 0x16161616; }
-  if (!strcmp(model,"K-5"))
+  if (width >= 4960 && !strcmp(model,"K-5"))
     { left_margin = 10; width  = 4950; filters = 0x16161616; }
-  if (!strcmp(model,"K-7"))
+  if (width == 4736 && !strcmp(model,"K-7"))
     { height  = 3122;   width  = 4684; filters = 0x16161616; top_margin = 2; }
-  if (!strcmp(model,"645D"))
+  if (width == 7424 && !strcmp(model,"645D"))
     { height  = 5502;   width  = 7328; filters = 0x61616161; top_margin = 29;
       left_margin = 48; }
   if (height == 3014 && width == 4096) /* Ricoh GX200 */
@@ -8065,6 +8088,8 @@
     adobe_coeff ("SONY","DSC-R1");
     width = 3925;
     order = 0x4d4d;
+  } else if (!strcmp(make,"SONY") && raw_width == 6048) {
+    width -= 24;
   } else if (!strcmp(model,"DSLR-A100")) {
     if (width == 3880) {
       height--;
@@ -8492,7 +8517,7 @@
       for (j=0; j < 3; j++) {
        for (num = k=0; k < 3; k++)
          num += xyzd50_srgb[i][k] * inverse[j][k];
-        oprof[pbody[j*3+23]/4+i+2] = num * 0x10000 + 0.5;
+       oprof[pbody[j*3+23]/4+i+2] = num * 0x10000 + 0.5;
       }
     for (i=0; i < phead[0]/4; i++)
       oprof[i] = htonl(oprof[i]);


------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security
threats, fraudulent activity, and more. Splunk takes this data and makes
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2dcopy2
_______________________________________________
ufraw-cvs mailing list
ufraw-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ufraw-cvs

Reply via email to