Corrected DCRAW camera color matrices
on behalf of Colin, see issue #930
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
--- C:/GCC/RT/RTSrc/rtengine/dcraw.c Tue Aug 16 06:59:22 2011
|
||||
+++ C:/GCC/RT/RTSrc/rtengine/dcraw.cc Thu Aug 25 15:50:54 2011
|
||||
+++ C:/GCC/RT/RTSrc/rtengine/dcraw.cc Thu Sep 01 18:46:35 2011
|
||||
@@ -1,3 +1,14 @@
|
||||
+/*RT*/#include <glib.h>
|
||||
+/*RT*/#include <glib/gstdio.h>
|
||||
@@ -306,14 +306,36 @@
|
||||
if (parse_tiff (save+6)) apply_tiff();
|
||||
fseek (ifp, save+len, SEEK_SET);
|
||||
}
|
||||
@@ -6181,8 +6202,8 @@
|
||||
{ 4716,603,-830,-7798,15474,2480,-1496,1937,6651 } },
|
||||
{ "Canon EOS 5D", 0, 0xe6c,
|
||||
{ 6347,-479,-972,-8297,15954,2480,-1968,2131,7649 } },
|
||||
- { "Canon EOS 7D", 0, 0x3510,
|
||||
- { 6844,-996,-856,-3876,11761,2396,-593,1772,6198 } },
|
||||
+ { "Canon EOS 7D", 0, 0x3510, /* RT - Colin Walker */
|
||||
+ { 8937,-1470,-939,-2286,10178,2456,-404,1267,8877 } },
|
||||
{ "Canon EOS 10D", 0, 0xfa0,
|
||||
{ 8197,-2000,-1118,-6714,14335,2592,-2536,3178,8266 } },
|
||||
{ "Canon EOS 20Da", 0, 0,
|
||||
@@ -6195,8 +6216,8 @@
|
||||
{ 6071,-747,-856,-7653,15365,2441,-2025,2553,7315 } },
|
||||
{ "Canon EOS 50D", 0, 0x3d93,
|
||||
{ 4920,616,-593,-6493,13964,2784,-1774,3178,7005 } },
|
||||
- { "Canon EOS 60D", 0, 0x2ff7,
|
||||
- { 6719,-994,-925,-4408,12426,2211,-887,2129,6051 } },
|
||||
+ { "Canon EOS 60D", 0, 0x2ff7, /* RT - Colin Walker */
|
||||
+ { 5678,-179,-718,-4389,12381,2243,-869,1819,6380 } },
|
||||
{ "Canon EOS 300D", 0, 0xfa0,
|
||||
{ 8197,-2000,-1118,-6714,14335,2592,-2536,3178,8266 } },
|
||||
{ "Canon EOS 350D", 0, 0xfff,
|
||||
@@ -6367,8 +6388,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 X100", 0, 0,
|
||||
- { 12161,-4457,-1069,-5034,12874,2400,-795,1724,6904 } },
|
||||
+ { "FUJIFILM FinePix X100", 0, 0, /* RT - Colin Walker */
|
||||
+ { 11025,-3498,-758,-4528,12377,2410,-502,1159,7267 } },
|
||||
+ { "FUJIFILM FinePix X100", 0, 0,
|
||||
+ { 10841,-3288,-807,-4652,12552,2344,-642,1355,7206 } },
|
||||
{ "Imacon Ixpress", 0, 0, /* DJC */
|
||||
{ 7025,-1415,-704,-5188,13765,1424,-1248,2742,6038 } },
|
||||
{ "KODAK NC2000", 0, 0,
|
||||
@@ -328,35 +350,77 @@
|
||||
{ "NIKON D70", 0, 0,
|
||||
{ 7732,-2422,-789,-8238,15884,2498,-859,783,7330 } },
|
||||
{ "NIKON D80", 0, 0,
|
||||
@@ -6691,20 +6712,20 @@
|
||||
@@ -6581,12 +6602,12 @@
|
||||
{ 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-P3", 0, 0, /* DJC */
|
||||
- { 7488,-3021,-55,-2377,8348,4029,-816,2405,6327 } },
|
||||
+ { "OLYMPUS E-P1", 0, 0xffd, /* RT - Colin Walker */
|
||||
+ { 8834,-2344,-804,-4691,12503,2448,-978,1919,7603 } },
|
||||
+ { "OLYMPUS E-P2", 0, 0xffd, /* RT - Colin Walker */
|
||||
+ { 7758,-1619,-800,-5002,12886,2349,-985,1964,8305 } },
|
||||
+ { "OLYMPUS E-P3", 0, 0, /* RT - Colin Walker */
|
||||
+ { 7041,-1794,-336,-3790,11192,2984,-1364,2625,6217 } },
|
||||
{ "OLYMPUS E-PL1s", 0, 0,
|
||||
{ 11409,-3872,-1393,-4572,12757,2003,-709,1810,7415 } },
|
||||
{ "OLYMPUS E-PL1", 0, 0,
|
||||
@@ -6683,30 +6704,32 @@
|
||||
{ 10909,-4295,-948,-1333,9306,2399,22,1738,4582 } },
|
||||
{ "LEICA D-LUX 5", 143, 0,
|
||||
{ 10909,-4295,-948,-1333,9306,2399,22,1738,4582 } },
|
||||
+ { "Leica Camera AG M9 Digital Camera", 0, 0, /* RT */
|
||||
+ { 7181,-1706,-55,-3557,11409,2450,-621,2072,7533 } },
|
||||
{ "Panasonic DMC-FZ100", 143, 0xfff,
|
||||
{ 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-FX150", 15, 0xfff,
|
||||
{ 9082,-2907,-925,-6119,13377,3058,-1797,2641,5609 } },
|
||||
{ "Panasonic DMC-G10", 0, 0,
|
||||
{ 10113,-3400,-1114,-4765,12683,2317,-377,1437,6710 } },
|
||||
- { "Panasonic DMC-G10", 0, 0,
|
||||
- { 10113,-3400,-1114,-4765,12683,2317,-377,1437,6710 } },
|
||||
- { "Panasonic DMC-G1", 15, 0xf94,
|
||||
- { 8199,-2065,-1056,-8124,16156,2033,-2458,3022,7220 } },
|
||||
+ { "Panasonic DMC-G1", 15, 0xf94, /* RT */
|
||||
+ { 7844,-1989,-569,-4885,12294,2929,-983,2065,7049 } },
|
||||
{ "Panasonic DMC-G2", 15, 0xf3c,
|
||||
{ 10113,-3400,-1114,-4765,12683,2317,-377,1437,6710 } },
|
||||
- { "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, /* RT - Colin Walker */
|
||||
+ { 6051,-1406,-671,-4015,11505,2868,-1654,2667,6219 } },
|
||||
{ "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 */
|
||||
- { "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-GH1", 15, 0xf92,
|
||||
- { 6299,-1466,-532,-6535,13852,2969,-2331,3112,5984 } },
|
||||
+ { 8407,-3261,-502,-3997,10651,3347,-1095,2742,7294 } },
|
||||
+ { "Panasonic DMC-GH1", 15, 0xf92, /* RT */
|
||||
+ { 6821,-1786,-547,-3999,11389,2989,-1173,2586,5566 } },
|
||||
{ "Panasonic DMC-GH2", 15, 0xf95,
|
||||
{ 7780,-2410,-806,-3913,11724,2484,-1018,2390,5298 } },
|
||||
- { "Panasonic DMC-GH2", 15, 0xf95,
|
||||
- { 7780,-2410,-806,-3913,11724,2484,-1018,2390,5298 } },
|
||||
+ { "Panasonic DMC-G10", 15, 0xf3c, /* RT - Colin Walker */
|
||||
+ { 8310,-1811,-960,-4941,12990,2151,-1378,2468,6860 } },
|
||||
+ { "Panasonic DMC-G1", 15, 0xf94, /* RT - Colin Walker*/
|
||||
+ { 7477,-1615,-651,-5016,12769,2506,-1380,2475,7240 } },
|
||||
+ { "Panasonic DMC-G2", 15, 0xf3c, /* RT - Colin Walker */
|
||||
+ { 8310,-1811,-960,-4941,12990,2151,-1378,2468,6860 } },
|
||||
+ { "Panasonic DMC-G3", 143, 0xfff, /* RT - Colin Walker */
|
||||
+ { 6051,-1406,-671,-4015,11505,2868,-1654,2667,6219 } },
|
||||
+ { "Panasonic DMC-GF1", 15, 0xf92, /* RT - Colin Walker */
|
||||
+ { 7863,-2080,-668,-4623,12331,2578,-1020,2066,7266 } },
|
||||
+ { "Panasonic DMC-GF2", 143, 0xfff, /* RT - Colin Walker */
|
||||
+ { 7694,-1791,-745,-4917,12818,2332,-1221,2322,7197 } },
|
||||
+ { "Panasonic DMC-GF3", 143, 0xfff, /* RT - Colin Walker */
|
||||
+ { 8074,-1846,-861,-5026,12999,2239,-1320,2375,7422 } },
|
||||
+ { "Panasonic DMC-GH1", 15, 0xf92, /* RT - Colin Walker */
|
||||
+ { 6360,-1557,-375,-4201,11504,3086,-1378,2518,5843 } },
|
||||
+ { "Panasonic DMC-GH2", 15, 0xf95, /* RT - Colin Walker */
|
||||
+ { 6855,-1765,-456,-4223,11600,2996,-1450,2602,5761 } },
|
||||
{ "Phase One H 20", 0, 0, /* DJC */
|
||||
@@ -6769,8 +6790,8 @@
|
||||
{ 1313,1855,-109,-6715,15908,808,-327,1840,6020 } },
|
||||
{ "Phase One P 2", 0, 0,
|
||||
@@ -6769,8 +6792,8 @@
|
||||
{ 6907,-1256,-645,-4940,12621,2320,-1710,2581,6230 } },
|
||||
{ "SONY NEX-5", 116, 0, /* DJC */
|
||||
{ 6807,-1350,-342,-4216,11649,2567,-1089,2001,6420 } },
|
||||
@@ -367,7 +431,7 @@
|
||||
{ "SONY NEX", 128, 0, /* Adobe's matrix */
|
||||
{ 6549,-1550,-436,-4880,12435,2753,-854,1868,6976 } },
|
||||
{ "SONY SLT-A33", 128, 0,
|
||||
@@ -6778,7 +6799,9 @@
|
||||
@@ -6778,7 +6801,9 @@
|
||||
{ "SONY SLT-A35", 128, 0, /* DJC */
|
||||
{ 4504,-1495,115,-3507,9101,4407,-669,1844,6806 } },
|
||||
{ "SONY SLT-A55", 128, 0,
|
||||
@@ -378,7 +442,7 @@
|
||||
};
|
||||
double cam_xyz[4][3];
|
||||
char name[130];
|
||||
@@ -7021,6 +7044,12 @@
|
||||
@@ -7021,6 +7046,12 @@
|
||||
fread (head, 1, 32, ifp);
|
||||
fseek (ifp, 0, SEEK_END);
|
||||
flen = fsize = ftell(ifp);
|
||||
@@ -391,7 +455,7 @@
|
||||
if ((cp = (char *) memmem (head, 32, "MMMM", 4)) ||
|
||||
(cp = (char *) memmem (head, 32, "IIII", 4))) {
|
||||
parse_phase_one (cp-head);
|
||||
@@ -7028,6 +7057,8 @@
|
||||
@@ -7028,6 +7059,8 @@
|
||||
} else if (order == 0x4949 || order == 0x4d4d) {
|
||||
if (!memcmp (head+6,"HEAPCCDR",8)) {
|
||||
data_offset = hlen;
|
||||
@@ -400,7 +464,7 @@
|
||||
parse_ciff (hlen, flen - hlen);
|
||||
} else if (parse_tiff(0)) apply_tiff();
|
||||
} else if (!memcmp (head,"\xff\xd8\xff\xe1",4) &&
|
||||
@@ -7071,6 +7102,7 @@
|
||||
@@ -7071,6 +7104,7 @@
|
||||
fseek (ifp, 100+28*(shot_select > 0), SEEK_SET);
|
||||
parse_tiff (data_offset = get4());
|
||||
parse_tiff (thumb_offset+12);
|
||||
@@ -408,7 +472,7 @@
|
||||
apply_tiff();
|
||||
} else if (!memcmp (head,"RIFF",4)) {
|
||||
fseek (ifp, 0, SEEK_SET);
|
||||
@@ -7116,8 +7148,7 @@
|
||||
@@ -7116,8 +7150,7 @@
|
||||
parse_redcine();
|
||||
load_raw = &CLASS redcine_load_raw;
|
||||
gamma_curve (1/2.4, 12.92, 1, 4095);
|
||||
@@ -418,7 +482,7 @@
|
||||
parse_rollei();
|
||||
else if (!memcmp (head,"PWAD",4))
|
||||
parse_sinar_ia();
|
||||
@@ -7172,7 +7203,7 @@
|
||||
@@ -7172,7 +7205,7 @@
|
||||
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"))
|
||||
@@ -427,7 +491,7 @@
|
||||
if (!strcmp(model,"K-5"))
|
||||
{ left_margin = 10; width = 4950; filters = 0x16161616; }
|
||||
if (!strcmp(model,"K-7"))
|
||||
@@ -8791,13 +8822,13 @@
|
||||
@@ -8791,13 +8824,13 @@
|
||||
FORCC ppm [col*colors+c] = curve[image[soff][c]] >> 8;
|
||||
else FORCC ppm2[col*colors+c] = curve[image[soff][c]];
|
||||
if (output_bps == 16 && !output_tiff && htons(0x55aa) != 0x55aa)
|
||||
@@ -443,7 +507,7 @@
|
||||
{
|
||||
int arg, status=0;
|
||||
int timestamp_only=0, thumbnail_only=0, identify_only=0;
|
||||
@@ -8910,7 +8941,7 @@
|
||||
@@ -8910,7 +8943,7 @@
|
||||
case 'i': identify_only = 1; break;
|
||||
case 'c': write_to_stdout = 1; break;
|
||||
case 'v': verbose = 1; break;
|
||||
@@ -452,7 +516,7 @@
|
||||
case 'f': four_color_rgb = 1; break;
|
||||
case 'A': FORC4 greybox[c] = atoi(argv[arg++]);
|
||||
case 'a': use_auto_wb = 1; break;
|
||||
@@ -9173,3 +9204,4 @@
|
||||
@@ -9173,3 +9206,4 @@
|
||||
}
|
||||
return status;
|
||||
}
|
||||
|
Reference in New Issue
Block a user