updated dcraw.patch file
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
--- dcraw.c 2015-11-12 00:28:59 +0000
|
||||
+++ dcraw.cc 2015-11-12 00:28:59 +0000
|
||||
--- dcraw.c 2015-11-24 19:17:16 +0000
|
||||
+++ dcraw.cc 2015-11-24 20:04:38 +0000
|
||||
@@ -1,3 +1,15 @@
|
||||
+/*RT*/#include <glib.h>
|
||||
+/*RT*/#include <glib/gstdio.h>
|
||||
@@ -1282,16 +1282,21 @@
|
||||
|
||||
fseek (ifp, base, SEEK_SET);
|
||||
order = get2();
|
||||
@@ -6191,7 +6206,7 @@
|
||||
@@ -6191,7 +6206,12 @@
|
||||
case 8: load_raw = &CLASS eight_bit_load_raw; break;
|
||||
case 12: if (tiff_ifd[raw].phint == 2)
|
||||
load_flags = 6;
|
||||
- load_raw = &CLASS packed_load_raw; break;
|
||||
+ load_raw = &CLASS packed_load_raw; break;
|
||||
+ if(tiff_ifd[raw].comp != 1) {
|
||||
+ load_raw = &CLASS packed_load_raw;
|
||||
+ break;
|
||||
+ } else {
|
||||
+ tiff_bps = 14;
|
||||
+ }
|
||||
case 14: load_flags = 0;
|
||||
case 16: load_raw = &CLASS unpacked_load_raw;
|
||||
if (!strncmp(make,"OLYMPUS",7) &&
|
||||
@@ -6230,6 +6245,7 @@
|
||||
@@ -6230,6 +6250,7 @@
|
||||
case 32803: load_raw = &CLASS kodak_65000_load_raw;
|
||||
}
|
||||
case 32867: case 34892: break;
|
||||
@@ -1299,7 +1304,7 @@
|
||||
default: is_raw = 0;
|
||||
}
|
||||
if (!dng_version)
|
||||
@@ -6315,7 +6331,7 @@
|
||||
@@ -6315,7 +6336,7 @@
|
||||
{
|
||||
const char *file, *ext;
|
||||
char *jname, *jfile, *jext;
|
||||
@@ -1308,7 +1313,7 @@
|
||||
|
||||
ext = strrchr (ifname, '.');
|
||||
file = strrchr (ifname, '/');
|
||||
@@ -6337,13 +6353,14 @@
|
||||
@@ -6337,13 +6358,14 @@
|
||||
} else
|
||||
while (isdigit(*--jext)) {
|
||||
if (*jext != '9') {
|
||||
@@ -1325,7 +1330,7 @@
|
||||
if (verbose)
|
||||
fprintf (stderr,_("Reading metadata from %s ...\n"), jname);
|
||||
parse_tiff (12);
|
||||
@@ -6620,6 +6637,7 @@
|
||||
@@ -6620,6 +6642,7 @@
|
||||
load_raw = ph1.format < 3 ?
|
||||
&CLASS phase_one_load_raw : &CLASS phase_one_load_raw_c;
|
||||
maximum = 0xffff;
|
||||
@@ -1333,7 +1338,7 @@
|
||||
strcpy (make, "Phase One");
|
||||
if (model[0]) return;
|
||||
switch (raw_height) {
|
||||
@@ -6688,7 +6706,11 @@
|
||||
@@ -6688,7 +6711,11 @@
|
||||
order = get2();
|
||||
hlen = get4();
|
||||
if (get4() == 0x48454150) /* "HEAP" */
|
||||
@@ -1345,7 +1350,7 @@
|
||||
if (parse_tiff (save+6)) apply_tiff();
|
||||
fseek (ifp, save+len, SEEK_SET);
|
||||
}
|
||||
@@ -6960,7 +6982,8 @@
|
||||
@@ -6960,7 +6987,8 @@
|
||||
{
|
||||
static const struct {
|
||||
const char *prefix;
|
||||
@@ -1355,7 +1360,7 @@
|
||||
} table[] = {
|
||||
{ "AgfaPhoto DC-833m", 0, 0, /* DJC */
|
||||
{ 11438,-3762,-1115,-2409,9914,2497,-1227,2295,5300 } },
|
||||
@@ -7919,6 +7942,33 @@
|
||||
@@ -7919,6 +7947,33 @@
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -1389,7 +1394,7 @@
|
||||
}
|
||||
|
||||
void CLASS simple_coeff (int index)
|
||||
@@ -8229,7 +8279,7 @@
|
||||
@@ -8229,7 +8284,7 @@
|
||||
tiff_flip = flip = filters = UINT_MAX; /* unknown */
|
||||
raw_height = raw_width = fuji_width = fuji_layout = cr2_slice[0] = 0;
|
||||
maximum = height = width = top_margin = left_margin = 0;
|
||||
@@ -1398,7 +1403,7 @@
|
||||
iso_speed = shutter = aperture = focal_len = unique_id = 0;
|
||||
tiff_nifds = 0;
|
||||
memset (tiff_ifd, 0, sizeof tiff_ifd);
|
||||
@@ -8261,13 +8311,20 @@
|
||||
@@ -8261,13 +8316,20 @@
|
||||
fread (head, 1, 32, ifp);
|
||||
fseek (ifp, 0, SEEK_END);
|
||||
flen = fsize = ftell(ifp);
|
||||
@@ -1421,7 +1426,7 @@
|
||||
parse_ciff (hlen, flen-hlen, 0);
|
||||
load_raw = &CLASS canon_load_raw;
|
||||
} else if (parse_tiff(0)) apply_tiff();
|
||||
@@ -8313,6 +8370,7 @@
|
||||
@@ -8313,6 +8375,7 @@
|
||||
fseek (ifp, 100+28*(shot_select > 0), SEEK_SET);
|
||||
parse_tiff (data_offset = get4());
|
||||
parse_tiff (thumb_offset+12);
|
||||
@@ -1429,7 +1434,7 @@
|
||||
apply_tiff();
|
||||
} else if (!memcmp (head,"RIFF",4)) {
|
||||
fseek (ifp, 0, SEEK_SET);
|
||||
@@ -8426,9 +8484,10 @@
|
||||
@@ -8426,9 +8489,10 @@
|
||||
if (make[0] == 0) parse_smal (0, flen);
|
||||
if (make[0] == 0) {
|
||||
parse_jpeg(0);
|
||||
@@ -1443,7 +1448,7 @@
|
||||
strcpy (make, "OmniVision");
|
||||
data_offset = ftell(ifp) + 0x8000-32;
|
||||
width = raw_width;
|
||||
@@ -8437,6 +8496,7 @@
|
||||
@@ -8437,6 +8501,7 @@
|
||||
filters = 0x16161616;
|
||||
} else is_raw = 0;
|
||||
}
|
||||
@@ -1451,7 +1456,7 @@
|
||||
|
||||
for (i=0; i < sizeof corp / sizeof *corp; i++)
|
||||
if (strcasestr (make, corp[i])) /* Simplify company names */
|
||||
@@ -8468,7 +8528,7 @@
|
||||
@@ -8468,7 +8533,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")))
|
||||
@@ -1460,7 +1465,7 @@
|
||||
if (width >= 4960 && !strncmp(model,"K-5",3))
|
||||
{ left_margin = 10; width = 4950; filters = 0x16161616; }
|
||||
if (width == 4736 && !strcmp(model,"K-7"))
|
||||
@@ -8487,6 +8547,7 @@
|
||||
@@ -8487,6 +8552,7 @@
|
||||
switch (tiff_compress) {
|
||||
case 1: load_raw = &CLASS packed_dng_load_raw; break;
|
||||
case 7: load_raw = &CLASS lossless_dng_load_raw; break;
|
||||
@@ -1468,7 +1473,7 @@
|
||||
case 34892: load_raw = &CLASS lossy_dng_load_raw; break;
|
||||
default: load_raw = 0;
|
||||
}
|
||||
@@ -8541,6 +8602,7 @@
|
||||
@@ -8541,6 +8607,7 @@
|
||||
if (height > width) pixel_aspect = 2;
|
||||
filters = 0;
|
||||
simple_coeff(0);
|
||||
@@ -1476,7 +1481,7 @@
|
||||
} else if (!strcmp(make,"Canon") && tiff_bps == 15) {
|
||||
switch (width) {
|
||||
case 3344: width -= 66;
|
||||
@@ -8846,24 +8908,53 @@
|
||||
@@ -8846,24 +8913,53 @@
|
||||
if (load_raw == &CLASS lossless_jpeg_load_raw)
|
||||
load_raw = &CLASS hasselblad_load_raw;
|
||||
if (raw_width == 7262) {
|
||||
@@ -1535,7 +1540,7 @@
|
||||
} else if (raw_width == 4090) {
|
||||
strcpy (model, "V96C");
|
||||
height -= (top_margin = 6);
|
||||
@@ -8921,6 +9012,7 @@
|
||||
@@ -8921,6 +9017,7 @@
|
||||
filters = 0x16161616;
|
||||
}
|
||||
} else if (!strcmp(make,"Leica") || !strcmp(make,"Panasonic")) {
|
||||
@@ -1543,7 +1548,7 @@
|
||||
if ((flen - data_offset) / (raw_width*8/7) == raw_height)
|
||||
load_raw = &CLASS panasonic_load_raw;
|
||||
if (!load_raw) {
|
||||
@@ -8938,6 +9030,7 @@
|
||||
@@ -8938,6 +9035,7 @@
|
||||
}
|
||||
filters = 0x01010101 * (uchar) "\x94\x61\x49\x16"
|
||||
[((filters-1) ^ (left_margin & 1) ^ (top_margin << 1)) & 3];
|
||||
@@ -1551,7 +1556,7 @@
|
||||
} else if (!strcmp(model,"C770UZ")) {
|
||||
height = 1718;
|
||||
width = 2304;
|
||||
@@ -9155,6 +9248,18 @@
|
||||
@@ -9155,6 +9253,18 @@
|
||||
memcpy (rgb_cam, cmatrix, sizeof cmatrix);
|
||||
raw_color = 0;
|
||||
}
|
||||
@@ -1570,7 +1575,7 @@
|
||||
if (raw_color) adobe_coeff (make, model);
|
||||
if (load_raw == &CLASS kodak_radc_load_raw)
|
||||
if (raw_color) adobe_coeff ("Apple","Quicktake");
|
||||
@@ -9169,9 +9274,9 @@
|
||||
@@ -9169,9 +9279,9 @@
|
||||
if (raw_width < width ) raw_width = width;
|
||||
}
|
||||
if (!tiff_bps) tiff_bps = 12;
|
||||
@@ -1582,7 +1587,7 @@
|
||||
is_raw = 0;
|
||||
#ifdef NO_JASPER
|
||||
if (load_raw == &CLASS redcine_load_raw) {
|
||||
@@ -9250,194 +9355,249 @@
|
||||
@@ -9250,194 +9360,249 @@
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -2011,7 +2016,7 @@
|
||||
|
||||
struct tiff_tag {
|
||||
ushort tag, type;
|
||||
@@ -9461,590 +9621,11 @@
|
||||
@@ -9461,590 +9626,11 @@
|
||||
char desc[512], make[64], model[64], soft[32], date[20], artist[64];
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user