From 187fdbfddd7d7698911778b1302af0e729c1f2bf Mon Sep 17 00:00:00 2001 From: heckflosse Date: Tue, 24 Nov 2015 21:58:16 +0100 Subject: [PATCH] updated dcraw.patch file --- rtengine/dcraw.patch | 57 ++++++++++++++++++++++++-------------------- 1 file changed, 31 insertions(+), 26 deletions(-) diff --git a/rtengine/dcraw.patch b/rtengine/dcraw.patch index 0b4cd87b4..870c08f18 100644 --- a/rtengine/dcraw.patch +++ b/rtengine/dcraw.patch @@ -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 +/*RT*/#include @@ -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]; };