update to 8.86:
- don't crash on corrupt CR2 files - extract largest JPEG from X3F files - new DNG matrices - support new cameras from Canon, Fuji, Hasselblad, Nikon, Nokia, Olympus, Panasonic, Pentax, Sony from brad, "go for it" okan
This commit is contained in:
parent
d99fd73c33
commit
a51ab3810c
@ -1,8 +1,8 @@
|
||||
# $OpenBSD: Makefile,v 1.10 2008/02/14 23:06:19 sthen Exp $
|
||||
# $OpenBSD: Makefile,v 1.11 2008/06/06 13:20:19 sthen Exp $
|
||||
|
||||
COMMENT = digital camera RAW format conversion tool
|
||||
|
||||
DISTNAME = dcraw-8.81
|
||||
DISTNAME = dcraw-8.86
|
||||
CATEGORIES = graphics
|
||||
|
||||
HOMEPAGE = http://www.cybercom.net/~dcoffin/dcraw/
|
||||
@ -21,7 +21,7 @@ PERMIT_DISTFILES_FTP = Yes
|
||||
WANTLIB = c m
|
||||
|
||||
NO_REGRESS = Yes
|
||||
SEPARATE_BUILD =simple
|
||||
SEPARATE_BUILD = simple
|
||||
|
||||
WRKDIST = ${WRKDIR}/dcraw
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
MD5 (dcraw-8.81.tar.gz) = QrY539AFgM5cTeCRN3dYaA==
|
||||
RMD160 (dcraw-8.81.tar.gz) = igAqPmgal09hfFUTy7iPM7wHlug=
|
||||
SHA1 (dcraw-8.81.tar.gz) = KO+xXkFNH1Tsy/XGkXeTHHhmvf4=
|
||||
SHA256 (dcraw-8.81.tar.gz) = XwZoGeW0Gen06jRMgEZQLNHwcunUEoWMyzeThQGBtcs=
|
||||
SIZE (dcraw-8.81.tar.gz) = 134809
|
||||
MD5 (dcraw-8.86.tar.gz) = EMOP/nwzKs5Zy9i5wNzdkg==
|
||||
RMD160 (dcraw-8.86.tar.gz) = oNQGmoC8hnm1ywu9eeQYZ8oeTI4=
|
||||
SHA1 (dcraw-8.86.tar.gz) = vbyP6IZtxHv59t3u3tEoWTbLbVc=
|
||||
SHA256 (dcraw-8.86.tar.gz) = 5lkJW3DAH79l7HC/oOcJADVxmDJSold81cOKDH0wOJY=
|
||||
SIZE (dcraw-8.86.tar.gz) = 143473
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- dcraw.c.orig Mon Dec 10 07:43:31 2007
|
||||
+++ dcraw.c Mon Feb 4 00:14:31 2008
|
||||
@@ -1250,8 +1250,8 @@ void CLASS nikon_3700()
|
||||
--- dcraw.c.orig Tue Apr 29 14:22:52 2008
|
||||
+++ dcraw.c Sun Jun 1 03:10:50 2008
|
||||
@@ -1253,8 +1253,8 @@ void CLASS nikon_3700()
|
||||
bits = (dp[8] & 3) << 4 | (dp[20] & 3);
|
||||
for (i=0; i < sizeof table / sizeof *table; i++)
|
||||
if (bits == table[i].bits) {
|
||||
@ -11,7 +11,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3007,7 +3007,7 @@ void CLASS foveon_interpolate()
|
||||
@@ -3030,7 +3030,7 @@ void CLASS foveon_interpolate()
|
||||
FORC3 diag[c][i] = LAST(1,1)*LAST(2,2) - LAST(1,2)*LAST(2,1);
|
||||
#undef LAST
|
||||
FORC3 div[c] = diag[c][0]*0.3127 + diag[c][1]*0.329 + diag[c][2]*0.3583;
|
||||
@ -20,19 +20,19 @@
|
||||
if (foveon_camf_param ("IncludeBlocks", str))
|
||||
foveon_fixed (div, 3, str);
|
||||
num = 0;
|
||||
@@ -3371,9 +3371,9 @@ void CLASS bad_pixels()
|
||||
if (*cp == '\\') *cp = '/';
|
||||
@@ -3397,9 +3397,9 @@ void CLASS bad_pixels (char *fname)
|
||||
if (*cp == '\\') *cp = '/';
|
||||
#endif
|
||||
cp = fname + strlen(fname);
|
||||
- if (cp[-1] == '/') cp--;
|
||||
+ if (cp[-1] == '/') cp--, *cp = '\0';
|
||||
while (*fname == '/') {
|
||||
- strcpy (cp, "/.badpixels");
|
||||
+ strlcat (fname, "/.badpixels", len);
|
||||
if ((fp = fopen (fname, "r"))) break;
|
||||
if (cp == fname) break;
|
||||
while (*--cp != '/');
|
||||
@@ -4746,7 +4746,7 @@ void CLASS parse_mos (int offset)
|
||||
cp = fname + strlen(fname);
|
||||
- if (cp[-1] == '/') cp--;
|
||||
+ if (cp[-1] == '/') cp--, *cp = '\0';
|
||||
while (*fname == '/') {
|
||||
- strcpy (cp, "/.badpixels");
|
||||
+ strlcat (fname, "/.badpixels", len);
|
||||
if ((fp = fopen (fname, "r"))) break;
|
||||
if (cp == fname) break;
|
||||
while (*--cp != '/');
|
||||
@@ -4798,7 +4798,7 @@ void CLASS parse_mos (int offset)
|
||||
if (!strcmp(data,"ShootObj_back_type")) {
|
||||
fscanf (ifp, "%d", &i);
|
||||
if ((unsigned) i < sizeof mod / sizeof (*mod))
|
||||
@ -41,7 +41,7 @@
|
||||
}
|
||||
if (!strcmp(data,"icc_camera_to_tone_matrix")) {
|
||||
for (i=0; i < 9; i++)
|
||||
@@ -5073,7 +5073,7 @@ int CLASS parse_tiff_ifd (int base)
|
||||
@@ -5130,7 +5130,7 @@ int CLASS parse_tiff_ifd (int base)
|
||||
if (flip % 180 == 90) SWAP(width,height);
|
||||
filters = flip = 0;
|
||||
}
|
||||
@ -50,7 +50,7 @@
|
||||
load_raw = &CLASS imacon_full_load_raw;
|
||||
if (filters) {
|
||||
if (left_margin & 1) filters = 0x61616161;
|
||||
@@ -5376,6 +5376,7 @@ void CLASS parse_external_jpeg()
|
||||
@@ -5438,6 +5438,7 @@ void CLASS parse_external_jpeg()
|
||||
{
|
||||
char *file, *ext, *jname, *jfile, *jext;
|
||||
FILE *save=ifp;
|
||||
@ -58,7 +58,7 @@
|
||||
|
||||
ext = strrchr (ifname, '.');
|
||||
file = strrchr (ifname, '/');
|
||||
@@ -5383,13 +5384,15 @@ void CLASS parse_external_jpeg()
|
||||
@@ -5445,13 +5446,15 @@ void CLASS parse_external_jpeg()
|
||||
if (!file) file = ifname-1;
|
||||
file++;
|
||||
if (!ext || strlen(ext) != 4 || ext-file != 8) return;
|
||||
@ -77,7 +77,7 @@
|
||||
memcpy (jfile, file+4, 4);
|
||||
memcpy (jfile+4, file, 4);
|
||||
} else
|
||||
@@ -5606,7 +5609,7 @@ void CLASS parse_sinar_ia()
|
||||
@@ -5668,7 +5671,7 @@ void CLASS parse_sinar_ia()
|
||||
fread (make, 64, 1, ifp);
|
||||
make[63] = 0;
|
||||
if ((cp = strchr(make,' '))) {
|
||||
@ -86,7 +86,7 @@
|
||||
*cp = 0;
|
||||
}
|
||||
raw_width = get2();
|
||||
@@ -5784,7 +5787,7 @@ void CLASS parse_smal (int offset, int fsize)
|
||||
@@ -5846,7 +5849,7 @@ void CLASS parse_smal (int offset, int fsize)
|
||||
raw_height = height = get2();
|
||||
raw_width = width = get2();
|
||||
strcpy (make, "SMaL");
|
||||
@ -95,7 +95,7 @@
|
||||
if (ver == 6) load_raw = &CLASS smal_v6_load_raw;
|
||||
if (ver == 9) load_raw = &CLASS smal_v9_load_raw;
|
||||
}
|
||||
@@ -5812,7 +5815,7 @@ void CLASS parse_cine()
|
||||
@@ -5874,7 +5877,7 @@ void CLASS parse_cine()
|
||||
}
|
||||
fseek (ifp, off_setup+792, SEEK_SET);
|
||||
strcpy (make, "CINE");
|
||||
@ -104,7 +104,7 @@
|
||||
fseek (ifp, 12, SEEK_CUR);
|
||||
switch ((i=get4()) & 0xffffff) {
|
||||
case 3: filters = 0x94949494; break;
|
||||
@@ -5910,11 +5913,11 @@ void CLASS parse_foveon()
|
||||
@@ -5973,11 +5976,11 @@ void CLASS parse_foveon()
|
||||
if (!strcmp (name, "ISO"))
|
||||
iso_speed = atoi(value);
|
||||
if (!strcmp (name, "CAMMANUF"))
|
||||
@ -119,7 +119,7 @@
|
||||
if (!strcmp (name, "TIME"))
|
||||
timestamp = atoi(value);
|
||||
if (!strcmp (name, "EXPTIME"))
|
||||
@@ -6305,7 +6308,7 @@ void CLASS adobe_coeff (char *make, char *model)
|
||||
@@ -6396,7 +6399,7 @@ void CLASS adobe_coeff (char *make, char *model)
|
||||
char name[130];
|
||||
int i, j;
|
||||
|
||||
@ -127,8 +127,8 @@
|
||||
+ snprintf (name, sizeof name, "%s %s", make, model);
|
||||
for (i=0; i < sizeof table / sizeof *table; i++)
|
||||
if (!strncmp (name, table[i].prefix, strlen(table[i].prefix))) {
|
||||
if (table[i].black)
|
||||
@@ -6527,8 +6530,8 @@ void CLASS identify()
|
||||
if (table[i].black) black = (ushort) table[i].black;
|
||||
@@ -6634,8 +6637,8 @@ void CLASS identify()
|
||||
else
|
||||
for (i=0; i < sizeof table / sizeof *table; i++)
|
||||
if (fsize == table[i].fsize) {
|
||||
@ -139,7 +139,7 @@
|
||||
if (table[i].withjpeg)
|
||||
parse_external_jpeg();
|
||||
}
|
||||
@@ -6537,7 +6540,7 @@ void CLASS identify()
|
||||
@@ -6644,7 +6647,7 @@ void CLASS identify()
|
||||
|
||||
for (i=0; i < sizeof corp / sizeof *corp; i++)
|
||||
if (strstr (make, corp[i])) /* Simplify company names */
|
||||
@ -148,16 +148,16 @@
|
||||
if (!strncmp (make,"KODAK",5))
|
||||
make[16] = model[16] = 0;
|
||||
cp = make + strlen(make); /* Remove trailing spaces */
|
||||
@@ -6894,7 +6897,7 @@ cp_e2500:
|
||||
maximum = 0x3e00;
|
||||
} else if (!strncmp(model,"FinePix",7)) {
|
||||
@@ -7035,7 +7038,7 @@ cp_e2500:
|
||||
load_raw = &CLASS unpacked_load_raw;
|
||||
} else if (!strcmp(make,"FUJIFILM")) {
|
||||
if (!strcmp(model+7,"S2Pro")) {
|
||||
- strcpy (model+7," S2Pro");
|
||||
+ strcpy (model + 7, " S2Pro");
|
||||
height = 2144;
|
||||
width = 2880;
|
||||
flip = 6;
|
||||
@@ -6937,7 +6940,7 @@ cp_e2500:
|
||||
@@ -7077,7 +7080,7 @@ cp_e2500:
|
||||
} else if (!strncmp(model,"ALPHA",5) ||
|
||||
!strncmp(model,"DYNAX",5) ||
|
||||
!strncmp(model,"MAXXUM",6)) {
|
||||
@ -165,8 +165,8 @@
|
||||
+ snprintf (model+20, sizeof model - 20, "DYNAX %-10s", model+6+(model[0]=='M'));
|
||||
adobe_coeff (make, model+20);
|
||||
load_raw = &CLASS packed_12_load_raw;
|
||||
maximum = 0xffb;
|
||||
@@ -7502,7 +7505,7 @@ qt_common:
|
||||
} else if (!strncmp(model,"DiMAGE G",8)) {
|
||||
@@ -7618,7 +7621,7 @@ qt_common:
|
||||
pre_mul[2] = 1.504;
|
||||
}
|
||||
if (!model[0])
|
||||
@ -175,7 +175,7 @@
|
||||
if (filters == UINT_MAX) filters = 0x94949494;
|
||||
if (raw_color) adobe_coeff (make, model);
|
||||
if (thumb_offset && !thumb_height) {
|
||||
@@ -7666,8 +7669,8 @@ void CLASS convert_to_rgb()
|
||||
@@ -7782,8 +7785,8 @@ void CLASS convert_to_rgb()
|
||||
}
|
||||
for (i=0; i < phead[0]/4; i++)
|
||||
oprof[i] = htonl(oprof[i]);
|
||||
@ -186,7 +186,7 @@
|
||||
for (i=0; i < 3; i++)
|
||||
for (j=0; j < colors; j++)
|
||||
for (out_cam[i][j] = k=0; k < 3; k++)
|
||||
@@ -7897,7 +7900,7 @@ void CLASS tiff_head (struct tiff_hdr *th, int full)
|
||||
@@ -8033,7 +8036,7 @@ void CLASS tiff_head (struct tiff_hdr *th, int full)
|
||||
strncpy (th->model, model, 64);
|
||||
strcpy (th->soft, "dcraw v"VERSION);
|
||||
t = gmtime (×tamp);
|
||||
@ -195,15 +195,15 @@
|
||||
t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);
|
||||
strncpy (th->artist, artist, 64);
|
||||
}
|
||||
@@ -7974,6 +7977,7 @@ int CLASS main (int argc, char **argv)
|
||||
char opm, opt, *ofname, *sp, *cp, *dark_frame=0;
|
||||
@@ -8111,6 +8114,7 @@ int CLASS main (int argc, char **argv)
|
||||
char opm, opt, *ofname, *sp, *cp, *bpfile=0, *dark_frame=0;
|
||||
const char *write_ext;
|
||||
struct utimbuf ut;
|
||||
+ size_t ofsize;
|
||||
FILE *ofp;
|
||||
#ifndef NO_LCMS
|
||||
char *cam_profile=0, *out_profile=0;
|
||||
@@ -8291,19 +8295,20 @@ thumbnail:
|
||||
@@ -8432,19 +8436,20 @@ thumbnail:
|
||||
write_ext = ".tiff";
|
||||
else
|
||||
write_ext = ".pgm\0.ppm\0.ppm\0.pam" + colors*5-5;
|
||||
|
Loading…
Reference in New Issue
Block a user