Update of /cvsroot/ufraw/ufraw In directory sfp-cvsdas-2.v30.ch3.sourceforge.com:/tmp/cvs-serv7379
Modified Files: dcraw.cc Log Message: dcraw modified 9.02 (1.435). Changelog: Support the Sony A450, Kodak Z981, Olympus E-P2, and Panasonic G2 & GF1. Index: dcraw.cc =================================================================== RCS file: /cvsroot/ufraw/ufraw/dcraw.cc,v retrieving revision 1.220 retrieving revision 1.221 diff -u -d -r1.220 -r1.221 --- dcraw.cc 31 May 2010 14:30:14 -0000 1.220 +++ dcraw.cc 11 Jun 2010 13:15:13 -0000 1.221 @@ -22,7 +22,7 @@ #include "uf_progress.h" } -#define DCRAW_VERSION "9.01" +#define DCRAW_VERSION "9.02" #ifndef _GNU_SOURCE #define _GNU_SOURCE @@ -4859,7 +4859,7 @@ unsigned entries, tag, type, len, save; int i, c, wbi=-2, wbtemp=6500; float mul[3]={1,1,1}, num; - static const unsigned wbtag[]={ 0xfa25,0xfa28,0xfa27,0xfa29,-1,-1,0xfa2a }; + static const unsigned wbtag[] = { 64037,64040,64039,64041,-1,-1,64042 }; entries = get2(); if (entries > 1024) return; @@ -4882,9 +4882,11 @@ } if (tag == 2317) linear_table (len); if (tag == 6020) iso_speed = getint(type); - if (tag == 0xfa0d) wbi = fgetc(ifp); + if (tag == 64013) wbi = fgetc(ifp); if ((unsigned) wbi < 7 && tag == wbtag[wbi]) FORC3 cam_mul[c] = get4(); + if (tag == 64019) width = getint(type); + if (tag == 64020) height = (getint(type)+1) & -2; fseek (ifp, save, SEEK_SET); } } @@ -5238,6 +5240,12 @@ FORC4 cblack[filters >> (c << 1) & 3] = dblack[c]; black = 0; break; + case 50715: /* BlackLevelDeltaH */ + case 50716: /* BlackLevelDeltaV */ + for (num=i=0; i < (int) len; i++) + num += getreal(type); + black += num/len + 0.5; + break; case 50717: /* WhiteLevel */ maximum = getint(type); break; @@ -6471,10 +6479,14 @@ { 8785,-2529,-1033,-7639,15624,2112,-1783,2300,7817 } }, { "OLYMPUS E-520", 0, 0xfd2, { 8344,-2322,-1020,-7596,15635,2048,-1748,2269,7287 } }, - { "OLYMPUS E-620", 0, 0xfb9, + { "OLYMPUS E-600", 0, 0xfaf, + { 8453,-2198,-1092,-7609,15681,2008,-1725,2337,7824 } }, + { "OLYMPUS E-620", 0, 0xfaf, { 8453,-2198,-1092,-7609,15681,2008,-1725,2337,7824 } }, { "OLYMPUS E-P1", 0, 0xffd, { 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-PL1", 0, 0, { 11408,-4289,-1215,-4286,12385,2118,-387,1467,7787 } }, { "OLYMPUS SP350", 0, 0, @@ -6547,7 +6559,7 @@ { 10113,-3400,-1114,-4765,12683,2317,-377,1437,6710 } }, { "Panasonic DMC-G1", 15, 0xfff, { 8199,-2065,-1056,-8124,16156,2033,-2458,3022,7220 } }, - { "Panasonic DMC-G2", 0, 0, + { "Panasonic DMC-G2", 15, 0xf3c, { 10113,-3400,-1114,-4765,12683,2317,-377,1437,6710 } }, { "Panasonic DMC-GF1", 15, 0xf92, { 7888,-1902,-1011,-8106,16085,2099,-2353,2866,7330 } }, @@ -6587,7 +6599,9 @@ { 6038,-1484,-578,-9146,16746,2513,-875,746,7217 } }, { "SONY DSLR-A380", 0, 0, { 6038,-1484,-579,-9145,16746,2512,-875,746,7218 } }, - { "SONY DSLR-A5", 126, 0, + { "SONY DSLR-A450", 128, 0xfeb, + { 4950,-580,-103,-5228,12542,3029,-709,1435,7371 } }, + { "SONY DSLR-A5", 128, 0xfeb, { 4950,-580,-103,-5228,12542,3029,-709,1435,7371 } }, { "SONY DSLR-A700", 126, 0, { 5775,-805,-359,-8574,16295,2391,-1943,2341,7249 } }, @@ -7682,6 +7696,7 @@ load_raw = &CLASS unpacked_load_raw; load_flags = 4; } + zero_is_bad = 1; switch (width) { case 2568: adobe_coeff ("Panasonic","DMC-LC1"); break; @@ -7695,7 +7710,6 @@ top_margin = 13; filters = 0x49494949; } - zero_is_bad = 1; adobe_coeff ("Panasonic","DMC-FZ8"); break; case 3213: width -= 27; @@ -7703,11 +7717,9 @@ width -= 10; load_flags = 2; filters = 0x49494949; - zero_is_bad = 1; adobe_coeff ("Panasonic","DMC-L1"); break; case 3304: width -= 17; - zero_is_bad = 1; adobe_coeff ("Panasonic","DMC-FZ30"); break; case 3330: width += 43; @@ -7719,7 +7731,6 @@ if (height > 2480) height = 2480 - (top_margin = 10); filters = 0x49494949; - zero_is_bad = 1; adobe_coeff ("Panasonic","DMC-FZ18"); break; case 3690: height -= 2; @@ -7731,7 +7742,6 @@ top_margin = 15; else filters = 0x49494949; left_margin += 17; - zero_is_bad = 1; adobe_coeff ("Panasonic","DMC-FZ50"); break; case 3710: width = 3682; @@ -7750,7 +7760,6 @@ width -= 22; left_margin = 6; load_flags = 2; - zero_is_bad = 1; adobe_coeff ("Panasonic","DMC-LX1"); break; case 4060: width = 3982; @@ -7762,9 +7771,7 @@ adobe_coeff ("Panasonic","DMC-FZ35"); break; } filters = 0x49494949; - if (!strcmp(model,"DMC-GH1")) break; - zero_is_bad = 1; - adobe_coeff ("Panasonic","DMC-G1"); break; + break; case 4172: case 4396: width -= 28; @@ -7887,14 +7894,7 @@ read_shorts (curve, 256); } else gamma_curve (0, 3.875, 1, 255); load_raw = &CLASS eight_bit_load_raw; - } else if (!strcmp(model,"EASYSHARE Z1015 IS")) { - height = 2742; - width = 3664; - goto ezshare; - } else if (!strcmp(model,"EasyShare Z980")) { - height = 3006; - width = 4016; -ezshare: + } else if (!strncasecmp(model,"EasyShare",9)) { data_offset = 0x15000; load_raw = &CLASS packed_load_raw; } else if (!strcasecmp(make,"KODAK")) { @@ -8815,8 +8815,8 @@ } else if (!is_raw) dcraw_message (DCRAW_ERROR,_("Cannot decode file %s\n"), ifname); if (!is_raw) goto next; - shrink = filters && - (half_size || threshold || aber[0] != 1 || aber[2] != 1); + shrink = filters && (half_size || + ((threshold || aber[0] != 1 || aber[2] != 1) && !identify_only)); iheight = (height + shrink) >> shrink; iwidth = (width + shrink) >> shrink; if (identify_only) { ------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ ufraw-cvs mailing list ufraw-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ufraw-cvs