diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index aba4d38d7..9c41e17f9 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -6206,12 +6206,12 @@ void CLASS apply_tiff() case 8: load_raw = &CLASS eight_bit_load_raw; break; case 12: if (tiff_ifd[raw].phint == 2) load_flags = 6; - if(tiff_ifd[raw].comp != 1) { - load_raw = &CLASS packed_load_raw; - break; - } else { - tiff_bps = 14; - } + if(!strncmp(make,"SONY",4) && tiff_ifd[raw].comp == 1) { // hack for some sony cameras which report as 12 bit uncompressed but in fact are 14 bit uncompressed + tiff_bps = 14; + } else { + load_raw = &CLASS packed_load_raw; + break; + } case 14: load_flags = 0; case 16: load_raw = &CLASS unpacked_load_raw; if (!strncmp(make,"OLYMPUS",7) && diff --git a/rtengine/dcraw.patch b/rtengine/dcraw.patch index 870c08f18..5b0a2b2ec 100644 --- a/rtengine/dcraw.patch +++ b/rtengine/dcraw.patch @@ -1,5 +1,5 @@ --- dcraw.c 2015-11-24 19:17:16 +0000 -+++ dcraw.cc 2015-11-24 20:04:38 +0000 ++++ dcraw.cc 2015-11-27 12:35:05 +0000 @@ -1,3 +1,15 @@ +/*RT*/#include +/*RT*/#include @@ -1287,12 +1287,12 @@ case 12: if (tiff_ifd[raw].phint == 2) load_flags = 6; - load_raw = &CLASS packed_load_raw; break; -+ if(tiff_ifd[raw].comp != 1) { -+ load_raw = &CLASS packed_load_raw; -+ break; -+ } else { -+ tiff_bps = 14; -+ } ++ if(!strncmp(make,"SONY",4) && tiff_ifd[raw].comp == 1) { // hack for some sony cameras which report as 12 bit uncompressed but in fact are 14 bit uncompressed ++ tiff_bps = 14; ++ } else { ++ load_raw = &CLASS packed_load_raw; ++ break; ++ } case 14: load_flags = 0; case 16: load_raw = &CLASS unpacked_load_raw; if (!strncmp(make,"OLYMPUS",7) &&