Update of /cvsroot/ufraw/ufraw
In directory vz-cvs-3.sog:/tmp/cvs-serv15427
Modified Files:
Tag: dcraw-original-branch
dcraw.cc
Log Message:
dcraw original 9.16 (1.450).
Index: dcraw.cc
===================================================================
RCS file: /cvsroot/ufraw/ufraw/dcraw.cc,v
retrieving revision 1.1.2.120
retrieving revision 1.1.2.121
diff -u -d -r1.1.2.120 -r1.1.2.121
--- dcraw.cc 26 Jun 2012 16:05:55 -0000 1.1.2.120
+++ dcraw.cc 1 Jul 2012 04:35:25 -0000 1.1.2.121
@@ -23,7 +23,7 @@
$Date$
*/
-#define DCRAW_VERSION "9.15"
+#define DCRAW_VERSION "9.16"
#ifndef _GNU_SOURCE
#define _GNU_SOURCE
@@ -2777,7 +2777,7 @@
void CLASS foveon_dp_load_raw()
{
unsigned c, roff[4], row, col, diff;
- ushort huff[258], vpred, hpred;
+ ushort huff[258], vpred[2][2], hpred[2];
fseek (ifp, 8, SEEK_CUR);
foveon_huff (huff);
@@ -2786,13 +2786,13 @@
FORC3 {
fseek (ifp, data_offset+roff[c], SEEK_SET);
getbits(-1);
- vpred = 1024;
+ vpred[0][0] = vpred[0][1] = vpred[1][0] = vpred[1][1] = 512;
for (row=0; row < height; row++) {
for (col=0; col < width; col++) {
diff = ljpeg_diff(huff);
- if (col) hpred += diff;
- else hpred = vpred += diff;
- image[row*width+col][c] = hpred;
+ if (col < 2) hpred[col] = vpred[row & 1][col] += diff;
+ else hpred[col & 1] += diff;
+ image[row*width+col][c] = hpred[col & 1];
}
}
}
@@ -6335,6 +6335,8 @@
{ 6941,-1164,-857,-3825,11597,2534,-416,1540,6039 } },
{ "Canon EOS 600D", 0, 0x3510,
{ 6461,-907,-882,-4300,12184,2378,-819,1944,5931 } },
+ { "Canon EOS 650D", 0, 0x354d,
+ { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
{ "Canon EOS 1000D", 0, 0xe43,
{ 6771,-1139,-977,-7818,15123,2928,-1244,1437,7533 } },
{ "Canon EOS 1100D", 0, 0x3510,
@@ -7728,6 +7730,12 @@
height -= top_margin = 45;
left_margin = 142;
width = 4916;
+ } else if (is_canon && raw_width == 5280) {
+ top_margin = 52;
+ left_margin = 72;
+ if (unique_id == 0x80000301)
+ adobe_coeff ("Canon","EOS 650D");
+ goto canon_cr2;
} else if (is_canon && raw_width == 5344) {
top_margin = 51;
left_margin = 142;
@@ -8036,7 +8044,7 @@
height -= top_margin = 8;
width -= 2 * (left_margin = 8);
load_flags = 32;
- } else if (!strcmp(model,"NX200")) {
+ } else if (!strncmp(model,"NX2",3)) {
order = 0x4949;
height = 3694;
top_margin = 2;
@@ -9390,7 +9398,7 @@
colorcheck();
#endif
if (is_foveon) {
- if (document_mode || model[0] == 'D') {
+ if (document_mode || load_raw == &CLASS foveon_dp_load_raw) {
for (i=0; i < height*width*4; i++)
if ((short) image[0][i] < 0) image[0][i] = 0;
} else foveon_interpolate();
|