P45 IIQ issues, Issue 2792

This commit is contained in:
Ingo
2015-05-27 16:45:05 +02:00
parent 09cbdb8936
commit 81bac14133
2 changed files with 29 additions and 20 deletions

View File

@@ -1,5 +1,5 @@
--- dcraw.c 2015-05-17 18:31:07 +0000
+++ dcraw.cc 2015-05-21 11:05:29 +0000
--- dcraw.c 2015-05-23 11:38:54 +0000
+++ dcraw.cc 2015-05-27 14:40:35 +0000
@@ -1,3 +1,15 @@
+/*RT*/#include <glib.h>
+/*RT*/#include <glib/gstdio.h>
@@ -1289,7 +1289,15 @@
if (verbose)
fprintf (stderr,_("Reading metadata from %s ...\n"), jname);
parse_tiff (12);
@@ -6688,7 +6692,11 @@
@@ -6620,6 +6624,7 @@
load_raw = ph1.format < 3 ?
&CLASS phase_one_load_raw : &CLASS phase_one_load_raw_c;
maximum = 0xffff;
+ tiff_bps = 16;
strcpy (make, "Phase One");
if (model[0]) return;
switch (raw_height) {
@@ -6688,7 +6693,11 @@
order = get2();
hlen = get4();
if (get4() == 0x48454150) /* "HEAP" */
@@ -1301,7 +1309,7 @@
if (parse_tiff (save+6)) apply_tiff();
fseek (ifp, save+len, SEEK_SET);
}
@@ -6960,7 +6968,8 @@
@@ -6960,7 +6969,8 @@
{
static const struct {
const char *prefix;
@@ -1311,7 +1319,7 @@
} table[] = {
{ "AgfaPhoto DC-833m", 0, 0, /* DJC */
{ 11438,-3762,-1115,-2409,9914,2497,-1227,2295,5300 } },
@@ -7919,6 +7928,32 @@
@@ -7919,6 +7929,32 @@
}
break;
}
@@ -1344,7 +1352,7 @@
}
void CLASS simple_coeff (int index)
@@ -8229,7 +8264,7 @@
@@ -8229,7 +8265,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;
@@ -1353,7 +1361,7 @@
iso_speed = shutter = aperture = focal_len = unique_id = 0;
tiff_nifds = 0;
memset (tiff_ifd, 0, sizeof tiff_ifd);
@@ -8261,13 +8296,20 @@
@@ -8261,13 +8297,20 @@
fread (head, 1, 32, ifp);
fseek (ifp, 0, SEEK_END);
flen = fsize = ftell(ifp);
@@ -1376,7 +1384,7 @@
parse_ciff (hlen, flen-hlen, 0);
load_raw = &CLASS canon_load_raw;
} else if (parse_tiff(0)) apply_tiff();
@@ -8313,6 +8355,7 @@
@@ -8313,6 +8356,7 @@
fseek (ifp, 100+28*(shot_select > 0), SEEK_SET);
parse_tiff (data_offset = get4());
parse_tiff (thumb_offset+12);
@@ -1384,7 +1392,7 @@
apply_tiff();
} else if (!memcmp (head,"RIFF",4)) {
fseek (ifp, 0, SEEK_SET);
@@ -8426,9 +8469,10 @@
@@ -8426,9 +8470,10 @@
if (make[0] == 0) parse_smal (0, flen);
if (make[0] == 0) {
parse_jpeg(0);
@@ -1398,7 +1406,7 @@
strcpy (make, "OmniVision");
data_offset = ftell(ifp) + 0x8000-32;
width = raw_width;
@@ -8437,6 +8481,7 @@
@@ -8437,6 +8482,7 @@
filters = 0x16161616;
} else is_raw = 0;
}
@@ -1406,7 +1414,7 @@
for (i=0; i < sizeof corp / sizeof *corp; i++)
if (strcasestr (make, corp[i])) /* Simplify company names */
@@ -8468,7 +8513,7 @@
@@ -8468,7 +8514,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")))
@@ -1415,7 +1423,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 +8532,7 @@
@@ -8487,6 +8533,7 @@
switch (tiff_compress) {
case 1: load_raw = &CLASS packed_dng_load_raw; break;
case 7: load_raw = &CLASS lossless_dng_load_raw; break;
@@ -1423,7 +1431,7 @@
case 34892: load_raw = &CLASS lossy_dng_load_raw; break;
default: load_raw = 0;
}
@@ -8541,6 +8587,7 @@
@@ -8541,6 +8588,7 @@
if (height > width) pixel_aspect = 2;
filters = 0;
simple_coeff(0);
@@ -1431,7 +1439,7 @@
} else if (!strcmp(make,"Canon") && tiff_bps == 15) {
switch (width) {
case 3344: width -= 66;
@@ -8846,24 +8893,53 @@
@@ -8846,24 +8894,53 @@
if (load_raw == &CLASS lossless_jpeg_load_raw)
load_raw = &CLASS hasselblad_load_raw;
if (raw_width == 7262) {
@@ -1490,7 +1498,7 @@
} else if (raw_width == 4090) {
strcpy (model, "V96C");
height -= (top_margin = 6);
@@ -8921,6 +8997,7 @@
@@ -8921,6 +8998,7 @@
filters = 0x16161616;
}
} else if (!strcmp(make,"Leica") || !strcmp(make,"Panasonic")) {
@@ -1498,7 +1506,7 @@
if ((flen - data_offset) / (raw_width*8/7) == raw_height)
load_raw = &CLASS panasonic_load_raw;
if (!load_raw) {
@@ -8938,6 +9015,7 @@
@@ -8938,6 +9016,7 @@
}
filters = 0x01010101 * (uchar) "\x94\x61\x49\x16"
[((filters-1) ^ (left_margin & 1) ^ (top_margin << 1)) & 3];
@@ -1506,7 +1514,7 @@
} else if (!strcmp(model,"C770UZ")) {
height = 1718;
width = 2304;
@@ -9155,6 +9233,14 @@
@@ -9155,6 +9234,14 @@
memcpy (rgb_cam, cmatrix, sizeof cmatrix);
raw_color = 0;
}
@@ -1521,7 +1529,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 +9255,9 @@
@@ -9169,9 +9256,9 @@
if (raw_width < width ) raw_width = width;
}
if (!tiff_bps) tiff_bps = 12;
@@ -1533,7 +1541,7 @@
is_raw = 0;
#ifdef NO_JASPER
if (load_raw == &CLASS redcine_load_raw) {
@@ -9250,194 +9336,249 @@
@@ -9250,194 +9337,249 @@
}
#endif
@@ -1962,7 +1970,7 @@
struct tiff_tag {
ushort tag, type;
@@ -9461,590 +9602,11 @@
@@ -9461,590 +9603,11 @@
char desc[512], make[64], model[64], soft[32], date[20], artist[64];
};