Base color profiles for Nikon D800 and Canon 5D Mark III

see issue 1378
This commit is contained in:
Oliver Duis
2012-05-28 14:10:40 +02:00
parent c995b8309c
commit e10da9120c
2 changed files with 38 additions and 26 deletions

View File

@@ -1,5 +1,5 @@
--- dcraw.c 2012-04-22 10:27:51.049670938 +0400
+++ dcraw.cc 2012-05-02 00:00:16.799334397 +0400
--- C:/GCC/RT/RTSrc/rtengine/dcraw.c Thu Mar 29 14:38:54 2012
+++ C:/GCC/RT/RTSrc/rtengine/dcraw.cc Sun May 27 12:36:20 2012
@@ -1,3 +1,15 @@
+/*RT*/#include <glib.h>
+/*RT*/#include <glib/gstdio.h>
@@ -408,8 +408,12 @@
} table[] = {
{ "AGFAPHOTO DC-833m", 0, 0, /* DJC */
{ 11438,-3762,-1115,-2409,9914,2497,-1227,2295,5300 } },
@@ -6181,36 +6205,36 @@
@@ -6179,38 +6203,40 @@
{ 9805,-2689,-1312,-5803,13064,3068,-2438,3075,8775 } },
{ "Canon EOS D60", 0, 0xfa0,
{ 6188,-1341,-890,-7168,14489,2937,-2640,3228,8483 } },
+ { "Canon EOS 5D Mark III", 0, 0x3a98, /* RT */
+ { 6722,-635,-963,-4287,12460,2028,-908,2162,5668 } },
{ "Canon EOS 5D Mark II", 0, 0x3cf0,
{ 4716,603,-830,-7798,15474,2480,-1496,1937,6651 } },
- { "Canon EOS 5D", 0, 0xe6c,
@@ -459,7 +463,7 @@
{ "Canon EOS 600D", 0, 0x3510,
{ 6461,-907,-882,-4300,12184,2378,-819,1944,5931 } },
{ "Canon EOS 1000D", 0, 0xe43,
@@ -6223,8 +6247,8 @@
@@ -6223,8 +6249,8 @@
{ 6517,-602,-867,-8180,15926,2378,-1618,1771,7633 } },
{ "Canon EOS-1D Mark IV", 0, 0x3bb0,
{ 6014,-220,-795,-4109,12014,2361,-561,1824,5787 } },
@@ -470,7 +474,7 @@
{ "Canon EOS-1D Mark II N", 0, 0xe80,
{ 6240,-466,-822,-8180,15825,2500,-1801,1938,8042 } },
{ "Canon EOS-1D Mark II", 0, 0xe80,
@@ -6241,12 +6265,12 @@
@@ -6241,12 +6267,12 @@
{ -5300,9846,1776,3436,684,3939,-5540,9879,6200,-1404,11175,217 } },
{ "Canon PowerShot A5", 0, 0,
{ -4801,9475,1952,2926,1611,4094,-5259,10164,5947,-1554,10883,547 } },
@@ -487,7 +491,7 @@
{ "Canon PowerShot G1", 0, 0,
{ -4778,9467,2172,4743,-1141,4344,-5146,9908,6077,-1566,11051,557 } },
{ "Canon PowerShot G2", 0, 0,
@@ -6302,7 +6326,7 @@
@@ -6302,7 +6328,7 @@
{ "Canon PowerShot SX1 IS", 0, 0,
{ 6578,-259,-502,-5974,13030,3309,-308,1058,4970 } },
{ "Canon PowerShot SX110 IS", 0, 0, /* DJC */
@@ -496,7 +500,7 @@
{ "CASIO EX-S20", 0, 0, /* DJC */
{ 11634,-3924,-1128,-4968,12954,2015,-1588,2648,7206 } },
{ "CASIO EX-Z750", 0, 0, /* DJC */
@@ -6373,8 +6397,8 @@
@@ -6373,8 +6399,8 @@
{ 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
{ "FUJIFILM FinePix F600EXR", 0, 0,
{ 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
@@ -507,7 +511,7 @@
{ "FUJIFILM X10", 0, 0,
{ 13509,-6199,-1254,-4430,12733,1865,-331,1441,5022 } },
{ "Imacon Ixpress", 0, 0, /* DJC */
@@ -6475,22 +6499,22 @@
@@ -6475,22 +6501,22 @@
{ 7702,-2245,-975,-9114,17242,1875,-2679,3055,8521 } },
{ "NIKON D1", 0, 0, /* multiplied by 2.218750, 1.0, 1.148438 */
{ 16772,-4726,-2141,-7611,15713,1972,-2846,3494,9521 } },
@@ -538,7 +542,7 @@
{ "NIKON D3", 0, 0,
{ 8139,-2171,-663,-8747,16541,2295,-1925,2008,8093 } },
{ "NIKON D40X", 0, 0,
@@ -6505,10 +6529,10 @@
@@ -6505,12 +6531,14 @@
{ 7732,-2422,-789,-8238,15884,2498,-859,783,7330 } },
{ "NIKON D60", 0, 0,
{ 8736,-2458,-935,-9075,16894,2251,-1354,1242,8263 } },
@@ -552,8 +556,12 @@
+ { 8364,-2503,-352,-6307,14026,2492,-1134,1512,8156 } },
{ "NIKON D70", 0, 0,
{ 7732,-2422,-789,-8238,15884,2498,-859,783,7330 } },
+ { "NIKON D800", 0, 0, /* RT */
+ { 7866,-2108,-555,-4869,12483,2681,-1176,2069,7501 } },
{ "NIKON D80", 0, 0,
@@ -6569,8 +6593,8 @@
{ 8629,-2410,-883,-9055,16940,2171,-1490,1363,8520 } },
{ "NIKON D90", 0, 0xf00,
@@ -6569,8 +6597,8 @@
{ 7828,-1761,-348,-5788,14071,1830,-2853,4518,6557 } },
{ "OLYMPUS E-330", 0, 0,
{ 8961,-2473,-1084,-7979,15990,2067,-2319,3035,8249 } },
@@ -564,7 +572,7 @@
{ "OLYMPUS E-3", 0, 0xf99,
{ 9487,-2875,-1115,-7533,15606,2010,-1618,2100,7389 } },
{ "OLYMPUS E-400", 0, 0,
@@ -6587,26 +6611,26 @@
@@ -6587,26 +6615,26 @@
{ 8785,-2529,-1033,-7639,15624,2112,-1783,2300,7817 } },
{ "OLYMPUS E-520", 0, 0xfd2,
{ 8344,-2322,-1020,-7596,15635,2048,-1748,2269,7287 } },
@@ -607,7 +615,7 @@
{ "OLYMPUS E-PM1", 0, 0,
{ 7575,-2159,-571,-3722,11341,2725,-1434,2819,6271 } },
{ "OLYMPUS SP350", 0, 0,
@@ -6623,8 +6647,8 @@
@@ -6623,8 +6651,8 @@
{ 10915,-3677,-982,-5587,12986,2911,-1168,1968,6223 } },
{ "OLYMPUS SP570UZ", 0, 0,
{ 11522,-4044,-1146,-4736,12172,2904,-988,1829,6039 } },
@@ -618,7 +626,7 @@
{ "PENTAX *ist DL2", 0, 0,
{ 10504,-2438,-1189,-8603,16207,2531,-1022,863,12242 } },
{ "PENTAX *ist DL", 0, 0,
@@ -6641,8 +6665,8 @@
@@ -6641,8 +6669,8 @@
{ 11095,-3157,-1324,-8377,15834,2720,-1108,947,11688 } },
{ "PENTAX K20D", 0, 0,
{ 9427,-2714,-868,-7493,16092,1373,-2199,3264,7180 } },
@@ -629,7 +637,7 @@
{ "PENTAX K2000", 0, 0,
{ 11057,-3604,-1155,-5152,13046,2329,-282,375,8104 } },
{ "PENTAX K-m", 0, 0,
@@ -6699,34 +6723,36 @@
@@ -6699,34 +6727,36 @@
{ 10909,-4295,-948,-1333,9306,2399,22,1738,4582 } },
{ "LEICA D-LUX 5", 143, 0,
{ 10909,-4295,-948,-1333,9306,2399,22,1738,4582 } },
@@ -686,7 +694,7 @@
{ "Panasonic DMC-GX1", 143, 0,
{ 6763,-1919,-863,-3868,11515,2684,-1216,2387,5879 } },
{ "Phase One H 20", 0, 0, /* DJC */
@@ -6787,24 +6813,20 @@
@@ -6787,24 +6817,20 @@
{ 5932,-1492,-411,-4813,12285,2856,-741,1524,6739 } },
{ "SONY DSLR-A5", 128, 0xfeb,
{ 4950,-580,-103,-5228,12542,3029,-709,1435,7371 } },
@@ -723,7 +731,7 @@
{ "SONY NEX-7", 128, 0,
{ 5491,-1192,-363,-4951,12342,2948,-911,1722,7192 } },
{ "SONY SLT-A33", 128, 0,
@@ -6815,8 +6837,8 @@
@@ -6815,8 +6841,8 @@
{ 5932,-1492,-411,-4813,12285,2856,-741,1524,6739 } },
{ "SONY SLT-A65", 128, 0,
{ 5491,-1192,-363,-4951,12342,2948,-911,1722,7192 } },
@@ -734,7 +742,7 @@
};
double cam_xyz[4][3];
char name[130];
@@ -7060,6 +7082,12 @@
@@ -7060,6 +7086,12 @@
fread (head, 1, 32, ifp);
fseek (ifp, 0, SEEK_END);
flen = fsize = ftell(ifp);
@@ -747,7 +755,7 @@
if ((cp = (char *) memmem (head, 32, "MMMM", 4)) ||
(cp = (char *) memmem (head, 32, "IIII", 4))) {
parse_phase_one (cp-head);
@@ -7067,6 +7095,8 @@
@@ -7067,6 +7099,8 @@
} else if (order == 0x4949 || order == 0x4d4d) {
if (!memcmp (head+6,"HEAPCCDR",8)) {
data_offset = hlen;
@@ -756,7 +764,7 @@
parse_ciff (hlen, flen - hlen);
} else if (parse_tiff(0)) apply_tiff();
} else if (!memcmp (head,"\xff\xd8\xff\xe1",4) &&
@@ -7110,6 +7140,7 @@
@@ -7110,6 +7144,7 @@
fseek (ifp, 100+28*(shot_select > 0), SEEK_SET);
parse_tiff (data_offset = get4());
parse_tiff (thumb_offset+12);
@@ -764,7 +772,7 @@
apply_tiff();
} else if (!memcmp (head,"RIFF",4)) {
fseek (ifp, 0, SEEK_SET);
@@ -7211,7 +7242,7 @@
@@ -7211,7 +7246,7 @@
if (height == 3136 && width == 4864) /* Pentax K20D and Samsung GX20 */
{ height = 3124; width = 4688; filters = 0x16161616; }
if (width == 4352 && (!strcmp(model,"K-r") || !strcmp(model,"K-x")))
@@ -773,7 +781,7 @@
if (width >= 4960 && !strcmp(model,"K-5"))
{ left_margin = 10; width = 4950; filters = 0x16161616; }
if (width == 4736 && !strcmp(model,"K-7"))
@@ -7585,6 +7616,11 @@
@@ -7585,6 +7620,11 @@
width = 5640;
top_margin = 20;
left_margin = 62;
@@ -785,7 +793,7 @@
} else if (!strcmp(model,"D1")) {
cam_mul[0] *= 256/527.0;
cam_mul[2] *= 256/317.0;
@@ -8553,7 +8589,7 @@
@@ -8553,7 +8593,7 @@
for (j=0; j < 3; j++) {
for (num = k=0; k < 3; k++)
num += xyzd50_srgb[i][k] * inverse[j][k];
@@ -794,7 +802,7 @@
}
for (i=0; i < phead[0]/4; i++)
oprof[i] = htonl(oprof[i]);
@@ -8779,7 +8815,7 @@
@@ -8779,7 +8819,7 @@
strncpy (th->desc, desc, 512);
strncpy (th->make, make, 64);
strncpy (th->model, model, 64);
@@ -803,7 +811,7 @@
t = localtime (&timestamp);
sprintf (th->date, "%04d:%02d:%02d %02d:%02d:%02d",
t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);
@@ -8852,13 +8888,13 @@
@@ -8852,13 +8892,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)
@@ -819,7 +827,7 @@
{
int arg, status=0;
int timestamp_only=0, thumbnail_only=0, identify_only=0;
@@ -8971,7 +9007,7 @@
@@ -8971,7 +9011,7 @@
case 'i': identify_only = 1; break;
case 'c': write_to_stdout = 1; break;
case 'v': verbose = 1; break;
@@ -828,7 +836,7 @@
case 'f': four_color_rgb = 1; break;
case 'A': FORC4 greybox[c] = atoi(argv[arg++]);
case 'a': use_auto_wb = 1; break;
@@ -9234,3 +9270,11 @@
@@ -9234,3 +9274,11 @@
}
return status;
}