annotate src/mingw-graphicsmagick-1-dcraw.patch @ 6335:0825abaf61a7

mingw-w64: Special case for large input for complex inverse trigonometric functions (bug #49091). * src/mingw-w64-complex-inverse-trig.patch: Add patch for mingw-w64 CRT that implements a special case for large input for complex inverse trigonometric functions cacosh and casinh (and therefore functions that are derived from it, like cacos and casin). * dist-files.mk: Add new patch to list.
author Markus Mützel <markus.muetzel@gmx.de>
date Sat, 23 Jul 2022 19:00:09 +0200
parents c23139e3560e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5770
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1 Fork of dcraw from upstream graphicsmagick:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2 http://hg.code.sf.net/p/graphicsmagick/code/file/tip/dcraw
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4 diff -ruN graphicsmagick_orig/dcraw/dcraw.c graphicsmagick/dcraw/dcraw.c
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5 --- graphicsmagick_orig/dcraw/dcraw.c 1970-01-01 01:00:00.000000000 +0100
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6 +++ graphicsmagick/dcraw/dcraw.c 2021-06-04 12:17:20.422559688 +0200
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7 @@ -0,0 +1,10293 @@
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9 + dcraw.c -- Dave Coffin's raw photo decoder
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10 + Copyright 1997-2016 by Dave Coffin, dcoffin a cybercom o net
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
11 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
12 + This is a command-line ANSI C program to convert raw photos from
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
13 + any digital camera on any computer running any operating system.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
14 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
15 + No license is required to download and use dcraw.c. However,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
16 + to lawfully redistribute dcraw, you must either (a) offer, at
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
17 + no extra charge, full source code* for all executable files
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
18 + containing RESTRICTED functions, (b) distribute this code under
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
19 + the GPL Version 2 or later, (c) remove all RESTRICTED functions,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
20 + re-implement them, or copy them from an earlier, unrestricted
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
21 + Revision of dcraw.c, or (d) purchase a license from the author.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
22 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
23 + The functions that process Foveon images have been RESTRICTED
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
24 + since Revision 1.237. All other code remains free for all uses.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
25 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
26 + *If you have not modified dcraw.c in any way, a link to my
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
27 + homepage qualifies as "full source code".
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
28 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
29 + $Revision: 1.477 $
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
30 + $Date: 2016/05/10 21:30:43 $
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
31 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
32 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
33 +#define DCRAW_VERSION "9.27"
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
34 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
35 +#if defined(_VISUALC_)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
36 +# pragma warning(disable : 4005)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
37 +# pragma warning(disable : 4133)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
38 +# pragma warning(disable : 4146)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
39 +# pragma warning(disable : 4305)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
40 +#if defined(WIN64)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
41 +# pragma warning(disable : 4267) /* conversion from 'size_t' to 'foo', possible loss of data */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
42 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
43 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
44 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
45 +#ifndef _GNU_SOURCE
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
46 +#define _GNU_SOURCE
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
47 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
48 +#define _USE_MATH_DEFINES
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
49 +#define WIN32_LEAN_AND_MEAN
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
50 +#define VC_EXTRALEAN
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
51 +#include <ctype.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
52 +#include <errno.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
53 +#include <fcntl.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
54 +#include <float.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
55 +#include <limits.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
56 +#include <math.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
57 +#include <setjmp.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
58 +#include <stdio.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
59 +#include <stdlib.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
60 +#include <string.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
61 +#include <time.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
62 +#include <sys/types.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
63 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
64 +#if !defined(__WIN32__) && (defined(_WIN32) || defined(WIN32) || defined(_WIN64))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
65 +#define __WIN32__
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
66 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
67 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
68 +#if defined(DJGPP) || defined(__MINGW32__) || defined(__WIN32__)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
69 +#define fseeko fseek
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
70 +#define ftello ftell
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
71 +#else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
72 +#define fgetc getc_unlocked
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
73 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
74 +#ifdef __CYGWIN__
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
75 +#include <io.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
76 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
77 +#ifdef __WIN32__
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
78 +#include <sys/utime.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
79 +#include <winsock2.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
80 +#pragma comment(lib, "ws2_32.lib")
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
81 +#define snprintf _snprintf
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
82 +#define strcasecmp stricmp
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
83 +#define strncasecmp strnicmp
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
84 +typedef __int64 INT64;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
85 +typedef unsigned __int64 UINT64;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
86 +#else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
87 +#include <unistd.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
88 +#include <utime.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
89 +#include <netinet/in.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
90 +typedef long long INT64;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
91 +typedef unsigned long long UINT64;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
92 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
93 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
94 +#if !defined(M_PI)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
95 +# define M_PI 3.14159265358979323846
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
96 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
97 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
98 +#ifdef NODEPS
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
99 +#define NO_JASPER
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
100 +#define NO_JPEG
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
101 +#define NO_LCMS
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
102 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
103 +#ifndef NO_JASPER
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
104 +#include <jasper/jasper.h> /* Decode Red camera movies */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
105 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
106 +#ifndef NO_JPEG
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
107 +#include <jpeglib.h> /* Decode compressed Kodak DC120 photos */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
108 +#endif /* and Adobe Lossy DNGs */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
109 +#ifndef NO_LCMS
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
110 +#include <lcms2.h> /* Support color profiles */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
111 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
112 +#ifdef LOCALEDIR
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
113 +#include <libintl.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
114 +#define _(String) gettext(String)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
115 +#else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
116 +#define _(String) (String)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
117 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
118 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
119 +#if !defined(uchar)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
120 +#define uchar unsigned char
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
121 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
122 +#if !defined(ushort)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
123 +#define ushort unsigned short
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
124 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
125 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
126 +#ifdef _MSC_VER
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
127 + #if _MSC_VER <= 1310
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
128 + #include "port/strnlen.c"
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
129 + #endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
130 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
131 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
132 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
133 + All global variables are defined here, and all functions that
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
134 + access them are prefixed with "CLASS". Note that a thread-safe
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
135 + C++ class cannot have non-const static local variables.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
136 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
137 +FILE *ifp, *ofp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
138 +short order;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
139 +const char *ifname;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
140 +const char *outfile = NULL;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
141 +char *meta_data, xtrans[6][6], xtrans_abs[6][6];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
142 +char cdesc[5], desc[512], make[64], model[64], model2[64], artist[64];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
143 +float flash_used, canon_ev, iso_speed, shutter, aperture, focal_len;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
144 +time_t timestamp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
145 +off_t strip_offset, data_offset;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
146 +off_t thumb_offset, meta_offset, profile_offset;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
147 +unsigned shot_order, kodak_cbpp, exif_cfa, unique_id;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
148 +unsigned thumb_length, meta_length, profile_length;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
149 +unsigned thumb_misc, *oprof, fuji_layout, shot_select=0, multi_out=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
150 +unsigned tiff_nifds, tiff_samples, tiff_bps, tiff_compress;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
151 +unsigned black, maximum, mix_green, raw_color, zero_is_bad;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
152 +unsigned zero_after_ff, is_raw, dng_version, is_foveon, data_error;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
153 +unsigned tile_width, tile_length, gpsdata[32], load_flags;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
154 +unsigned flip, tiff_flip, filters, colors;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
155 +ushort raw_height, raw_width, height, width, top_margin, left_margin;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
156 +ushort shrink, iheight, iwidth, fuji_width, thumb_width, thumb_height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
157 +ushort *raw_image, (*image)[4], cblack[4102];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
158 +ushort white[8][8], curve[0x10000], cr2_slice[3], sraw_mul[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
159 +double pixel_aspect, aber[4]={1,1,1,1}, gamm[6]={ 0.45,4.5,0,0,0,0 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
160 +float bright=1, user_mul[4]={0,0,0,0}, threshold=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
161 +int mask[8][4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
162 +int half_size=0, four_color_rgb=0, document_mode=0, highlight=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
163 +int verbose=0, use_auto_wb=0, use_camera_wb=0, use_camera_matrix=1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
164 +int output_color=1, output_bps=8, output_tiff=0, med_passes=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
165 +int no_auto_bright=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
166 +unsigned greybox[4] = { 0, 0, UINT_MAX, UINT_MAX };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
167 +float cam_mul[4], pre_mul[4], cmatrix[3][4], rgb_cam[3][4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
168 +const double xyz_rgb[3][3] = { /* XYZ from RGB */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
169 + { 0.412453, 0.357580, 0.180423 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
170 + { 0.212671, 0.715160, 0.072169 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
171 + { 0.019334, 0.119193, 0.950227 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
172 +const float d65_white[3] = { 0.950456, 1, 1.088754 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
173 +int histogram[4][0x2000];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
174 +void (*write_thumb)(), (*write_fun)();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
175 +void (*load_raw)(), (*thumb_load_raw)();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
176 +jmp_buf failure;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
177 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
178 +struct decode {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
179 + struct decode *branch[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
180 + int leaf;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
181 +} first_decode[2048], *second_decode, *free_decode;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
182 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
183 +struct tiff_ifd {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
184 + int width, height, bps, comp, phint, offset, flip, samples, bytes;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
185 + int tile_width, tile_length;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
186 + float shutter;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
187 +} tiff_ifd[10];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
188 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
189 +struct ph1 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
190 + int format, key_off, tag_21a;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
191 + int black, split_col, black_col, split_row, black_row;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
192 + float tag_210;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
193 +} ph1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
194 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
195 +#define CLASS
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
196 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
197 +#define FORC(cnt) for (c=0; c < cnt; c++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
198 +#define FORC3 FORC(3)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
199 +#define FORC4 FORC(4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
200 +#define FORCC FORC(colors)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
201 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
202 +#define SQR(x) ((x)*(x))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
203 +#define ABS(x) (((int)(x) ^ ((int)(x) >> 31)) - ((int)(x) >> 31))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
204 +#define MIN(a,b) ((a) < (b) ? (a) : (b))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
205 +#define MAX(a,b) ((a) > (b) ? (a) : (b))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
206 +#define LIM(x,min,max) MAX(min,MIN(x,max))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
207 +#define ULIM(x,y,z) ((y) < (z) ? LIM(x,y,z) : LIM(x,z,y))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
208 +#define CLIP(x) LIM((int)(x),0,65535)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
209 +#define SWAP(a,b) { a=a+b; b=a-b; a=a-b; }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
210 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
211 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
212 + In order to inline this calculation, I make the risky
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
213 + assumption that all filter patterns can be described
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
214 + by a repeating pattern of eight rows and two columns
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
215 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
216 + Do not use the FC or BAYER macros with the Leaf CatchLight,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
217 + because its pattern is 16x16, not 2x8.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
218 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
219 + Return values are either 0/1/2/3 = G/M/C/Y or 0/1/2/3 = R/G1/B/G2
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
220 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
221 + PowerShot 600 PowerShot A50 PowerShot Pro70 Pro90 & G1
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
222 + 0xe1e4e1e4: 0x1b4e4b1e: 0x1e4b4e1b: 0xb4b4b4b4:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
223 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
224 + 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
225 + 0 G M G M G M 0 C Y C Y C Y 0 Y C Y C Y C 0 G M G M G M
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
226 + 1 C Y C Y C Y 1 M G M G M G 1 M G M G M G 1 Y C Y C Y C
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
227 + 2 M G M G M G 2 Y C Y C Y C 2 C Y C Y C Y
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
228 + 3 C Y C Y C Y 3 G M G M G M 3 G M G M G M
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
229 + 4 C Y C Y C Y 4 Y C Y C Y C
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
230 + PowerShot A5 5 G M G M G M 5 G M G M G M
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
231 + 0x1e4e1e4e: 6 Y C Y C Y C 6 C Y C Y C Y
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
232 + 7 M G M G M G 7 M G M G M G
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
233 + 0 1 2 3 4 5
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
234 + 0 C Y C Y C Y
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
235 + 1 G M G M G M
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
236 + 2 C Y C Y C Y
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
237 + 3 M G M G M G
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
238 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
239 + All RGB cameras use one of these Bayer grids:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
240 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
241 + 0x16161616: 0x61616161: 0x49494949: 0x94949494:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
242 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
243 + 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5 0 1 2 3 4 5
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
244 + 0 B G B G B G 0 G R G R G R 0 G B G B G B 0 R G R G R G
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
245 + 1 G R G R G R 1 B G B G B G 1 R G R G R G 1 G B G B G B
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
246 + 2 B G B G B G 2 G R G R G R 2 G B G B G B 2 R G R G R G
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
247 + 3 G R G R G R 3 B G B G B G 3 R G R G R G 3 G B G B G B
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
248 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
249 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
250 +#define RAW(row,col) \
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
251 + raw_image[(row)*raw_width+(col)]
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
252 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
253 +#define FC(row,col) \
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
254 + (filters >> ((((row) << 1 & 14) + ((col) & 1)) << 1) & 3)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
255 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
256 +#define BAYER(row,col) \
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
257 + image[((row) >> shrink)*iwidth + ((col) >> shrink)][FC(row,col)]
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
258 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
259 +#define BAYER2(row,col) \
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
260 + image[((row) >> shrink)*iwidth + ((col) >> shrink)][fcol(row,col)]
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
261 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
262 +int CLASS fcol (int row, int col)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
263 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
264 + static const char filter[16][16] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
265 + { { 2,1,1,3,2,3,2,0,3,2,3,0,1,2,1,0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
266 + { 0,3,0,2,0,1,3,1,0,1,1,2,0,3,3,2 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
267 + { 2,3,3,2,3,1,1,3,3,1,2,1,2,0,0,3 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
268 + { 0,1,0,1,0,2,0,2,2,0,3,0,1,3,2,1 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
269 + { 3,1,1,2,0,1,0,2,1,3,1,3,0,1,3,0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
270 + { 2,0,0,3,3,2,3,1,2,0,2,0,3,2,2,1 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
271 + { 2,3,3,1,2,1,2,1,2,1,1,2,3,0,0,1 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
272 + { 1,0,0,2,3,0,0,3,0,3,0,3,2,1,2,3 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
273 + { 2,3,3,1,1,2,1,0,3,2,3,0,2,3,1,3 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
274 + { 1,0,2,0,3,0,3,2,0,1,1,2,0,1,0,2 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
275 + { 0,1,1,3,3,2,2,1,1,3,3,0,2,1,3,2 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
276 + { 2,3,2,0,0,1,3,0,2,0,1,2,3,0,1,0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
277 + { 1,3,1,2,3,2,3,2,0,2,0,1,1,0,3,0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
278 + { 0,2,0,3,1,0,0,1,1,3,3,2,3,2,2,1 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
279 + { 2,1,3,2,3,1,2,1,0,3,0,2,0,2,0,2 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
280 + { 0,3,1,0,0,2,0,3,2,1,3,1,1,3,1,3 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
281 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
282 + if (filters == 1) return filter[(row+top_margin)&15][(col+left_margin)&15];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
283 + if (filters == 9) return xtrans[(row+6) % 6][(col+6) % 6];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
284 + return FC(row,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
285 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
286 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
287 +#ifndef __GLIBC__
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
288 +char *my_memmem (char *haystack, size_t haystacklen,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
289 + char *needle, size_t needlelen)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
290 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
291 + char *c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
292 + for (c = haystack; c <= haystack + haystacklen - needlelen; c++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
293 + if (!memcmp (c, needle, needlelen))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
294 + return c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
295 + return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
296 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
297 +#define memmem my_memmem
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
298 +char *my_strcasestr (char *haystack, const char *needle)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
299 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
300 + char *c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
301 + for (c = haystack; *c; c++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
302 + if (!strncasecmp(c, needle, strlen(needle)))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
303 + return c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
304 + return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
305 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
306 +#define strcasestr my_strcasestr
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
307 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
308 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
309 +void CLASS merror (void *ptr, const char *where)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
310 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
311 + if (ptr) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
312 + fprintf (stderr,_("%s: Out of memory in %s\n"), ifname, where);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
313 + longjmp (failure, 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
314 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
315 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
316 +void CLASS derror()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
317 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
318 + if (!data_error) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
319 + fprintf (stderr, "%s: ", ifname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
320 + if (feof(ifp))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
321 + fprintf (stderr,_("Unexpected end of file\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
322 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
323 + fprintf (stderr,_("Corrupt data near 0x%llx\n"), (INT64) ftello(ifp));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
324 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
325 + data_error++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
326 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
327 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
328 +ushort CLASS sget2 (uchar *s)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
329 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
330 + if (order == 0x4949) /* "II" means little-endian */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
331 + return s[0] | s[1] << 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
332 + else /* "MM" means big-endian */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
333 + return s[0] << 8 | s[1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
334 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
335 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
336 +ushort CLASS get2()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
337 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
338 + uchar str[2] = { 0xff,0xff };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
339 + fread (str, 1, 2, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
340 + return sget2(str);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
341 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
342 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
343 +unsigned CLASS sget4 (uchar *s)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
344 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
345 + if (order == 0x4949)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
346 + return s[0] | s[1] << 8 | s[2] << 16 | s[3] << 24;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
347 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
348 + return s[0] << 24 | s[1] << 16 | s[2] << 8 | s[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
349 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
350 +#define sget4(s) sget4((uchar *)s)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
351 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
352 +unsigned CLASS get4()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
353 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
354 + uchar str[4] = { 0xff,0xff,0xff,0xff };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
355 + fread (str, 1, 4, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
356 + return sget4(str);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
357 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
358 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
359 +unsigned CLASS getint (int type)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
360 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
361 + return type == 3 ? get2() : get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
362 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
363 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
364 +float CLASS int_to_float (int i)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
365 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
366 + union { int i; float f; } u;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
367 + u.i = i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
368 + return u.f;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
369 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
370 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
371 +double CLASS getreal (int type)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
372 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
373 + union { char c[8]; double d; } u;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
374 + int i, rev;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
375 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
376 + switch (type) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
377 + case 3: return (unsigned short) get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
378 + case 4: return (unsigned int) get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
379 + case 5: u.d = (unsigned int) get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
380 + return u.d / (unsigned int) get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
381 + case 8: return (signed short) get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
382 + case 9: return (signed int) get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
383 + case 10: u.d = (signed int) get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
384 + return u.d / (signed int) get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
385 + case 11: return int_to_float (get4());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
386 + case 12:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
387 + rev = 7 * ((order == 0x4949) == (ntohs(0x1234) == 0x1234));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
388 + for (i=0; i < 8; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
389 + u.c[i ^ rev] = fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
390 + return u.d;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
391 + default: return fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
392 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
393 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
394 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
395 +void CLASS read_shorts (ushort *pixel, int count)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
396 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
397 + if (fread (pixel, 2, count, ifp) < count) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
398 + if ((order == 0x4949) == (ntohs(0x1234) == 0x1234))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
399 + swab (pixel, pixel, count*2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
400 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
401 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
402 +void CLASS cubic_spline (const int *x_, const int *y_, const int len)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
403 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
404 + float **A, *b, *c, *d, *x, *y;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
405 + int i, j;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
406 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
407 + A = (float **) calloc (((2*len + 4)*sizeof **A + sizeof *A), 2*len);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
408 + if (!A) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
409 + A[0] = (float *) (A + 2*len);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
410 + for (i = 1; i < 2*len; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
411 + A[i] = A[0] + 2*len*i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
412 + y = len + (x = i + (d = i + (c = i + (b = A[0] + i*i))));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
413 + for (i = 0; i < len; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
414 + x[i] = x_[i] / 65535.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
415 + y[i] = y_[i] / 65535.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
416 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
417 + for (i = len-1; i > 0; i--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
418 + b[i] = (y[i] - y[i-1]) / (x[i] - x[i-1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
419 + d[i-1] = x[i] - x[i-1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
420 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
421 + for (i = 1; i < len-1; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
422 + A[i][i] = 2 * (d[i-1] + d[i]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
423 + if (i > 1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
424 + A[i][i-1] = d[i-1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
425 + A[i-1][i] = d[i-1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
426 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
427 + A[i][len-1] = 6 * (b[i+1] - b[i]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
428 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
429 + for(i = 1; i < len-2; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
430 + float v = A[i+1][i] / A[i][i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
431 + for(j = 1; j <= len-1; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
432 + A[i+1][j] -= v * A[i][j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
433 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
434 + for(i = len-2; i > 0; i--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
435 + float acc = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
436 + for(j = i; j <= len-2; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
437 + acc += A[i][j]*c[j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
438 + c[i] = (A[i][len-1] - acc) / A[i][i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
439 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
440 + for (i = 0; i < 0x10000; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
441 + float x_out = (float)(i / 65535.0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
442 + float y_out = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
443 + for (j = 0; j < len-1; j++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
444 + if (x[j] <= x_out && x_out <= x[j+1]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
445 + float v = x_out - x[j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
446 + y_out = y[j] +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
447 + ((y[j+1] - y[j]) / d[j] - (2 * d[j] * c[j] + c[j+1] * d[j])/6) * v
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
448 + + (c[j] * 0.5) * v*v + ((c[j+1] - c[j]) / (6 * d[j])) * v*v*v;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
449 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
450 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
451 + curve[i] = y_out < 0.0 ? 0 : (y_out >= 1.0 ? 65535 :
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
452 + (ushort)(y_out * 65535.0 + 0.5));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
453 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
454 + free (A);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
455 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
456 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
457 +void CLASS canon_600_fixed_wb (int temp)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
458 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
459 + static const short mul[4][5] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
460 + { 667, 358,397,565,452 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
461 + { 731, 390,367,499,517 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
462 + { 1119, 396,348,448,537 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
463 + { 1399, 485,431,508,688 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
464 + int lo, hi, i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
465 + float frac=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
466 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
467 + for (lo=4; --lo; )
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
468 + if (*mul[lo] <= temp) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
469 + for (hi=0; hi < 3; hi++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
470 + if (*mul[hi] >= temp) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
471 + if (lo != hi)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
472 + frac = (float) (temp - *mul[lo]) / (*mul[hi] - *mul[lo]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
473 + for (i=1; i < 5; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
474 + pre_mul[i-1] = 1 / (frac * mul[hi][i] + (1-frac) * mul[lo][i]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
475 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
476 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
477 +/* Return values: 0 = white 1 = near white 2 = not white */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
478 +int CLASS canon_600_color (int ratio[2], int mar)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
479 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
480 + int clipped=0, target, miss;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
481 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
482 + if (flash_used) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
483 + if (ratio[1] < -104)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
484 + { ratio[1] = -104; clipped = 1; }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
485 + if (ratio[1] > 12)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
486 + { ratio[1] = 12; clipped = 1; }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
487 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
488 + if (ratio[1] < -264 || ratio[1] > 461) return 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
489 + if (ratio[1] < -50)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
490 + { ratio[1] = -50; clipped = 1; }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
491 + if (ratio[1] > 307)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
492 + { ratio[1] = 307; clipped = 1; }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
493 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
494 + target = flash_used || ratio[1] < 197
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
495 + ? -38 - (398 * ratio[1] >> 10)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
496 + : -123 + (48 * ratio[1] >> 10);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
497 + if (target - mar <= ratio[0] &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
498 + target + 20 >= ratio[0] && !clipped) return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
499 + miss = target - ratio[0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
500 + if (abs(miss) >= mar*4) return 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
501 + if (miss < -20) miss = -20;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
502 + if (miss > mar) miss = mar;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
503 + ratio[0] = target - miss;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
504 + return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
505 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
506 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
507 +void CLASS canon_600_auto_wb()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
508 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
509 + int mar, row, col, i, j, st, count[] = { 0,0 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
510 + int test[8], total[2][8], ratio[2][2], stat[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
511 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
512 + memset (&total, 0, sizeof total);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
513 + i = canon_ev + 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
514 + if (i < 10) mar = 150;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
515 + else if (i > 12) mar = 20;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
516 + else mar = 280 - 20 * i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
517 + if (flash_used) mar = 80;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
518 + for (row=14; row < height-14; row+=4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
519 + for (col=10; col < width; col+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
520 + for (i=0; i < 8; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
521 + test[(i & 4) + FC(row+(i >> 1),col+(i & 1))] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
522 + BAYER(row+(i >> 1),col+(i & 1));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
523 + for (i=0; i < 8; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
524 + if (test[i] < 150 || test[i] > 1500) goto next;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
525 + for (i=0; i < 4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
526 + if (abs(test[i] - test[i+4]) > 50) goto next;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
527 + for (i=0; i < 2; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
528 + for (j=0; j < 4; j+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
529 + ratio[i][j >> 1] = ((test[i*4+j+1]-test[i*4+j]) << 10) / test[i*4+j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
530 + stat[i] = canon_600_color (ratio[i], mar);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
531 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
532 + if ((st = stat[0] | stat[1]) > 1) goto next;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
533 + for (i=0; i < 2; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
534 + if (stat[i])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
535 + for (j=0; j < 2; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
536 + test[i*4+j*2+1] = test[i*4+j*2] * (0x400 + ratio[i][j]) >> 10;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
537 + for (i=0; i < 8; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
538 + total[st][i] += test[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
539 + count[st]++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
540 +next: ;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
541 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
542 + if (count[0] | count[1]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
543 + st = count[0]*200 < count[1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
544 + for (i=0; i < 4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
545 + pre_mul[i] = 1.0 / (total[st][i] + total[st][i+4]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
546 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
547 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
548 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
549 +void CLASS canon_600_coeff()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
550 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
551 + static const short table[6][12] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
552 + { -190,702,-1878,2390, 1861,-1349,905,-393, -432,944,2617,-2105 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
553 + { -1203,1715,-1136,1648, 1388,-876,267,245, -1641,2153,3921,-3409 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
554 + { -615,1127,-1563,2075, 1437,-925,509,3, -756,1268,2519,-2007 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
555 + { -190,702,-1886,2398, 2153,-1641,763,-251, -452,964,3040,-2528 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
556 + { -190,702,-1878,2390, 1861,-1349,905,-393, -432,944,2617,-2105 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
557 + { -807,1319,-1785,2297, 1388,-876,769,-257, -230,742,2067,-1555 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
558 + int t=0, i, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
559 + float mc, yc;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
560 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
561 + mc = pre_mul[1] / pre_mul[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
562 + yc = pre_mul[3] / pre_mul[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
563 + if (mc > 1 && mc <= 1.28 && yc < 0.8789) t=1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
564 + if (mc > 1.28 && mc <= 2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
565 + if (yc < 0.8789) t=3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
566 + else if (yc <= 2) t=4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
567 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
568 + if (flash_used) t=5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
569 + for (raw_color = i=0; i < 3; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
570 + FORCC rgb_cam[i][c] = table[t][i*4 + c] / 1024.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
571 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
572 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
573 +void CLASS canon_600_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
574 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
575 + uchar data[1120], *dp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
576 + ushort *pix;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
577 + int irow, row;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
578 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
579 + for (irow=row=0; irow < height; irow++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
580 + if (fread (data, 1, 1120, ifp) < 1120) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
581 + pix = raw_image + row*raw_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
582 + for (dp=data; dp < data+1120; dp+=10, pix+=8) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
583 + pix[0] = (dp[0] << 2) + (dp[1] >> 6 );
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
584 + pix[1] = (dp[2] << 2) + (dp[1] >> 4 & 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
585 + pix[2] = (dp[3] << 2) + (dp[1] >> 2 & 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
586 + pix[3] = (dp[4] << 2) + (dp[1] & 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
587 + pix[4] = (dp[5] << 2) + (dp[9] & 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
588 + pix[5] = (dp[6] << 2) + (dp[9] >> 2 & 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
589 + pix[6] = (dp[7] << 2) + (dp[9] >> 4 & 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
590 + pix[7] = (dp[8] << 2) + (dp[9] >> 6 );
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
591 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
592 + if ((row+=2) > height) row = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
593 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
594 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
595 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
596 +void CLASS canon_600_correct()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
597 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
598 + int row, col, val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
599 + static const short mul[4][2] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
600 + { { 1141,1145 }, { 1128,1109 }, { 1178,1149 }, { 1128,1109 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
601 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
602 + for (row=0; row < height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
603 + for (col=0; col < width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
604 + if ((val = BAYER(row,col) - black) < 0) val = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
605 + val = val * mul[row & 3][col & 1] >> 9;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
606 + BAYER(row,col) = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
607 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
608 + canon_600_fixed_wb(1311);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
609 + canon_600_auto_wb();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
610 + canon_600_coeff();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
611 + maximum = (0x3ff - black) * 1109 >> 9;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
612 + black = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
613 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
614 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
615 +int CLASS canon_s2is()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
616 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
617 + unsigned row;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
618 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
619 + for (row=0; row < 100; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
620 + fseek (ifp, row*3340 + 3284, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
621 + if (getc(ifp) > 15) return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
622 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
623 + return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
624 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
625 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
626 +unsigned CLASS getbithuff (int nbits, ushort *huff)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
627 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
628 + static unsigned bitbuf=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
629 + static int vbits=0, reset=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
630 + unsigned c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
631 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
632 + if (nbits > 25) return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
633 + if (nbits < 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
634 + return bitbuf = vbits = reset = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
635 + if (nbits == 0 || vbits < 0) return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
636 + while (!reset && vbits < nbits && (c = fgetc(ifp)) != EOF &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
637 + !(reset = zero_after_ff && c == 0xff && fgetc(ifp))) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
638 + bitbuf = (bitbuf << 8) + (uchar) c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
639 + vbits += 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
640 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
641 + c = bitbuf << (32-vbits) >> (32-nbits);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
642 + if (huff) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
643 + vbits -= huff[c] >> 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
644 + c = (uchar) huff[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
645 + } else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
646 + vbits -= nbits;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
647 + if (vbits < 0) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
648 + return c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
649 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
650 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
651 +#define getbits(n) getbithuff(n,0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
652 +#define gethuff(h) getbithuff(*h,h+1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
653 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
654 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
655 + Construct a decode tree according the specification in *source.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
656 + The first 16 bytes specify how many codes should be 1-bit, 2-bit
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
657 + 3-bit, etc. Bytes after that are the leaf values.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
658 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
659 + For example, if the source is
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
660 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
661 + { 0,1,4,2,3,1,2,0,0,0,0,0,0,0,0,0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
662 + 0x04,0x03,0x05,0x06,0x02,0x07,0x01,0x08,0x09,0x00,0x0a,0x0b,0xff },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
663 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
664 + then the code is
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
665 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
666 + 00 0x04
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
667 + 010 0x03
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
668 + 011 0x05
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
669 + 100 0x06
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
670 + 101 0x02
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
671 + 1100 0x07
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
672 + 1101 0x01
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
673 + 11100 0x08
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
674 + 11101 0x09
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
675 + 11110 0x00
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
676 + 111110 0x0a
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
677 + 1111110 0x0b
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
678 + 1111111 0xff
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
679 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
680 +ushort * CLASS make_decoder_ref (const uchar **source)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
681 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
682 + int max, len, h, i, j;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
683 + const uchar *count;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
684 + ushort *huff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
685 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
686 + count = (*source += 16) - 17;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
687 + for (max=16; max && !count[max]; max--);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
688 + huff = (ushort *) calloc (1 + (1 << max), sizeof *huff);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
689 + merror (huff, "make_decoder()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
690 + huff[0] = max;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
691 + for (h=len=1; len <= max; len++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
692 + for (i=0; i < count[len]; i++, ++*source)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
693 + for (j=0; j < 1 << (max-len); j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
694 + if (h <= 1 << max)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
695 + huff[h++] = len << 8 | **source;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
696 + return huff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
697 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
698 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
699 +ushort * CLASS make_decoder (const uchar *source)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
700 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
701 + return make_decoder_ref (&source);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
702 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
703 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
704 +void CLASS crw_init_tables (unsigned table, ushort *huff[2])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
705 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
706 + static const uchar first_tree[3][29] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
707 + { 0,1,4,2,3,1,2,0,0,0,0,0,0,0,0,0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
708 + 0x04,0x03,0x05,0x06,0x02,0x07,0x01,0x08,0x09,0x00,0x0a,0x0b,0xff },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
709 + { 0,2,2,3,1,1,1,1,2,0,0,0,0,0,0,0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
710 + 0x03,0x02,0x04,0x01,0x05,0x00,0x06,0x07,0x09,0x08,0x0a,0x0b,0xff },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
711 + { 0,0,6,3,1,1,2,0,0,0,0,0,0,0,0,0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
712 + 0x06,0x05,0x07,0x04,0x08,0x03,0x09,0x02,0x00,0x0a,0x01,0x0b,0xff },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
713 + };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
714 + static const uchar second_tree[3][180] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
715 + { 0,2,2,2,1,4,2,1,2,5,1,1,0,0,0,139,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
716 + 0x03,0x04,0x02,0x05,0x01,0x06,0x07,0x08,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
717 + 0x12,0x13,0x11,0x14,0x09,0x15,0x22,0x00,0x21,0x16,0x0a,0xf0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
718 + 0x23,0x17,0x24,0x31,0x32,0x18,0x19,0x33,0x25,0x41,0x34,0x42,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
719 + 0x35,0x51,0x36,0x37,0x38,0x29,0x79,0x26,0x1a,0x39,0x56,0x57,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
720 + 0x28,0x27,0x52,0x55,0x58,0x43,0x76,0x59,0x77,0x54,0x61,0xf9,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
721 + 0x71,0x78,0x75,0x96,0x97,0x49,0xb7,0x53,0xd7,0x74,0xb6,0x98,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
722 + 0x47,0x48,0x95,0x69,0x99,0x91,0xfa,0xb8,0x68,0xb5,0xb9,0xd6,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
723 + 0xf7,0xd8,0x67,0x46,0x45,0x94,0x89,0xf8,0x81,0xd5,0xf6,0xb4,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
724 + 0x88,0xb1,0x2a,0x44,0x72,0xd9,0x87,0x66,0xd4,0xf5,0x3a,0xa7,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
725 + 0x73,0xa9,0xa8,0x86,0x62,0xc7,0x65,0xc8,0xc9,0xa1,0xf4,0xd1,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
726 + 0xe9,0x5a,0x92,0x85,0xa6,0xe7,0x93,0xe8,0xc1,0xc6,0x7a,0x64,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
727 + 0xe1,0x4a,0x6a,0xe6,0xb3,0xf1,0xd3,0xa5,0x8a,0xb2,0x9a,0xba,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
728 + 0x84,0xa4,0x63,0xe5,0xc5,0xf3,0xd2,0xc4,0x82,0xaa,0xda,0xe4,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
729 + 0xf2,0xca,0x83,0xa3,0xa2,0xc3,0xea,0xc2,0xe2,0xe3,0xff,0xff },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
730 + { 0,2,2,1,4,1,4,1,3,3,1,0,0,0,0,140,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
731 + 0x02,0x03,0x01,0x04,0x05,0x12,0x11,0x06,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
732 + 0x13,0x07,0x08,0x14,0x22,0x09,0x21,0x00,0x23,0x15,0x31,0x32,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
733 + 0x0a,0x16,0xf0,0x24,0x33,0x41,0x42,0x19,0x17,0x25,0x18,0x51,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
734 + 0x34,0x43,0x52,0x29,0x35,0x61,0x39,0x71,0x62,0x36,0x53,0x26,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
735 + 0x38,0x1a,0x37,0x81,0x27,0x91,0x79,0x55,0x45,0x28,0x72,0x59,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
736 + 0xa1,0xb1,0x44,0x69,0x54,0x58,0xd1,0xfa,0x57,0xe1,0xf1,0xb9,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
737 + 0x49,0x47,0x63,0x6a,0xf9,0x56,0x46,0xa8,0x2a,0x4a,0x78,0x99,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
738 + 0x3a,0x75,0x74,0x86,0x65,0xc1,0x76,0xb6,0x96,0xd6,0x89,0x85,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
739 + 0xc9,0xf5,0x95,0xb4,0xc7,0xf7,0x8a,0x97,0xb8,0x73,0xb7,0xd8,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
740 + 0xd9,0x87,0xa7,0x7a,0x48,0x82,0x84,0xea,0xf4,0xa6,0xc5,0x5a,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
741 + 0x94,0xa4,0xc6,0x92,0xc3,0x68,0xb5,0xc8,0xe4,0xe5,0xe6,0xe9,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
742 + 0xa2,0xa3,0xe3,0xc2,0x66,0x67,0x93,0xaa,0xd4,0xd5,0xe7,0xf8,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
743 + 0x88,0x9a,0xd7,0x77,0xc4,0x64,0xe2,0x98,0xa5,0xca,0xda,0xe8,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
744 + 0xf3,0xf6,0xa9,0xb2,0xb3,0xf2,0xd2,0x83,0xba,0xd3,0xff,0xff },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
745 + { 0,0,6,2,1,3,3,2,5,1,2,2,8,10,0,117,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
746 + 0x04,0x05,0x03,0x06,0x02,0x07,0x01,0x08,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
747 + 0x09,0x12,0x13,0x14,0x11,0x15,0x0a,0x16,0x17,0xf0,0x00,0x22,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
748 + 0x21,0x18,0x23,0x19,0x24,0x32,0x31,0x25,0x33,0x38,0x37,0x34,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
749 + 0x35,0x36,0x39,0x79,0x57,0x58,0x59,0x28,0x56,0x78,0x27,0x41,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
750 + 0x29,0x77,0x26,0x42,0x76,0x99,0x1a,0x55,0x98,0x97,0xf9,0x48,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
751 + 0x54,0x96,0x89,0x47,0xb7,0x49,0xfa,0x75,0x68,0xb6,0x67,0x69,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
752 + 0xb9,0xb8,0xd8,0x52,0xd7,0x88,0xb5,0x74,0x51,0x46,0xd9,0xf8,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
753 + 0x3a,0xd6,0x87,0x45,0x7a,0x95,0xd5,0xf6,0x86,0xb4,0xa9,0x94,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
754 + 0x53,0x2a,0xa8,0x43,0xf5,0xf7,0xd4,0x66,0xa7,0x5a,0x44,0x8a,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
755 + 0xc9,0xe8,0xc8,0xe7,0x9a,0x6a,0x73,0x4a,0x61,0xc7,0xf4,0xc6,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
756 + 0x65,0xe9,0x72,0xe6,0x71,0x91,0x93,0xa6,0xda,0x92,0x85,0x62,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
757 + 0xf3,0xc5,0xb2,0xa4,0x84,0xba,0x64,0xa5,0xb3,0xd2,0x81,0xe5,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
758 + 0xd3,0xaa,0xc4,0xca,0xf2,0xb1,0xe4,0xd1,0x83,0x63,0xea,0xc3,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
759 + 0xe2,0x82,0xf1,0xa3,0xc2,0xa1,0xc1,0xe3,0xa2,0xe1,0xff,0xff }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
760 + };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
761 + if (table > 2) table = 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
762 + huff[0] = make_decoder ( first_tree[table]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
763 + huff[1] = make_decoder (second_tree[table]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
764 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
765 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
766 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
767 + Return 0 if the image starts with compressed data,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
768 + 1 if it starts with uncompressed low-order bits.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
769 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
770 + In Canon compressed data, 0xff is always followed by 0x00.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
771 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
772 +int CLASS canon_has_lowbits()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
773 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
774 + uchar test[0x4000];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
775 + int ret=1, i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
776 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
777 + fseek (ifp, 0, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
778 + fread (test, 1, sizeof test, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
779 + for (i=540; i < sizeof test - 1; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
780 + if (test[i] == 0xff) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
781 + if (test[i+1]) return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
782 + ret=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
783 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
784 + return ret;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
785 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
786 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
787 +void CLASS canon_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
788 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
789 + ushort *pixel, *prow, *huff[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
790 + int nblocks, lowbits, i, c, row, r, save, val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
791 + int block, diffbuf[64], leaf, len, diff, carry=0, pnum=0, base[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
792 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
793 + crw_init_tables (tiff_compress, huff);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
794 + lowbits = canon_has_lowbits();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
795 + if (!lowbits) maximum = 0x3ff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
796 + fseek (ifp, 540 + lowbits*raw_height*raw_width/4, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
797 + zero_after_ff = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
798 + getbits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
799 + for (row=0; row < raw_height; row+=8) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
800 + pixel = raw_image + row*raw_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
801 + nblocks = MIN (8, raw_height-row) * raw_width >> 6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
802 + for (block=0; block < nblocks; block++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
803 + memset (diffbuf, 0, sizeof diffbuf);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
804 + for (i=0; i < 64; i++ ) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
805 + leaf = gethuff(huff[i > 0]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
806 + if (leaf == 0 && i) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
807 + if (leaf == 0xff) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
808 + i += leaf >> 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
809 + len = leaf & 15;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
810 + if (len == 0) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
811 + diff = getbits(len);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
812 + if ((diff & (1 << (len-1))) == 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
813 + diff -= (1 << len) - 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
814 + if (i < 64) diffbuf[i] = diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
815 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
816 + diffbuf[0] += carry;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
817 + carry = diffbuf[0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
818 + for (i=0; i < 64; i++ ) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
819 + if (pnum++ % raw_width == 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
820 + base[0] = base[1] = 512;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
821 + if ((pixel[(block << 6) + i] = base[i & 1] += diffbuf[i]) >> 10)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
822 + derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
823 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
824 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
825 + if (lowbits) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
826 + save = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
827 + fseek (ifp, 26 + row*raw_width/4, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
828 + for (prow=pixel, i=0; i < raw_width*2; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
829 + c = fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
830 + for (r=0; r < 8; r+=2, prow++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
831 + val = (*prow << 2) + ((c >> r) & 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
832 + if (raw_width == 2672 && val < 512) val += 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
833 + *prow = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
834 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
835 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
836 + fseek (ifp, save, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
837 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
838 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
839 + FORC(2) free (huff[c]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
840 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
841 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
842 +struct jhead {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
843 + int algo, bits, high, wide, clrs, sraw, psv, restart, vpred[6];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
844 + ushort quant[64], idct[64], *huff[20], *free[20], *row;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
845 +};
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
846 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
847 +int CLASS ljpeg_start (struct jhead *jh, int info_only)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
848 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
849 + ushort c, tag, len;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
850 + uchar data[0x10000];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
851 + const uchar *dp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
852 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
853 + memset (jh, 0, sizeof *jh);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
854 + jh->restart = INT_MAX;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
855 + if ((fgetc(ifp),fgetc(ifp)) != 0xd8) return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
856 + do {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
857 + if (!fread (data, 2, 2, ifp)) return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
858 + tag = data[0] << 8 | data[1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
859 + len = (data[2] << 8 | data[3]) - 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
860 + if (tag <= 0xff00) return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
861 + fread (data, 1, len, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
862 + switch (tag) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
863 + case 0xffc3:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
864 + jh->sraw = ((data[7] >> 4) * (data[7] & 15) - 1) & 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
865 + case 0xffc1:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
866 + case 0xffc0:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
867 + jh->algo = tag & 0xff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
868 + jh->bits = data[0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
869 + jh->high = data[1] << 8 | data[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
870 + jh->wide = data[3] << 8 | data[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
871 + jh->clrs = data[5] + jh->sraw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
872 + if (len == 9 && !dng_version) getc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
873 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
874 + case 0xffc4:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
875 + if (info_only) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
876 + for (dp = data; dp < data+len && !((c = *dp++) & -20); )
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
877 + jh->free[c] = jh->huff[c] = make_decoder_ref (&dp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
878 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
879 + case 0xffda:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
880 + jh->psv = data[1+data[0]*2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
881 + jh->bits -= data[3+data[0]*2] & 15;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
882 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
883 + case 0xffdb:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
884 + FORC(64) jh->quant[c] = data[c*2+1] << 8 | data[c*2+2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
885 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
886 + case 0xffdd:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
887 + jh->restart = data[0] << 8 | data[1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
888 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
889 + } while (tag != 0xffda);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
890 + if (jh->bits > 16 || jh->clrs > 6 ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
891 + !jh->bits || !jh->high || !jh->wide || !jh->clrs) return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
892 + if (info_only) return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
893 + if (!jh->huff[0]) return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
894 + FORC(19) if (!jh->huff[c+1]) jh->huff[c+1] = jh->huff[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
895 + if (jh->sraw) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
896 + FORC(4) jh->huff[2+c] = jh->huff[1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
897 + FORC(jh->sraw) jh->huff[1+c] = jh->huff[0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
898 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
899 + jh->row = (ushort *) calloc (jh->wide*jh->clrs, 4);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
900 + merror (jh->row, "ljpeg_start()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
901 + return zero_after_ff = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
902 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
903 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
904 +void CLASS ljpeg_end (struct jhead *jh)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
905 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
906 + int c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
907 + FORC4 if (jh->free[c]) free (jh->free[c]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
908 + free (jh->row);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
909 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
910 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
911 +int CLASS ljpeg_diff (ushort *huff)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
912 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
913 + int len, diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
914 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
915 + len = gethuff(huff);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
916 + if (len == 16 && (!dng_version || dng_version >= 0x1010000))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
917 + return -32768;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
918 + diff = getbits(len);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
919 + if ((diff & (1 << (len-1))) == 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
920 + diff -= (1 << len) - 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
921 + return diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
922 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
923 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
924 +ushort * CLASS ljpeg_row (int jrow, struct jhead *jh)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
925 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
926 + int col, c, diff, pred, spred=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
927 + ushort mark=0, *row[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
928 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
929 + if (jrow * jh->wide % jh->restart == 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
930 + FORC(6) jh->vpred[c] = 1 << (jh->bits-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
931 + if (jrow) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
932 + fseek (ifp, -2, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
933 + do mark = (mark << 8) + (c = fgetc(ifp));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
934 + while (c != EOF && mark >> 4 != 0xffd);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
935 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
936 + getbits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
937 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
938 + FORC3 row[c] = jh->row + jh->wide*jh->clrs*((jrow+c) & 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
939 + for (col=0; col < jh->wide; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
940 + FORC(jh->clrs) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
941 + diff = ljpeg_diff (jh->huff[c]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
942 + if (jh->sraw && c <= jh->sraw && (col | c))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
943 + pred = spred;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
944 + else if (col) pred = row[0][-jh->clrs];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
945 + else pred = (jh->vpred[c] += diff) - diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
946 + if (jrow && col) switch (jh->psv) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
947 + case 1: break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
948 + case 2: pred = row[1][0]; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
949 + case 3: pred = row[1][-jh->clrs]; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
950 + case 4: pred = pred + row[1][0] - row[1][-jh->clrs]; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
951 + case 5: pred = pred + ((row[1][0] - row[1][-jh->clrs]) >> 1); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
952 + case 6: pred = row[1][0] + ((pred - row[1][-jh->clrs]) >> 1); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
953 + case 7: pred = (pred + row[1][0]) >> 1; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
954 + default: pred = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
955 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
956 + if ((**row = pred + diff) >> jh->bits) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
957 + if (c <= jh->sraw) spred = **row;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
958 + row[0]++; row[1]++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
959 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
960 + return row[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
961 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
962 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
963 +void CLASS lossless_jpeg_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
964 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
965 + int jwide, jrow, jcol, val, jidx, i, j, row=0, col=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
966 + struct jhead jh;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
967 + ushort *rp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
968 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
969 + if (!ljpeg_start (&jh, 0)) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
970 + jwide = jh.wide * jh.clrs;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
971 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
972 + for (jrow=0; jrow < jh.high; jrow++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
973 + rp = ljpeg_row (jrow, &jh);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
974 + if (load_flags & 1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
975 + row = jrow & 1 ? height-1-jrow/2 : jrow/2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
976 + for (jcol=0; jcol < jwide; jcol++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
977 + val = curve[*rp++];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
978 + if (cr2_slice[0]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
979 + jidx = jrow*jwide + jcol;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
980 + i = jidx / (cr2_slice[1]*raw_height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
981 + if ((j = i >= cr2_slice[0]))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
982 + i = cr2_slice[0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
983 + jidx -= i * (cr2_slice[1]*raw_height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
984 + row = jidx / cr2_slice[1+j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
985 + col = jidx % cr2_slice[1+j] + i*cr2_slice[1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
986 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
987 + if (raw_width == 3984 && (col -= 2) < 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
988 + col += (row--,raw_width);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
989 + if ((unsigned) row < raw_height) RAW(row,col) = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
990 + if (++col >= raw_width)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
991 + col = (row++,0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
992 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
993 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
994 + ljpeg_end (&jh);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
995 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
996 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
997 +void CLASS canon_sraw_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
998 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
999 + struct jhead jh;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1000 + short *rp=0, (*ip)[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1001 + int jwide, slice, scol, ecol, row, col, jrow=0, jcol=0, pix[3], c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1002 + int v[3]={0,0,0}, ver, hue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1003 + char *cp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1004 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1005 + if (!ljpeg_start (&jh, 0) || jh.clrs < 4) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1006 + jwide = (jh.wide >>= 1) * jh.clrs;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1007 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1008 + for (ecol=slice=0; slice <= cr2_slice[0]; slice++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1009 + scol = ecol;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1010 + ecol += cr2_slice[1] * 2 / jh.clrs;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1011 + if (!cr2_slice[0] || ecol > raw_width-1) ecol = raw_width & -2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1012 + for (row=0; row < height; row += (jh.clrs >> 1) - 1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1013 + ip = (short (*)[4]) image + row*width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1014 + for (col=scol; col < ecol; col+=2, jcol+=jh.clrs) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1015 + if ((jcol %= jwide) == 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1016 + rp = (short *) ljpeg_row (jrow++, &jh);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1017 + if (col >= width) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1018 + FORC (jh.clrs-2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1019 + ip[col + (c >> 1)*width + (c & 1)][0] = rp[jcol+c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1020 + ip[col][1] = rp[jcol+jh.clrs-2] - 16384;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1021 + ip[col][2] = rp[jcol+jh.clrs-1] - 16384;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1022 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1023 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1024 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1025 + for (cp=model2; *cp && !isdigit(*cp); cp++);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1026 + sscanf (cp, "%d.%d.%d", v, v+1, v+2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1027 + ver = (v[0]*1000 + v[1])*1000 + v[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1028 + hue = (jh.sraw+1) << 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1029 + if (unique_id >= 0x80000281 || (unique_id == 0x80000218 && ver > 1000006))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1030 + hue = jh.sraw << 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1031 + ip = (short (*)[4]) image;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1032 + rp = ip[0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1033 + for (row=0; row < height; row++, ip+=width) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1034 + if (row & (jh.sraw >> 1))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1035 + for (col=0; col < width; col+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1036 + for (c=1; c < 3; c++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1037 + if (row == height-1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1038 + ip[col][c] = ip[col-width][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1039 + else ip[col][c] = (ip[col-width][c] + ip[col+width][c] + 1) >> 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1040 + for (col=1; col < width; col+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1041 + for (c=1; c < 3; c++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1042 + if (col == width-1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1043 + ip[col][c] = ip[col-1][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1044 + else ip[col][c] = (ip[col-1][c] + ip[col+1][c] + 1) >> 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1045 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1046 + for ( ; rp < ip[0]; rp+=4) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1047 + if (unique_id == 0x80000218 ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1048 + unique_id == 0x80000250 ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1049 + unique_id == 0x80000261 ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1050 + unique_id == 0x80000281 ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1051 + unique_id == 0x80000287) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1052 + rp[1] = (rp[1] << 2) + hue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1053 + rp[2] = (rp[2] << 2) + hue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1054 + pix[0] = rp[0] + (( 50*rp[1] + 22929*rp[2]) >> 14);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1055 + pix[1] = rp[0] + ((-5640*rp[1] - 11751*rp[2]) >> 14);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1056 + pix[2] = rp[0] + ((29040*rp[1] - 101*rp[2]) >> 14);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1057 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1058 + if (unique_id < 0x80000218) rp[0] -= 512;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1059 + pix[0] = rp[0] + rp[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1060 + pix[2] = rp[0] + rp[1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1061 + pix[1] = rp[0] + ((-778*rp[1] - (rp[2] << 11)) >> 12);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1062 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1063 + FORC3 rp[c] = CLIP(pix[c] * sraw_mul[c] >> 10);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1064 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1065 + ljpeg_end (&jh);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1066 + maximum = 0x3fff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1067 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1068 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1069 +void CLASS adobe_copy_pixel (unsigned row, unsigned col, ushort **rp)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1070 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1071 + int c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1072 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1073 + if (tiff_samples == 2 && shot_select) (*rp)++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1074 + if (raw_image) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1075 + if (row < raw_height && col < raw_width)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1076 + RAW(row,col) = curve[**rp];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1077 + *rp += tiff_samples;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1078 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1079 + if (row < height && col < width)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1080 + FORC(tiff_samples)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1081 + image[row*width+col][c] = curve[(*rp)[c]];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1082 + *rp += tiff_samples;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1083 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1084 + if (tiff_samples == 2 && shot_select) (*rp)--;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1085 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1086 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1087 +void CLASS ljpeg_idct (struct jhead *jh)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1088 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1089 + int c, i, j, len, skip, coef;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1090 + float work[3][8][8];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1091 + static float cs[106] = { 0 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1092 + static const uchar zigzag[80] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1093 + { 0, 1, 8,16, 9, 2, 3,10,17,24,32,25,18,11, 4, 5,12,19,26,33,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1094 + 40,48,41,34,27,20,13, 6, 7,14,21,28,35,42,49,56,57,50,43,36,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1095 + 29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1096 + 47,55,62,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63,63 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1097 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1098 + if (!cs[0])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1099 + FORC(106) cs[c] = cos((c & 31)*M_PI/16)/2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1100 + memset (work, 0, sizeof work);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1101 + work[0][0][0] = jh->vpred[0] += ljpeg_diff (jh->huff[0]) * jh->quant[0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1102 + for (i=1; i < 64; i++ ) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1103 + len = gethuff (jh->huff[16]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1104 + i += skip = len >> 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1105 + if (!(len &= 15) && skip < 15) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1106 + coef = getbits(len);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1107 + if ((coef & (1 << (len-1))) == 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1108 + coef -= (1 << len) - 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1109 + ((float *)work)[zigzag[i]] = coef * jh->quant[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1110 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1111 + FORC(8) work[0][0][c] *= M_SQRT1_2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1112 + FORC(8) work[0][c][0] *= M_SQRT1_2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1113 + for (i=0; i < 8; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1114 + for (j=0; j < 8; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1115 + FORC(8) work[1][i][j] += work[0][i][c] * cs[(j*2+1)*c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1116 + for (i=0; i < 8; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1117 + for (j=0; j < 8; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1118 + FORC(8) work[2][i][j] += work[1][c][j] * cs[(i*2+1)*c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1119 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1120 + FORC(64) jh->idct[c] = CLIP(((float *)work[2])[c]+0.5);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1121 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1122 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1123 +void CLASS lossless_dng_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1124 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1125 + unsigned save, trow=0, tcol=0, jwide, jrow, jcol, row, col, i, j;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1126 + struct jhead jh;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1127 + ushort *rp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1128 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1129 + while (trow < raw_height) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1130 + save = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1131 + if (tile_length < INT_MAX)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1132 + fseek (ifp, get4(), SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1133 + if (!ljpeg_start (&jh, 0)) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1134 + jwide = jh.wide;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1135 + if (filters) jwide *= jh.clrs;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1136 + jwide /= MIN (is_raw, tiff_samples);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1137 + switch (jh.algo) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1138 + case 0xc1:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1139 + jh.vpred[0] = 16384;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1140 + getbits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1141 + for (jrow=0; jrow+7 < jh.high; jrow += 8) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1142 + for (jcol=0; jcol+7 < jh.wide; jcol += 8) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1143 + ljpeg_idct (&jh);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1144 + rp = jh.idct;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1145 + row = trow + jcol/tile_width + jrow*2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1146 + col = tcol + jcol%tile_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1147 + for (i=0; i < 16; i+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1148 + for (j=0; j < 8; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1149 + adobe_copy_pixel (row+i, col+j, &rp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1150 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1151 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1152 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1153 + case 0xc3:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1154 + for (row=col=jrow=0; jrow < jh.high; jrow++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1155 + rp = ljpeg_row (jrow, &jh);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1156 + for (jcol=0; jcol < jwide; jcol++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1157 + adobe_copy_pixel (trow+row, tcol+col, &rp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1158 + if (++col >= tile_width || col >= raw_width)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1159 + row += 1 + (col = 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1160 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1161 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1162 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1163 + fseek (ifp, save+4, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1164 + if ((tcol += tile_width) >= raw_width)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1165 + trow += tile_length + (tcol = 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1166 + ljpeg_end (&jh);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1167 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1168 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1169 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1170 +void CLASS packed_dng_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1171 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1172 + ushort *pixel, *rp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1173 + int row, col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1174 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1175 + pixel = (ushort *) calloc (raw_width, tiff_samples*sizeof *pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1176 + merror (pixel, "packed_dng_load_raw()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1177 + for (row=0; row < raw_height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1178 + if (tiff_bps == 16)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1179 + read_shorts (pixel, raw_width * tiff_samples);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1180 + else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1181 + getbits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1182 + for (col=0; col < raw_width * tiff_samples; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1183 + pixel[col] = getbits(tiff_bps);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1184 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1185 + for (rp=pixel, col=0; col < raw_width; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1186 + adobe_copy_pixel (row, col, &rp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1187 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1188 + free (pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1189 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1190 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1191 +void CLASS pentax_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1192 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1193 + ushort bit[2][15], huff[4097];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1194 + int dep, row, col, diff, c, i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1195 + ushort vpred[2][2] = {{0,0},{0,0}}, hpred[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1196 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1197 + fseek (ifp, meta_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1198 + dep = (get2() + 12) & 15;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1199 + fseek (ifp, 12, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1200 + FORC(dep) bit[0][c] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1201 + FORC(dep) bit[1][c] = fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1202 + FORC(dep)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1203 + for (i=bit[0][c]; i <= ((bit[0][c]+(4096 >> bit[1][c])-1) & 4095); )
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1204 + huff[++i] = bit[1][c] << 8 | c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1205 + huff[0] = 12;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1206 + fseek (ifp, data_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1207 + getbits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1208 + for (row=0; row < raw_height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1209 + for (col=0; col < raw_width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1210 + diff = ljpeg_diff (huff);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1211 + if (col < 2) hpred[col] = vpred[row & 1][col] += diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1212 + else hpred[col & 1] += diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1213 + RAW(row,col) = hpred[col & 1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1214 + if (hpred[col & 1] >> tiff_bps) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1215 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1216 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1217 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1218 +void CLASS nikon_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1219 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1220 + static const uchar nikon_tree[][32] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1221 + { 0,1,5,1,1,1,1,1,1,2,0,0,0,0,0,0, /* 12-bit lossy */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1222 + 5,4,3,6,2,7,1,0,8,9,11,10,12 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1223 + { 0,1,5,1,1,1,1,1,1,2,0,0,0,0,0,0, /* 12-bit lossy after split */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1224 + 0x39,0x5a,0x38,0x27,0x16,5,4,3,2,1,0,11,12,12 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1225 + { 0,1,4,2,3,1,2,0,0,0,0,0,0,0,0,0, /* 12-bit lossless */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1226 + 5,4,6,3,7,2,8,1,9,0,10,11,12 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1227 + { 0,1,4,3,1,1,1,1,1,2,0,0,0,0,0,0, /* 14-bit lossy */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1228 + 5,6,4,7,8,3,9,2,1,0,10,11,12,13,14 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1229 + { 0,1,5,1,1,1,1,1,1,1,2,0,0,0,0,0, /* 14-bit lossy after split */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1230 + 8,0x5c,0x4b,0x3a,0x29,7,6,5,4,3,2,1,0,13,14 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1231 + { 0,1,4,2,2,3,1,2,0,0,0,0,0,0,0,0, /* 14-bit lossless */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1232 + 7,6,8,5,9,4,10,3,11,12,2,0,1,13,14 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1233 + ushort *huff, ver0, ver1, vpred[2][2], hpred[2], csize;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1234 + int i, min, max, step=0, tree=0, split=0, row, col, len, shl, diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1235 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1236 + fseek (ifp, meta_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1237 + ver0 = fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1238 + ver1 = fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1239 + if (ver0 == 0x49 || ver1 == 0x58)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1240 + fseek (ifp, 2110, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1241 + if (ver0 == 0x46) tree = 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1242 + if (tiff_bps == 14) tree += 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1243 + read_shorts (vpred[0], 4);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1244 + max = 1 << tiff_bps & 0x7fff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1245 + if ((csize = get2()) > 1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1246 + step = max / (csize-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1247 + if (ver0 == 0x44 && ver1 == 0x20 && step > 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1248 + for (i=0; i < csize; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1249 + curve[i*step] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1250 + for (i=0; i < max; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1251 + curve[i] = ( curve[i-i%step]*(step-i%step) +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1252 + curve[i-i%step+step]*(i%step) ) / step;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1253 + fseek (ifp, meta_offset+562, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1254 + split = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1255 + } else if (ver0 != 0x46 && csize <= 0x4001)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1256 + read_shorts (curve, max=csize);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1257 + while (curve[max-2] == curve[max-1]) max--;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1258 + huff = make_decoder (nikon_tree[tree]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1259 + fseek (ifp, data_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1260 + getbits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1261 + for (min=row=0; row < height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1262 + if (split && row == split) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1263 + free (huff);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1264 + huff = make_decoder (nikon_tree[tree+1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1265 + max += (min = 16) << 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1266 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1267 + for (col=0; col < raw_width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1268 + i = gethuff(huff);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1269 + len = i & 15;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1270 + shl = i >> 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1271 + diff = ((getbits(len-shl) << 1) + 1) << shl >> 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1272 + if ((diff & (1 << (len-1))) == 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1273 + diff -= (1 << len) - !shl;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1274 + if (col < 2) hpred[col] = vpred[row & 1][col] += diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1275 + else hpred[col & 1] += diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1276 + if ((ushort)(hpred[col & 1] + min) >= max) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1277 + RAW(row,col) = curve[LIM((short)hpred[col & 1],0,0x3fff)];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1278 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1279 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1280 + free (huff);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1281 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1282 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1283 +void CLASS nikon_yuv_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1284 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1285 + int row, col, yuv[4], rgb[3], b, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1286 + UINT64 bitbuf=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1287 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1288 + for (row=0; row < raw_height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1289 + for (col=0; col < raw_width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1290 + if (!(b = col & 1)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1291 + bitbuf = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1292 + FORC(6) bitbuf |= (UINT64) fgetc(ifp) << c*8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1293 + FORC(4) yuv[c] = (bitbuf >> c*12 & 0xfff) - (c >> 1 << 11);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1294 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1295 + rgb[0] = yuv[b] + 1.370705*yuv[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1296 + rgb[1] = yuv[b] - 0.337633*yuv[2] - 0.698001*yuv[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1297 + rgb[2] = yuv[b] + 1.732446*yuv[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1298 + FORC3 image[row*width+col][c] = curve[LIM(rgb[c],0,0xfff)] / cam_mul[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1299 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1300 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1301 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1302 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1303 + Returns 1 for a Coolpix 995, 0 for anything else.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1304 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1305 +int CLASS nikon_e995()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1306 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1307 + int i, histo[256];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1308 + const uchar often[] = { 0x00, 0x55, 0xaa, 0xff };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1309 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1310 + memset (histo, 0, sizeof histo);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1311 + fseek (ifp, -2000, SEEK_END);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1312 + for (i=0; i < 2000; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1313 + histo[fgetc(ifp)]++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1314 + for (i=0; i < 4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1315 + if (histo[often[i]] < 200)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1316 + return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1317 + return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1318 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1319 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1320 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1321 + Returns 1 for a Coolpix 2100, 0 for anything else.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1322 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1323 +int CLASS nikon_e2100()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1324 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1325 + uchar t[12];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1326 + int i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1327 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1328 + fseek (ifp, 0, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1329 + for (i=0; i < 1024; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1330 + fread (t, 1, 12, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1331 + if (((t[2] & t[4] & t[7] & t[9]) >> 4
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1332 + & t[1] & t[6] & t[8] & t[11] & 3) != 3)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1333 + return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1334 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1335 + return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1336 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1337 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1338 +void CLASS nikon_3700()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1339 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1340 + int bits, i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1341 + uchar dp[24];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1342 + static const struct {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1343 + int bits;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1344 + char make[12], model[15];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1345 + } table[] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1346 + { 0x00, "Pentax", "Optio 33WR" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1347 + { 0x03, "Nikon", "E3200" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1348 + { 0x32, "Nikon", "E3700" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1349 + { 0x33, "Olympus", "C740UZ" } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1350 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1351 + fseek (ifp, 3072, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1352 + fread (dp, 1, 24, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1353 + bits = (dp[8] & 3) << 4 | (dp[20] & 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1354 + for (i=0; i < sizeof table / sizeof *table; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1355 + if (bits == table[i].bits) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1356 + strcpy (make, table[i].make );
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1357 + strcpy (model, table[i].model);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1358 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1359 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1360 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1361 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1362 + Separates a Minolta DiMAGE Z2 from a Nikon E4300.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1363 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1364 +int CLASS minolta_z2()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1365 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1366 + int i, nz;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1367 + char tail[424];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1368 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1369 + fseek (ifp, -sizeof tail, SEEK_END);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1370 + fread (tail, 1, sizeof tail, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1371 + for (nz=i=0; i < sizeof tail; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1372 + if (tail[i]) nz++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1373 + return nz > 20;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1374 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1375 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1376 +void CLASS jpeg_thumb();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1377 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1378 +void CLASS ppm_thumb()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1379 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1380 + char *thumb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1381 + thumb_length = thumb_width*thumb_height*3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1382 + thumb = (char *) malloc (thumb_length);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1383 + merror (thumb, "ppm_thumb()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1384 + fprintf (ofp, "P6\n%d %d\n255\n", thumb_width, thumb_height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1385 + fread (thumb, 1, thumb_length, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1386 + fwrite (thumb, 1, thumb_length, ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1387 + free (thumb);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1388 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1389 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1390 +void CLASS ppm16_thumb()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1391 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1392 + int i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1393 + char *thumb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1394 + thumb_length = thumb_width*thumb_height*3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1395 + thumb = (char *) calloc (thumb_length, 2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1396 + merror (thumb, "ppm16_thumb()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1397 + read_shorts ((ushort *) thumb, thumb_length);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1398 + for (i=0; i < thumb_length; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1399 + thumb[i] = ((ushort *) thumb)[i] >> 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1400 + fprintf (ofp, "P6\n%d %d\n255\n", thumb_width, thumb_height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1401 + fwrite (thumb, 1, thumb_length, ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1402 + free (thumb);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1403 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1404 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1405 +void CLASS layer_thumb()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1406 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1407 + int i, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1408 + char *thumb, map[][4] = { "012","102" };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1409 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1410 + colors = thumb_misc >> 5 & 7;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1411 + thumb_length = thumb_width*thumb_height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1412 + thumb = (char *) calloc (colors, thumb_length);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1413 + merror (thumb, "layer_thumb()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1414 + fprintf (ofp, "P%d\n%d %d\n255\n",
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1415 + 5 + (colors >> 1), thumb_width, thumb_height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1416 + fread (thumb, thumb_length, colors, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1417 + for (i=0; i < thumb_length; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1418 + FORCC putc (thumb[i+thumb_length*(map[thumb_misc >> 8][c]-'0')], ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1419 + free (thumb);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1420 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1421 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1422 +void CLASS rollei_thumb()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1423 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1424 + unsigned i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1425 + ushort *thumb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1426 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1427 + thumb_length = thumb_width * thumb_height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1428 + thumb = (ushort *) calloc (thumb_length, 2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1429 + merror (thumb, "rollei_thumb()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1430 + fprintf (ofp, "P6\n%d %d\n255\n", thumb_width, thumb_height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1431 + read_shorts (thumb, thumb_length);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1432 + for (i=0; i < thumb_length; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1433 + putc (thumb[i] << 3, ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1434 + putc (thumb[i] >> 5 << 2, ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1435 + putc (thumb[i] >> 11 << 3, ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1436 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1437 + free (thumb);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1438 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1439 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1440 +void CLASS rollei_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1441 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1442 + uchar pixel[10];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1443 + unsigned iten=0, isix, i, buffer=0, todo[16];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1444 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1445 + isix = raw_width * raw_height * 5 / 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1446 + while (fread (pixel, 1, 10, ifp) == 10) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1447 + for (i=0; i < 10; i+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1448 + todo[i] = iten++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1449 + todo[i+1] = pixel[i] << 8 | pixel[i+1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1450 + buffer = pixel[i] >> 2 | buffer << 6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1451 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1452 + for ( ; i < 16; i+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1453 + todo[i] = isix++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1454 + todo[i+1] = buffer >> (14-i)*5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1455 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1456 + for (i=0; i < 16; i+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1457 + raw_image[todo[i]] = (todo[i+1] & 0x3ff);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1458 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1459 + maximum = 0x3ff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1460 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1461 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1462 +int CLASS raw (unsigned row, unsigned col)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1463 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1464 + return (row < raw_height && col < raw_width) ? RAW(row,col) : 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1465 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1466 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1467 +void CLASS phase_one_flat_field (int is_float, int nc)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1468 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1469 + ushort head[8];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1470 + unsigned wide, high, y, x, c, rend, cend, row, col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1471 + float *mrow, num, mult[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1472 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1473 + read_shorts (head, 8);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1474 + if (head[2] * head[3] * head[4] * head[5] == 0) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1475 + wide = head[2] / head[4] + (head[2] % head[4] != 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1476 + high = head[3] / head[5] + (head[3] % head[5] != 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1477 + mrow = (float *) calloc (nc*wide, sizeof *mrow);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1478 + merror (mrow, "phase_one_flat_field()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1479 + for (y=0; y < high; y++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1480 + for (x=0; x < wide; x++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1481 + for (c=0; c < nc; c+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1482 + num = is_float ? getreal(11) : get2()/32768.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1483 + if (y==0) mrow[c*wide+x] = num;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1484 + else mrow[(c+1)*wide+x] = (num - mrow[c*wide+x]) / head[5];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1485 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1486 + if (y==0) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1487 + rend = head[1] + y*head[5];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1488 + for (row = rend-head[5];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1489 + row < raw_height && row < rend &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1490 + row < head[1]+head[3]-head[5]; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1491 + for (x=1; x < wide; x++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1492 + for (c=0; c < nc; c+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1493 + mult[c] = mrow[c*wide+x-1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1494 + mult[c+1] = (mrow[c*wide+x] - mult[c]) / head[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1495 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1496 + cend = head[0] + x*head[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1497 + for (col = cend-head[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1498 + col < raw_width &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1499 + col < cend && col < head[0]+head[2]-head[4]; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1500 + c = nc > 2 ? FC(row-top_margin,col-left_margin) : 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1501 + if (!(c & 1)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1502 + c = RAW(row,col) * mult[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1503 + RAW(row,col) = LIM(c,0,65535);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1504 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1505 + for (c=0; c < nc; c+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1506 + mult[c] += mult[c+1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1507 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1508 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1509 + for (x=0; x < wide; x++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1510 + for (c=0; c < nc; c+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1511 + mrow[c*wide+x] += mrow[(c+1)*wide+x];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1512 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1513 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1514 + free (mrow);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1515 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1516 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1517 +void CLASS phase_one_correct()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1518 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1519 + unsigned entries, tag, data, save, col, row, type;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1520 + int len, i, j, k, cip, val[4], dev[4], sum, max;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1521 + int head[9], diff, mindiff=INT_MAX, off_412=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1522 + static const signed char dir[12][2] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1523 + { {-1,-1}, {-1,1}, {1,-1}, {1,1}, {-2,0}, {0,-2}, {0,2}, {2,0},
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1524 + {-2,-2}, {-2,2}, {2,-2}, {2,2} };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1525 + float poly[8], num, cfrac, frac, mult[2], *yval[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1526 + ushort *xval[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1527 + int qmult_applied = 0, qlin_applied = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1528 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1529 + if (half_size || !meta_length) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1530 + if (verbose) fprintf (stderr,_("Phase One correction...\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1531 + fseek (ifp, meta_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1532 + order = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1533 + fseek (ifp, 6, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1534 + fseek (ifp, meta_offset+get4(), SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1535 + entries = get4(); get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1536 + while (entries--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1537 + tag = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1538 + len = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1539 + data = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1540 + save = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1541 + fseek (ifp, meta_offset+data, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1542 + if (tag == 0x419) { /* Polynomial curve */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1543 + for (get4(), i=0; i < 8; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1544 + poly[i] = getreal(11);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1545 + poly[3] += (ph1.tag_210 - poly[7]) * poly[6] + 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1546 + for (i=0; i < 0x10000; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1547 + num = (poly[5]*i + poly[3])*i + poly[1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1548 + curve[i] = LIM(num,0,65535);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1549 + } goto apply; /* apply to right half */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1550 + } else if (tag == 0x41a) { /* Polynomial curve */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1551 + for (i=0; i < 4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1552 + poly[i] = getreal(11);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1553 + for (i=0; i < 0x10000; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1554 + for (num=0, j=4; j--; )
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1555 + num = num * i + poly[j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1556 + curve[i] = LIM(num+i,0,65535);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1557 + } apply: /* apply to whole image */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1558 + for (row=0; row < raw_height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1559 + for (col = (tag & 1)*ph1.split_col; col < raw_width; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1560 + RAW(row,col) = curve[RAW(row,col)];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1561 + } else if (tag == 0x400) { /* Sensor defects */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1562 + while ((len -= 8) >= 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1563 + col = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1564 + row = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1565 + type = get2(); get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1566 + if (col >= raw_width) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1567 + if (type == 131 || type == 137) /* Bad column */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1568 + for (row=0; row < raw_height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1569 + if (FC(row-top_margin,col-left_margin) == 1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1570 + for (sum=i=0; i < 4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1571 + sum += val[i] = raw (row+dir[i][0], col+dir[i][1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1572 + for (max=i=0; i < 4; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1573 + dev[i] = abs((val[i] << 2) - sum);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1574 + if (dev[max] < dev[i]) max = i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1575 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1576 + RAW(row,col) = (sum - val[max])/3.0 + 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1577 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1578 + for (sum=0, i=8; i < 12; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1579 + sum += raw (row+dir[i][0], col+dir[i][1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1580 + RAW(row,col) = 0.5 + sum * 0.0732233 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1581 + (raw(row,col-2) + raw(row,col+2)) * 0.3535534;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1582 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1583 + else if (type == 129) { /* Bad pixel */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1584 + if (row >= raw_height) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1585 + j = (FC(row-top_margin,col-left_margin) != 1) * 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1586 + for (sum=0, i=j; i < j+8; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1587 + sum += raw (row+dir[i][0], col+dir[i][1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1588 + RAW(row,col) = (sum + 4) >> 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1589 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1590 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1591 + } else if (tag == 0x401) { /* All-color flat fields */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1592 + phase_one_flat_field (1, 2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1593 + } else if (tag == 0x416 || tag == 0x410) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1594 + phase_one_flat_field (0, 2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1595 + } else if (tag == 0x40b) { /* Red+blue flat field */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1596 + phase_one_flat_field (0, 4);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1597 + } else if (tag == 0x412) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1598 + fseek (ifp, 36, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1599 + diff = abs (get2() - ph1.tag_21a);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1600 + if (mindiff > diff) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1601 + mindiff = diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1602 + off_412 = ftell(ifp) - 38;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1603 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1604 + } else if (tag == 0x41f && !qlin_applied) { /* Quadrant linearization */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1605 + ushort lc[2][2][16], ref[16];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1606 + int qr, qc;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1607 + for (qr = 0; qr < 2; qr++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1608 + for (qc = 0; qc < 2; qc++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1609 + for (i = 0; i < 16; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1610 + lc[qr][qc][i] = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1611 + for (i = 0; i < 16; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1612 + int v = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1613 + for (qr = 0; qr < 2; qr++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1614 + for (qc = 0; qc < 2; qc++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1615 + v += lc[qr][qc][i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1616 + ref[i] = (v + 2) >> 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1617 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1618 + for (qr = 0; qr < 2; qr++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1619 + for (qc = 0; qc < 2; qc++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1620 + int cx[19], cf[19];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1621 + for (i = 0; i < 16; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1622 + cx[1+i] = lc[qr][qc][i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1623 + cf[1+i] = ref[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1624 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1625 + cx[0] = cf[0] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1626 + cx[17] = cf[17] = ((unsigned) ref[15] * 65535) / lc[qr][qc][15];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1627 + cx[18] = cf[18] = 65535;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1628 + cubic_spline(cx, cf, 19);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1629 + for (row = (qr ? ph1.split_row : 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1630 + row < (qr ? raw_height : ph1.split_row); row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1631 + for (col = (qc ? ph1.split_col : 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1632 + col < (qc ? raw_width : ph1.split_col); col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1633 + RAW(row,col) = curve[RAW(row,col)];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1634 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1635 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1636 + qlin_applied = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1637 + } else if (tag == 0x41e && !qmult_applied) { /* Quadrant multipliers */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1638 + float qmult[2][2] = { { 1, 1 }, { 1, 1 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1639 + get4(); get4(); get4(); get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1640 + qmult[0][0] = 1.0 + getreal(11);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1641 + get4(); get4(); get4(); get4(); get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1642 + qmult[0][1] = 1.0 + getreal(11);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1643 + get4(); get4(); get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1644 + qmult[1][0] = 1.0 + getreal(11);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1645 + get4(); get4(); get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1646 + qmult[1][1] = 1.0 + getreal(11);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1647 + for (row=0; row < raw_height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1648 + for (col=0; col < raw_width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1649 + i = qmult[row >= ph1.split_row][col >= ph1.split_col] * RAW(row,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1650 + RAW(row,col) = LIM(i,0,65535);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1651 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1652 + qmult_applied = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1653 + } else if (tag == 0x431 && !qmult_applied) { /* Quadrant combined */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1654 + ushort lc[2][2][7], ref[7];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1655 + int qr, qc;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1656 + for (i = 0; i < 7; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1657 + ref[i] = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1658 + for (qr = 0; qr < 2; qr++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1659 + for (qc = 0; qc < 2; qc++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1660 + for (i = 0; i < 7; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1661 + lc[qr][qc][i] = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1662 + for (qr = 0; qr < 2; qr++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1663 + for (qc = 0; qc < 2; qc++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1664 + int cx[9], cf[9];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1665 + for (i = 0; i < 7; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1666 + cx[1+i] = ref[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1667 + cf[1+i] = ((unsigned) ref[i] * lc[qr][qc][i]) / 10000;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1668 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1669 + cx[0] = cf[0] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1670 + cx[8] = cf[8] = 65535;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1671 + cubic_spline(cx, cf, 9);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1672 + for (row = (qr ? ph1.split_row : 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1673 + row < (qr ? raw_height : ph1.split_row); row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1674 + for (col = (qc ? ph1.split_col : 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1675 + col < (qc ? raw_width : ph1.split_col); col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1676 + RAW(row,col) = curve[RAW(row,col)];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1677 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1678 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1679 + qmult_applied = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1680 + qlin_applied = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1681 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1682 + fseek (ifp, save, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1683 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1684 + if (off_412) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1685 + fseek (ifp, off_412, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1686 + for (i=0; i < 9; i++) head[i] = get4() & 0x7fff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1687 + yval[0] = (float *) calloc (head[1]*head[3] + head[2]*head[4], 6);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1688 + merror (yval[0], "phase_one_correct()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1689 + yval[1] = (float *) (yval[0] + head[1]*head[3]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1690 + xval[0] = (ushort *) (yval[1] + head[2]*head[4]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1691 + xval[1] = (ushort *) (xval[0] + head[1]*head[3]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1692 + get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1693 + for (i=0; i < 2; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1694 + for (j=0; j < head[i+1]*head[i+3]; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1695 + yval[i][j] = getreal(11);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1696 + for (i=0; i < 2; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1697 + for (j=0; j < head[i+1]*head[i+3]; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1698 + xval[i][j] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1699 + for (row=0; row < raw_height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1700 + for (col=0; col < raw_width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1701 + cfrac = (float) col * head[3] / raw_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1702 + cfrac -= cip = cfrac;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1703 + num = RAW(row,col) * 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1704 + for (i=cip; i < cip+2; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1705 + for (k=j=0; j < head[1]; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1706 + if (num < xval[0][k = head[1]*i+j]) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1707 + frac = (j == 0 || j == head[1]) ? 0 :
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1708 + (xval[0][k] - num) / (xval[0][k] - xval[0][k-1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1709 + mult[i-cip] = yval[0][k-1] * frac + yval[0][k] * (1-frac);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1710 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1711 + i = ((mult[0] * (1-cfrac) + mult[1] * cfrac) * row + num) * 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1712 + RAW(row,col) = LIM(i,0,65535);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1713 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1714 + free (yval[0]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1715 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1716 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1717 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1718 +void CLASS phase_one_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1719 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1720 + int a, b, i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1721 + ushort akey, bkey, mask;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1722 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1723 + fseek (ifp, ph1.key_off, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1724 + akey = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1725 + bkey = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1726 + mask = ph1.format == 1 ? 0x5555:0x1354;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1727 + fseek (ifp, data_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1728 + read_shorts (raw_image, raw_width*raw_height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1729 + if (ph1.format)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1730 + for (i=0; i < raw_width*raw_height; i+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1731 + a = raw_image[i+0] ^ akey;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1732 + b = raw_image[i+1] ^ bkey;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1733 + raw_image[i+0] = (a & mask) | (b & ~mask);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1734 + raw_image[i+1] = (b & mask) | (a & ~mask);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1735 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1736 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1737 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1738 +unsigned CLASS ph1_bithuff (int nbits, ushort *huff)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1739 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1740 + static UINT64 bitbuf=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1741 + static int vbits=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1742 + unsigned c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1743 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1744 + if (nbits == -1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1745 + return bitbuf = vbits = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1746 + if (nbits == 0) return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1747 + if (vbits < nbits) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1748 + bitbuf = bitbuf << 32 | get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1749 + vbits += 32;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1750 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1751 + c = bitbuf << (64-vbits) >> (64-nbits);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1752 + if (huff) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1753 + vbits -= huff[c] >> 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1754 + return (uchar) huff[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1755 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1756 + vbits -= nbits;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1757 + return c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1758 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1759 +#define ph1_bits(n) ph1_bithuff(n,0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1760 +#define ph1_huff(h) ph1_bithuff(*h,h+1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1761 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1762 +void CLASS phase_one_load_raw_c()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1763 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1764 + static const int length[] = { 8,7,6,9,11,10,5,12,14,13 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1765 + int *offset, len[2], pred[2], row, col, i, j;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1766 + ushort *pixel;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1767 + short (*cblack)[2], (*rblack)[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1768 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1769 + pixel = (ushort *) calloc (raw_width*3 + raw_height*4, 2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1770 + merror (pixel, "phase_one_load_raw_c()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1771 + offset = (int *) (pixel + raw_width);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1772 + fseek (ifp, strip_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1773 + for (row=0; row < raw_height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1774 + offset[row] = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1775 + cblack = (short (*)[2]) (offset + raw_height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1776 + fseek (ifp, ph1.black_col, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1777 + if (ph1.black_col)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1778 + read_shorts ((ushort *) cblack[0], raw_height*2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1779 + rblack = cblack + raw_height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1780 + fseek (ifp, ph1.black_row, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1781 + if (ph1.black_row)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1782 + read_shorts ((ushort *) rblack[0], raw_width*2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1783 + for (i=0; i < 256; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1784 + curve[i] = i*i / 3.969 + 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1785 + for (row=0; row < raw_height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1786 + fseek (ifp, data_offset + offset[row], SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1787 + ph1_bits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1788 + pred[0] = pred[1] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1789 + for (col=0; col < raw_width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1790 + if (col >= (raw_width & -8))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1791 + len[0] = len[1] = 14;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1792 + else if ((col & 7) == 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1793 + for (i=0; i < 2; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1794 + for (j=0; j < 5 && !ph1_bits(1); j++);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1795 + if (j--) len[i] = length[j*2 + ph1_bits(1)];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1796 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1797 + if ((i = len[col & 1]) == 14)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1798 + pixel[col] = pred[col & 1] = ph1_bits(16);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1799 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1800 + pixel[col] = pred[col & 1] += ph1_bits(i) + 1 - (1 << (i - 1));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1801 + if (pred[col & 1] >> 16) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1802 + if (ph1.format == 5 && pixel[col] < 256)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1803 + pixel[col] = curve[pixel[col]];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1804 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1805 + for (col=0; col < raw_width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1806 + i = (pixel[col] << 2*(ph1.format != 8)) - ph1.black
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1807 + + cblack[row][col >= ph1.split_col]
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1808 + + rblack[col][row >= ph1.split_row];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1809 + if (i > 0) RAW(row,col) = i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1810 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1811 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1812 + free (pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1813 + maximum = 0xfffc - ph1.black;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1814 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1815 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1816 +void CLASS hasselblad_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1817 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1818 + struct jhead jh;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1819 + int shot, row, col, *back[5], len[2], diff[12], pred, sh, f, s, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1820 + unsigned upix, urow, ucol;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1821 + ushort *ip;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1822 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1823 + if (!ljpeg_start (&jh, 0)) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1824 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1825 + ph1_bits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1826 + back[4] = (int *) calloc (raw_width, 3*sizeof **back);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1827 + merror (back[4], "hasselblad_load_raw()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1828 + FORC3 back[c] = back[4] + c*raw_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1829 + cblack[6] >>= sh = tiff_samples > 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1830 + shot = LIM(shot_select, 1, tiff_samples) - 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1831 + for (row=0; row < raw_height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1832 + FORC4 back[(c+3) & 3] = back[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1833 + for (col=0; col < raw_width; col+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1834 + for (s=0; s < tiff_samples*2; s+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1835 + FORC(2) len[c] = ph1_huff(jh.huff[0]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1836 + FORC(2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1837 + diff[s+c] = ph1_bits(len[c]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1838 + if ((diff[s+c] & (1 << (len[c]-1))) == 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1839 + diff[s+c] -= (1 << len[c]) - 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1840 + if (diff[s+c] == 65535) diff[s+c] = -32768;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1841 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1842 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1843 + for (s=col; s < col+2; s++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1844 + pred = 0x8000 + load_flags;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1845 + if (col) pred = back[2][s-2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1846 + if (col && row > 1) switch (jh.psv) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1847 + case 11: pred += back[0][s]/2 - back[0][s-2]/2; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1848 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1849 + f = (row & 1)*3 ^ ((col+s) & 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1850 + FORC (tiff_samples) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1851 + pred += diff[(s & 1)*tiff_samples+c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1852 + upix = pred >> sh & 0xffff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1853 + if (raw_image && c == shot)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1854 + RAW(row,s) = upix;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1855 + if (image) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1856 + urow = row-top_margin + (c & 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1857 + ucol = col-left_margin - ((c >> 1) & 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1858 + ip = &image[urow*width+ucol][f];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1859 + if (urow < height && ucol < width)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1860 + *ip = c < 4 ? upix : (*ip + upix) >> 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1861 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1862 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1863 + back[2][s] = pred;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1864 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1865 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1866 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1867 + free (back[4]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1868 + ljpeg_end (&jh);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1869 + if (image) mix_green = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1870 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1871 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1872 +void CLASS leaf_hdr_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1873 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1874 + ushort *pixel=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1875 + unsigned tile=0, r, c, row, col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1876 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1877 + if (!filters) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1878 + pixel = (ushort *) calloc (raw_width, sizeof *pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1879 + merror (pixel, "leaf_hdr_load_raw()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1880 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1881 + FORC(tiff_samples)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1882 + for (r=0; r < raw_height; r++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1883 + if (r % tile_length == 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1884 + fseek (ifp, data_offset + 4*tile++, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1885 + fseek (ifp, get4(), SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1886 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1887 + if (filters && c != shot_select) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1888 + if (filters) pixel = raw_image + r*raw_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1889 + read_shorts (pixel, raw_width);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1890 + if (!filters && (row = r - top_margin) < height)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1891 + for (col=0; col < width; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1892 + image[row*width+col][c] = pixel[col+left_margin];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1893 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1894 + if (!filters) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1895 + maximum = 0xffff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1896 + raw_color = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1897 + free (pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1898 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1899 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1900 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1901 +void CLASS unpacked_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1902 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1903 + int row, col, bits=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1904 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1905 + while (1 << ++bits < maximum);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1906 + read_shorts (raw_image, raw_width*raw_height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1907 + for (row=0; row < raw_height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1908 + for (col=0; col < raw_width; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1909 + if ((RAW(row,col) >>= load_flags) >> bits
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1910 + && (unsigned) (row-top_margin) < height
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1911 + && (unsigned) (col-left_margin) < width) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1912 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1913 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1914 +void CLASS sinar_4shot_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1915 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1916 + ushort *pixel;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1917 + unsigned shot, row, col, r, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1918 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1919 + if (raw_image) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1920 + shot = LIM (shot_select, 1, 4) - 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1921 + fseek (ifp, data_offset + shot*4, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1922 + fseek (ifp, get4(), SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1923 + unpacked_load_raw();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1924 + return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1925 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1926 + pixel = (ushort *) calloc (raw_width, sizeof *pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1927 + merror (pixel, "sinar_4shot_load_raw()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1928 + for (shot=0; shot < 4; shot++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1929 + fseek (ifp, data_offset + shot*4, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1930 + fseek (ifp, get4(), SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1931 + for (row=0; row < raw_height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1932 + read_shorts (pixel, raw_width);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1933 + if ((r = row-top_margin - (shot >> 1 & 1)) >= height) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1934 + for (col=0; col < raw_width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1935 + if ((c = col-left_margin - (shot & 1)) >= width) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1936 + image[r*width+c][(row & 1)*3 ^ (~col & 1)] = pixel[col];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1937 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1938 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1939 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1940 + free (pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1941 + mix_green = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1942 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1943 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1944 +void CLASS imacon_full_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1945 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1946 + int row, col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1947 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1948 + if (!image) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1949 + for (row=0; row < height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1950 + for (col=0; col < width; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1951 + read_shorts (image[row*width+col], 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1952 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1953 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1954 +void CLASS packed_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1955 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1956 + int vbits=0, bwide, rbits, bite, half, irow, row, col, val, i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1957 + UINT64 bitbuf=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1958 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1959 + bwide = raw_width * tiff_bps / 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1960 + bwide += bwide & load_flags >> 7;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1961 + rbits = bwide * 8 - raw_width * tiff_bps;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1962 + if (load_flags & 1) bwide = bwide * 16 / 15;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1963 + bite = 8 + (load_flags & 24);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1964 + half = (raw_height+1) >> 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1965 + for (irow=0; irow < raw_height; irow++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1966 + row = irow;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1967 + if (load_flags & 2 &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1968 + (row = irow % half * 2 + irow / half) == 1 &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1969 + load_flags & 4) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1970 + if (vbits=0, tiff_compress)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1971 + fseek (ifp, data_offset - (-half*bwide & -2048), SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1972 + else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1973 + fseek (ifp, 0, SEEK_END);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1974 + fseek (ifp, ftell(ifp) >> 3 << 2, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1975 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1976 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1977 + for (col=0; col < raw_width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1978 + for (vbits -= tiff_bps; vbits < 0; vbits += bite) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1979 + bitbuf <<= bite;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1980 + for (i=0; i < bite; i+=8)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1981 + bitbuf |= (unsigned) (fgetc(ifp) << i);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1982 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1983 + val = bitbuf << (64-tiff_bps-vbits) >> (64-tiff_bps);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1984 + RAW(row,col ^ (load_flags >> 6 & 1)) = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1985 + if (load_flags & 1 && (col % 10) == 9 && fgetc(ifp) &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1986 + row < height+top_margin && col < width+left_margin) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1987 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1988 + vbits -= rbits;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1989 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1990 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1991 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1992 +void CLASS nokia_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1993 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1994 + uchar *data, *dp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1995 + int rev, dwide, row, col, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1996 + double sum[]={0,0};
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1997 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1998 + rev = 3 * (order == 0x4949);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
1999 + dwide = (raw_width * 5 + 1) / 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2000 + data = (uchar *) malloc (dwide*2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2001 + merror (data, "nokia_load_raw()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2002 + for (row=0; row < raw_height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2003 + if (fread (data+dwide, 1, dwide, ifp) < dwide) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2004 + FORC(dwide) data[c] = data[dwide+(c ^ rev)];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2005 + for (dp=data, col=0; col < raw_width; dp+=5, col+=4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2006 + FORC4 RAW(row,col+c) = (dp[c] << 2) | (dp[4] >> (c << 1) & 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2007 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2008 + free (data);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2009 + maximum = 0x3ff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2010 + if (strcmp(make,"OmniVision")) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2011 + row = raw_height/2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2012 + FORC(width-1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2013 + sum[ c & 1] += SQR(RAW(row,c)-RAW(row+1,c+1));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2014 + sum[~c & 1] += SQR(RAW(row+1,c)-RAW(row,c+1));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2015 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2016 + if (sum[1] > sum[0]) filters = 0x4b4b4b4b;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2017 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2018 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2019 +void CLASS canon_rmf_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2020 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2021 + int row, col, bits, orow, ocol, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2022 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2023 + for (row=0; row < raw_height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2024 + for (col=0; col < raw_width-2; col+=3) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2025 + bits = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2026 + FORC3 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2027 + orow = row;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2028 + if ((ocol = col+c-4) < 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2029 + ocol += raw_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2030 + if ((orow -= 2) < 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2031 + orow += raw_height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2032 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2033 + RAW(orow,ocol) = curve[bits >> (10*c+2) & 0x3ff];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2034 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2035 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2036 + maximum = curve[0x3ff];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2037 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2038 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2039 +unsigned CLASS pana_bits (int nbits)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2040 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2041 + static uchar buf[0x4000];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2042 + static int vbits;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2043 + int byte;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2044 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2045 + if (!nbits) return vbits=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2046 + if (!vbits) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2047 + fread (buf+load_flags, 1, 0x4000-load_flags, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2048 + fread (buf, 1, load_flags, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2049 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2050 + vbits = (vbits - nbits) & 0x1ffff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2051 + byte = vbits >> 3 ^ 0x3ff0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2052 + return (buf[byte] | buf[byte+1] << 8) >> (vbits & 7) & ~(-1 << nbits);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2053 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2054 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2055 +void CLASS panasonic_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2056 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2057 + int row, col, i, j, sh=0, pred[2], nonz[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2058 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2059 + pana_bits(0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2060 + for (row=0; row < height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2061 + for (col=0; col < raw_width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2062 + if ((i = col % 14) == 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2063 + pred[0] = pred[1] = nonz[0] = nonz[1] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2064 + if (i % 3 == 2) sh = 4 >> (3 - pana_bits(2));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2065 + if (nonz[i & 1]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2066 + if ((j = pana_bits(8))) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2067 + if ((pred[i & 1] -= 0x80 << sh) < 0 || sh == 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2068 + pred[i & 1] &= ~(-1 << sh);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2069 + pred[i & 1] += j << sh;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2070 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2071 + } else if ((nonz[i & 1] = pana_bits(8)) || i > 11)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2072 + pred[i & 1] = nonz[i & 1] << 4 | pana_bits(4);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2073 + if ((RAW(row,col) = pred[col & 1]) > 4098 && col < width) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2074 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2075 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2076 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2077 +void CLASS olympus_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2078 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2079 + ushort huff[4096];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2080 + int row, col, nbits, sign, low, high, i, c, w, n, nw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2081 + int acarry[2][3], *carry, pred, diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2082 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2083 + huff[n=0] = 0xc0c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2084 + for (i=12; i--; )
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2085 + FORC(2048 >> i) huff[++n] = (i+1) << 8 | i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2086 + fseek (ifp, 7, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2087 + getbits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2088 + for (row=0; row < height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2089 + memset (acarry, 0, sizeof acarry);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2090 + for (col=0; col < raw_width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2091 + carry = acarry[col & 1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2092 + i = 2 * (carry[2] < 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2093 + for (nbits=2+i; (ushort) carry[0] >> (nbits+i); nbits++);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2094 + low = (sign = getbits(3)) & 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2095 + sign = sign << 29 >> 31;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2096 + if ((high = getbithuff(12,huff)) == 12)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2097 + high = getbits(16-nbits) >> 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2098 + carry[0] = (high << nbits) | getbits(nbits);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2099 + diff = (carry[0] ^ sign) + carry[1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2100 + carry[1] = (diff*3 + carry[1]) >> 5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2101 + carry[2] = carry[0] > 16 ? 0 : carry[2]+1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2102 + if (col >= width) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2103 + if (row < 2 && col < 2) pred = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2104 + else if (row < 2) pred = RAW(row,col-2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2105 + else if (col < 2) pred = RAW(row-2,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2106 + else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2107 + w = RAW(row,col-2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2108 + n = RAW(row-2,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2109 + nw = RAW(row-2,col-2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2110 + if ((w < nw && nw < n) || (n < nw && nw < w)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2111 + if (ABS(w-nw) > 32 || ABS(n-nw) > 32)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2112 + pred = w + n - nw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2113 + else pred = (w + n) >> 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2114 + } else pred = ABS(w-nw) > ABS(n-nw) ? w : n;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2115 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2116 + if ((RAW(row,col) = pred + ((diff << 2) | low)) >> 12) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2117 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2118 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2119 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2120 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2121 +void CLASS minolta_rd175_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2122 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2123 + uchar pixel[768];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2124 + unsigned irow, box, row, col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2125 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2126 + for (irow=0; irow < 1481; irow++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2127 + if (fread (pixel, 1, 768, ifp) < 768) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2128 + box = irow / 82;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2129 + row = irow % 82 * 12 + ((box < 12) ? box | 1 : (box-12)*2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2130 + switch (irow) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2131 + case 1477: case 1479: continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2132 + case 1476: row = 984; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2133 + case 1480: row = 985; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2134 + case 1478: row = 985; box = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2135 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2136 + if ((box < 12) && (box & 1)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2137 + for (col=0; col < 1533; col++, row ^= 1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2138 + if (col != 1) RAW(row,col) = (col+1) & 2 ?
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2139 + pixel[col/2-1] + pixel[col/2+1] : pixel[col/2] << 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2140 + RAW(row,1) = pixel[1] << 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2141 + RAW(row,1533) = pixel[765] << 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2142 + } else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2143 + for (col=row & 1; col < 1534; col+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2144 + RAW(row,col) = pixel[col/2] << 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2145 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2146 + maximum = 0xff << 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2147 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2148 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2149 +void CLASS quicktake_100_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2150 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2151 + uchar pixel[484][644];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2152 + static const short gstep[16] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2153 + { -89,-60,-44,-32,-22,-15,-8,-2,2,8,15,22,32,44,60,89 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2154 + static const short rstep[6][4] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2155 + { { -3,-1,1,3 }, { -5,-1,1,5 }, { -8,-2,2,8 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2156 + { -13,-3,3,13 }, { -19,-4,4,19 }, { -28,-6,6,28 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2157 + static const short curve[256] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2158 + { 0,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2159 + 28,29,30,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,53,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2160 + 54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,74,75,76,77,78,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2161 + 79,80,81,82,83,84,86,88,90,92,94,97,99,101,103,105,107,110,112,114,116,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2162 + 118,120,123,125,127,129,131,134,136,138,140,142,144,147,149,151,153,155,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2163 + 158,160,162,164,166,168,171,173,175,177,179,181,184,186,188,190,192,195,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2164 + 197,199,201,203,205,208,210,212,214,216,218,221,223,226,230,235,239,244,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2165 + 248,252,257,261,265,270,274,278,283,287,291,296,300,305,309,313,318,322,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2166 + 326,331,335,339,344,348,352,357,361,365,370,374,379,383,387,392,396,400,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2167 + 405,409,413,418,422,426,431,435,440,444,448,453,457,461,466,470,474,479,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2168 + 483,487,492,496,500,508,519,531,542,553,564,575,587,598,609,620,631,643,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2169 + 654,665,676,687,698,710,721,732,743,754,766,777,788,799,810,822,833,844,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2170 + 855,866,878,889,900,911,922,933,945,956,967,978,989,1001,1012,1023 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2171 + int rb, row, col, sharp, val=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2172 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2173 + getbits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2174 + memset (pixel, 0x80, sizeof pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2175 + for (row=2; row < height+2; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2176 + for (col=2+(row & 1); col < width+2; col+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2177 + val = ((pixel[row-1][col-1] + 2*pixel[row-1][col+1] +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2178 + pixel[row][col-2]) >> 2) + gstep[getbits(4)];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2179 + pixel[row][col] = val = LIM(val,0,255);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2180 + if (col < 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2181 + pixel[row][col-2] = pixel[row+1][~row & 1] = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2182 + if (row == 2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2183 + pixel[row-1][col+1] = pixel[row-1][col+3] = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2184 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2185 + pixel[row][col] = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2186 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2187 + for (rb=0; rb < 2; rb++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2188 + for (row=2+rb; row < height+2; row+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2189 + for (col=3-(row & 1); col < width+2; col+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2190 + if (row < 4 || col < 4) sharp = 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2191 + else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2192 + val = ABS(pixel[row-2][col] - pixel[row][col-2])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2193 + + ABS(pixel[row-2][col] - pixel[row-2][col-2])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2194 + + ABS(pixel[row][col-2] - pixel[row-2][col-2]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2195 + sharp = val < 4 ? 0 : val < 8 ? 1 : val < 16 ? 2 :
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2196 + val < 32 ? 3 : val < 48 ? 4 : 5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2197 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2198 + val = ((pixel[row-2][col] + pixel[row][col-2]) >> 1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2199 + + rstep[sharp][getbits(2)];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2200 + pixel[row][col] = val = LIM(val,0,255);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2201 + if (row < 4) pixel[row-2][col+2] = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2202 + if (col < 4) pixel[row+2][col-2] = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2203 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2204 + for (row=2; row < height+2; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2205 + for (col=3-(row & 1); col < width+2; col+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2206 + val = ((pixel[row][col-1] + (pixel[row][col] << 2) +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2207 + pixel[row][col+1]) >> 1) - 0x100;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2208 + pixel[row][col] = LIM(val,0,255);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2209 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2210 + for (row=0; row < height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2211 + for (col=0; col < width; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2212 + RAW(row,col) = curve[pixel[row+2][col+2]];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2213 + maximum = 0x3ff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2214 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2215 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2216 +#define radc_token(tree) ((signed char) getbithuff(8,huff[tree]))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2217 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2218 +#define FORYX for (y=1; y < 3; y++) for (x=col+1; x >= col; x--)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2219 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2220 +#define PREDICTOR (c ? (buf[c][y-1][x] + buf[c][y][x+1]) / 2 \
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2221 +: (buf[c][y-1][x+1] + 2*buf[c][y-1][x] + buf[c][y][x+1]) / 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2222 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2223 +void CLASS kodak_radc_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2224 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2225 + static const char src[] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2226 + 1,1, 2,3, 3,4, 4,2, 5,7, 6,5, 7,6, 7,8,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2227 + 1,0, 2,1, 3,3, 4,4, 5,2, 6,7, 7,6, 8,5, 8,8,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2228 + 2,1, 2,3, 3,0, 3,2, 3,4, 4,6, 5,5, 6,7, 6,8,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2229 + 2,0, 2,1, 2,3, 3,2, 4,4, 5,6, 6,7, 7,5, 7,8,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2230 + 2,1, 2,4, 3,0, 3,2, 3,3, 4,7, 5,5, 6,6, 6,8,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2231 + 2,3, 3,1, 3,2, 3,4, 3,5, 3,6, 4,7, 5,0, 5,8,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2232 + 2,3, 2,6, 3,0, 3,1, 4,4, 4,5, 4,7, 5,2, 5,8,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2233 + 2,4, 2,7, 3,3, 3,6, 4,1, 4,2, 4,5, 5,0, 5,8,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2234 + 2,6, 3,1, 3,3, 3,5, 3,7, 3,8, 4,0, 5,2, 5,4,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2235 + 2,0, 2,1, 3,2, 3,3, 4,4, 4,5, 5,6, 5,7, 4,8,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2236 + 1,0, 2,2, 2,-2,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2237 + 1,-3, 1,3,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2238 + 2,-17, 2,-5, 2,5, 2,17,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2239 + 2,-7, 2,2, 2,9, 2,18,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2240 + 2,-18, 2,-9, 2,-2, 2,7,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2241 + 2,-28, 2,28, 3,-49, 3,-9, 3,9, 4,49, 5,-79, 5,79,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2242 + 2,-1, 2,13, 2,26, 3,39, 4,-16, 5,55, 6,-37, 6,76,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2243 + 2,-26, 2,-13, 2,1, 3,-39, 4,16, 5,-55, 6,-76, 6,37
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2244 + };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2245 + ushort huff[19][256];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2246 + int row, col, tree, nreps, rep, step, i, c, s, r, x, y, val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2247 + short last[3] = { 16,16,16 }, mul[3], buf[3][3][386];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2248 + static const ushort pt[] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2249 + { 0,0, 1280,1344, 2320,3616, 3328,8000, 4095,16383, 65535,16383 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2250 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2251 + for (i=2; i < 12; i+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2252 + for (c=pt[i-2]; c <= pt[i]; c++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2253 + curve[c] = (float)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2254 + (c-pt[i-2]) / (pt[i]-pt[i-2]) * (pt[i+1]-pt[i-1]) + pt[i-1] + 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2255 + for (s=i=0; i < sizeof src; i+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2256 + FORC(256 >> src[i])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2257 + ((ushort *)huff)[s++] = src[i] << 8 | (uchar) src[i+1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2258 + s = kodak_cbpp == 243 ? 2 : 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2259 + FORC(256) huff[18][c] = (8-s) << 8 | c >> s << s | 1 << (s-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2260 + getbits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2261 + for (i=0; i < sizeof(buf)/sizeof(short); i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2262 + ((short *)buf)[i] = 2048;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2263 + for (row=0; row < height; row+=4) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2264 + FORC3 mul[c] = getbits(6);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2265 + FORC3 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2266 + val = ((0x1000000/last[c] + 0x7ff) >> 12) * mul[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2267 + s = val > 65564 ? 10:12;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2268 + x = ~(-1 << (s-1));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2269 + val <<= 12-s;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2270 + for (i=0; i < sizeof(buf[0])/sizeof(short); i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2271 + ((short *)buf[c])[i] = (((short *)buf[c])[i] * val + x) >> s;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2272 + last[c] = mul[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2273 + for (r=0; r <= !c; r++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2274 + buf[c][1][width/2] = buf[c][2][width/2] = mul[c] << 7;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2275 + for (tree=1, col=width/2; col > 0; ) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2276 + if ((tree = radc_token(tree))) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2277 + col -= 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2278 + if (tree == 8)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2279 + FORYX buf[c][y][x] = (uchar) radc_token(18) * mul[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2280 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2281 + FORYX buf[c][y][x] = radc_token(tree+10) * 16 + PREDICTOR;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2282 + } else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2283 + do {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2284 + nreps = (col > 2) ? radc_token(9) + 1 : 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2285 + for (rep=0; rep < 8 && rep < nreps && col > 0; rep++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2286 + col -= 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2287 + FORYX buf[c][y][x] = PREDICTOR;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2288 + if (rep & 1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2289 + step = radc_token(10) << 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2290 + FORYX buf[c][y][x] += step;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2291 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2292 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2293 + } while (nreps == 9);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2294 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2295 + for (y=0; y < 2; y++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2296 + for (x=0; x < width/2; x++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2297 + val = (buf[c][y+1][x] << 4) / mul[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2298 + if (val < 0) val = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2299 + if (c) RAW(row+y*2+c-1,x*2+2-c) = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2300 + else RAW(row+r*2+y,x*2+y) = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2301 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2302 + memcpy (buf[c][0]+!c, buf[c][2], sizeof buf[c][0]-2*!c);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2303 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2304 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2305 + for (y=row; y < row+4; y++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2306 + for (x=0; x < width; x++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2307 + if ((x+y) & 1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2308 + r = x ? x-1 : x+1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2309 + s = x+1 < width ? x+1 : x-1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2310 + val = (RAW(y,x)-2048)*2 + (RAW(y,r)+RAW(y,s))/2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2311 + if (val < 0) val = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2312 + RAW(y,x) = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2313 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2314 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2315 + for (i=0; i < height*width; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2316 + raw_image[i] = curve[raw_image[i]];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2317 + maximum = 0x3fff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2318 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2319 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2320 +#undef FORYX
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2321 +#undef PREDICTOR
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2322 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2323 +#ifdef NO_JPEG
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2324 +void CLASS kodak_jpeg_load_raw() {}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2325 +void CLASS lossy_dng_load_raw() {}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2326 +#else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2327 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2328 +METHODDEF(boolean)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2329 +fill_input_buffer (j_decompress_ptr cinfo)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2330 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2331 + static uchar jpeg_buffer[4096];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2332 + size_t nbytes;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2333 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2334 + nbytes = fread (jpeg_buffer, 1, 4096, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2335 + swab (jpeg_buffer, jpeg_buffer, nbytes);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2336 + cinfo->src->next_input_byte = jpeg_buffer;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2337 + cinfo->src->bytes_in_buffer = nbytes;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2338 + return TRUE;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2339 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2340 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2341 +void CLASS kodak_jpeg_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2342 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2343 + struct jpeg_decompress_struct cinfo;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2344 + struct jpeg_error_mgr jerr;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2345 + JSAMPARRAY buf;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2346 + JSAMPLE (*pixel)[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2347 + int row, col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2348 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2349 + cinfo.err = jpeg_std_error (&jerr);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2350 + jpeg_create_decompress (&cinfo);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2351 + jpeg_stdio_src (&cinfo, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2352 + cinfo.src->fill_input_buffer = fill_input_buffer;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2353 + jpeg_read_header (&cinfo, TRUE);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2354 + jpeg_start_decompress (&cinfo);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2355 + if ((cinfo.output_width != width ) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2356 + (cinfo.output_height*2 != height ) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2357 + (cinfo.output_components != 3 )) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2358 + fprintf (stderr,_("%s: incorrect JPEG dimensions\n"), ifname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2359 + jpeg_destroy_decompress (&cinfo);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2360 + longjmp (failure, 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2361 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2362 + buf = (*cinfo.mem->alloc_sarray)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2363 + ((j_common_ptr) &cinfo, JPOOL_IMAGE, width*3, 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2364 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2365 + while (cinfo.output_scanline < cinfo.output_height) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2366 + row = cinfo.output_scanline * 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2367 + jpeg_read_scanlines (&cinfo, buf, 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2368 + pixel = (JSAMPLE (*)[3]) buf[0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2369 + for (col=0; col < width; col+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2370 + RAW(row+0,col+0) = pixel[col+0][1] << 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2371 + RAW(row+1,col+1) = pixel[col+1][1] << 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2372 + RAW(row+0,col+1) = pixel[col][0] + pixel[col+1][0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2373 + RAW(row+1,col+0) = pixel[col][2] + pixel[col+1][2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2374 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2375 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2376 + jpeg_finish_decompress (&cinfo);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2377 + jpeg_destroy_decompress (&cinfo);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2378 + maximum = 0xff << 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2379 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2380 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2381 +void CLASS gamma_curve (double pwr, double ts, int mode, int imax);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2382 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2383 +void CLASS lossy_dng_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2384 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2385 + struct jpeg_decompress_struct cinfo;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2386 + struct jpeg_error_mgr jerr;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2387 + JSAMPARRAY buf;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2388 + JSAMPLE (*pixel)[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2389 + unsigned sorder=order, ntags, opcode, deg, i, j, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2390 + unsigned save=data_offset-4, trow=0, tcol=0, row, col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2391 + ushort cur[3][256];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2392 + double coeff[9], tot;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2393 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2394 + if (meta_offset) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2395 + fseek (ifp, meta_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2396 + order = 0x4d4d;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2397 + ntags = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2398 + while (ntags--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2399 + opcode = get4(); get4(); get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2400 + if (opcode != 8)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2401 + { fseek (ifp, get4(), SEEK_CUR); continue; }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2402 + fseek (ifp, 20, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2403 + if ((c = get4()) > 2) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2404 + fseek (ifp, 12, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2405 + if ((deg = get4()) > 8) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2406 + for (i=0; i <= deg && i < 9; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2407 + coeff[i] = getreal(12);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2408 + for (i=0; i < 256; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2409 + for (tot=j=0; j <= deg; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2410 + tot += coeff[j] * pow(i/255.0, j);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2411 + cur[c][i] = tot*0xffff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2412 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2413 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2414 + order = sorder;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2415 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2416 + gamma_curve (1/2.4, 12.92, 1, 255);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2417 + FORC3 memcpy (cur[c], curve, sizeof cur[0]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2418 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2419 + cinfo.err = jpeg_std_error (&jerr);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2420 + jpeg_create_decompress (&cinfo);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2421 + while (trow < raw_height) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2422 + fseek (ifp, save+=4, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2423 + if (tile_length < INT_MAX)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2424 + fseek (ifp, get4(), SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2425 + jpeg_stdio_src (&cinfo, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2426 + jpeg_read_header (&cinfo, TRUE);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2427 + jpeg_start_decompress (&cinfo);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2428 + buf = (*cinfo.mem->alloc_sarray)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2429 + ((j_common_ptr) &cinfo, JPOOL_IMAGE, cinfo.output_width*3, 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2430 + while (cinfo.output_scanline < cinfo.output_height &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2431 + (row = trow + cinfo.output_scanline) < height) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2432 + jpeg_read_scanlines (&cinfo, buf, 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2433 + pixel = (JSAMPLE (*)[3]) buf[0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2434 + for (col=0; col < cinfo.output_width && tcol+col < width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2435 + FORC3 image[row*width+tcol+col][c] = cur[c][pixel[col][c]];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2436 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2437 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2438 + jpeg_abort_decompress (&cinfo);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2439 + if ((tcol += tile_width) >= raw_width)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2440 + trow += tile_length + (tcol = 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2441 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2442 + jpeg_destroy_decompress (&cinfo);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2443 + maximum = 0xffff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2444 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2445 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2446 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2447 +void CLASS kodak_dc120_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2448 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2449 + static const int mul[4] = { 162, 192, 187, 92 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2450 + static const int add[4] = { 0, 636, 424, 212 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2451 + uchar pixel[848];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2452 + int row, shift, col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2453 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2454 + for (row=0; row < height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2455 + if (fread (pixel, 1, 848, ifp) < 848) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2456 + shift = row * mul[row & 3] + add[row & 3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2457 + for (col=0; col < width; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2458 + RAW(row,col) = (ushort) pixel[(col + shift) % 848];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2459 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2460 + maximum = 0xff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2461 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2462 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2463 +void CLASS eight_bit_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2464 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2465 + uchar *pixel;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2466 + unsigned row, col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2467 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2468 + pixel = (uchar *) calloc (raw_width, sizeof *pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2469 + merror (pixel, "eight_bit_load_raw()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2470 + for (row=0; row < raw_height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2471 + if (fread (pixel, 1, raw_width, ifp) < raw_width) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2472 + for (col=0; col < raw_width; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2473 + RAW(row,col) = curve[pixel[col]];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2474 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2475 + free (pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2476 + maximum = curve[0xff];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2477 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2478 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2479 +void CLASS kodak_c330_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2480 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2481 + uchar *pixel;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2482 + int row, col, y, cb, cr, rgb[3], c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2483 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2484 + pixel = (uchar *) calloc (raw_width, 2*sizeof *pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2485 + merror (pixel, "kodak_c330_load_raw()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2486 + for (row=0; row < height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2487 + if (fread (pixel, raw_width, 2, ifp) < 2) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2488 + if (load_flags && (row & 31) == 31)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2489 + fseek (ifp, raw_width*32, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2490 + for (col=0; col < width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2491 + y = pixel[col*2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2492 + cb = pixel[(col*2 & -4) | 1] - 128;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2493 + cr = pixel[(col*2 & -4) | 3] - 128;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2494 + rgb[1] = y - ((cb + cr + 2) >> 2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2495 + rgb[2] = rgb[1] + cb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2496 + rgb[0] = rgb[1] + cr;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2497 + FORC3 image[row*width+col][c] = curve[LIM(rgb[c],0,255)];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2498 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2499 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2500 + free (pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2501 + maximum = curve[0xff];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2502 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2503 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2504 +void CLASS kodak_c603_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2505 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2506 + uchar *pixel;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2507 + int row, col, y, cb, cr, rgb[3], c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2508 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2509 + pixel = (uchar *) calloc (raw_width, 3*sizeof *pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2510 + merror (pixel, "kodak_c603_load_raw()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2511 + for (row=0; row < height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2512 + if (~row & 1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2513 + if (fread (pixel, raw_width, 3, ifp) < 3) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2514 + for (col=0; col < width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2515 + y = pixel[width*2*(row & 1) + col];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2516 + cb = pixel[width + (col & -2)] - 128;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2517 + cr = pixel[width + (col & -2)+1] - 128;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2518 + rgb[1] = y - ((cb + cr + 2) >> 2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2519 + rgb[2] = rgb[1] + cb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2520 + rgb[0] = rgb[1] + cr;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2521 + FORC3 image[row*width+col][c] = curve[LIM(rgb[c],0,255)];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2522 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2523 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2524 + free (pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2525 + maximum = curve[0xff];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2526 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2527 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2528 +void CLASS kodak_262_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2529 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2530 + static const uchar kodak_tree[2][26] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2531 + { { 0,1,5,1,1,2,0,0,0,0,0,0,0,0,0,0, 0,1,2,3,4,5,6,7,8,9 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2532 + { 0,3,1,1,1,1,1,2,0,0,0,0,0,0,0,0, 0,1,2,3,4,5,6,7,8,9 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2533 + ushort *huff[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2534 + uchar *pixel;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2535 + int *strip, ns, c, row, col, chess, pi=0, pi1, pi2, pred, val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2536 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2537 + FORC(2) huff[c] = make_decoder (kodak_tree[c]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2538 + ns = (raw_height+63) >> 5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2539 + pixel = (uchar *) malloc (raw_width*32 + ns*4);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2540 + merror (pixel, "kodak_262_load_raw()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2541 + strip = (int *) (pixel + raw_width*32);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2542 + order = 0x4d4d;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2543 + FORC(ns) strip[c] = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2544 + for (row=0; row < raw_height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2545 + if ((row & 31) == 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2546 + fseek (ifp, strip[row >> 5], SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2547 + getbits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2548 + pi = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2549 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2550 + for (col=0; col < raw_width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2551 + chess = (row + col) & 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2552 + pi1 = chess ? pi-2 : pi-raw_width-1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2553 + pi2 = chess ? pi-2*raw_width : pi-raw_width+1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2554 + if (col <= chess) pi1 = -1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2555 + if (pi1 < 0) pi1 = pi2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2556 + if (pi2 < 0) pi2 = pi1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2557 + if (pi1 < 0 && col > 1) pi1 = pi2 = pi-2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2558 + pred = (pi1 < 0) ? 0 : (pixel[pi1] + pixel[pi2]) >> 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2559 + pixel[pi] = val = pred + ljpeg_diff (huff[chess]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2560 + if (val >> 8) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2561 + val = curve[pixel[pi++]];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2562 + RAW(row,col) = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2563 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2564 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2565 + free (pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2566 + FORC(2) free (huff[c]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2567 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2568 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2569 +int CLASS kodak_65000_decode (short *out, int bsize)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2570 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2571 + uchar c, blen[768];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2572 + ushort raw[6];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2573 + INT64 bitbuf=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2574 + int save, bits=0, i, j, len, diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2575 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2576 + save = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2577 + bsize = (bsize + 3) & -4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2578 + for (i=0; i < bsize; i+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2579 + c = fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2580 + if ((blen[i ] = c & 15) > 12 ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2581 + (blen[i+1] = c >> 4) > 12 ) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2582 + fseek (ifp, save, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2583 + for (i=0; i < bsize; i+=8) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2584 + read_shorts (raw, 6);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2585 + out[i ] = raw[0] >> 12 << 8 | raw[2] >> 12 << 4 | raw[4] >> 12;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2586 + out[i+1] = raw[1] >> 12 << 8 | raw[3] >> 12 << 4 | raw[5] >> 12;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2587 + for (j=0; j < 6; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2588 + out[i+2+j] = raw[j] & 0xfff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2589 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2590 + return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2591 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2592 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2593 + if ((bsize & 7) == 4) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2594 + bitbuf = fgetc(ifp) << 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2595 + bitbuf += fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2596 + bits = 16;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2597 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2598 + for (i=0; i < bsize; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2599 + len = blen[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2600 + if (bits < len) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2601 + for (j=0; j < 32; j+=8)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2602 + bitbuf += (INT64) fgetc(ifp) << (bits+(j^8));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2603 + bits += 32;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2604 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2605 + diff = bitbuf & (0xffff >> (16-len));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2606 + bitbuf >>= len;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2607 + bits -= len;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2608 + if ((diff & (1 << (len-1))) == 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2609 + diff -= (1 << len) - 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2610 + out[i] = diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2611 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2612 + return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2613 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2614 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2615 +void CLASS kodak_65000_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2616 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2617 + short buf[256];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2618 + int row, col, len, pred[2], ret, i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2619 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2620 + for (row=0; row < height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2621 + for (col=0; col < width; col+=256) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2622 + pred[0] = pred[1] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2623 + len = MIN (256, width-col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2624 + ret = kodak_65000_decode (buf, len);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2625 + for (i=0; i < len; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2626 + if ((RAW(row,col+i) = curve[ret ? buf[i] :
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2627 + (pred[i & 1] += buf[i])]) >> 12) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2628 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2629 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2630 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2631 +void CLASS kodak_ycbcr_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2632 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2633 + short buf[384], *bp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2634 + int row, col, len, c, i, j, k, y[2][2], cb, cr, rgb[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2635 + ushort *ip;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2636 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2637 + if (!image) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2638 + for (row=0; row < height; row+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2639 + for (col=0; col < width; col+=128) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2640 + len = MIN (128, width-col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2641 + kodak_65000_decode (buf, len*3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2642 + y[0][1] = y[1][1] = cb = cr = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2643 + for (bp=buf, i=0; i < len; i+=2, bp+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2644 + cb += bp[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2645 + cr += bp[5];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2646 + rgb[1] = -((cb + cr + 2) >> 2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2647 + rgb[2] = rgb[1] + cb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2648 + rgb[0] = rgb[1] + cr;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2649 + for (j=0; j < 2; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2650 + for (k=0; k < 2; k++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2651 + if ((y[j][k] = y[j][k^1] + *bp++) >> 10) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2652 + ip = image[(row+j)*width + col+i+k];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2653 + FORC3 ip[c] = curve[LIM(y[j][k]+rgb[c], 0, 0xfff)];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2654 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2655 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2656 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2657 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2658 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2659 +void CLASS kodak_rgb_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2660 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2661 + short buf[768], *bp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2662 + int row, col, len, c, i, rgb[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2663 + ushort *ip=image[0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2664 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2665 + for (row=0; row < height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2666 + for (col=0; col < width; col+=256) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2667 + len = MIN (256, width-col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2668 + kodak_65000_decode (buf, len*3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2669 + memset (rgb, 0, sizeof rgb);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2670 + for (bp=buf, i=0; i < len; i++, ip+=4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2671 + FORC3 if ((ip[c] = rgb[c] += *bp++) >> 12) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2672 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2673 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2674 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2675 +void CLASS kodak_thumb_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2676 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2677 + int row, col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2678 + colors = thumb_misc >> 5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2679 + for (row=0; row < height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2680 + for (col=0; col < width; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2681 + read_shorts (image[row*width+col], colors);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2682 + maximum = (1 << (thumb_misc & 31)) - 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2683 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2684 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2685 +void CLASS sony_decrypt (unsigned *data, int len, int start, int key)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2686 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2687 + static unsigned pad[128], p;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2688 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2689 + if (start) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2690 + for (p=0; p < 4; p++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2691 + pad[p] = key = key * 48828125 + 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2692 + pad[3] = pad[3] << 1 | (pad[0]^pad[2]) >> 31;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2693 + for (p=4; p < 127; p++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2694 + pad[p] = (pad[p-4]^pad[p-2]) << 1 | (pad[p-3]^pad[p-1]) >> 31;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2695 + for (p=0; p < 127; p++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2696 + pad[p] = htonl(pad[p]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2697 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2698 + while (len-- && p++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2699 + *data++ ^= pad[(p-1) & 127] = pad[p & 127] ^ pad[(p+64) & 127];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2700 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2701 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2702 +void CLASS sony_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2703 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2704 + uchar head[40];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2705 + ushort *pixel;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2706 + unsigned i, key, row, col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2707 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2708 + fseek (ifp, 200896, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2709 + fseek (ifp, (unsigned) fgetc(ifp)*4 - 1, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2710 + order = 0x4d4d;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2711 + key = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2712 + fseek (ifp, 164600, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2713 + fread (head, 1, 40, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2714 + sony_decrypt ((unsigned *) head, 10, 1, key);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2715 + for (i=26; i-- > 22; )
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2716 + key = key << 8 | head[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2717 + fseek (ifp, data_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2718 + for (row=0; row < raw_height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2719 + pixel = raw_image + row*raw_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2720 + if (fread (pixel, 2, raw_width, ifp) < raw_width) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2721 + sony_decrypt ((unsigned *) pixel, raw_width/2, !row, key);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2722 + for (col=0; col < raw_width; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2723 + if ((pixel[col] = ntohs(pixel[col])) >> 14) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2724 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2725 + maximum = 0x3ff0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2726 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2727 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2728 +void CLASS sony_arw_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2729 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2730 + ushort huff[32770];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2731 + static const ushort tab[18] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2732 + { 0xf11,0xf10,0xe0f,0xd0e,0xc0d,0xb0c,0xa0b,0x90a,0x809,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2733 + 0x708,0x607,0x506,0x405,0x304,0x303,0x300,0x202,0x201 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2734 + int i, c, n, col, row, sum=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2735 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2736 + huff[0] = 15;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2737 + for (n=i=0; i < 18; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2738 + FORC(32768 >> (tab[i] >> 8)) huff[++n] = tab[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2739 + getbits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2740 + for (col = raw_width; col--; )
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2741 + for (row=0; row < raw_height+1; row+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2742 + if (row == raw_height) row = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2743 + if ((sum += ljpeg_diff(huff)) >> 12) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2744 + if (row < height) RAW(row,col) = sum;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2745 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2746 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2747 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2748 +void CLASS sony_arw2_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2749 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2750 + uchar *data, *dp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2751 + ushort pix[16];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2752 + int row, col, val, max, min, imax, imin, sh, bit, i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2753 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2754 + data = (uchar *) malloc (raw_width+1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2755 + merror (data, "sony_arw2_load_raw()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2756 + for (row=0; row < height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2757 + fread (data, 1, raw_width, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2758 + for (dp=data, col=0; col < raw_width-30; dp+=16) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2759 + max = 0x7ff & (val = sget4(dp));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2760 + min = 0x7ff & val >> 11;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2761 + imax = 0x0f & val >> 22;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2762 + imin = 0x0f & val >> 26;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2763 + for (sh=0; sh < 4 && 0x80 << sh <= max-min; sh++);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2764 + for (bit=30, i=0; i < 16; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2765 + if (i == imax) pix[i] = max;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2766 + else if (i == imin) pix[i] = min;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2767 + else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2768 + pix[i] = ((sget2(dp+(bit >> 3)) >> (bit & 7) & 0x7f) << sh) + min;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2769 + if (pix[i] > 0x7ff) pix[i] = 0x7ff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2770 + bit += 7;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2771 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2772 + for (i=0; i < 16; i++, col+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2773 + RAW(row,col) = curve[pix[i] << 1] >> 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2774 + col -= col & 1 ? 1:31;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2775 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2776 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2777 + free (data);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2778 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2779 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2780 +void CLASS samsung_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2781 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2782 + int row, col, c, i, dir, op[4], len[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2783 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2784 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2785 + for (row=0; row < raw_height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2786 + fseek (ifp, strip_offset+row*4, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2787 + fseek (ifp, data_offset+get4(), SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2788 + ph1_bits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2789 + FORC4 len[c] = row < 2 ? 7:4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2790 + for (col=0; col < raw_width; col+=16) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2791 + dir = ph1_bits(1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2792 + FORC4 op[c] = ph1_bits(2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2793 + FORC4 switch (op[c]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2794 + case 3: len[c] = ph1_bits(4); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2795 + case 2: len[c]--; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2796 + case 1: len[c]++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2797 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2798 + for (c=0; c < 16; c+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2799 + i = len[((c & 1) << 1) | (c >> 3)];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2800 + RAW(row,col+c) = ((signed) ph1_bits(i) << (32-i) >> (32-i)) +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2801 + (dir ? RAW(row+(~c | -2),col+c) : col ? RAW(row,col+(c | -2)) : 128);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2802 + if (c == 14) c = -1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2803 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2804 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2805 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2806 + for (row=0; row < raw_height-1; row+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2807 + for (col=0; col < raw_width-1; col+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2808 + SWAP (RAW(row,col+1), RAW(row+1,col));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2809 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2810 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2811 +void CLASS samsung2_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2812 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2813 + static const ushort tab[14] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2814 + { 0x304,0x307,0x206,0x205,0x403,0x600,0x709,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2815 + 0x80a,0x90b,0xa0c,0xa0d,0x501,0x408,0x402 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2816 + ushort huff[1026], vpred[2][2] = {{0,0},{0,0}}, hpred[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2817 + int i, c, n, row, col, diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2818 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2819 + huff[0] = 10;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2820 + for (n=i=0; i < 14; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2821 + FORC(1024 >> (tab[i] >> 8)) huff[++n] = tab[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2822 + getbits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2823 + for (row=0; row < raw_height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2824 + for (col=0; col < raw_width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2825 + diff = ljpeg_diff (huff);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2826 + if (col < 2) hpred[col] = vpred[row & 1][col] += diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2827 + else hpred[col & 1] += diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2828 + RAW(row,col) = hpred[col & 1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2829 + if (hpred[col & 1] >> tiff_bps) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2830 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2831 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2832 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2833 +void CLASS samsung3_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2834 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2835 + int opt, init, mag, pmode, row, tab, col, pred, diff, i, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2836 + ushort lent[3][2], len[4], *prow[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2837 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2838 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2839 + fseek (ifp, 9, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2840 + opt = fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2841 + init = (get2(),get2());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2842 + for (row=0; row < raw_height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2843 + fseek (ifp, (data_offset-ftell(ifp)) & 15, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2844 + ph1_bits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2845 + mag = 0; pmode = 7;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2846 + FORC(6) ((ushort *)lent)[c] = row < 2 ? 7:4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2847 + prow[ row & 1] = &RAW(row-1,1-((row & 1) << 1)); // green
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2848 + prow[~row & 1] = &RAW(row-2,0); // red and blue
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2849 + for (tab=0; tab+15 < raw_width; tab+=16) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2850 + if (~opt & 4 && !(tab & 63)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2851 + i = ph1_bits(2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2852 + mag = i < 3 ? mag-'2'+"204"[i] : ph1_bits(12);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2853 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2854 + if (opt & 2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2855 + pmode = 7 - 4*ph1_bits(1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2856 + else if (!ph1_bits(1))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2857 + pmode = ph1_bits(3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2858 + if (opt & 1 || !ph1_bits(1)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2859 + FORC4 len[c] = ph1_bits(2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2860 + FORC4 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2861 + i = ((row & 1) << 1 | (c & 1)) % 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2862 + len[c] = len[c] < 3 ? lent[i][0]-'1'+"120"[len[c]] : ph1_bits(4);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2863 + lent[i][0] = lent[i][1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2864 + lent[i][1] = len[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2865 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2866 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2867 + FORC(16) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2868 + col = tab + (((c & 7) << 1)^(c >> 3)^(row & 1));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2869 + pred = (pmode == 7 || row < 2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2870 + ? (tab ? RAW(row,tab-2+(col & 1)) : init)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2871 + : (prow[col & 1][col-'4'+"0224468"[pmode]] +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2872 + prow[col & 1][col-'4'+"0244668"[pmode]] + 1) >> 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2873 + diff = ph1_bits (i = len[c >> 2]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2874 + if (diff >> (i-1)) diff -= 1 << i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2875 + diff = diff * (mag*2+1) + mag;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2876 + RAW(row,col) = pred + diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2877 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2878 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2879 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2880 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2881 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2882 +#define HOLE(row) ((holes >> (((row) - raw_height) & 7)) & 1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2883 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2884 +/* Kudos to Rich Taylor for figuring out SMaL's compression algorithm. */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2885 +void CLASS smal_decode_segment (unsigned seg[2][2], int holes)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2886 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2887 + uchar hist[3][13] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2888 + { 7, 7, 0, 0, 63, 55, 47, 39, 31, 23, 15, 7, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2889 + { 7, 7, 0, 0, 63, 55, 47, 39, 31, 23, 15, 7, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2890 + { 3, 3, 0, 0, 63, 47, 31, 15, 0 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2891 + int low, high=0xff, carry=0, nbits=8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2892 + int pix, s, count, bin, next, i, sym[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2893 + uchar diff, pred[]={0,0};
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2894 + ushort data=0, range=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2895 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2896 + fseek (ifp, seg[0][1]+1, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2897 + getbits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2898 + if (seg[1][0] > raw_width*raw_height)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2899 + seg[1][0] = raw_width*raw_height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2900 + for (pix=seg[0][0]; pix < seg[1][0]; pix++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2901 + for (s=0; s < 3; s++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2902 + data = data << nbits | getbits(nbits);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2903 + if (carry < 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2904 + carry = (nbits += carry+1) < 1 ? nbits-1 : 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2905 + while (--nbits >= 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2906 + if ((data >> nbits & 0xff) == 0xff) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2907 + if (nbits > 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2908 + data = ((data & ((1 << (nbits-1)) - 1)) << 1) |
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2909 + ((data + (((data & (1 << (nbits-1)))) << 1)) & (-1 << nbits));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2910 + if (nbits >= 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2911 + data += getbits(1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2912 + carry = nbits - 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2913 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2914 + count = ((((data-range+1) & 0xffff) << 2) - 1) / (high >> 4);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2915 + for (bin=0; hist[s][bin+5] > count; bin++);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2916 + low = hist[s][bin+5] * (high >> 4) >> 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2917 + if (bin) high = hist[s][bin+4] * (high >> 4) >> 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2918 + high -= low;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2919 + for (nbits=0; high << nbits < 128; nbits++);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2920 + range = (range+low) << nbits;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2921 + high <<= nbits;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2922 + next = hist[s][1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2923 + if (++hist[s][2] > hist[s][3]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2924 + next = (next+1) & hist[s][0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2925 + hist[s][3] = (hist[s][next+4] - hist[s][next+5]) >> 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2926 + hist[s][2] = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2927 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2928 + if (hist[s][hist[s][1]+4] - hist[s][hist[s][1]+5] > 1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2929 + if (bin < hist[s][1])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2930 + for (i=bin; i < hist[s][1]; i++) hist[s][i+5]--;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2931 + else if (next <= bin)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2932 + for (i=hist[s][1]; i < bin; i++) hist[s][i+5]++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2933 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2934 + hist[s][1] = next;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2935 + sym[s] = bin;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2936 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2937 + diff = sym[2] << 5 | sym[1] << 2 | (sym[0] & 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2938 + if (sym[0] & 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2939 + diff = diff ? -diff : 0x80;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2940 + if (ftell(ifp) + 12 >= seg[1][1])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2941 + diff = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2942 + raw_image[pix] = pred[pix & 1] += diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2943 + if (!(pix & 1) && HOLE(pix / raw_width)) pix += 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2944 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2945 + maximum = 0xff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2946 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2947 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2948 +void CLASS smal_v6_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2949 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2950 + unsigned seg[2][2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2951 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2952 + fseek (ifp, 16, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2953 + seg[0][0] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2954 + seg[0][1] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2955 + seg[1][0] = raw_width * raw_height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2956 + seg[1][1] = INT_MAX;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2957 + smal_decode_segment (seg, 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2958 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2959 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2960 +int CLASS median4 (int *p)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2961 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2962 + int min, max, sum, i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2963 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2964 + min = max = sum = p[0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2965 + for (i=1; i < 4; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2966 + sum += p[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2967 + if (min > p[i]) min = p[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2968 + if (max < p[i]) max = p[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2969 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2970 + return (sum - min - max) >> 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2971 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2972 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2973 +void CLASS fill_holes (int holes)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2974 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2975 + int row, col, val[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2976 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2977 + for (row=2; row < height-2; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2978 + if (!HOLE(row)) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2979 + for (col=1; col < width-1; col+=4) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2980 + val[0] = RAW(row-1,col-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2981 + val[1] = RAW(row-1,col+1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2982 + val[2] = RAW(row+1,col-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2983 + val[3] = RAW(row+1,col+1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2984 + RAW(row,col) = median4(val);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2985 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2986 + for (col=2; col < width-2; col+=4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2987 + if (HOLE(row-2) || HOLE(row+2))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2988 + RAW(row,col) = (RAW(row,col-2) + RAW(row,col+2)) >> 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2989 + else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2990 + val[0] = RAW(row,col-2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2991 + val[1] = RAW(row,col+2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2992 + val[2] = RAW(row-2,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2993 + val[3] = RAW(row+2,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2994 + RAW(row,col) = median4(val);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2995 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2996 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2997 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2998 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
2999 +void CLASS smal_v9_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3000 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3001 + unsigned seg[256][2], offset, nseg, holes, i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3002 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3003 + fseek (ifp, 67, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3004 + offset = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3005 + nseg = (uchar) fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3006 + fseek (ifp, offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3007 + for (i=0; i < nseg*2; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3008 + ((unsigned *)seg)[i] = get4() + data_offset*(i & 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3009 + fseek (ifp, 78, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3010 + holes = fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3011 + fseek (ifp, 88, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3012 + seg[nseg][0] = raw_height * raw_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3013 + seg[nseg][1] = get4() + data_offset;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3014 + for (i=0; i < nseg; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3015 + smal_decode_segment (seg+i, holes);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3016 + if (holes) fill_holes (holes);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3017 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3018 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3019 +void CLASS redcine_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3020 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3021 +#ifndef NO_JASPER
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3022 + int c, row, col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3023 + jas_stream_t *in;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3024 + jas_image_t *jimg;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3025 + jas_matrix_t *jmat;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3026 + jas_seqent_t *data;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3027 + ushort *img, *pix;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3028 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3029 + jas_init();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3030 + in = jas_stream_fopen (ifname, "rb");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3031 + jas_stream_seek (in, data_offset+20, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3032 + jimg = jas_image_decode (in, -1, 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3033 + if (!jimg) longjmp (failure, 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3034 + jmat = jas_matrix_create (height/2, width/2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3035 + merror (jmat, "redcine_load_raw()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3036 + img = (ushort *) calloc ((height+2), (width+2)*2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3037 + merror (img, "redcine_load_raw()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3038 + FORC4 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3039 + jas_image_readcmpt (jimg, c, 0, 0, width/2, height/2, jmat);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3040 + data = jas_matrix_getref (jmat, 0, 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3041 + for (row = c >> 1; row < height; row+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3042 + for (col = c & 1; col < width; col+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3043 + img[(row+1)*(width+2)+col+1] = data[(row/2)*(width/2)+col/2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3044 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3045 + for (col=1; col <= width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3046 + img[col] = img[2*(width+2)+col];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3047 + img[(height+1)*(width+2)+col] = img[(height-1)*(width+2)+col];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3048 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3049 + for (row=0; row < height+2; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3050 + img[row*(width+2)] = img[row*(width+2)+2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3051 + img[(row+1)*(width+2)-1] = img[(row+1)*(width+2)-3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3052 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3053 + for (row=1; row <= height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3054 + pix = img + row*(width+2) + (col = 1 + (FC(row,1) & 1));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3055 + for ( ; col <= width; col+=2, pix+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3056 + c = (((pix[0] - 0x800) << 3) +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3057 + pix[-(width+2)] + pix[width+2] + pix[-1] + pix[1]) >> 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3058 + pix[0] = LIM(c,0,4095);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3059 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3060 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3061 + for (row=0; row < height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3062 + for (col=0; col < width; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3063 + RAW(row,col) = curve[img[(row+1)*(width+2)+col+1]];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3064 + free (img);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3065 + jas_matrix_destroy (jmat);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3066 + jas_image_destroy (jimg);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3067 + jas_stream_close (in);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3068 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3069 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3070 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3071 +/* RESTRICTED code starts here */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3072 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3073 +void CLASS foveon_decoder (unsigned size, unsigned code)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3074 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3075 + static unsigned huff[1024];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3076 + struct decode *cur;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3077 + int i, len;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3078 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3079 + if (!code) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3080 + for (i=0; i < size; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3081 + huff[i] = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3082 + memset (first_decode, 0, sizeof first_decode);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3083 + free_decode = first_decode;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3084 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3085 + cur = free_decode++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3086 + if (free_decode > first_decode+2048) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3087 + fprintf (stderr,_("%s: decoder table overflow\n"), ifname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3088 + longjmp (failure, 2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3089 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3090 + if (code)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3091 + for (i=0; i < size; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3092 + if (huff[i] == code) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3093 + cur->leaf = i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3094 + return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3095 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3096 + if ((len = code >> 27) > 26) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3097 + code = (len+1) << 27 | (code & 0x3ffffff) << 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3098 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3099 + cur->branch[0] = free_decode;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3100 + foveon_decoder (size, code);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3101 + cur->branch[1] = free_decode;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3102 + foveon_decoder (size, code+1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3103 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3104 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3105 +void CLASS foveon_thumb()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3106 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3107 + unsigned bwide, row, col, bitbuf=0, bit=1, c, i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3108 + char *buf;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3109 + struct decode *dindex;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3110 + short pred[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3111 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3112 + bwide = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3113 + fprintf (ofp, "P6\n%d %d\n255\n", thumb_width, thumb_height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3114 + if (bwide > 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3115 + if (bwide < thumb_width*3) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3116 + buf = (char *) malloc (bwide);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3117 + merror (buf, "foveon_thumb()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3118 + for (row=0; row < thumb_height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3119 + fread (buf, 1, bwide, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3120 + fwrite (buf, 3, thumb_width, ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3121 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3122 + free (buf);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3123 + return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3124 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3125 + foveon_decoder (256, 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3126 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3127 + for (row=0; row < thumb_height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3128 + memset (pred, 0, sizeof pred);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3129 + if (!bit) get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3130 + for (bit=col=0; col < thumb_width; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3131 + FORC3 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3132 + for (dindex=first_decode; dindex->branch[0]; ) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3133 + if ((bit = (bit-1) & 31) == 31)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3134 + for (i=0; i < 4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3135 + bitbuf = (bitbuf << 8) + fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3136 + dindex = dindex->branch[bitbuf >> bit & 1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3137 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3138 + pred[c] += dindex->leaf;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3139 + fputc (pred[c], ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3140 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3141 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3142 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3143 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3144 +void CLASS foveon_sd_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3145 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3146 + struct decode *dindex;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3147 + short diff[1024];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3148 + unsigned bitbuf=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3149 + int pred[3], row, col, bit=-1, c, i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3150 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3151 + read_shorts ((ushort *) diff, 1024);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3152 + if (!load_flags) foveon_decoder (1024, 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3153 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3154 + for (row=0; row < height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3155 + memset (pred, 0, sizeof pred);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3156 + if (!bit && !load_flags && atoi(model+2) < 14) get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3157 + for (col=bit=0; col < width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3158 + if (load_flags) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3159 + bitbuf = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3160 + FORC3 pred[2-c] += diff[bitbuf >> c*10 & 0x3ff];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3161 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3162 + else FORC3 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3163 + for (dindex=first_decode; dindex->branch[0]; ) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3164 + if ((bit = (bit-1) & 31) == 31)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3165 + for (i=0; i < 4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3166 + bitbuf = (bitbuf << 8) + fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3167 + dindex = dindex->branch[bitbuf >> bit & 1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3168 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3169 + pred[c] += diff[dindex->leaf];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3170 + if (pred[c] >> 16 && ~pred[c] >> 16) derror();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3171 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3172 + FORC3 image[row*width+col][c] = pred[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3173 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3174 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3175 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3176 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3177 +void CLASS foveon_huff (ushort *huff)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3178 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3179 + int i, j, clen, code;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3180 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3181 + huff[0] = 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3182 + for (i=0; i < 13; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3183 + clen = getc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3184 + code = getc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3185 + for (j=0; j < 256 >> clen; )
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3186 + huff[code+ ++j] = clen << 8 | i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3187 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3188 + get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3189 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3190 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3191 +void CLASS foveon_dp_load_raw()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3192 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3193 + unsigned c, roff[4], row, col, diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3194 + ushort huff[512], vpred[2][2], hpred[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3195 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3196 + fseek (ifp, 8, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3197 + foveon_huff (huff);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3198 + roff[0] = 48;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3199 + FORC3 roff[c+1] = -(-(roff[c] + get4()) & -16);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3200 + FORC3 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3201 + fseek (ifp, data_offset+roff[c], SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3202 + getbits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3203 + vpred[0][0] = vpred[0][1] = vpred[1][0] = vpred[1][1] = 512;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3204 + for (row=0; row < height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3205 + for (col=0; col < width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3206 + diff = ljpeg_diff(huff);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3207 + if (col < 2) hpred[col] = vpred[row & 1][col] += diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3208 + else hpred[col & 1] += diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3209 + image[row*width+col][c] = hpred[col & 1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3210 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3211 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3212 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3213 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3214 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3215 +void CLASS foveon_load_camf()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3216 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3217 + unsigned type, wide, high, i, j, row, col, diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3218 + ushort huff[258], vpred[2][2] = {{512,512},{512,512}}, hpred[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3219 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3220 + fseek (ifp, meta_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3221 + type = get4(); get4(); get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3222 + wide = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3223 + high = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3224 + if (type == 2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3225 + fread (meta_data, 1, meta_length, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3226 + for (i=0; i < meta_length; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3227 + high = (high * 1597 + 51749) % 244944;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3228 + wide = high * (INT64) 301593171 >> 24;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3229 + meta_data[i] ^= ((((high << 8) - wide) >> 1) + wide) >> 17;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3230 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3231 + } else if (type == 4) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3232 + free (meta_data);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3233 + meta_data = (char *) malloc (meta_length = wide*high*3/2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3234 + merror (meta_data, "foveon_load_camf()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3235 + foveon_huff (huff);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3236 + get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3237 + getbits(-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3238 + for (j=row=0; row < high; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3239 + for (col=0; col < wide; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3240 + diff = ljpeg_diff(huff);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3241 + if (col < 2) hpred[col] = vpred[row & 1][col] += diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3242 + else hpred[col & 1] += diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3243 + if (col & 1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3244 + meta_data[j++] = hpred[0] >> 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3245 + meta_data[j++] = hpred[0] << 4 | hpred[1] >> 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3246 + meta_data[j++] = hpred[1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3247 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3248 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3249 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3250 + } else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3251 + fprintf (stderr,_("%s has unknown CAMF type %d.\n"), ifname, type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3252 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3253 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3254 +const char * CLASS foveon_camf_param (const char *block, const char *param)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3255 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3256 + unsigned idx, num;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3257 + char *pos, *cp, *dp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3258 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3259 + for (idx=0; idx < meta_length; idx += sget4(pos+8)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3260 + pos = meta_data + idx;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3261 + if (strncmp (pos, "CMb", 3)) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3262 + if (pos[3] != 'P') continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3263 + if (strcmp (block, pos+sget4(pos+12))) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3264 + cp = pos + sget4(pos+16);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3265 + num = sget4(cp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3266 + dp = pos + sget4(cp+4);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3267 + while (num--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3268 + cp += 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3269 + if (!strcmp (param, dp+sget4(cp)))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3270 + return dp+sget4(cp+4);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3271 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3272 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3273 + return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3274 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3275 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3276 +void * CLASS foveon_camf_matrix (unsigned dim[3], const char *name)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3277 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3278 + unsigned i, idx, type, ndim, size, *mat;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3279 + char *pos, *cp, *dp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3280 + double dsize;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3281 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3282 + for (idx=0; idx < meta_length; idx += sget4(pos+8)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3283 + pos = meta_data + idx;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3284 + if (strncmp (pos, "CMb", 3)) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3285 + if (pos[3] != 'M') continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3286 + if (strcmp (name, pos+sget4(pos+12))) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3287 + dim[0] = dim[1] = dim[2] = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3288 + cp = pos + sget4(pos+16);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3289 + type = sget4(cp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3290 + if ((ndim = sget4(cp+4)) > 3) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3291 + dp = pos + sget4(cp+8);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3292 + for (i=ndim; i--; ) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3293 + cp += 12;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3294 + dim[i] = sget4(cp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3295 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3296 + if ((dsize = (double) dim[0]*dim[1]*dim[2]) > meta_length/4) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3297 + mat = (unsigned *) malloc ((size = dsize) * 4);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3298 + merror (mat, "foveon_camf_matrix()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3299 + for (i=0; i < size; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3300 + if (type && type != 6)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3301 + mat[i] = sget4(dp + i*4);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3302 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3303 + mat[i] = sget4(dp + i*2) & 0xffff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3304 + return mat;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3305 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3306 + fprintf (stderr,_("%s: \"%s\" matrix not found!\n"), ifname, name);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3307 + return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3308 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3309 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3310 +int CLASS foveon_fixed (void *ptr, int size, const char *name)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3311 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3312 + void *dp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3313 + unsigned dim[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3314 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3315 + if (!name) return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3316 + dp = foveon_camf_matrix (dim, name);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3317 + if (!dp) return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3318 + memcpy (ptr, dp, size*4);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3319 + free (dp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3320 + return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3321 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3322 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3323 +float CLASS foveon_avg (short *pix, int range[2], float cfilt)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3324 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3325 + int i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3326 + float val, min=FLT_MAX, max=-FLT_MAX, sum=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3327 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3328 + for (i=range[0]; i <= range[1]; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3329 + sum += val = pix[i*4] + (pix[i*4]-pix[(i-1)*4]) * cfilt;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3330 + if (min > val) min = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3331 + if (max < val) max = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3332 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3333 + if (range[1] - range[0] == 1) return sum/2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3334 + return (sum - min - max) / (range[1] - range[0] - 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3335 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3336 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3337 +short * CLASS foveon_make_curve (double max, double mul, double filt)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3338 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3339 + short *curve;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3340 + unsigned i, size;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3341 + double x;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3342 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3343 + if (!filt) filt = 0.8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3344 + size = 4*M_PI*max / filt;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3345 + if (size == UINT_MAX) size--;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3346 + curve = (short *) calloc (size+1, sizeof *curve);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3347 + merror (curve, "foveon_make_curve()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3348 + curve[0] = size;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3349 + for (i=0; i < size; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3350 + x = i*filt/max/4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3351 + curve[i+1] = (cos(x)+1)/2 * tanh(i*filt/mul) * mul + 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3352 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3353 + return curve;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3354 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3355 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3356 +void CLASS foveon_make_curves
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3357 + (short **curvep, float dq[3], float div[3], float filt)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3358 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3359 + double mul[3], max=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3360 + int c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3361 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3362 + FORC3 mul[c] = dq[c]/div[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3363 + FORC3 if (max < mul[c]) max = mul[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3364 + FORC3 curvep[c] = foveon_make_curve (max, mul[c], filt);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3365 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3366 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3367 +int CLASS foveon_apply_curve (short *curve, int i)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3368 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3369 + if (abs(i) >= curve[0]) return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3370 + return i < 0 ? -curve[1-i] : curve[1+i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3371 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3372 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3373 +#define image ((short (*)[4]) image)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3374 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3375 +void CLASS foveon_interpolate()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3376 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3377 + static const short hood[] = { -1,-1, -1,0, -1,1, 0,-1, 0,1, 1,-1, 1,0, 1,1 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3378 + short *pix, prev[3], *curve[8], (*shrink)[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3379 + float cfilt=0, ddft[3][3][2], ppm[3][3][3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3380 + float cam_xyz[3][3], correct[3][3], last[3][3], trans[3][3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3381 + float chroma_dq[3], color_dq[3], diag[3][3], div[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3382 + float (*black)[3], (*sgain)[3], (*sgrow)[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3383 + float fsum[3], val, frow, num;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3384 + int row, col, c, i, j, diff, sgx, irow, sum, min, max, limit;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3385 + int dscr[2][2], dstb[4], (*smrow[7])[3], total[4], ipix[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3386 + int work[3][3], smlast, smred, smred_p=0, dev[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3387 + int satlev[3], keep[4], active[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3388 + unsigned dim[3], *badpix;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3389 + double dsum=0, trsum[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3390 + char str[128];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3391 + const char* cp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3392 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3393 + if (verbose)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3394 + fprintf (stderr,_("Foveon interpolation...\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3395 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3396 + foveon_load_camf();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3397 + foveon_fixed (dscr, 4, "DarkShieldColRange");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3398 + foveon_fixed (ppm[0][0], 27, "PostPolyMatrix");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3399 + foveon_fixed (satlev, 3, "SaturationLevel");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3400 + foveon_fixed (keep, 4, "KeepImageArea");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3401 + foveon_fixed (active, 4, "ActiveImageArea");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3402 + foveon_fixed (chroma_dq, 3, "ChromaDQ");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3403 + foveon_fixed (color_dq, 3,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3404 + foveon_camf_param ("IncludeBlocks", "ColorDQ") ?
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3405 + "ColorDQ" : "ColorDQCamRGB");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3406 + if (foveon_camf_param ("IncludeBlocks", "ColumnFilter"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3407 + foveon_fixed (&cfilt, 1, "ColumnFilter");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3408 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3409 + memset (ddft, 0, sizeof ddft);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3410 + if (!foveon_camf_param ("IncludeBlocks", "DarkDrift")
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3411 + || !foveon_fixed (ddft[1][0], 12, "DarkDrift"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3412 + for (i=0; i < 2; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3413 + foveon_fixed (dstb, 4, i ? "DarkShieldBottom":"DarkShieldTop");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3414 + for (row = dstb[1]; row <= dstb[3]; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3415 + for (col = dstb[0]; col <= dstb[2]; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3416 + FORC3 ddft[i+1][c][1] += (short) image[row*width+col][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3417 + FORC3 ddft[i+1][c][1] /= (dstb[3]-dstb[1]+1) * (dstb[2]-dstb[0]+1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3418 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3419 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3420 + if (!(cp = foveon_camf_param ("WhiteBalanceIlluminants", model2)))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3421 + { fprintf (stderr,_("%s: Invalid white balance \"%s\"\n"), ifname, model2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3422 + return; }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3423 + foveon_fixed (cam_xyz, 9, cp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3424 + foveon_fixed (correct, 9,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3425 + foveon_camf_param ("WhiteBalanceCorrections", model2));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3426 + memset (last, 0, sizeof last);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3427 + for (i=0; i < 3; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3428 + for (j=0; j < 3; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3429 + FORC3 last[i][j] += correct[i][c] * cam_xyz[c][j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3430 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3431 + #define LAST(x,y) last[(i+x)%3][(c+y)%3]
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3432 + for (i=0; i < 3; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3433 + FORC3 diag[c][i] = LAST(1,1)*LAST(2,2) - LAST(1,2)*LAST(2,1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3434 + #undef LAST
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3435 + FORC3 div[c] = diag[c][0]*0.3127 + diag[c][1]*0.329 + diag[c][2]*0.3583;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3436 + sprintf (str, "%sRGBNeutral", model2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3437 + if (foveon_camf_param ("IncludeBlocks", str))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3438 + foveon_fixed (div, 3, str);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3439 + num = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3440 + FORC3 if (num < div[c]) num = div[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3441 + FORC3 div[c] /= num;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3442 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3443 + memset (trans, 0, sizeof trans);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3444 + for (i=0; i < 3; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3445 + for (j=0; j < 3; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3446 + FORC3 trans[i][j] += rgb_cam[i][c] * last[c][j] * div[j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3447 + FORC3 trsum[c] = trans[c][0] + trans[c][1] + trans[c][2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3448 + dsum = (6*trsum[0] + 11*trsum[1] + 3*trsum[2]) / 20;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3449 + for (i=0; i < 3; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3450 + FORC3 last[i][c] = trans[i][c] * dsum / trsum[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3451 + memset (trans, 0, sizeof trans);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3452 + for (i=0; i < 3; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3453 + for (j=0; j < 3; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3454 + FORC3 trans[i][j] += (i==c ? 32 : -1) * last[c][j] / 30;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3455 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3456 + foveon_make_curves (curve, color_dq, div, cfilt);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3457 + FORC3 chroma_dq[c] /= 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3458 + foveon_make_curves (curve+3, chroma_dq, div, cfilt);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3459 + FORC3 dsum += chroma_dq[c] / div[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3460 + curve[6] = foveon_make_curve (dsum, dsum, cfilt);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3461 + curve[7] = foveon_make_curve (dsum*2, dsum*2, cfilt);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3462 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3463 + sgain = (float (*)[3]) foveon_camf_matrix (dim, "SpatialGain");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3464 + if (!sgain) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3465 + sgrow = (float (*)[3]) calloc (dim[1], sizeof *sgrow);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3466 + sgx = (width + dim[1]-2) / (dim[1]-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3467 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3468 + black = (float (*)[3]) calloc (height, sizeof *black);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3469 + for (row=0; row < height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3470 + for (i=0; i < 6; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3471 + ((float *)ddft[0])[i] = ((float *)ddft[1])[i] +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3472 + row / (height-1.0) * (((float *)ddft[2])[i] - ((float *)ddft[1])[i]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3473 + FORC3 black[row][c] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3474 + ( foveon_avg (image[row*width]+c, dscr[0], cfilt) +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3475 + foveon_avg (image[row*width]+c, dscr[1], cfilt) * 3
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3476 + - ddft[0][c][0] ) / 4 - ddft[0][c][1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3477 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3478 + memcpy (black, black+8, sizeof *black*8);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3479 + memcpy (black+height-11, black+height-22, 11*sizeof *black);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3480 + memcpy (last, black, sizeof last);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3481 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3482 + for (row=1; row < height-1; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3483 + FORC3 if (last[1][c] > last[0][c]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3484 + if (last[1][c] > last[2][c])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3485 + black[row][c] = (last[0][c] > last[2][c]) ? last[0][c]:last[2][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3486 + } else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3487 + if (last[1][c] < last[2][c])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3488 + black[row][c] = (last[0][c] < last[2][c]) ? last[0][c]:last[2][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3489 + memmove (last, last+1, 2*sizeof last[0]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3490 + memcpy (last[2], black[row+1], sizeof last[2]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3491 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3492 + FORC3 black[row][c] = (last[0][c] + last[1][c])/2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3493 + FORC3 black[0][c] = (black[1][c] + black[3][c])/2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3494 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3495 + val = 1 - exp(-1/24.0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3496 + memcpy (fsum, black, sizeof fsum);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3497 + for (row=1; row < height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3498 + FORC3 fsum[c] += black[row][c] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3499 + (black[row][c] - black[row-1][c])*val + black[row-1][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3500 + memcpy (last[0], black[height-1], sizeof last[0]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3501 + FORC3 fsum[c] /= height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3502 + for (row = height; row--; )
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3503 + FORC3 last[0][c] = black[row][c] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3504 + (black[row][c] - fsum[c] - last[0][c])*val + last[0][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3505 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3506 + memset (total, 0, sizeof total);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3507 + for (row=2; row < height; row+=4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3508 + for (col=2; col < width; col+=4) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3509 + FORC3 total[c] += (short) image[row*width+col][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3510 + total[3]++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3511 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3512 + for (row=0; row < height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3513 + FORC3 black[row][c] += fsum[c]/2 + total[c]/(total[3]*100.0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3514 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3515 + for (row=0; row < height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3516 + for (i=0; i < 6; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3517 + ((float *)ddft[0])[i] = ((float *)ddft[1])[i] +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3518 + row / (height-1.0) * (((float *)ddft[2])[i] - ((float *)ddft[1])[i]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3519 + pix = image[row*width];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3520 + memcpy (prev, pix, sizeof prev);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3521 + frow = row / (height-1.0) * (dim[2]-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3522 + if ((irow = frow) == dim[2]-1) irow--;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3523 + frow -= irow;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3524 + for (i=0; i < dim[1]; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3525 + FORC3 sgrow[i][c] = sgain[ irow *dim[1]+i][c] * (1-frow) +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3526 + sgain[(irow+1)*dim[1]+i][c] * frow;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3527 + for (col=0; col < width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3528 + FORC3 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3529 + diff = pix[c] - prev[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3530 + prev[c] = pix[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3531 + ipix[c] = pix[c] + floor ((diff + (diff*diff >> 14)) * cfilt
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3532 + - ddft[0][c][1] - ddft[0][c][0] * ((float) col/width - 0.5)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3533 + - black[row][c] );
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3534 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3535 + FORC3 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3536 + work[0][c] = ipix[c] * ipix[c] >> 14;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3537 + work[2][c] = ipix[c] * work[0][c] >> 14;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3538 + work[1][2-c] = ipix[(c+1) % 3] * ipix[(c+2) % 3] >> 14;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3539 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3540 + FORC3 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3541 + for (val=i=0; i < 3; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3542 + for ( j=0; j < 3; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3543 + val += ppm[c][i][j] * work[i][j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3544 + ipix[c] = floor ((ipix[c] + floor(val)) *
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3545 + ( sgrow[col/sgx ][c] * (sgx - col%sgx) +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3546 + sgrow[col/sgx+1][c] * (col%sgx) ) / sgx / div[c]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3547 + if (ipix[c] > 32000) ipix[c] = 32000;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3548 + pix[c] = ipix[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3549 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3550 + pix += 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3551 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3552 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3553 + free (black);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3554 + free (sgrow);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3555 + free (sgain);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3556 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3557 + if ((badpix = (unsigned *) foveon_camf_matrix (dim, "BadPixels"))) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3558 + for (i=0; i < dim[0]; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3559 + col = (badpix[i] >> 8 & 0xfff) - keep[0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3560 + row = (badpix[i] >> 20 ) - keep[1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3561 + if ((unsigned)(row-1) > height-3 || (unsigned)(col-1) > width-3)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3562 + continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3563 + memset (fsum, 0, sizeof fsum);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3564 + for (sum=j=0; j < 8; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3565 + if (badpix[i] & (1 << j)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3566 + FORC3 fsum[c] += (short)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3567 + image[(row+hood[j*2])*width+col+hood[j*2+1]][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3568 + sum++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3569 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3570 + if (sum) FORC3 image[row*width+col][c] = fsum[c]/sum;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3571 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3572 + free (badpix);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3573 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3574 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3575 + /* Array for 5x5 Gaussian averaging of red values */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3576 + smrow[6] = (int (*)[3]) calloc (width*5, sizeof **smrow);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3577 + merror (smrow[6], "foveon_interpolate()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3578 + for (i=0; i < 5; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3579 + smrow[i] = smrow[6] + i*width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3580 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3581 + /* Sharpen the reds against these Gaussian averages */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3582 + for (smlast=-1, row=2; row < height-2; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3583 + while (smlast < row+2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3584 + for (i=0; i < 6; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3585 + smrow[(i+5) % 6] = smrow[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3586 + pix = image[++smlast*width+2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3587 + for (col=2; col < width-2; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3588 + smrow[4][col][0] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3589 + (pix[0]*6 + (pix[-4]+pix[4])*4 + pix[-8]+pix[8] + 8) >> 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3590 + pix += 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3591 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3592 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3593 + pix = image[row*width+2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3594 + for (col=2; col < width-2; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3595 + smred = ( 6 * smrow[2][col][0]
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3596 + + 4 * (smrow[1][col][0] + smrow[3][col][0])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3597 + + smrow[0][col][0] + smrow[4][col][0] + 8 ) >> 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3598 + if (col == 2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3599 + smred_p = smred;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3600 + i = pix[0] + ((pix[0] - ((smred*7 + smred_p) >> 3)) >> 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3601 + if (i > 32000) i = 32000;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3602 + pix[0] = i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3603 + smred_p = smred;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3604 + pix += 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3605 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3606 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3607 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3608 + /* Adjust the brighter pixels for better linearity */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3609 + min = 0xffff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3610 + FORC3 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3611 + i = satlev[c] / div[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3612 + if (min > i) min = i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3613 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3614 + limit = min * 9 >> 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3615 + for (pix=image[0]; pix < image[height*width]; pix+=4) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3616 + if (pix[0] <= limit || pix[1] <= limit || pix[2] <= limit)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3617 + continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3618 + min = max = pix[0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3619 + for (c=1; c < 3; c++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3620 + if (min > pix[c]) min = pix[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3621 + if (max < pix[c]) max = pix[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3622 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3623 + if (min >= limit*2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3624 + pix[0] = pix[1] = pix[2] = max;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3625 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3626 + i = 0x4000 - ((min - limit) << 14) / limit;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3627 + i = 0x4000 - (i*i >> 14);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3628 + i = i*i >> 14;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3629 + FORC3 pix[c] += (max - pix[c]) * i >> 14;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3630 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3631 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3632 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3633 + Because photons that miss one detector often hit another,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3634 + the sum R+G+B is much less noisy than the individual colors.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3635 + So smooth the hues without smoothing the total.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3636 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3637 + for (smlast=-1, row=2; row < height-2; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3638 + while (smlast < row+2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3639 + for (i=0; i < 6; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3640 + smrow[(i+5) % 6] = smrow[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3641 + pix = image[++smlast*width+2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3642 + for (col=2; col < width-2; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3643 + FORC3 smrow[4][col][c] = (pix[c-4]+2*pix[c]+pix[c+4]+2) >> 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3644 + pix += 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3645 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3646 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3647 + pix = image[row*width+2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3648 + for (col=2; col < width-2; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3649 + FORC3 dev[c] = -foveon_apply_curve (curve[7], pix[c] -
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3650 + ((smrow[1][col][c] + 2*smrow[2][col][c] + smrow[3][col][c]) >> 2));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3651 + sum = (dev[0] + dev[1] + dev[2]) >> 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3652 + FORC3 pix[c] += dev[c] - sum;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3653 + pix += 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3654 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3655 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3656 + for (smlast=-1, row=2; row < height-2; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3657 + while (smlast < row+2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3658 + for (i=0; i < 6; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3659 + smrow[(i+5) % 6] = smrow[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3660 + pix = image[++smlast*width+2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3661 + for (col=2; col < width-2; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3662 + FORC3 smrow[4][col][c] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3663 + (pix[c-8]+pix[c-4]+pix[c]+pix[c+4]+pix[c+8]+2) >> 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3664 + pix += 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3665 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3666 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3667 + pix = image[row*width+2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3668 + for (col=2; col < width-2; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3669 + for (total[3]=375, sum=60, c=0; c < 3; c++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3670 + for (total[c]=i=0; i < 5; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3671 + total[c] += smrow[i][col][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3672 + total[3] += total[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3673 + sum += pix[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3674 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3675 + if (sum < 0) sum = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3676 + j = total[3] > 375 ? (sum << 16) / total[3] : sum * 174;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3677 + FORC3 pix[c] += foveon_apply_curve (curve[6],
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3678 + ((j*total[c] + 0x8000) >> 16) - pix[c]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3679 + pix += 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3680 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3681 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3682 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3683 + /* Transform the image to a different colorspace */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3684 + for (pix=image[0]; pix < image[height*width]; pix+=4) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3685 + FORC3 pix[c] -= foveon_apply_curve (curve[c], pix[c]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3686 + sum = (pix[0]+pix[1]+pix[1]+pix[2]) >> 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3687 + FORC3 pix[c] -= foveon_apply_curve (curve[c], pix[c]-sum);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3688 + FORC3 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3689 + for (dsum=i=0; i < 3; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3690 + dsum += trans[c][i] * pix[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3691 + if (dsum < 0) dsum = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3692 + if (dsum > 24000) dsum = 24000;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3693 + ipix[c] = dsum + 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3694 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3695 + FORC3 pix[c] = ipix[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3696 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3697 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3698 + /* Smooth the image bottom-to-top and save at 1/4 scale */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3699 + shrink = (short (*)[3]) calloc ((height/4), (width/4)*sizeof *shrink);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3700 + merror (shrink, "foveon_interpolate()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3701 + for (row = height/4; row--; )
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3702 + for (col=0; col < width/4; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3703 + ipix[0] = ipix[1] = ipix[2] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3704 + for (i=0; i < 4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3705 + for (j=0; j < 4; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3706 + FORC3 ipix[c] += image[(row*4+i)*width+col*4+j][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3707 + FORC3
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3708 + if (row+2 > height/4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3709 + shrink[row*(width/4)+col][c] = ipix[c] >> 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3710 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3711 + shrink[row*(width/4)+col][c] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3712 + (shrink[(row+1)*(width/4)+col][c]*1840 + ipix[c]*141 + 2048) >> 12;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3713 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3714 + /* From the 1/4-scale image, smooth right-to-left */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3715 + for (row=0; row < (height & ~3); row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3716 + ipix[0] = ipix[1] = ipix[2] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3717 + if ((row & 3) == 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3718 + for (col = width & ~3 ; col--; )
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3719 + FORC3 smrow[0][col][c] = ipix[c] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3720 + (shrink[(row/4)*(width/4)+col/4][c]*1485 + ipix[c]*6707 + 4096) >> 13;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3721 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3722 + /* Then smooth left-to-right */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3723 + ipix[0] = ipix[1] = ipix[2] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3724 + for (col=0; col < (width & ~3); col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3725 + FORC3 smrow[1][col][c] = ipix[c] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3726 + (smrow[0][col][c]*1485 + ipix[c]*6707 + 4096) >> 13;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3727 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3728 + /* Smooth top-to-bottom */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3729 + if (row == 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3730 + memcpy (smrow[2], smrow[1], sizeof **smrow * width);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3731 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3732 + for (col=0; col < (width & ~3); col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3733 + FORC3 smrow[2][col][c] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3734 + (smrow[2][col][c]*6707 + smrow[1][col][c]*1485 + 4096) >> 13;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3735 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3736 + /* Adjust the chroma toward the smooth values */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3737 + for (col=0; col < (width & ~3); col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3738 + for (i=j=30, c=0; c < 3; c++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3739 + i += smrow[2][col][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3740 + j += image[row*width+col][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3741 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3742 + j = (j << 16) / i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3743 + for (sum=c=0; c < 3; c++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3744 + ipix[c] = foveon_apply_curve (curve[c+3],
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3745 + ((smrow[2][col][c] * j + 0x8000) >> 16) - image[row*width+col][c]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3746 + sum += ipix[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3747 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3748 + sum >>= 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3749 + FORC3 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3750 + i = image[row*width+col][c] + ipix[c] - sum;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3751 + if (i < 0) i = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3752 + image[row*width+col][c] = i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3753 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3754 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3755 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3756 + free (shrink);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3757 + free (smrow[6]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3758 + for (i=0; i < 8; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3759 + free (curve[i]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3760 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3761 + /* Trim off the black border */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3762 + active[1] -= keep[1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3763 + active[3] -= 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3764 + i = active[2] - active[0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3765 + for (row=0; row < active[3]-active[1]; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3766 + memcpy (image[row*i], image[(row+active[1])*width+active[0]],
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3767 + i * sizeof *image);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3768 + width = i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3769 + height = row;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3770 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3771 +#undef image
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3772 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3773 +/* RESTRICTED code ends here */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3774 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3775 +void CLASS crop_masked_pixels()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3776 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3777 + int row, col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3778 + unsigned r, c, m, mblack[8], zero, val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3779 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3780 + if (load_raw == &CLASS phase_one_load_raw ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3781 + load_raw == &CLASS phase_one_load_raw_c)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3782 + phase_one_correct();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3783 + if (fuji_width) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3784 + for (row=0; row < raw_height-top_margin*2; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3785 + for (col=0; col < fuji_width << !fuji_layout; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3786 + if (fuji_layout) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3787 + r = fuji_width - 1 - col + (row >> 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3788 + c = col + ((row+1) >> 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3789 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3790 + r = fuji_width - 1 + row - (col >> 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3791 + c = row + ((col+1) >> 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3792 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3793 + if (r < height && c < width)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3794 + BAYER(r,c) = RAW(row+top_margin,col+left_margin);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3795 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3796 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3797 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3798 + for (row=0; row < height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3799 + for (col=0; col < width; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3800 + BAYER2(row,col) = RAW(row+top_margin,col+left_margin);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3801 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3802 + if (mask[0][3] > 0) goto mask_set;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3803 + if (load_raw == &CLASS canon_load_raw ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3804 + load_raw == &CLASS lossless_jpeg_load_raw) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3805 + mask[0][1] = mask[1][1] += 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3806 + mask[0][3] -= 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3807 + goto sides;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3808 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3809 + if (load_raw == &CLASS canon_600_load_raw ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3810 + load_raw == &CLASS sony_load_raw ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3811 + (load_raw == &CLASS eight_bit_load_raw && strncmp(model,"DC2",3)) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3812 + load_raw == &CLASS kodak_262_load_raw ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3813 + (load_raw == &CLASS packed_load_raw && (load_flags & 32))) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3814 +sides:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3815 + mask[0][0] = mask[1][0] = top_margin;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3816 + mask[0][2] = mask[1][2] = top_margin+height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3817 + mask[0][3] += left_margin;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3818 + mask[1][1] += left_margin+width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3819 + mask[1][3] += raw_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3820 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3821 + if (load_raw == &CLASS nokia_load_raw) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3822 + mask[0][2] = top_margin;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3823 + mask[0][3] = width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3824 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3825 +mask_set:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3826 + memset (mblack, 0, sizeof mblack);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3827 + for (zero=m=0; m < 8; m++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3828 + for (row=MAX(mask[m][0],0); row < MIN(mask[m][2],raw_height); row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3829 + for (col=MAX(mask[m][1],0); col < MIN(mask[m][3],raw_width); col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3830 + c = FC(row-top_margin,col-left_margin);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3831 + mblack[c] += val = RAW(row,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3832 + mblack[4+c]++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3833 + zero += !val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3834 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3835 + if (load_raw == &CLASS canon_600_load_raw && width < raw_width) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3836 + black = (mblack[0]+mblack[1]+mblack[2]+mblack[3]) /
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3837 + (mblack[4]+mblack[5]+mblack[6]+mblack[7]) - 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3838 + canon_600_correct();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3839 + } else if (zero < mblack[4] && mblack[5] && mblack[6] && mblack[7]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3840 + FORC4 cblack[c] = mblack[c] / mblack[4+c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3841 + cblack[4] = cblack[5] = cblack[6] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3842 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3843 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3844 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3845 +void CLASS remove_zeroes()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3846 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3847 + unsigned row, col, tot, n, r, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3848 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3849 + for (row=0; row < height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3850 + for (col=0; col < width; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3851 + if (BAYER(row,col) == 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3852 + tot = n = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3853 + for (r = row-2; r <= row+2; r++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3854 + for (c = col-2; c <= col+2; c++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3855 + if (r < height && c < width &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3856 + FC(r,c) == FC(row,col) && BAYER(r,c))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3857 + tot += (n++,BAYER(r,c));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3858 + if (n) BAYER(row,col) = tot/n;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3859 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3860 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3861 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3862 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3863 + Seach from the current directory up to the root looking for
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3864 + a ".badpixels" file, and fix those pixels now.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3865 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3866 +void CLASS bad_pixels (const char *cfname)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3867 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3868 + FILE *fp=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3869 + char *fname, *cp, line[128];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3870 + int len, time, row, col, r, c, rad, tot, n, fixed=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3871 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3872 + if (!filters) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3873 + if (cfname)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3874 + fp = fopen (cfname, "r");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3875 + else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3876 + for (len=32 ; ; len *= 2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3877 + fname = (char *) malloc (len);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3878 + if (!fname) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3879 + if (getcwd (fname, len-16)) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3880 + free (fname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3881 + if (errno != ERANGE) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3882 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3883 +#if defined(WIN32) || defined(DJGPP)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3884 + if (fname[1] == ':')
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3885 + memmove (fname, fname+2, len-2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3886 + for (cp=fname; *cp; cp++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3887 + if (*cp == '\\') *cp = '/';
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3888 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3889 + cp = fname + strlen(fname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3890 + if (cp[-1] == '/') cp--;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3891 + while (*fname == '/') {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3892 + strcpy (cp, "/.badpixels");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3893 + if ((fp = fopen (fname, "r"))) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3894 + if (cp == fname) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3895 + while (*--cp != '/');
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3896 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3897 + free (fname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3898 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3899 + if (!fp) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3900 + while (fgets (line, 128, fp)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3901 + cp = strchr (line, '#');
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3902 + if (cp) *cp = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3903 + if (sscanf (line, "%d %d %d", &col, &row, &time) != 3) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3904 + if ((unsigned) col >= width || (unsigned) row >= height) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3905 + if (time > timestamp) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3906 + for (tot=n=0, rad=1; rad < 3 && n==0; rad++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3907 + for (r = row-rad; r <= row+rad; r++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3908 + for (c = col-rad; c <= col+rad; c++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3909 + if ((unsigned) r < height && (unsigned) c < width &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3910 + (r != row || c != col) && fcol(r,c) == fcol(row,col)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3911 + tot += BAYER2(r,c);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3912 + n++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3913 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3914 + BAYER2(row,col) = tot/n;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3915 + if (verbose) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3916 + if (!fixed++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3917 + fprintf (stderr,_("Fixed dead pixels at:"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3918 + fprintf (stderr, " %d,%d", col, row);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3919 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3920 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3921 + if (fixed) fputc ('\n', stderr);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3922 + fclose (fp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3923 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3924 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3925 +void CLASS subtract (const char *fname)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3926 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3927 + FILE *fp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3928 + int dim[3]={0,0,0}, comment=0, number=0, error=0, nd=0, c, row, col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3929 + ushort *pixel;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3930 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3931 + if (!(fp = fopen (fname, "rb"))) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3932 + perror (fname); return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3933 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3934 + if (fgetc(fp) != 'P' || fgetc(fp) != '5') error = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3935 + while (!error && nd < 3 && (c = fgetc(fp)) != EOF) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3936 + if (c == '#') comment = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3937 + if (c == '\n') comment = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3938 + if (comment) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3939 + if (isdigit(c)) number = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3940 + if (number) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3941 + if (isdigit(c)) dim[nd] = dim[nd]*10 + c -'0';
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3942 + else if (isspace(c)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3943 + number = 0; nd++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3944 + } else error = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3945 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3946 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3947 + if (error || nd < 3) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3948 + fprintf (stderr,_("%s is not a valid PGM file!\n"), fname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3949 + fclose (fp); return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3950 + } else if (dim[0] != width || dim[1] != height || dim[2] != 65535) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3951 + fprintf (stderr,_("%s has the wrong dimensions!\n"), fname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3952 + fclose (fp); return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3953 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3954 + pixel = (ushort *) calloc (width, sizeof *pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3955 + merror (pixel, "subtract()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3956 + for (row=0; row < height; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3957 + fread (pixel, 2, width, fp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3958 + for (col=0; col < width; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3959 + BAYER(row,col) = MAX (BAYER(row,col) - ntohs(pixel[col]), 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3960 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3961 + free (pixel);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3962 + fclose (fp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3963 + memset (cblack, 0, sizeof cblack);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3964 + black = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3965 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3966 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3967 +void CLASS gamma_curve (double pwr, double ts, int mode, int imax)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3968 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3969 + int i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3970 + double g[6], bnd[2]={0,0}, r;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3971 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3972 + g[0] = pwr;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3973 + g[1] = ts;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3974 + g[2] = g[3] = g[4] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3975 + bnd[g[1] >= 1] = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3976 + if (g[1] && (g[1]-1)*(g[0]-1) <= 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3977 + for (i=0; i < 48; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3978 + g[2] = (bnd[0] + bnd[1])/2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3979 + if (g[0]) bnd[(pow(g[2]/g[1],-g[0]) - 1)/g[0] - 1/g[2] > -1] = g[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3980 + else bnd[g[2]/exp(1-1/g[2]) < g[1]] = g[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3981 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3982 + g[3] = g[2] / g[1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3983 + if (g[0]) g[4] = g[2] * (1/g[0] - 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3984 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3985 + if (g[0]) g[5] = 1 / (g[1]*SQR(g[3])/2 - g[4]*(1 - g[3]) +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3986 + (1 - pow(g[3],1+g[0]))*(1 + g[4])/(1 + g[0])) - 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3987 + else g[5] = 1 / (g[1]*SQR(g[3])/2 + 1
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3988 + - g[2] - g[3] - g[2]*g[3]*(log(g[3]) - 1)) - 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3989 + if (!mode--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3990 + memcpy (gamm, g, sizeof gamm);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3991 + return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3992 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3993 + for (i=0; i < 0x10000; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3994 + curve[i] = 0xffff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3995 + if ((r = (double) i / imax) < 1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3996 + curve[i] = 0x10000 * ( mode
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3997 + ? (r < g[3] ? r*g[1] : (g[0] ? pow( r,g[0])*(1+g[4])-g[4] : log(r)*g[2]+1))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3998 + : (r < g[2] ? r/g[1] : (g[0] ? pow((r+g[4])/(1+g[4]),1/g[0]) : exp((r-1)/g[2]))));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
3999 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4000 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4001 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4002 +void CLASS pseudoinverse (double (*in)[3], double (*out)[3], int size)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4003 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4004 + double work[3][6], num;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4005 + int i, j, k;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4006 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4007 + for (i=0; i < 3; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4008 + for (j=0; j < 6; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4009 + work[i][j] = j == i+3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4010 + for (j=0; j < 3; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4011 + for (k=0; k < size; k++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4012 + work[i][j] += in[k][i] * in[k][j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4013 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4014 + for (i=0; i < 3; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4015 + num = work[i][i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4016 + for (j=0; j < 6; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4017 + work[i][j] /= num;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4018 + for (k=0; k < 3; k++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4019 + if (k==i) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4020 + num = work[k][i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4021 + for (j=0; j < 6; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4022 + work[k][j] -= work[i][j] * num;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4023 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4024 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4025 + for (i=0; i < size; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4026 + for (j=0; j < 3; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4027 + for (out[i][j]=k=0; k < 3; k++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4028 + out[i][j] += work[j][k+3] * in[i][k];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4029 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4030 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4031 +void CLASS cam_xyz_coeff (float rgb_cam[3][4], double cam_xyz[4][3])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4032 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4033 + double cam_rgb[4][3], inverse[4][3], num;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4034 + int i, j, k;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4035 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4036 + for (i=0; i < colors; i++) /* Multiply out XYZ colorspace */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4037 + for (j=0; j < 3; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4038 + for (cam_rgb[i][j] = k=0; k < 3; k++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4039 + cam_rgb[i][j] += cam_xyz[i][k] * xyz_rgb[k][j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4040 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4041 + for (i=0; i < colors; i++) { /* Normalize cam_rgb so that */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4042 + for (num=j=0; j < 3; j++) /* cam_rgb * (1,1,1) is (1,1,1,1) */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4043 + num += cam_rgb[i][j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4044 + for (j=0; j < 3; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4045 + cam_rgb[i][j] /= num;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4046 + pre_mul[i] = 1 / num;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4047 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4048 + pseudoinverse (cam_rgb, inverse, colors);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4049 + for (i=0; i < 3; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4050 + for (j=0; j < colors; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4051 + rgb_cam[i][j] = inverse[j][i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4052 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4053 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4054 +#ifdef COLORCHECK
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4055 +void CLASS colorcheck()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4056 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4057 +#define NSQ 24
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4058 +// Coordinates of the GretagMacbeth ColorChecker squares
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4059 +// width, height, 1st_column, 1st_row
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4060 + int cut[NSQ][4]; // you must set these
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4061 +// ColorChecker Chart under 6500-kelvin illumination
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4062 + static const double gmb_xyY[NSQ][3] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4063 + { 0.400, 0.350, 10.1 }, // Dark Skin
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4064 + { 0.377, 0.345, 35.8 }, // Light Skin
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4065 + { 0.247, 0.251, 19.3 }, // Blue Sky
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4066 + { 0.337, 0.422, 13.3 }, // Foliage
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4067 + { 0.265, 0.240, 24.3 }, // Blue Flower
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4068 + { 0.261, 0.343, 43.1 }, // Bluish Green
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4069 + { 0.506, 0.407, 30.1 }, // Orange
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4070 + { 0.211, 0.175, 12.0 }, // Purplish Blue
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4071 + { 0.453, 0.306, 19.8 }, // Moderate Red
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4072 + { 0.285, 0.202, 6.6 }, // Purple
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4073 + { 0.380, 0.489, 44.3 }, // Yellow Green
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4074 + { 0.473, 0.438, 43.1 }, // Orange Yellow
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4075 + { 0.187, 0.129, 6.1 }, // Blue
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4076 + { 0.305, 0.478, 23.4 }, // Green
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4077 + { 0.539, 0.313, 12.0 }, // Red
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4078 + { 0.448, 0.470, 59.1 }, // Yellow
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4079 + { 0.364, 0.233, 19.8 }, // Magenta
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4080 + { 0.196, 0.252, 19.8 }, // Cyan
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4081 + { 0.310, 0.316, 90.0 }, // White
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4082 + { 0.310, 0.316, 59.1 }, // Neutral 8
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4083 + { 0.310, 0.316, 36.2 }, // Neutral 6.5
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4084 + { 0.310, 0.316, 19.8 }, // Neutral 5
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4085 + { 0.310, 0.316, 9.0 }, // Neutral 3.5
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4086 + { 0.310, 0.316, 3.1 } }; // Black
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4087 + double gmb_cam[NSQ][4], gmb_xyz[NSQ][3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4088 + double inverse[NSQ][3], cam_xyz[4][3], balance[4], num;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4089 + int c, i, j, k, sq, row, col, pass, count[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4090 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4091 + memset (gmb_cam, 0, sizeof gmb_cam);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4092 + for (sq=0; sq < NSQ; sq++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4093 + FORCC count[c] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4094 + for (row=cut[sq][3]; row < cut[sq][3]+cut[sq][1]; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4095 + for (col=cut[sq][2]; col < cut[sq][2]+cut[sq][0]; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4096 + c = FC(row,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4097 + if (c >= colors) c -= 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4098 + gmb_cam[sq][c] += BAYER2(row,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4099 + BAYER2(row,col) = black + (BAYER2(row,col)-black)/2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4100 + count[c]++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4101 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4102 + FORCC gmb_cam[sq][c] = gmb_cam[sq][c]/count[c] - black;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4103 + gmb_xyz[sq][0] = gmb_xyY[sq][2] * gmb_xyY[sq][0] / gmb_xyY[sq][1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4104 + gmb_xyz[sq][1] = gmb_xyY[sq][2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4105 + gmb_xyz[sq][2] = gmb_xyY[sq][2] *
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4106 + (1 - gmb_xyY[sq][0] - gmb_xyY[sq][1]) / gmb_xyY[sq][1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4107 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4108 + pseudoinverse (gmb_xyz, inverse, NSQ);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4109 + for (pass=0; pass < 2; pass++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4110 + for (raw_color = i=0; i < colors; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4111 + for (j=0; j < 3; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4112 + for (cam_xyz[i][j] = k=0; k < NSQ; k++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4113 + cam_xyz[i][j] += gmb_cam[k][i] * inverse[k][j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4114 + cam_xyz_coeff (rgb_cam, cam_xyz);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4115 + FORCC balance[c] = pre_mul[c] * gmb_cam[20][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4116 + for (sq=0; sq < NSQ; sq++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4117 + FORCC gmb_cam[sq][c] *= balance[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4118 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4119 + if (verbose) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4120 + printf (" { \"%s %s\", %d,\n\t{", make, model, black);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4121 + num = 10000 / (cam_xyz[1][0] + cam_xyz[1][1] + cam_xyz[1][2]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4122 + FORCC for (j=0; j < 3; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4123 + printf ("%c%d", (c | j) ? ',':' ', (int) (cam_xyz[c][j] * num + 0.5));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4124 + puts (" } },");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4125 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4126 +#undef NSQ
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4127 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4128 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4129 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4130 +void CLASS hat_transform (float *temp, float *base, int st, int size, int sc)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4131 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4132 + int i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4133 + for (i=0; i < sc; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4134 + temp[i] = 2*base[st*i] + base[st*(sc-i)] + base[st*(i+sc)];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4135 + for (; i+sc < size; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4136 + temp[i] = 2*base[st*i] + base[st*(i-sc)] + base[st*(i+sc)];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4137 + for (; i < size; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4138 + temp[i] = 2*base[st*i] + base[st*(i-sc)] + base[st*(2*size-2-(i+sc))];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4139 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4140 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4141 +void CLASS wavelet_denoise()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4142 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4143 + float *fimg=0, *temp, thold, mul[2], avg, diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4144 + int scale=1, size, lev, hpass, lpass, row, col, nc, c, i, wlast, blk[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4145 + ushort *window[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4146 + static const float noise[] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4147 + { 0.8002,0.2735,0.1202,0.0585,0.0291,0.0152,0.0080,0.0044 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4148 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4149 + if (verbose) fprintf (stderr,_("Wavelet denoising...\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4150 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4151 + while (maximum << scale < 0x10000) scale++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4152 + maximum <<= --scale;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4153 + black <<= scale;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4154 + FORC4 cblack[c] <<= scale;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4155 + if ((size = iheight*iwidth) < 0x15550000)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4156 + fimg = (float *) malloc ((size*3 + iheight + iwidth) * sizeof *fimg);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4157 + merror (fimg, "wavelet_denoise()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4158 + temp = fimg + size*3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4159 + if ((nc = colors) == 3 && filters) nc++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4160 + FORC(nc) { /* denoise R,G1,B,G3 individually */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4161 + for (i=0; i < size; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4162 + fimg[i] = 256 * sqrt(image[i][c] << scale);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4163 + for (hpass=lev=0; lev < 5; lev++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4164 + lpass = size*((lev & 1)+1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4165 + for (row=0; row < iheight; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4166 + hat_transform (temp, fimg+hpass+row*iwidth, 1, iwidth, 1 << lev);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4167 + for (col=0; col < iwidth; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4168 + fimg[lpass + row*iwidth + col] = temp[col] * 0.25;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4169 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4170 + for (col=0; col < iwidth; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4171 + hat_transform (temp, fimg+lpass+col, iwidth, iheight, 1 << lev);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4172 + for (row=0; row < iheight; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4173 + fimg[lpass + row*iwidth + col] = temp[row] * 0.25;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4174 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4175 + thold = threshold * noise[lev];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4176 + for (i=0; i < size; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4177 + fimg[hpass+i] -= fimg[lpass+i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4178 + if (fimg[hpass+i] < -thold) fimg[hpass+i] += thold;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4179 + else if (fimg[hpass+i] > thold) fimg[hpass+i] -= thold;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4180 + else fimg[hpass+i] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4181 + if (hpass) fimg[i] += fimg[hpass+i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4182 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4183 + hpass = lpass;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4184 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4185 + for (i=0; i < size; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4186 + image[i][c] = CLIP(SQR(fimg[i]+fimg[lpass+i])/0x10000);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4187 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4188 + if (filters && colors == 3) { /* pull G1 and G3 closer together */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4189 + for (row=0; row < 2; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4190 + mul[row] = 0.125 * pre_mul[FC(row+1,0) | 1] / pre_mul[FC(row,0) | 1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4191 + blk[row] = cblack[FC(row,0) | 1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4192 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4193 + for (i=0; i < 4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4194 + window[i] = (ushort *) fimg + width*i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4195 + for (wlast=-1, row=1; row < height-1; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4196 + while (wlast < row+1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4197 + for (wlast++, i=0; i < 4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4198 + window[(i+3) & 3] = window[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4199 + for (col = FC(wlast,1) & 1; col < width; col+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4200 + window[2][col] = BAYER(wlast,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4201 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4202 + thold = threshold/512;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4203 + for (col = (FC(row,0) & 1)+1; col < width-1; col+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4204 + avg = ( window[0][col-1] + window[0][col+1] +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4205 + window[2][col-1] + window[2][col+1] - blk[~row & 1]*4 )
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4206 + * mul[row & 1] + (window[1][col] + blk[row & 1]) * 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4207 + avg = avg < 0 ? 0 : sqrt(avg);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4208 + diff = sqrt(BAYER(row,col)) - avg;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4209 + if (diff < -thold) diff += thold;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4210 + else if (diff > thold) diff -= thold;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4211 + else diff = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4212 + BAYER(row,col) = CLIP(SQR(avg+diff) + 0.5);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4213 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4214 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4215 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4216 + free (fimg);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4217 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4218 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4219 +void CLASS scale_colors()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4220 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4221 + unsigned bottom, right, size, row, col, ur, uc, i, x, y, c, sum[8];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4222 + int val, dark, sat;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4223 + double dsum[8], dmin, dmax;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4224 + float scale_mul[4], fr, fc;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4225 + ushort *img=0, *pix;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4226 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4227 + if (user_mul[0])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4228 + memcpy (pre_mul, user_mul, sizeof pre_mul);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4229 + if (use_auto_wb || (use_camera_wb && cam_mul[0] == -1)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4230 + memset (dsum, 0, sizeof dsum);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4231 + bottom = MIN (greybox[1]+greybox[3], height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4232 + right = MIN (greybox[0]+greybox[2], width);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4233 + for (row=greybox[1]; row < bottom; row += 8)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4234 + for (col=greybox[0]; col < right; col += 8) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4235 + memset (sum, 0, sizeof sum);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4236 + for (y=row; y < row+8 && y < bottom; y++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4237 + for (x=col; x < col+8 && x < right; x++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4238 + FORC4 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4239 + if (filters) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4240 + c = fcol(y,x);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4241 + val = BAYER2(y,x);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4242 + } else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4243 + val = image[y*width+x][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4244 + if (val > maximum-25) goto skip_block;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4245 + if ((val -= cblack[c]) < 0) val = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4246 + sum[c] += val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4247 + sum[c+4]++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4248 + if (filters) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4249 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4250 + FORC(8) dsum[c] += sum[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4251 +skip_block: ;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4252 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4253 + FORC4 if (dsum[c]) pre_mul[c] = dsum[c+4] / dsum[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4254 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4255 + if (use_camera_wb && cam_mul[0] != -1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4256 + memset (sum, 0, sizeof sum);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4257 + for (row=0; row < 8; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4258 + for (col=0; col < 8; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4259 + c = FC(row,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4260 + if ((val = white[row][col] - cblack[c]) > 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4261 + sum[c] += val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4262 + sum[c+4]++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4263 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4264 + if (sum[0] && sum[1] && sum[2] && sum[3])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4265 + FORC4 pre_mul[c] = (float) sum[c+4] / sum[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4266 + else if (cam_mul[0] && cam_mul[2])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4267 + memcpy (pre_mul, cam_mul, sizeof pre_mul);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4268 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4269 + fprintf (stderr,_("%s: Cannot use camera white balance.\n"), ifname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4270 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4271 + if (pre_mul[1] == 0) pre_mul[1] = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4272 + if (pre_mul[3] == 0) pre_mul[3] = colors < 4 ? pre_mul[1] : 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4273 + dark = black;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4274 + sat = maximum;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4275 + if (threshold) wavelet_denoise();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4276 + maximum -= black;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4277 + for (dmin=DBL_MAX, dmax=c=0; c < 4; c++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4278 + if (dmin > pre_mul[c])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4279 + dmin = pre_mul[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4280 + if (dmax < pre_mul[c])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4281 + dmax = pre_mul[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4282 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4283 + if (!highlight) dmax = dmin;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4284 + FORC4 scale_mul[c] = (pre_mul[c] /= dmax) * 65535.0 / maximum;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4285 + if (verbose) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4286 + fprintf (stderr,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4287 + _("Scaling with darkness %d, saturation %d, and\nmultipliers"), dark, sat);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4288 + FORC4 fprintf (stderr, " %f", pre_mul[c]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4289 + fputc ('\n', stderr);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4290 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4291 + if (filters > 1000 && (cblack[4]+1)/2 == 1 && (cblack[5]+1)/2 == 1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4292 + FORC4 cblack[FC(c/2,c%2)] +=
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4293 + cblack[6 + c/2 % cblack[4] * cblack[5] + c%2 % cblack[5]];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4294 + cblack[4] = cblack[5] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4295 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4296 + size = iheight*iwidth;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4297 + for (i=0; i < size*4; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4298 + if (!(val = ((ushort *)image)[i])) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4299 + if (cblack[4] && cblack[5])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4300 + val -= cblack[6 + i/4 / iwidth % cblack[4] * cblack[5] +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4301 + i/4 % iwidth % cblack[5]];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4302 + val -= cblack[i & 3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4303 + val *= scale_mul[i & 3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4304 + ((ushort *)image)[i] = CLIP(val);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4305 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4306 + if ((aber[0] != 1 || aber[2] != 1) && colors == 3) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4307 + if (verbose)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4308 + fprintf (stderr,_("Correcting chromatic aberration...\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4309 + for (c=0; c < 4; c+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4310 + if (aber[c] == 1) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4311 + img = (ushort *) malloc (size * sizeof *img);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4312 + merror (img, "scale_colors()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4313 + for (i=0; i < size; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4314 + img[i] = image[i][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4315 + for (row=0; row < iheight; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4316 + ur = fr = (row - iheight*0.5) * aber[c] + iheight*0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4317 + if (ur > iheight-2) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4318 + fr -= ur;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4319 + for (col=0; col < iwidth; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4320 + uc = fc = (col - iwidth*0.5) * aber[c] + iwidth*0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4321 + if (uc > iwidth-2) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4322 + fc -= uc;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4323 + pix = img + ur*iwidth + uc;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4324 + image[row*iwidth+col][c] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4325 + (pix[ 0]*(1-fc) + pix[ 1]*fc) * (1-fr) +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4326 + (pix[iwidth]*(1-fc) + pix[iwidth+1]*fc) * fr;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4327 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4328 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4329 + free(img);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4330 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4331 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4332 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4333 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4334 +void CLASS pre_interpolate()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4335 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4336 + ushort (*img)[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4337 + int row, col, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4338 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4339 + if (shrink) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4340 + if (half_size) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4341 + height = iheight;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4342 + width = iwidth;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4343 + if (filters == 9) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4344 + for (row=0; row < 3; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4345 + for (col=1; col < 4; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4346 + if (!(image[row*width+col][0] | image[row*width+col][2]))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4347 + goto break2; break2:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4348 + for ( ; row < height; row+=3)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4349 + for (col=(col-1)%3+1; col < width-1; col+=3) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4350 + img = image + row*width+col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4351 + for (c=0; c < 3; c+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4352 + img[0][c] = (img[-1][c] + img[1][c]) >> 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4353 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4354 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4355 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4356 + img = (ushort (*)[4]) calloc (height, width*sizeof *img);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4357 + merror (img, "pre_interpolate()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4358 + for (row=0; row < height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4359 + for (col=0; col < width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4360 + c = fcol(row,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4361 + img[row*width+col][c] = image[(row >> 1)*iwidth+(col >> 1)][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4362 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4363 + free (image);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4364 + image = img;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4365 + shrink = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4366 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4367 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4368 + if (filters > 1000 && colors == 3) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4369 + mix_green = four_color_rgb ^ half_size;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4370 + if (four_color_rgb | half_size) colors++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4371 + else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4372 + for (row = FC(1,0) >> 1; row < height; row+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4373 + for (col = FC(row,1) & 1; col < width; col+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4374 + image[row*width+col][1] = image[row*width+col][3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4375 + filters &= ~((filters & 0x55555555) << 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4376 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4377 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4378 + if (half_size) filters = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4379 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4380 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4381 +void CLASS border_interpolate (int border)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4382 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4383 + unsigned row, col, y, x, f, c, sum[8];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4384 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4385 + for (row=0; row < height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4386 + for (col=0; col < width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4387 + if (col==border && row >= border && row < height-border)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4388 + col = width-border;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4389 + memset (sum, 0, sizeof sum);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4390 + for (y=row-1; y != row+2; y++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4391 + for (x=col-1; x != col+2; x++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4392 + if (y < height && x < width) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4393 + f = fcol(y,x);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4394 + sum[f] += image[y*width+x][f];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4395 + sum[f+4]++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4396 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4397 + f = fcol(row,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4398 + FORCC if (c != f && sum[c+4])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4399 + image[row*width+col][c] = sum[c] / sum[c+4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4400 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4401 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4402 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4403 +void CLASS lin_interpolate()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4404 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4405 + int code[16][16][32], size=16, *ip, sum[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4406 + int f, c, i, x, y, row, col, shift, color;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4407 + ushort *pix;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4408 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4409 + if (verbose) fprintf (stderr,_("Bilinear interpolation...\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4410 + if (filters == 9) size = 6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4411 + border_interpolate(1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4412 + for (row=0; row < size; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4413 + for (col=0; col < size; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4414 + ip = code[row][col]+1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4415 + f = fcol(row,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4416 + memset (sum, 0, sizeof sum);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4417 + for (y=-1; y <= 1; y++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4418 + for (x=-1; x <= 1; x++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4419 + shift = (y==0) + (x==0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4420 + color = fcol(row+y,col+x);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4421 + if (color == f) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4422 + *ip++ = (width*y + x)*4 + color;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4423 + *ip++ = shift;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4424 + *ip++ = color;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4425 + sum[color] += 1 << shift;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4426 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4427 + code[row][col][0] = (ip - code[row][col]) / 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4428 + FORCC
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4429 + if (c != f) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4430 + *ip++ = c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4431 + *ip++ = 256 / sum[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4432 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4433 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4434 + for (row=1; row < height-1; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4435 + for (col=1; col < width-1; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4436 + pix = image[row*width+col];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4437 + ip = code[row % size][col % size];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4438 + memset (sum, 0, sizeof sum);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4439 + for (i=*ip++; i--; ip+=3)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4440 + sum[ip[2]] += pix[ip[0]] << ip[1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4441 + for (i=colors; --i; ip+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4442 + pix[ip[0]] = sum[ip[0]] * ip[1] >> 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4443 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4444 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4445 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4446 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4447 + This algorithm is officially called:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4448 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4449 + "Interpolation using a Threshold-based variable number of gradients"
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4450 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4451 + described in http://scien.stanford.edu/pages/labsite/1999/psych221/projects/99/tingchen/algodep/vargra.html
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4452 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4453 + I've extended the basic idea to work with non-Bayer filter arrays.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4454 + Gradients are numbered clockwise from NW=0 to W=7.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4455 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4456 +void CLASS vng_interpolate()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4457 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4458 + static const signed char *cp, terms[] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4459 + -2,-2,+0,-1,0,0x01, -2,-2,+0,+0,1,0x01, -2,-1,-1,+0,0,0x01,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4460 + -2,-1,+0,-1,0,0x02, -2,-1,+0,+0,0,0x03, -2,-1,+0,+1,1,0x01,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4461 + -2,+0,+0,-1,0,0x06, -2,+0,+0,+0,1,0x02, -2,+0,+0,+1,0,0x03,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4462 + -2,+1,-1,+0,0,0x04, -2,+1,+0,-1,1,0x04, -2,+1,+0,+0,0,0x06,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4463 + -2,+1,+0,+1,0,0x02, -2,+2,+0,+0,1,0x04, -2,+2,+0,+1,0,0x04,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4464 + -1,-2,-1,+0,0,0x80, -1,-2,+0,-1,0,0x01, -1,-2,+1,-1,0,0x01,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4465 + -1,-2,+1,+0,1,0x01, -1,-1,-1,+1,0,0x88, -1,-1,+1,-2,0,0x40,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4466 + -1,-1,+1,-1,0,0x22, -1,-1,+1,+0,0,0x33, -1,-1,+1,+1,1,0x11,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4467 + -1,+0,-1,+2,0,0x08, -1,+0,+0,-1,0,0x44, -1,+0,+0,+1,0,0x11,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4468 + -1,+0,+1,-2,1,0x40, -1,+0,+1,-1,0,0x66, -1,+0,+1,+0,1,0x22,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4469 + -1,+0,+1,+1,0,0x33, -1,+0,+1,+2,1,0x10, -1,+1,+1,-1,1,0x44,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4470 + -1,+1,+1,+0,0,0x66, -1,+1,+1,+1,0,0x22, -1,+1,+1,+2,0,0x10,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4471 + -1,+2,+0,+1,0,0x04, -1,+2,+1,+0,1,0x04, -1,+2,+1,+1,0,0x04,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4472 + +0,-2,+0,+0,1,0x80, +0,-1,+0,+1,1,0x88, +0,-1,+1,-2,0,0x40,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4473 + +0,-1,+1,+0,0,0x11, +0,-1,+2,-2,0,0x40, +0,-1,+2,-1,0,0x20,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4474 + +0,-1,+2,+0,0,0x30, +0,-1,+2,+1,1,0x10, +0,+0,+0,+2,1,0x08,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4475 + +0,+0,+2,-2,1,0x40, +0,+0,+2,-1,0,0x60, +0,+0,+2,+0,1,0x20,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4476 + +0,+0,+2,+1,0,0x30, +0,+0,+2,+2,1,0x10, +0,+1,+1,+0,0,0x44,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4477 + +0,+1,+1,+2,0,0x10, +0,+1,+2,-1,1,0x40, +0,+1,+2,+0,0,0x60,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4478 + +0,+1,+2,+1,0,0x20, +0,+1,+2,+2,0,0x10, +1,-2,+1,+0,0,0x80,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4479 + +1,-1,+1,+1,0,0x88, +1,+0,+1,+2,0,0x08, +1,+0,+2,-1,0,0x40,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4480 + +1,+0,+2,+1,0,0x10
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4481 + }, chood[] = { -1,-1, -1,0, -1,+1, 0,+1, +1,+1, +1,0, +1,-1, 0,-1 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4482 + ushort (*brow[5])[4], *pix;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4483 + int prow=8, pcol=2, *ip, *code[16][16], gval[8], gmin, gmax, sum[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4484 + int row, col, x, y, x1, x2, y1, y2, t, weight, grads, color, diag;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4485 + int g, diff, thold, num, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4486 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4487 + lin_interpolate();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4488 + if (verbose) fprintf (stderr,_("VNG interpolation...\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4489 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4490 + if (filters == 1) prow = pcol = 16;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4491 + if (filters == 9) prow = pcol = 6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4492 + ip = (int *) calloc (prow*pcol, 1280);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4493 + merror (ip, "vng_interpolate()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4494 + for (row=0; row < prow; row++) /* Precalculate for VNG */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4495 + for (col=0; col < pcol; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4496 + code[row][col] = ip;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4497 + for (cp=terms, t=0; t < 64; t++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4498 + y1 = *cp++; x1 = *cp++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4499 + y2 = *cp++; x2 = *cp++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4500 + weight = *cp++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4501 + grads = *cp++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4502 + color = fcol(row+y1,col+x1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4503 + if (fcol(row+y2,col+x2) != color) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4504 + diag = (fcol(row,col+1) == color && fcol(row+1,col) == color) ? 2:1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4505 + if (abs(y1-y2) == diag && abs(x1-x2) == diag) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4506 + *ip++ = (y1*width + x1)*4 + color;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4507 + *ip++ = (y2*width + x2)*4 + color;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4508 + *ip++ = weight;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4509 + for (g=0; g < 8; g++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4510 + if (grads & 1<<g) *ip++ = g;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4511 + *ip++ = -1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4512 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4513 + *ip++ = INT_MAX;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4514 + for (cp=chood, g=0; g < 8; g++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4515 + y = *cp++; x = *cp++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4516 + *ip++ = (y*width + x) * 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4517 + color = fcol(row,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4518 + if (fcol(row+y,col+x) != color && fcol(row+y*2,col+x*2) == color)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4519 + *ip++ = (y*width + x) * 8 + color;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4520 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4521 + *ip++ = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4522 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4523 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4524 + brow[4] = (ushort (*)[4]) calloc (width*3, sizeof **brow);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4525 + merror (brow[4], "vng_interpolate()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4526 + for (row=0; row < 3; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4527 + brow[row] = brow[4] + row*width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4528 + for (row=2; row < height-2; row++) { /* Do VNG interpolation */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4529 + for (col=2; col < width-2; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4530 + pix = image[row*width+col];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4531 + ip = code[row % prow][col % pcol];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4532 + memset (gval, 0, sizeof gval);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4533 + while ((g = ip[0]) != INT_MAX) { /* Calculate gradients */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4534 + diff = ABS(pix[g] - pix[ip[1]]) << ip[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4535 + gval[ip[3]] += diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4536 + ip += 5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4537 + if ((g = ip[-1]) == -1) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4538 + gval[g] += diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4539 + while ((g = *ip++) != -1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4540 + gval[g] += diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4541 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4542 + ip++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4543 + gmin = gmax = gval[0]; /* Choose a threshold */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4544 + for (g=1; g < 8; g++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4545 + if (gmin > gval[g]) gmin = gval[g];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4546 + if (gmax < gval[g]) gmax = gval[g];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4547 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4548 + if (gmax == 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4549 + memcpy (brow[2][col], pix, sizeof *image);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4550 + continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4551 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4552 + thold = gmin + (gmax >> 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4553 + memset (sum, 0, sizeof sum);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4554 + color = fcol(row,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4555 + for (num=g=0; g < 8; g++,ip+=2) { /* Average the neighbors */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4556 + if (gval[g] <= thold) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4557 + FORCC
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4558 + if (c == color && ip[1])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4559 + sum[c] += (pix[c] + pix[ip[1]]) >> 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4560 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4561 + sum[c] += pix[ip[0] + c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4562 + num++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4563 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4564 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4565 + FORCC { /* Save to buffer */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4566 + t = pix[color];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4567 + if (c != color)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4568 + t += (sum[c] - sum[color]) / num;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4569 + brow[2][col][c] = CLIP(t);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4570 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4571 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4572 + if (row > 3) /* Write buffer to image */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4573 + memcpy (image[(row-2)*width+2], brow[0]+2, (width-4)*sizeof *image);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4574 + for (g=0; g < 4; g++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4575 + brow[(g-1) & 3] = brow[g];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4576 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4577 + memcpy (image[(row-2)*width+2], brow[0]+2, (width-4)*sizeof *image);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4578 + memcpy (image[(row-1)*width+2], brow[1]+2, (width-4)*sizeof *image);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4579 + free (brow[4]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4580 + free (code[0][0]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4581 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4582 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4583 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4584 + Patterned Pixel Grouping Interpolation by Alain Desbiolles
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4585 +*/
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4586 +void CLASS ppg_interpolate()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4587 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4588 + int dir[5] = { 1, width, -1, -width, 1 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4589 + int row, col, diff[2], guess[2], c, d, i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4590 + ushort (*pix)[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4591 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4592 + border_interpolate(3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4593 + if (verbose) fprintf (stderr,_("PPG interpolation...\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4594 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4595 +/* Fill in the green layer with gradients and pattern recognition: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4596 + for (row=3; row < height-3; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4597 + for (col=3+(FC(row,3) & 1), c=FC(row,col); col < width-3; col+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4598 + pix = image + row*width+col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4599 + for (i=0; (d=dir[i]) > 0; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4600 + guess[i] = (pix[-d][1] + pix[0][c] + pix[d][1]) * 2
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4601 + - pix[-2*d][c] - pix[2*d][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4602 + diff[i] = ( ABS(pix[-2*d][c] - pix[ 0][c]) +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4603 + ABS(pix[ 2*d][c] - pix[ 0][c]) +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4604 + ABS(pix[ -d][1] - pix[ d][1]) ) * 3 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4605 + ( ABS(pix[ 3*d][1] - pix[ d][1]) +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4606 + ABS(pix[-3*d][1] - pix[-d][1]) ) * 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4607 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4608 + d = dir[i = diff[0] > diff[1]];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4609 + pix[0][1] = ULIM(guess[i] >> 2, pix[d][1], pix[-d][1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4610 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4611 +/* Calculate red and blue for each green pixel: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4612 + for (row=1; row < height-1; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4613 + for (col=1+(FC(row,2) & 1), c=FC(row,col+1); col < width-1; col+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4614 + pix = image + row*width+col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4615 + for (i=0; (d=dir[i]) > 0; c=2-c, i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4616 + pix[0][c] = CLIP((pix[-d][c] + pix[d][c] + 2*pix[0][1]
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4617 + - pix[-d][1] - pix[d][1]) >> 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4618 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4619 +/* Calculate blue for red pixels and vice versa: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4620 + for (row=1; row < height-1; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4621 + for (col=1+(FC(row,1) & 1), c=2-FC(row,col); col < width-1; col+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4622 + pix = image + row*width+col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4623 + for (i=0; (d=dir[i]+dir[i+1]) > 0; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4624 + diff[i] = ABS(pix[-d][c] - pix[d][c]) +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4625 + ABS(pix[-d][1] - pix[0][1]) +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4626 + ABS(pix[ d][1] - pix[0][1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4627 + guess[i] = pix[-d][c] + pix[d][c] + 2*pix[0][1]
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4628 + - pix[-d][1] - pix[d][1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4629 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4630 + if (diff[0] != diff[1])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4631 + pix[0][c] = CLIP(guess[diff[0] > diff[1]] >> 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4632 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4633 + pix[0][c] = CLIP((guess[0]+guess[1]) >> 2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4634 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4635 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4636 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4637 +void CLASS cielab (ushort rgb[3], short lab[3])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4638 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4639 + int c, i, j, k;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4640 + float r, xyz[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4641 + static float cbrt[0x10000], xyz_cam[3][4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4642 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4643 + if (!rgb) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4644 + for (i=0; i < 0x10000; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4645 + r = i / 65535.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4646 + cbrt[i] = r > 0.008856 ? pow(r,1/3.0) : 7.787*r + 16/116.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4647 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4648 + for (i=0; i < 3; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4649 + for (j=0; j < colors; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4650 + for (xyz_cam[i][j] = k=0; k < 3; k++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4651 + xyz_cam[i][j] += xyz_rgb[i][k] * rgb_cam[k][j] / d65_white[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4652 + return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4653 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4654 + xyz[0] = xyz[1] = xyz[2] = 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4655 + FORCC {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4656 + xyz[0] += xyz_cam[0][c] * rgb[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4657 + xyz[1] += xyz_cam[1][c] * rgb[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4658 + xyz[2] += xyz_cam[2][c] * rgb[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4659 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4660 + xyz[0] = cbrt[CLIP((int) xyz[0])];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4661 + xyz[1] = cbrt[CLIP((int) xyz[1])];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4662 + xyz[2] = cbrt[CLIP((int) xyz[2])];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4663 + lab[0] = 64 * (116 * xyz[1] - 16);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4664 + lab[1] = 64 * 500 * (xyz[0] - xyz[1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4665 + lab[2] = 64 * 200 * (xyz[1] - xyz[2]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4666 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4667 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4668 +#define TS 512 /* Tile Size */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4669 +#define fcol(row,col) xtrans[(row+6) % 6][(col+6) % 6]
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4670 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4671 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4672 + Frank Markesteijn's algorithm for Fuji X-Trans sensors
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4673 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4674 +void CLASS xtrans_interpolate (int passes)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4675 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4676 + int c, d, f, g, h, i, v, ng, row, col, top, left, mrow, mcol;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4677 + int val, ndir, pass, hm[8], avg[4], color[3][8];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4678 + static const short orth[12] = { 1,0,0,1,-1,0,0,-1,1,0,0,1 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4679 + patt[2][16] = { { 0,1,0,-1,2,0,-1,0,1,1,1,-1,0,0,0,0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4680 + { 0,1,0,-2,1,0,-2,0,1,1,-2,-2,1,-1,-1,1 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4681 + dir[4] = { 1,TS,TS+1,TS-1 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4682 + short allhex[3][3][2][8], *hex;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4683 + ushort min, max, sgrow, sgcol;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4684 + ushort (*rgb)[TS][TS][3], (*rix)[3], (*pix)[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4685 + short (*lab) [TS][3], (*lix)[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4686 + float (*drv)[TS][TS], diff[6], tr;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4687 + char (*homo)[TS][TS], *buffer;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4688 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4689 + if (verbose)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4690 + fprintf (stderr,_("%d-pass X-Trans interpolation...\n"), passes);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4691 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4692 + cielab (0,0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4693 + ndir = 4 << (passes > 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4694 + buffer = (char *) malloc (TS*TS*(ndir*11+6));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4695 + merror (buffer, "xtrans_interpolate()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4696 + rgb = (ushort(*)[TS][TS][3]) buffer;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4697 + lab = (short (*) [TS][3])(buffer + TS*TS*(ndir*6));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4698 + drv = (float (*)[TS][TS]) (buffer + TS*TS*(ndir*6+6));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4699 + homo = (char (*)[TS][TS]) (buffer + TS*TS*(ndir*10+6));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4700 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4701 +/* Map a green hexagon around each non-green pixel and vice versa: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4702 + for (row=0; row < 3; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4703 + for (col=0; col < 3; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4704 + for (ng=d=0; d < 10; d+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4705 + g = fcol(row,col) == 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4706 + if (fcol(row+orth[d],col+orth[d+2]) == 1) ng=0; else ng++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4707 + if (ng == 4) { sgrow = row; sgcol = col; }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4708 + if (ng == g+1) FORC(8) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4709 + v = orth[d ]*patt[g][c*2] + orth[d+1]*patt[g][c*2+1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4710 + h = orth[d+2]*patt[g][c*2] + orth[d+3]*patt[g][c*2+1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4711 + allhex[row][col][0][c^(g*2 & d)] = h + v*width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4712 + allhex[row][col][1][c^(g*2 & d)] = h + v*TS;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4713 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4714 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4715 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4716 +/* Set green1 and green3 to the minimum and maximum allowed values: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4717 + for (row=2; row < height-2; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4718 + for (min=~(max=0), col=2; col < width-2; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4719 + if (fcol(row,col) == 1 && (min=~(max=0))) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4720 + pix = image + row*width + col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4721 + hex = allhex[row % 3][col % 3][0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4722 + if (!max) FORC(6) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4723 + val = pix[hex[c]][1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4724 + if (min > val) min = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4725 + if (max < val) max = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4726 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4727 + pix[0][1] = min;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4728 + pix[0][3] = max;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4729 + switch ((row-sgrow) % 3) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4730 + case 1: if (row < height-3) { row++; col--; } break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4731 + case 2: if ((min=~(max=0)) && (col+=2) < width-3 && row > 2) row--;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4732 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4733 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4734 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4735 + for (top=3; top < height-19; top += TS-16)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4736 + for (left=3; left < width-19; left += TS-16) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4737 + mrow = MIN (top+TS, height-3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4738 + mcol = MIN (left+TS, width-3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4739 + for (row=top; row < mrow; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4740 + for (col=left; col < mcol; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4741 + memcpy (rgb[0][row-top][col-left], image[row*width+col], 6);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4742 + FORC3 memcpy (rgb[c+1], rgb[0], sizeof *rgb);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4743 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4744 +/* Interpolate green horizontally, vertically, and along both diagonals: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4745 + for (row=top; row < mrow; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4746 + for (col=left; col < mcol; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4747 + if ((f = fcol(row,col)) == 1) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4748 + pix = image + row*width + col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4749 + hex = allhex[row % 3][col % 3][0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4750 + color[1][0] = 174 * (pix[ hex[1]][1] + pix[ hex[0]][1]) -
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4751 + 46 * (pix[2*hex[1]][1] + pix[2*hex[0]][1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4752 + color[1][1] = 223 * pix[ hex[3]][1] + pix[ hex[2]][1] * 33 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4753 + 92 * (pix[ 0 ][f] - pix[ -hex[2]][f]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4754 + FORC(2) color[1][2+c] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4755 + 164 * pix[hex[4+c]][1] + 92 * pix[-2*hex[4+c]][1] + 33 *
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4756 + (2*pix[0][f] - pix[3*hex[4+c]][f] - pix[-3*hex[4+c]][f]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4757 + FORC4 rgb[c^!((row-sgrow) % 3)][row-top][col-left][1] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4758 + LIM(color[1][c] >> 8,pix[0][1],pix[0][3]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4759 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4760 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4761 + for (pass=0; pass < passes; pass++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4762 + if (pass == 1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4763 + memcpy (rgb+=4, buffer, 4*sizeof *rgb);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4764 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4765 +/* Recalculate green from interpolated values of closer pixels: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4766 + if (pass) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4767 + for (row=top+2; row < mrow-2; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4768 + for (col=left+2; col < mcol-2; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4769 + if ((f = fcol(row,col)) == 1) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4770 + pix = image + row*width + col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4771 + hex = allhex[row % 3][col % 3][1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4772 + for (d=3; d < 6; d++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4773 + rix = &rgb[(d-2)^!((row-sgrow) % 3)][row-top][col-left];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4774 + val = rix[-2*hex[d]][1] + 2*rix[hex[d]][1]
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4775 + - rix[-2*hex[d]][f] - 2*rix[hex[d]][f] + 3*rix[0][f];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4776 + rix[0][1] = LIM(val/3,pix[0][1],pix[0][3]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4777 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4778 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4779 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4780 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4781 +/* Interpolate red and blue values for solitary green pixels: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4782 + for (row=(top-sgrow+4)/3*3+sgrow; row < mrow-2; row+=3)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4783 + for (col=(left-sgcol+4)/3*3+sgcol; col < mcol-2; col+=3) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4784 + rix = &rgb[0][row-top][col-left];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4785 + h = fcol(row,col+1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4786 + memset (diff, 0, sizeof diff);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4787 + for (i=1, d=0; d < 6; d++, i^=TS^1, h^=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4788 + for (c=0; c < 2; c++, h^=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4789 + g = 2*rix[0][1] - rix[i<<c][1] - rix[-i<<c][1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4790 + color[h][d] = g + rix[i<<c][h] + rix[-i<<c][h];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4791 + if (d > 1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4792 + diff[d] += SQR (rix[i<<c][1] - rix[-i<<c][1]
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4793 + - rix[i<<c][h] + rix[-i<<c][h]) + SQR(g);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4794 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4795 + if (d > 1 && (d & 1))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4796 + if (diff[d-1] < diff[d])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4797 + FORC(2) color[c*2][d] = color[c*2][d-1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4798 + if (d < 2 || (d & 1)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4799 + FORC(2) rix[0][c*2] = CLIP(color[c*2][d]/2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4800 + rix += TS*TS;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4801 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4802 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4803 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4804 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4805 +/* Interpolate red for blue pixels and vice versa: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4806 + for (row=top+3; row < mrow-3; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4807 + for (col=left+3; col < mcol-3; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4808 + if ((f = 2-fcol(row,col)) == 1) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4809 + rix = &rgb[0][row-top][col-left];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4810 + c = (row-sgrow) % 3 ? TS:1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4811 + h = 3 * (c ^ TS ^ 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4812 + for (d=0; d < 4; d++, rix += TS*TS) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4813 + i = d > 1 || ((d ^ c) & 1) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4814 + ((ABS(rix[0][1]-rix[c][1])+ABS(rix[0][1]-rix[-c][1])) <
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4815 + 2*(ABS(rix[0][1]-rix[h][1])+ABS(rix[0][1]-rix[-h][1]))) ? c:h;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4816 + rix[0][f] = CLIP((rix[i][f] + rix[-i][f] +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4817 + 2*rix[0][1] - rix[i][1] - rix[-i][1])/2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4818 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4819 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4820 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4821 +/* Fill in red and blue for 2x2 blocks of green: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4822 + for (row=top+2; row < mrow-2; row++) if ((row-sgrow) % 3)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4823 + for (col=left+2; col < mcol-2; col++) if ((col-sgcol) % 3) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4824 + rix = &rgb[0][row-top][col-left];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4825 + hex = allhex[row % 3][col % 3][1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4826 + for (d=0; d < ndir; d+=2, rix += TS*TS)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4827 + if (hex[d] + hex[d+1]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4828 + g = 3*rix[0][1] - 2*rix[hex[d]][1] - rix[hex[d+1]][1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4829 + for (c=0; c < 4; c+=2) rix[0][c] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4830 + CLIP((g + 2*rix[hex[d]][c] + rix[hex[d+1]][c])/3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4831 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4832 + g = 2*rix[0][1] - rix[hex[d]][1] - rix[hex[d+1]][1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4833 + for (c=0; c < 4; c+=2) rix[0][c] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4834 + CLIP((g + rix[hex[d]][c] + rix[hex[d+1]][c])/2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4835 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4836 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4837 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4838 + rgb = (ushort(*)[TS][TS][3]) buffer;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4839 + mrow -= top;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4840 + mcol -= left;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4841 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4842 +/* Convert to CIELab and differentiate in all directions: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4843 + for (d=0; d < ndir; d++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4844 + for (row=2; row < mrow-2; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4845 + for (col=2; col < mcol-2; col++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4846 + cielab (rgb[d][row][col], lab[row][col]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4847 + for (f=dir[d & 3],row=3; row < mrow-3; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4848 + for (col=3; col < mcol-3; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4849 + lix = &lab[row][col];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4850 + g = 2*lix[0][0] - lix[f][0] - lix[-f][0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4851 + drv[d][row][col] = SQR(g)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4852 + + SQR((2*lix[0][1] - lix[f][1] - lix[-f][1] + g*500/232))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4853 + + SQR((2*lix[0][2] - lix[f][2] - lix[-f][2] - g*500/580));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4854 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4855 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4856 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4857 +/* Build homogeneity maps from the derivatives: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4858 + memset(homo, 0, ndir*TS*TS);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4859 + for (row=4; row < mrow-4; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4860 + for (col=4; col < mcol-4; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4861 + for (tr=FLT_MAX, d=0; d < ndir; d++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4862 + if (tr > drv[d][row][col])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4863 + tr = drv[d][row][col];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4864 + tr *= 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4865 + for (d=0; d < ndir; d++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4866 + for (v=-1; v <= 1; v++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4867 + for (h=-1; h <= 1; h++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4868 + if (drv[d][row+v][col+h] <= tr)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4869 + homo[d][row][col]++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4870 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4871 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4872 +/* Average the most homogenous pixels for the final result: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4873 + if (height-top < TS+4) mrow = height-top+2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4874 + if (width-left < TS+4) mcol = width-left+2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4875 + for (row = MIN(top,8); row < mrow-8; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4876 + for (col = MIN(left,8); col < mcol-8; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4877 + for (d=0; d < ndir; d++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4878 + for (hm[d]=0, v=-2; v <= 2; v++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4879 + for (h=-2; h <= 2; h++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4880 + hm[d] += homo[d][row+v][col+h];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4881 + for (d=0; d < ndir-4; d++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4882 + if (hm[d] < hm[d+4]) hm[d ] = 0; else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4883 + if (hm[d] > hm[d+4]) hm[d+4] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4884 + for (max=hm[0],d=1; d < ndir; d++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4885 + if (max < hm[d]) max = hm[d];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4886 + max -= max >> 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4887 + memset (avg, 0, sizeof avg);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4888 + for (d=0; d < ndir; d++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4889 + if (hm[d] >= max) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4890 + FORC3 avg[c] += rgb[d][row][col][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4891 + avg[3]++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4892 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4893 + FORC3 image[(row+top)*width+col+left][c] = avg[c]/avg[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4894 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4895 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4896 + free(buffer);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4897 + border_interpolate(8);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4898 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4899 +#undef fcol
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4900 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4901 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4902 + Adaptive Homogeneity-Directed interpolation is based on
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4903 + the work of Keigo Hirakawa, Thomas Parks, and Paul Lee.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4904 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4905 +void CLASS ahd_interpolate()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4906 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4907 + int i, j, top, left, row, col, tr, tc, c, d, val, hm[2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4908 + static const int dir[4] = { -1, 1, -TS, TS };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4909 + unsigned ldiff[2][4], abdiff[2][4], leps, abeps;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4910 + ushort (*rgb)[TS][TS][3], (*rix)[3], (*pix)[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4911 + short (*lab)[TS][TS][3], (*lix)[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4912 + char (*homo)[TS][TS], *buffer;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4913 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4914 + if (verbose) fprintf (stderr,_("AHD interpolation...\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4915 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4916 + cielab (0,0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4917 + border_interpolate(5);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4918 + buffer = (char *) malloc (26*TS*TS);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4919 + merror (buffer, "ahd_interpolate()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4920 + rgb = (ushort(*)[TS][TS][3]) buffer;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4921 + lab = (short (*)[TS][TS][3])(buffer + 12*TS*TS);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4922 + homo = (char (*)[TS][TS]) (buffer + 24*TS*TS);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4923 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4924 + for (top=2; top < height-5; top += TS-6)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4925 + for (left=2; left < width-5; left += TS-6) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4926 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4927 +/* Interpolate green horizontally and vertically: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4928 + for (row=top; row < top+TS && row < height-2; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4929 + col = left + (FC(row,left) & 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4930 + for (c = FC(row,col); col < left+TS && col < width-2; col+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4931 + pix = image + row*width+col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4932 + val = ((pix[-1][1] + pix[0][c] + pix[1][1]) * 2
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4933 + - pix[-2][c] - pix[2][c]) >> 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4934 + rgb[0][row-top][col-left][1] = ULIM(val,pix[-1][1],pix[1][1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4935 + val = ((pix[-width][1] + pix[0][c] + pix[width][1]) * 2
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4936 + - pix[-2*width][c] - pix[2*width][c]) >> 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4937 + rgb[1][row-top][col-left][1] = ULIM(val,pix[-width][1],pix[width][1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4938 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4939 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4940 +/* Interpolate red and blue, and convert to CIELab: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4941 + for (d=0; d < 2; d++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4942 + for (row=top+1; row < top+TS-1 && row < height-3; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4943 + for (col=left+1; col < left+TS-1 && col < width-3; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4944 + pix = image + row*width+col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4945 + rix = &rgb[d][row-top][col-left];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4946 + lix = &lab[d][row-top][col-left];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4947 + if ((c = 2 - FC(row,col)) == 1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4948 + c = FC(row+1,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4949 + val = pix[0][1] + (( pix[-1][2-c] + pix[1][2-c]
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4950 + - rix[-1][1] - rix[1][1] ) >> 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4951 + rix[0][2-c] = CLIP(val);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4952 + val = pix[0][1] + (( pix[-width][c] + pix[width][c]
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4953 + - rix[-TS][1] - rix[TS][1] ) >> 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4954 + } else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4955 + val = rix[0][1] + (( pix[-width-1][c] + pix[-width+1][c]
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4956 + + pix[+width-1][c] + pix[+width+1][c]
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4957 + - rix[-TS-1][1] - rix[-TS+1][1]
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4958 + - rix[+TS-1][1] - rix[+TS+1][1] + 1) >> 2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4959 + rix[0][c] = CLIP(val);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4960 + c = FC(row,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4961 + rix[0][c] = pix[0][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4962 + cielab (rix[0],lix[0]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4963 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4964 +/* Build homogeneity maps from the CIELab images: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4965 + memset (homo, 0, 2*TS*TS);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4966 + for (row=top+2; row < top+TS-2 && row < height-4; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4967 + tr = row-top;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4968 + for (col=left+2; col < left+TS-2 && col < width-4; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4969 + tc = col-left;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4970 + for (d=0; d < 2; d++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4971 + lix = &lab[d][tr][tc];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4972 + for (i=0; i < 4; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4973 + ldiff[d][i] = ABS(lix[0][0]-lix[dir[i]][0]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4974 + abdiff[d][i] = SQR(lix[0][1]-lix[dir[i]][1])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4975 + + SQR(lix[0][2]-lix[dir[i]][2]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4976 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4977 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4978 + leps = MIN(MAX(ldiff[0][0],ldiff[0][1]),
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4979 + MAX(ldiff[1][2],ldiff[1][3]));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4980 + abeps = MIN(MAX(abdiff[0][0],abdiff[0][1]),
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4981 + MAX(abdiff[1][2],abdiff[1][3]));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4982 + for (d=0; d < 2; d++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4983 + for (i=0; i < 4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4984 + if (ldiff[d][i] <= leps && abdiff[d][i] <= abeps)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4985 + homo[d][tr][tc]++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4986 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4987 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4988 +/* Combine the most homogenous pixels for the final result: */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4989 + for (row=top+3; row < top+TS-3 && row < height-5; row++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4990 + tr = row-top;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4991 + for (col=left+3; col < left+TS-3 && col < width-5; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4992 + tc = col-left;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4993 + for (d=0; d < 2; d++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4994 + for (hm[d]=0, i=tr-1; i <= tr+1; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4995 + for (j=tc-1; j <= tc+1; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4996 + hm[d] += homo[d][i][j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4997 + if (hm[0] != hm[1])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4998 + FORC3 image[row*width+col][c] = rgb[hm[1] > hm[0]][tr][tc][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
4999 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5000 + FORC3 image[row*width+col][c] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5001 + (rgb[0][tr][tc][c] + rgb[1][tr][tc][c]) >> 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5002 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5003 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5004 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5005 + free (buffer);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5006 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5007 +#undef TS
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5008 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5009 +void CLASS median_filter()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5010 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5011 + ushort (*pix)[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5012 + int pass, c, i, j, k, med[9];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5013 + static const uchar opt[] = /* Optimal 9-element median search */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5014 + { 1,2, 4,5, 7,8, 0,1, 3,4, 6,7, 1,2, 4,5, 7,8,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5015 + 0,3, 5,8, 4,7, 3,6, 1,4, 2,5, 4,7, 4,2, 6,4, 4,2 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5016 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5017 + for (pass=1; pass <= med_passes; pass++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5018 + if (verbose)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5019 + fprintf (stderr,_("Median filter pass %d...\n"), pass);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5020 + for (c=0; c < 3; c+=2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5021 + for (pix = image; pix < image+width*height; pix++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5022 + pix[0][3] = pix[0][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5023 + for (pix = image+width; pix < image+width*(height-1); pix++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5024 + if ((pix-image+1) % width < 2) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5025 + for (k=0, i = -width; i <= width; i += width)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5026 + for (j = i-1; j <= i+1; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5027 + med[k++] = pix[j][3] - pix[j][1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5028 + for (i=0; i < sizeof opt; i+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5029 + if (med[opt[i]] > med[opt[i+1]])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5030 + SWAP (med[opt[i]] , med[opt[i+1]]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5031 + pix[0][c] = CLIP(med[4] + pix[0][1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5032 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5033 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5034 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5035 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5036 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5037 +void CLASS blend_highlights()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5038 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5039 + int clip=INT_MAX, row, col, c, i, j;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5040 + static const float trans[2][4][4] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5041 + { { { 1,1,1 }, { 1.7320508,-1.7320508,0 }, { -1,-1,2 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5042 + { { 1,1,1,1 }, { 1,-1,1,-1 }, { 1,1,-1,-1 }, { 1,-1,-1,1 } } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5043 + static const float itrans[2][4][4] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5044 + { { { 1,0.8660254,-0.5 }, { 1,-0.8660254,-0.5 }, { 1,0,1 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5045 + { { 1,1,1,1 }, { 1,-1,1,-1 }, { 1,1,-1,-1 }, { 1,-1,-1,1 } } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5046 + float cam[2][4], lab[2][4], sum[2], chratio;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5047 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5048 + if ((unsigned) (colors-3) > 1) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5049 + if (verbose) fprintf (stderr,_("Blending highlights...\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5050 + FORCC if (clip > (i = 65535*pre_mul[c])) clip = i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5051 + for (row=0; row < height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5052 + for (col=0; col < width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5053 + FORCC if (image[row*width+col][c] > clip) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5054 + if (c == colors) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5055 + FORCC {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5056 + cam[0][c] = image[row*width+col][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5057 + cam[1][c] = MIN(cam[0][c],clip);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5058 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5059 + for (i=0; i < 2; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5060 + FORCC for (lab[i][c]=j=0; j < colors; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5061 + lab[i][c] += trans[colors-3][c][j] * cam[i][j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5062 + for (sum[i]=0,c=1; c < colors; c++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5063 + sum[i] += SQR(lab[i][c]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5064 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5065 + chratio = sqrt(sum[1]/sum[0]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5066 + for (c=1; c < colors; c++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5067 + lab[0][c] *= chratio;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5068 + FORCC for (cam[0][c]=j=0; j < colors; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5069 + cam[0][c] += itrans[colors-3][c][j] * lab[0][j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5070 + FORCC image[row*width+col][c] = cam[0][c] / colors;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5071 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5072 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5073 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5074 +#define SCALE (4 >> shrink)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5075 +void CLASS recover_highlights()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5076 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5077 + float *map, sum, wgt, grow;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5078 + int hsat[4], count, spread, change, val, i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5079 + unsigned high, wide, mrow, mcol, row, col, kc, c, d, y, x;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5080 + ushort *pixel;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5081 + static const signed char dir[8][2] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5082 + { {-1,-1}, {-1,0}, {-1,1}, {0,1}, {1,1}, {1,0}, {1,-1}, {0,-1} };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5083 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5084 + if (verbose) fprintf (stderr,_("Rebuilding highlights...\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5085 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5086 + grow = pow (2, 4-highlight);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5087 + FORCC hsat[c] = 32000 * pre_mul[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5088 + for (kc=0, c=1; c < colors; c++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5089 + if (pre_mul[kc] < pre_mul[c]) kc = c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5090 + high = height / SCALE;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5091 + wide = width / SCALE;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5092 + map = (float *) calloc (high, wide*sizeof *map);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5093 + merror (map, "recover_highlights()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5094 + FORCC if (c != kc) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5095 + memset (map, 0, high*wide*sizeof *map);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5096 + for (mrow=0; mrow < high; mrow++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5097 + for (mcol=0; mcol < wide; mcol++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5098 + sum = wgt = count = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5099 + for (row = mrow*SCALE; row < (mrow+1)*SCALE; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5100 + for (col = mcol*SCALE; col < (mcol+1)*SCALE; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5101 + pixel = image[row*width+col];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5102 + if (pixel[c] / hsat[c] == 1 && pixel[kc] > 24000) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5103 + sum += pixel[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5104 + wgt += pixel[kc];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5105 + count++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5106 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5107 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5108 + if (count == SCALE*SCALE)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5109 + map[mrow*wide+mcol] = sum / wgt;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5110 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5111 + for (spread = 32/grow; spread--; ) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5112 + for (mrow=0; mrow < high; mrow++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5113 + for (mcol=0; mcol < wide; mcol++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5114 + if (map[mrow*wide+mcol]) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5115 + sum = count = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5116 + for (d=0; d < 8; d++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5117 + y = mrow + dir[d][0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5118 + x = mcol + dir[d][1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5119 + if (y < high && x < wide && map[y*wide+x] > 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5120 + sum += (1 + (d & 1)) * map[y*wide+x];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5121 + count += 1 + (d & 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5122 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5123 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5124 + if (count > 3)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5125 + map[mrow*wide+mcol] = - (sum+grow) / (count+grow);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5126 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5127 + for (change=i=0; i < high*wide; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5128 + if (map[i] < 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5129 + map[i] = -map[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5130 + change = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5131 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5132 + if (!change) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5133 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5134 + for (i=0; i < high*wide; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5135 + if (map[i] == 0) map[i] = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5136 + for (mrow=0; mrow < high; mrow++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5137 + for (mcol=0; mcol < wide; mcol++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5138 + for (row = mrow*SCALE; row < (mrow+1)*SCALE; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5139 + for (col = mcol*SCALE; col < (mcol+1)*SCALE; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5140 + pixel = image[row*width+col];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5141 + if (pixel[c] / hsat[c] > 1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5142 + val = pixel[kc] * map[mrow*wide+mcol];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5143 + if (pixel[c] < val) pixel[c] = CLIP(val);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5144 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5145 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5146 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5147 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5148 + free (map);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5149 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5150 +#undef SCALE
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5151 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5152 +void CLASS tiff_get (unsigned base,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5153 + unsigned *tag, unsigned *type, unsigned *len, unsigned *save)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5154 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5155 + *tag = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5156 + *type = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5157 + *len = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5158 + *save = ftell(ifp) + 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5159 + if (*len * ("11124811248484"[*type < 14 ? *type:0]-'0') > 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5160 + fseek (ifp, get4()+base, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5161 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5162 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5163 +void CLASS parse_thumb_note (int base, unsigned toff, unsigned tlen)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5164 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5165 + unsigned entries, tag, type, len, save;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5166 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5167 + entries = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5168 + while (entries--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5169 + tiff_get (base, &tag, &type, &len, &save);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5170 + if (tag == toff) thumb_offset = get4()+base;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5171 + if (tag == tlen) thumb_length = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5172 + fseek (ifp, save, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5173 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5174 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5175 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5176 +int CLASS parse_tiff_ifd (int base);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5177 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5178 +void CLASS parse_makernote (int base, int uptag)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5179 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5180 + static const uchar xlat[2][256] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5181 + { 0xc1,0xbf,0x6d,0x0d,0x59,0xc5,0x13,0x9d,0x83,0x61,0x6b,0x4f,0xc7,0x7f,0x3d,0x3d,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5182 + 0x53,0x59,0xe3,0xc7,0xe9,0x2f,0x95,0xa7,0x95,0x1f,0xdf,0x7f,0x2b,0x29,0xc7,0x0d,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5183 + 0xdf,0x07,0xef,0x71,0x89,0x3d,0x13,0x3d,0x3b,0x13,0xfb,0x0d,0x89,0xc1,0x65,0x1f,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5184 + 0xb3,0x0d,0x6b,0x29,0xe3,0xfb,0xef,0xa3,0x6b,0x47,0x7f,0x95,0x35,0xa7,0x47,0x4f,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5185 + 0xc7,0xf1,0x59,0x95,0x35,0x11,0x29,0x61,0xf1,0x3d,0xb3,0x2b,0x0d,0x43,0x89,0xc1,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5186 + 0x9d,0x9d,0x89,0x65,0xf1,0xe9,0xdf,0xbf,0x3d,0x7f,0x53,0x97,0xe5,0xe9,0x95,0x17,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5187 + 0x1d,0x3d,0x8b,0xfb,0xc7,0xe3,0x67,0xa7,0x07,0xf1,0x71,0xa7,0x53,0xb5,0x29,0x89,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5188 + 0xe5,0x2b,0xa7,0x17,0x29,0xe9,0x4f,0xc5,0x65,0x6d,0x6b,0xef,0x0d,0x89,0x49,0x2f,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5189 + 0xb3,0x43,0x53,0x65,0x1d,0x49,0xa3,0x13,0x89,0x59,0xef,0x6b,0xef,0x65,0x1d,0x0b,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5190 + 0x59,0x13,0xe3,0x4f,0x9d,0xb3,0x29,0x43,0x2b,0x07,0x1d,0x95,0x59,0x59,0x47,0xfb,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5191 + 0xe5,0xe9,0x61,0x47,0x2f,0x35,0x7f,0x17,0x7f,0xef,0x7f,0x95,0x95,0x71,0xd3,0xa3,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5192 + 0x0b,0x71,0xa3,0xad,0x0b,0x3b,0xb5,0xfb,0xa3,0xbf,0x4f,0x83,0x1d,0xad,0xe9,0x2f,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5193 + 0x71,0x65,0xa3,0xe5,0x07,0x35,0x3d,0x0d,0xb5,0xe9,0xe5,0x47,0x3b,0x9d,0xef,0x35,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5194 + 0xa3,0xbf,0xb3,0xdf,0x53,0xd3,0x97,0x53,0x49,0x71,0x07,0x35,0x61,0x71,0x2f,0x43,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5195 + 0x2f,0x11,0xdf,0x17,0x97,0xfb,0x95,0x3b,0x7f,0x6b,0xd3,0x25,0xbf,0xad,0xc7,0xc5,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5196 + 0xc5,0xb5,0x8b,0xef,0x2f,0xd3,0x07,0x6b,0x25,0x49,0x95,0x25,0x49,0x6d,0x71,0xc7 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5197 + { 0xa7,0xbc,0xc9,0xad,0x91,0xdf,0x85,0xe5,0xd4,0x78,0xd5,0x17,0x46,0x7c,0x29,0x4c,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5198 + 0x4d,0x03,0xe9,0x25,0x68,0x11,0x86,0xb3,0xbd,0xf7,0x6f,0x61,0x22,0xa2,0x26,0x34,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5199 + 0x2a,0xbe,0x1e,0x46,0x14,0x68,0x9d,0x44,0x18,0xc2,0x40,0xf4,0x7e,0x5f,0x1b,0xad,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5200 + 0x0b,0x94,0xb6,0x67,0xb4,0x0b,0xe1,0xea,0x95,0x9c,0x66,0xdc,0xe7,0x5d,0x6c,0x05,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5201 + 0xda,0xd5,0xdf,0x7a,0xef,0xf6,0xdb,0x1f,0x82,0x4c,0xc0,0x68,0x47,0xa1,0xbd,0xee,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5202 + 0x39,0x50,0x56,0x4a,0xdd,0xdf,0xa5,0xf8,0xc6,0xda,0xca,0x90,0xca,0x01,0x42,0x9d,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5203 + 0x8b,0x0c,0x73,0x43,0x75,0x05,0x94,0xde,0x24,0xb3,0x80,0x34,0xe5,0x2c,0xdc,0x9b,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5204 + 0x3f,0xca,0x33,0x45,0xd0,0xdb,0x5f,0xf5,0x52,0xc3,0x21,0xda,0xe2,0x22,0x72,0x6b,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5205 + 0x3e,0xd0,0x5b,0xa8,0x87,0x8c,0x06,0x5d,0x0f,0xdd,0x09,0x19,0x93,0xd0,0xb9,0xfc,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5206 + 0x8b,0x0f,0x84,0x60,0x33,0x1c,0x9b,0x45,0xf1,0xf0,0xa3,0x94,0x3a,0x12,0x77,0x33,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5207 + 0x4d,0x44,0x78,0x28,0x3c,0x9e,0xfd,0x65,0x57,0x16,0x94,0x6b,0xfb,0x59,0xd0,0xc8,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5208 + 0x22,0x36,0xdb,0xd2,0x63,0x98,0x43,0xa1,0x04,0x87,0x86,0xf7,0xa6,0x26,0xbb,0xd6,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5209 + 0x59,0x4d,0xbf,0x6a,0x2e,0xaa,0x2b,0xef,0xe6,0x78,0xb6,0x4e,0xe0,0x2f,0xdc,0x7c,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5210 + 0xbe,0x57,0x19,0x32,0x7e,0x2a,0xd0,0xb8,0xba,0x29,0x00,0x3c,0x52,0x7d,0xa8,0x49,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5211 + 0x3b,0x2d,0xeb,0x25,0x49,0xfa,0xa3,0xaa,0x39,0xa7,0xc5,0xa7,0x50,0x11,0x36,0xfb,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5212 + 0xc6,0x67,0x4a,0xf5,0xa5,0x12,0x65,0x7e,0xb0,0xdf,0xaf,0x4e,0xb3,0x61,0x7f,0x2f } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5213 + unsigned offset=0, entries, tag, type, len, save, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5214 + unsigned ver97=0, serial=0, i, wbi=0, wb[4]={0,0,0,0};
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5215 + uchar buf97[324], ci, cj, ck;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5216 + short morder, sorder=order;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5217 + char buf[10];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5218 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5219 + The MakerNote might have its own TIFF header (possibly with
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5220 + its own byte-order!), or it might just be a table.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5221 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5222 + if (!strcmp(make,"Nokia")) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5223 + fread (buf, 1, 10, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5224 + if (!strncmp (buf,"KDK" ,3) || /* these aren't TIFF tables */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5225 + !strncmp (buf,"VER" ,3) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5226 + !strncmp (buf,"IIII",4) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5227 + !strncmp (buf,"MMMM",4)) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5228 + if (!strncmp (buf,"KC" ,2) || /* Konica KD-400Z, KD-510Z */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5229 + !strncmp (buf,"MLY" ,3)) { /* Minolta DiMAGE G series */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5230 + order = 0x4d4d;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5231 + while ((i=ftell(ifp)) < data_offset && i < 16384) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5232 + wb[0] = wb[2]; wb[2] = wb[1]; wb[1] = wb[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5233 + wb[3] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5234 + if (wb[1] == 256 && wb[3] == 256 &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5235 + wb[0] > 256 && wb[0] < 640 && wb[2] > 256 && wb[2] < 640)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5236 + FORC4 cam_mul[c] = wb[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5237 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5238 + goto quit;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5239 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5240 + if (!strcmp (buf,"Nikon")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5241 + base = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5242 + order = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5243 + if (get2() != 42) goto quit;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5244 + offset = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5245 + fseek (ifp, offset-8, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5246 + } else if (!strcmp (buf,"OLYMPUS") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5247 + !strcmp (buf,"PENTAX ")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5248 + base = ftell(ifp)-10;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5249 + fseek (ifp, -2, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5250 + order = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5251 + if (buf[0] == 'O') get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5252 + } else if (!strncmp (buf,"SONY",4) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5253 + !strcmp (buf,"Panasonic")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5254 + goto nf;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5255 + } else if (!strncmp (buf,"FUJIFILM",8)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5256 + base = ftell(ifp)-10;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5257 +nf: order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5258 + fseek (ifp, 2, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5259 + } else if (!strcmp (buf,"OLYMP") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5260 + !strcmp (buf,"LEICA") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5261 + !strcmp (buf,"Ricoh") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5262 + !strcmp (buf,"EPSON"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5263 + fseek (ifp, -2, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5264 + else if (!strcmp (buf,"AOC") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5265 + !strcmp (buf,"QVC"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5266 + fseek (ifp, -4, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5267 + else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5268 + fseek (ifp, -10, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5269 + if (!strncmp(make,"SAMSUNG",7))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5270 + base = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5271 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5272 + entries = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5273 + if (entries > 1000) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5274 + morder = order;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5275 + while (entries--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5276 + order = morder;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5277 + tiff_get (base, &tag, &type, &len, &save);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5278 + tag |= uptag << 16;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5279 + if (tag == 2 && strstr(make,"NIKON") && !iso_speed)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5280 + iso_speed = (get2(),get2());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5281 + if (tag == 4 && len > 26 && len < 35) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5282 + if ((i=(get4(),get2())) != 0x7fff && !iso_speed)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5283 + iso_speed = 50 * pow (2, i/32.0 - 4);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5284 + if ((i=(get2(),get2())) != 0x7fff && !aperture)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5285 + aperture = pow (2, i/64.0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5286 + if ((i=get2()) != 0xffff && !shutter)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5287 + shutter = pow (2, (short) i/-32.0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5288 + wbi = (get2(),get2());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5289 + shot_order = (get2(),get2());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5290 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5291 + if ((tag == 4 || tag == 0x114) && !strncmp(make,"KONICA",6)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5292 + fseek (ifp, tag == 4 ? 140:160, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5293 + switch (get2()) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5294 + case 72: flip = 0; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5295 + case 76: flip = 6; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5296 + case 82: flip = 5; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5297 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5298 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5299 + if (tag == 7 && type == 2 && len > 20)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5300 + fgets (model2, 64, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5301 + if (tag == 8 && type == 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5302 + shot_order = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5303 + if (tag == 9 && !strcmp(make,"Canon"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5304 + fread (artist, 64, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5305 + if (tag == 0xc && len == 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5306 + FORC3 cam_mul[(c << 1 | c >> 1) & 3] = getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5307 + if (tag == 0xd && type == 7 && get2() == 0xaaaa) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5308 + for (c=i=2; (ushort) c != 0xbbbb && i < len; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5309 + c = c << 8 | fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5310 + while ((i+=4) < len-5)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5311 + if (get4() == 257 && (i=len) && (c = (get4(),fgetc(ifp))) < 3)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5312 + flip = "065"[c]-'0';
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5313 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5314 + if (tag == 0x10 && type == 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5315 + unique_id = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5316 + if (tag == 0x11 && is_raw && !strncmp(make,"NIKON",5)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5317 + fseek (ifp, get4()+base, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5318 + parse_tiff_ifd (base);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5319 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5320 + if (tag == 0x14 && type == 7) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5321 + if (len == 2560) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5322 + fseek (ifp, 1248, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5323 + goto get2_256;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5324 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5325 + fread (buf, 1, 10, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5326 + if (!strncmp(buf,"NRW ",4)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5327 + fseek (ifp, strcmp(buf+4,"0100") ? 46:1546, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5328 + cam_mul[0] = get4() << 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5329 + cam_mul[1] = get4() + get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5330 + cam_mul[2] = get4() << 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5331 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5332 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5333 + if (tag == 0x15 && type == 2 && is_raw)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5334 + fread (model, 64, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5335 + if (strstr(make,"PENTAX")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5336 + if (tag == 0x1b) tag = 0x1018;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5337 + if (tag == 0x1c) tag = 0x1017;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5338 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5339 + if (tag == 0x1d)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5340 + while ((c = fgetc(ifp)) && c != EOF)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5341 + serial = serial*10 + (isdigit(c) ? c - '0' : c % 10);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5342 + if (tag == 0x29 && type == 1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5343 + c = wbi < 18 ? "012347800000005896"[wbi]-'0' : 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5344 + fseek (ifp, 8 + c*32, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5345 + FORC4 cam_mul[c ^ (c >> 1) ^ 1] = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5346 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5347 + if (tag == 0x3d && type == 3 && len == 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5348 + FORC4 cblack[c ^ c >> 1] = get2() >> (14-tiff_bps);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5349 + if (tag == 0x81 && type == 4) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5350 + data_offset = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5351 + fseek (ifp, data_offset + 41, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5352 + raw_height = get2() * 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5353 + raw_width = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5354 + filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5355 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5356 + if ((tag == 0x81 && type == 7) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5357 + (tag == 0x100 && type == 7) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5358 + (tag == 0x280 && type == 1)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5359 + thumb_offset = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5360 + thumb_length = len;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5361 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5362 + if (tag == 0x88 && type == 4 && (thumb_offset = get4()))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5363 + thumb_offset += base;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5364 + if (tag == 0x89 && type == 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5365 + thumb_length = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5366 + if (tag == 0x8c || tag == 0x96)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5367 + meta_offset = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5368 + if (tag == 0x97) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5369 + for (i=0; i < 4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5370 + ver97 = ver97 * 10 + fgetc(ifp)-'0';
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5371 + switch (ver97) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5372 + case 100:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5373 + fseek (ifp, 68, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5374 + FORC4 cam_mul[(c >> 1) | ((c & 1) << 1)] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5375 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5376 + case 102:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5377 + fseek (ifp, 6, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5378 + FORC4 cam_mul[c ^ (c >> 1)] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5379 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5380 + case 103:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5381 + fseek (ifp, 16, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5382 + FORC4 cam_mul[c] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5383 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5384 + if (ver97 >= 200) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5385 + if (ver97 != 205) fseek (ifp, 280, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5386 + fread (buf97, 324, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5387 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5388 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5389 + if (tag == 0xa1 && type == 7) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5390 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5391 + fseek (ifp, 140, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5392 + FORC3 cam_mul[c] = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5393 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5394 + if (tag == 0xa4 && type == 3) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5395 + fseek (ifp, wbi*48, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5396 + FORC3 cam_mul[c] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5397 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5398 + if (tag == 0xa7 && (unsigned) (ver97-200) < 17) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5399 + ci = xlat[0][serial & 0xff];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5400 + cj = xlat[1][fgetc(ifp)^fgetc(ifp)^fgetc(ifp)^fgetc(ifp)];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5401 + ck = 0x60;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5402 + for (i=0; i < 324; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5403 + buf97[i] ^= (cj += ci * ck++);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5404 + i = "66666>666;6A;:;55"[ver97-200] - '0';
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5405 + FORC4 cam_mul[c ^ (c >> 1) ^ (i & 1)] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5406 + sget2 (buf97 + (i & -2) + c*2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5407 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5408 + if (tag == 0x200 && len == 3)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5409 + shot_order = (get4(),get4());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5410 + if (tag == 0x200 && len == 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5411 + FORC4 cblack[c ^ c >> 1] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5412 + if (tag == 0x201 && len == 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5413 + FORC4 cam_mul[c ^ (c >> 1)] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5414 + if (tag == 0x220 && type == 7)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5415 + meta_offset = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5416 + if (tag == 0x401 && type == 4 && len == 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5417 + FORC4 cblack[c ^ c >> 1] = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5418 + if (tag == 0xe01) { /* Nikon Capture Note */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5419 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5420 + fseek (ifp, 22, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5421 + for (offset=22; offset+22 < len; offset += 22+i) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5422 + tag = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5423 + fseek (ifp, 14, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5424 + i = get4()-4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5425 + if (tag == 0x76a43207) flip = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5426 + else fseek (ifp, i, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5427 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5428 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5429 + if (tag == 0xe80 && len == 256 && type == 7) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5430 + fseek (ifp, 48, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5431 + cam_mul[0] = get2() * 508 * 1.078 / 0x10000;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5432 + cam_mul[2] = get2() * 382 * 1.173 / 0x10000;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5433 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5434 + if (tag == 0xf00 && type == 7) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5435 + if (len == 614)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5436 + fseek (ifp, 176, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5437 + else if (len == 734 || len == 1502)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5438 + fseek (ifp, 148, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5439 + else goto next;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5440 + goto get2_256;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5441 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5442 + if ((tag == 0x1011 && len == 9) || tag == 0x20400200)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5443 + for (i=0; i < 3; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5444 + FORC3 cmatrix[i][c] = ((short) get2()) / 256.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5445 + if ((tag == 0x1012 || tag == 0x20400600) && len == 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5446 + FORC4 cblack[c ^ c >> 1] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5447 + if (tag == 0x1017 || tag == 0x20400100)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5448 + cam_mul[0] = get2() / 256.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5449 + if (tag == 0x1018 || tag == 0x20400100)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5450 + cam_mul[2] = get2() / 256.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5451 + if (tag == 0x2011 && len == 2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5452 +get2_256:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5453 + order = 0x4d4d;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5454 + cam_mul[0] = get2() / 256.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5455 + cam_mul[2] = get2() / 256.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5456 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5457 + if ((tag | 0x70) == 0x2070 && (type == 4 || type == 13))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5458 + fseek (ifp, get4()+base, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5459 + if (tag == 0x2020 && !strncmp(buf,"OLYMP",5))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5460 + parse_thumb_note (base, 257, 258);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5461 + if (tag == 0x2040)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5462 + parse_makernote (base, 0x2040);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5463 + if (tag == 0xb028) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5464 + fseek (ifp, get4()+base, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5465 + parse_thumb_note (base, 136, 137);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5466 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5467 + if (tag == 0x4001 && len > 500) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5468 + i = len == 582 ? 50 : len == 653 ? 68 : len == 5120 ? 142 : 126;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5469 + fseek (ifp, i, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5470 + FORC4 cam_mul[c ^ (c >> 1)] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5471 + for (i+=18; i <= len; i+=10) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5472 + get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5473 + FORC4 sraw_mul[c ^ (c >> 1)] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5474 + if (sraw_mul[1] == 1170) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5475 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5476 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5477 + if (tag == 0x4021 && get4() && get4())
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5478 + FORC4 cam_mul[c] = 1024;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5479 + if (tag == 0xa021)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5480 + FORC4 cam_mul[c ^ (c >> 1)] = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5481 + if (tag == 0xa028)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5482 + FORC4 cam_mul[c ^ (c >> 1)] -= get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5483 + if (tag == 0xb001)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5484 + unique_id = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5485 +next:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5486 + fseek (ifp, save, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5487 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5488 +quit:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5489 + order = sorder;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5490 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5491 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5492 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5493 + Since the TIFF DateTime string has no timezone information,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5494 + assume that the camera's clock was set to Universal Time.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5495 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5496 +void CLASS get_timestamp (int reversed)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5497 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5498 + struct tm t;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5499 + char str[20];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5500 + int i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5501 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5502 + str[19] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5503 + if (reversed)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5504 + for (i=19; i--; ) str[i] = fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5505 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5506 + fread (str, 19, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5507 + memset (&t, 0, sizeof t);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5508 + if (sscanf (str, "%d:%d:%d %d:%d:%d", &t.tm_year, &t.tm_mon,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5509 + &t.tm_mday, &t.tm_hour, &t.tm_min, &t.tm_sec) != 6)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5510 + return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5511 + t.tm_year -= 1900;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5512 + t.tm_mon -= 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5513 + t.tm_isdst = -1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5514 + if (mktime(&t) > 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5515 + timestamp = mktime(&t);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5516 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5517 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5518 +void CLASS parse_exif (int base)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5519 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5520 + unsigned kodak, entries, tag, type, len, save, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5521 + double expo;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5522 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5523 + kodak = !strncmp(make,"EASTMAN",7) && tiff_nifds < 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5524 + entries = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5525 + while (entries--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5526 + tiff_get (base, &tag, &type, &len, &save);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5527 + switch (tag) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5528 + case 33434: tiff_ifd[tiff_nifds-1].shutter =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5529 + shutter = getreal(type); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5530 + case 33437: aperture = getreal(type); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5531 + case 34855: iso_speed = get2(); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5532 + case 36867:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5533 + case 36868: get_timestamp(0); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5534 + case 37377: if ((expo = -getreal(type)) < 128)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5535 + tiff_ifd[tiff_nifds-1].shutter =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5536 + shutter = pow (2, expo); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5537 + case 37378: aperture = pow (2, getreal(type)/2); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5538 + case 37386: focal_len = getreal(type); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5539 + case 37500: parse_makernote (base, 0); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5540 + case 40962: if (kodak) raw_width = get4(); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5541 + case 40963: if (kodak) raw_height = get4(); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5542 + case 41730:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5543 + if (get4() == 0x20002)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5544 + for (exif_cfa=c=0; c < 8; c+=2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5545 + exif_cfa |= fgetc(ifp) * 0x01010101 << c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5546 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5547 + fseek (ifp, save, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5548 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5549 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5550 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5551 +void CLASS parse_gps (int base)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5552 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5553 + unsigned entries, tag, type, len, save, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5554 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5555 + entries = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5556 + while (entries--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5557 + tiff_get (base, &tag, &type, &len, &save);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5558 + switch (tag) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5559 + case 1: case 3: case 5:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5560 + gpsdata[29+tag/2] = getc(ifp); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5561 + case 2: case 4: case 7:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5562 + FORC(6) gpsdata[tag/3*6+c] = get4(); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5563 + case 6:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5564 + FORC(2) gpsdata[18+c] = get4(); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5565 + case 18: case 29:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5566 + fgets ((char *) (gpsdata+14+tag/3), MIN(len,12), ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5567 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5568 + fseek (ifp, save, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5569 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5570 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5571 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5572 +void CLASS romm_coeff (float romm_cam[3][3])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5573 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5574 + static const float rgb_romm[3][3] = /* ROMM == Kodak ProPhoto */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5575 + { { 2.034193, -0.727420, -0.306766 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5576 + { -0.228811, 1.231729, -0.002922 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5577 + { -0.008565, -0.153273, 1.161839 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5578 + int i, j, k;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5579 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5580 + for (i=0; i < 3; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5581 + for (j=0; j < 3; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5582 + for (cmatrix[i][j] = k=0; k < 3; k++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5583 + cmatrix[i][j] += rgb_romm[i][k] * romm_cam[k][j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5584 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5585 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5586 +void CLASS parse_mos (int offset)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5587 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5588 + char data[40];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5589 + int skip, from, i, c, neut[4], planes=0, frot=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5590 + static const char *mod[] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5591 + { "","DCB2","Volare","Cantare","CMost","Valeo 6","Valeo 11","Valeo 22",
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5592 + "Valeo 11p","Valeo 17","","Aptus 17","Aptus 22","Aptus 75","Aptus 65",
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5593 + "Aptus 54S","Aptus 65S","Aptus 75S","AFi 5","AFi 6","AFi 7",
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5594 + "AFi-II 7","Aptus-II 7","","Aptus-II 6","","","Aptus-II 10","Aptus-II 5",
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5595 + "","","","","Aptus-II 10R","Aptus-II 8","","Aptus-II 12","","AFi-II 12" };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5596 + float romm_cam[3][3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5597 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5598 + fseek (ifp, offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5599 + while (1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5600 + if (get4() != 0x504b5453) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5601 + get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5602 + fread (data, 1, 40, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5603 + skip = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5604 + from = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5605 + if (!strcmp(data,"JPEG_preview_data")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5606 + thumb_offset = from;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5607 + thumb_length = skip;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5608 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5609 + if (!strcmp(data,"icc_camera_profile")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5610 + profile_offset = from;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5611 + profile_length = skip;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5612 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5613 + if (!strcmp(data,"ShootObj_back_type")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5614 + fscanf (ifp, "%d", &i);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5615 + if ((unsigned) i < sizeof mod / sizeof (*mod))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5616 + strcpy (model, mod[i]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5617 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5618 + if (!strcmp(data,"icc_camera_to_tone_matrix")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5619 + for (i=0; i < 9; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5620 + ((float *)romm_cam)[i] = int_to_float(get4());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5621 + romm_coeff (romm_cam);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5622 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5623 + if (!strcmp(data,"CaptProf_color_matrix")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5624 + for (i=0; i < 9; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5625 + fscanf (ifp, "%f", (float *)romm_cam + i);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5626 + romm_coeff (romm_cam);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5627 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5628 + if (!strcmp(data,"CaptProf_number_of_planes"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5629 + fscanf (ifp, "%d", &planes);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5630 + if (!strcmp(data,"CaptProf_raw_data_rotation"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5631 + fscanf (ifp, "%d", &flip);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5632 + if (!strcmp(data,"CaptProf_mosaic_pattern"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5633 + FORC4 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5634 + fscanf (ifp, "%d", &i);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5635 + if (i == 1) frot = c ^ (c >> 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5636 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5637 + if (!strcmp(data,"ImgProf_rotation_angle")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5638 + fscanf (ifp, "%d", &i);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5639 + flip = i - flip;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5640 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5641 + if (!strcmp(data,"NeutObj_neutrals") && !cam_mul[0]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5642 + FORC4 fscanf (ifp, "%d", neut+c);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5643 + FORC3 cam_mul[c] = (float) neut[0] / neut[c+1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5644 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5645 + if (!strcmp(data,"Rows_data"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5646 + load_flags = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5647 + parse_mos (from);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5648 + fseek (ifp, skip+from, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5649 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5650 + if (planes)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5651 + filters = (planes == 1) * 0x01010101 *
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5652 + (uchar) "\x94\x61\x16\x49"[(flip/90 + frot) & 3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5653 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5654 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5655 +void CLASS linear_table (unsigned len)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5656 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5657 + int i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5658 + if (len > 0x1000) len = 0x1000;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5659 + read_shorts (curve, len);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5660 + for (i=len; i < 0x1000; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5661 + curve[i] = curve[i-1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5662 + maximum = curve[0xfff];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5663 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5664 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5665 +void CLASS parse_kodak_ifd (int base)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5666 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5667 + unsigned entries, tag, type, len, save;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5668 + int i, c, wbi=-2, wbtemp=6500;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5669 + float mul[3]={1,1,1}, num;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5670 + static const int wbtag[] = { 64037,64040,64039,64041,-1,-1,64042 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5671 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5672 + entries = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5673 + if (entries > 1024) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5674 + while (entries--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5675 + tiff_get (base, &tag, &type, &len, &save);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5676 + if (tag == 1020) wbi = getint(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5677 + if (tag == 1021 && len == 72) { /* WB set in software */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5678 + fseek (ifp, 40, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5679 + FORC3 cam_mul[c] = 2048.0 / get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5680 + wbi = -2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5681 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5682 + if (tag == 2118) wbtemp = getint(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5683 + if (tag == 2120 + wbi && wbi >= 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5684 + FORC3 cam_mul[c] = 2048.0 / getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5685 + if (tag == 2130 + wbi)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5686 + FORC3 mul[c] = getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5687 + if (tag == 2140 + wbi && wbi >= 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5688 + FORC3 {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5689 + for (num=i=0; i < 4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5690 + num += getreal(type) * pow (wbtemp/100.0, i);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5691 + cam_mul[c] = 2048 / (num * mul[c]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5692 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5693 + if (tag == 2317) linear_table (len);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5694 + if (tag == 6020) iso_speed = getint(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5695 + if (tag == 64013) wbi = fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5696 + if ((unsigned) wbi < 7 && tag == wbtag[wbi])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5697 + FORC3 cam_mul[c] = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5698 + if (tag == 64019) width = getint(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5699 + if (tag == 64020) height = (getint(type)+1) & -2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5700 + fseek (ifp, save, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5701 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5702 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5703 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5704 +void CLASS parse_minolta (int base);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5705 +int CLASS parse_tiff (int base);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5706 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5707 +int CLASS parse_tiff_ifd (int base)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5708 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5709 + unsigned entries, tag, type, len, plen=16, save;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5710 + int ifd, use_cm=0, cfa, i, j, c, ima_len=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5711 + char software[64], *cbuf, *cp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5712 + uchar cfa_pat[16], cfa_pc[] = { 0,1,2,3 }, tab[256];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5713 + double cc[4][4], cm[4][3], cam_xyz[4][3], num;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5714 + double ab[]={ 1,1,1,1 }, asn[] = { 0,0,0,0 }, xyz[] = { 1,1,1 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5715 + unsigned sony_curve[] = { 0,0,0,0,0,4095 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5716 + unsigned *buf, sony_offset=0, sony_length=0, sony_key=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5717 + struct jhead jh;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5718 + FILE *sfp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5719 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5720 + if (tiff_nifds >= sizeof tiff_ifd / sizeof tiff_ifd[0])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5721 + return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5722 + ifd = tiff_nifds++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5723 + for (j=0; j < 4; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5724 + for (i=0; i < 4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5725 + cc[j][i] = i == j;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5726 + entries = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5727 + if (entries > 512) return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5728 + while (entries--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5729 + tiff_get (base, &tag, &type, &len, &save);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5730 + switch (tag) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5731 + case 5: width = get2(); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5732 + case 6: height = get2(); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5733 + case 7: width += get2(); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5734 + case 9: if ((i = get2())) filters = i; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5735 + case 17: case 18:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5736 + if (type == 3 && len == 1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5737 + cam_mul[(tag-17)*2] = get2() / 256.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5738 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5739 + case 23:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5740 + if (type == 3) iso_speed = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5741 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5742 + case 28: case 29: case 30:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5743 + cblack[tag-28] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5744 + cblack[3] = cblack[1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5745 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5746 + case 36: case 37: case 38:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5747 + cam_mul[tag-36] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5748 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5749 + case 39:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5750 + if (len < 50 || cam_mul[0]) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5751 + fseek (ifp, 12, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5752 + FORC3 cam_mul[c] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5753 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5754 + case 46:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5755 + if (type != 7 || fgetc(ifp) != 0xff || fgetc(ifp) != 0xd8) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5756 + thumb_offset = ftell(ifp) - 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5757 + thumb_length = len;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5758 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5759 + case 61440: /* Fuji HS10 table */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5760 + fseek (ifp, get4()+base, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5761 + parse_tiff_ifd (base);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5762 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5763 + case 2: case 256: case 61441: /* ImageWidth */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5764 + tiff_ifd[ifd].width = getint(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5765 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5766 + case 3: case 257: case 61442: /* ImageHeight */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5767 + tiff_ifd[ifd].height = getint(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5768 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5769 + case 258: /* BitsPerSample */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5770 + case 61443:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5771 + tiff_ifd[ifd].samples = len & 7;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5772 + tiff_ifd[ifd].bps = getint(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5773 + if (tiff_bps < tiff_ifd[ifd].bps)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5774 + tiff_bps = tiff_ifd[ifd].bps;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5775 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5776 + case 61446:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5777 + raw_height = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5778 + if (tiff_ifd[ifd].bps > 12) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5779 + load_raw = &CLASS packed_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5780 + load_flags = get4() ? 24:80;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5781 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5782 + case 259: /* Compression */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5783 + tiff_ifd[ifd].comp = getint(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5784 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5785 + case 262: /* PhotometricInterpretation */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5786 + tiff_ifd[ifd].phint = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5787 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5788 + case 270: /* ImageDescription */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5789 + fread (desc, 512, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5790 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5791 + case 271: /* Make */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5792 + fgets (make, 64, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5793 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5794 + case 272: /* Model */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5795 + fgets (model, 64, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5796 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5797 + case 280: /* Panasonic RW2 offset */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5798 + if (type != 4) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5799 + load_raw = &CLASS panasonic_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5800 + load_flags = 0x2008;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5801 + case 273: /* StripOffset */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5802 + case 513: /* JpegIFOffset */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5803 + case 61447:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5804 + tiff_ifd[ifd].offset = get4()+base;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5805 + if (!tiff_ifd[ifd].bps && tiff_ifd[ifd].offset > 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5806 + fseek (ifp, tiff_ifd[ifd].offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5807 + if (ljpeg_start (&jh, 1)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5808 + tiff_ifd[ifd].comp = 6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5809 + tiff_ifd[ifd].width = jh.wide;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5810 + tiff_ifd[ifd].height = jh.high;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5811 + tiff_ifd[ifd].bps = jh.bits;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5812 + tiff_ifd[ifd].samples = jh.clrs;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5813 + if (!(jh.sraw || (jh.clrs & 1)))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5814 + tiff_ifd[ifd].width *= jh.clrs;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5815 + if ((tiff_ifd[ifd].width > 4*tiff_ifd[ifd].height) & ~jh.clrs) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5816 + tiff_ifd[ifd].width /= 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5817 + tiff_ifd[ifd].height *= 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5818 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5819 + i = order;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5820 + parse_tiff (tiff_ifd[ifd].offset + 12);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5821 + order = i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5822 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5823 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5824 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5825 + case 274: /* Orientation */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5826 + tiff_ifd[ifd].flip = "50132467"[get2() & 7]-'0';
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5827 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5828 + case 277: /* SamplesPerPixel */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5829 + tiff_ifd[ifd].samples = getint(type) & 7;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5830 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5831 + case 279: /* StripByteCounts */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5832 + case 514:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5833 + case 61448:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5834 + tiff_ifd[ifd].bytes = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5835 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5836 + case 61454:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5837 + FORC3 cam_mul[(4-c) % 3] = getint(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5838 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5839 + case 305: case 11: /* Software */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5840 + fgets (software, 64, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5841 + if (!strncmp(software,"Adobe",5) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5842 + !strncmp(software,"dcraw",5) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5843 + !strncmp(software,"UFRaw",5) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5844 + !strncmp(software,"Bibble",6) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5845 + !strncmp(software,"Nikon Scan",10) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5846 + !strcmp (software,"Digital Photo Professional"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5847 + is_raw = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5848 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5849 + case 306: /* DateTime */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5850 + get_timestamp(0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5851 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5852 + case 315: /* Artist */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5853 + fread (artist, 64, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5854 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5855 + case 322: /* TileWidth */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5856 + tiff_ifd[ifd].tile_width = getint(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5857 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5858 + case 323: /* TileLength */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5859 + tiff_ifd[ifd].tile_length = getint(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5860 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5861 + case 324: /* TileOffsets */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5862 + tiff_ifd[ifd].offset = len > 1 ? ftell(ifp) : get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5863 + if (len == 1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5864 + tiff_ifd[ifd].tile_width = tiff_ifd[ifd].tile_length = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5865 + if (len == 4) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5866 + load_raw = &CLASS sinar_4shot_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5867 + is_raw = 5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5868 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5869 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5870 + case 330: /* SubIFDs */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5871 + if (!strcmp(model,"DSLR-A100") && tiff_ifd[ifd].width == 3872) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5872 + load_raw = &CLASS sony_arw_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5873 + data_offset = get4()+base;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5874 + ifd++; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5875 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5876 + while (len--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5877 + i = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5878 + fseek (ifp, get4()+base, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5879 + if (parse_tiff_ifd (base)) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5880 + fseek (ifp, i+4, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5881 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5882 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5883 + case 400:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5884 + strcpy (make, "Sarnoff");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5885 + maximum = 0xfff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5886 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5887 + case 28688:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5888 + FORC4 sony_curve[c+1] = get2() >> 2 & 0xfff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5889 + for (i=0; i < 5; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5890 + for (j = sony_curve[i]+1; j <= sony_curve[i+1]; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5891 + curve[j] = curve[j-1] + (1 << i);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5892 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5893 + case 29184: sony_offset = get4(); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5894 + case 29185: sony_length = get4(); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5895 + case 29217: sony_key = get4(); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5896 + case 29264:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5897 + parse_minolta (ftell(ifp));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5898 + raw_width = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5899 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5900 + case 29443:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5901 + FORC4 cam_mul[c ^ (c < 2)] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5902 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5903 + case 29459:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5904 + FORC4 cam_mul[c] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5905 + i = (cam_mul[1] == 1024 && cam_mul[2] == 1024) << 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5906 + SWAP (cam_mul[i],cam_mul[i+1])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5907 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5908 + case 33405: /* Model2 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5909 + fgets (model2, 64, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5910 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5911 + case 33421: /* CFARepeatPatternDim */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5912 + if (get2() == 6 && get2() == 6)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5913 + filters = 9;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5914 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5915 + case 33422: /* CFAPattern */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5916 + if (filters == 9) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5917 + FORC(36) ((char *)xtrans)[c] = fgetc(ifp) & 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5918 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5919 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5920 + case 64777: /* Kodak P-series */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5921 + if ((plen=len) > 16) plen = 16;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5922 + fread (cfa_pat, 1, plen, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5923 + for (colors=cfa=i=0; i < plen && colors < 4; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5924 + colors += !(cfa & (1 << cfa_pat[i]));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5925 + cfa |= 1 << cfa_pat[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5926 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5927 + if (cfa == 070) memcpy (cfa_pc,"\003\004\005",3); /* CMY */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5928 + if (cfa == 072) memcpy (cfa_pc,"\005\003\004\001",4); /* GMCY */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5929 + goto guess_cfa_pc;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5930 + case 33424:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5931 + case 65024:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5932 + fseek (ifp, get4()+base, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5933 + parse_kodak_ifd (base);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5934 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5935 + case 33434: /* ExposureTime */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5936 + tiff_ifd[ifd].shutter = shutter = getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5937 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5938 + case 33437: /* FNumber */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5939 + aperture = getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5940 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5941 + case 34306: /* Leaf white balance */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5942 + FORC4 cam_mul[c ^ 1] = 4096.0 / get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5943 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5944 + case 34307: /* Leaf CatchLight color matrix */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5945 + fread (software, 1, 7, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5946 + if (strncmp(software,"MATRIX",6)) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5947 + colors = 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5948 + for (raw_color = i=0; i < 3; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5949 + FORC4 fscanf (ifp, "%f", &rgb_cam[i][c^1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5950 + if (!use_camera_wb) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5951 + num = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5952 + FORC4 num += rgb_cam[i][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5953 + FORC4 rgb_cam[i][c] /= num;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5954 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5955 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5956 + case 34310: /* Leaf metadata */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5957 + parse_mos (ftell(ifp));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5958 + case 34303:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5959 + strcpy (make, "Leaf");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5960 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5961 + case 34665: /* EXIF tag */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5962 + fseek (ifp, get4()+base, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5963 + parse_exif (base);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5964 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5965 + case 34853: /* GPSInfo tag */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5966 + fseek (ifp, get4()+base, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5967 + parse_gps (base);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5968 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5969 + case 34675: /* InterColorProfile */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5970 + case 50831: /* AsShotICCProfile */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5971 + profile_offset = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5972 + profile_length = len;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5973 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5974 + case 37122: /* CompressedBitsPerPixel */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5975 + kodak_cbpp = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5976 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5977 + case 37386: /* FocalLength */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5978 + focal_len = getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5979 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5980 + case 37393: /* ImageNumber */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5981 + shot_order = getint(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5982 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5983 + case 37400: /* old Kodak KDC tag */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5984 + for (raw_color = i=0; i < 3; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5985 + getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5986 + FORC3 rgb_cam[i][c] = getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5987 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5988 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5989 + case 40976:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5990 + strip_offset = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5991 + switch (tiff_ifd[ifd].comp) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5992 + case 32770: load_raw = &CLASS samsung_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5993 + case 32772: load_raw = &CLASS samsung2_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5994 + case 32773: load_raw = &CLASS samsung3_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5995 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5996 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5997 + case 46275: /* Imacon tags */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5998 + strcpy (make, "Imacon");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
5999 + data_offset = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6000 + ima_len = len;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6001 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6002 + case 46279:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6003 + if (!ima_len) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6004 + fseek (ifp, 38, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6005 + case 46274:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6006 + fseek (ifp, 40, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6007 + raw_width = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6008 + raw_height = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6009 + left_margin = get4() & 7;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6010 + width = raw_width - left_margin - (get4() & 7);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6011 + top_margin = get4() & 7;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6012 + height = raw_height - top_margin - (get4() & 7);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6013 + if (raw_width == 7262) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6014 + height = 5444;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6015 + width = 7244;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6016 + left_margin = 7;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6017 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6018 + fseek (ifp, 52, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6019 + FORC3 cam_mul[c] = getreal(11);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6020 + fseek (ifp, 114, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6021 + flip = (get2() >> 7) * 90;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6022 + if (width * height * 6 == ima_len) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6023 + if (flip % 180 == 90) SWAP(width,height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6024 + raw_width = width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6025 + raw_height = height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6026 + left_margin = top_margin = filters = flip = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6027 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6028 + sprintf (model, "Ixpress %d-Mp", height*width/1000000);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6029 + load_raw = &CLASS imacon_full_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6030 + if (filters) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6031 + if (left_margin & 1) filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6032 + load_raw = &CLASS unpacked_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6033 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6034 + maximum = 0xffff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6035 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6036 + case 50454: /* Sinar tag */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6037 + case 50455:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6038 + if (!(cbuf = (char *) malloc(len))) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6039 + fread (cbuf, 1, len, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6040 + for (cp = cbuf-1; cp && cp < cbuf+len; cp = strchr(cp,'\n'))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6041 + if (!strncmp (++cp,"Neutral ",8))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6042 + sscanf (cp+8, "%f %f %f", cam_mul, cam_mul+1, cam_mul+2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6043 + free (cbuf);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6044 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6045 + case 50458:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6046 + if (!make[0]) strcpy (make, "Hasselblad");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6047 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6048 + case 50459: /* Hasselblad tag */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6049 + i = order;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6050 + j = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6051 + c = tiff_nifds;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6052 + order = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6053 + fseek (ifp, j+(get2(),get4()), SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6054 + parse_tiff_ifd (j);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6055 + maximum = 0xffff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6056 + tiff_nifds = c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6057 + order = i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6058 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6059 + case 50706: /* DNGVersion */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6060 + FORC4 dng_version = (dng_version << 8) + fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6061 + if (!make[0]) strcpy (make, "DNG");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6062 + is_raw = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6063 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6064 + case 50708: /* UniqueCameraModel */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6065 + if (model[0]) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6066 + fgets (make, 64, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6067 + if ((cp = strchr(make,' '))) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6068 + strcpy(model,cp+1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6069 + *cp = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6070 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6071 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6072 + case 50710: /* CFAPlaneColor */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6073 + if (filters == 9) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6074 + if (len > 4) len = 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6075 + colors = len;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6076 + fread (cfa_pc, 1, colors, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6077 +guess_cfa_pc:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6078 + FORCC tab[cfa_pc[c]] = c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6079 + cdesc[c] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6080 + for (i=16; i--; )
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6081 + filters = filters << 2 | tab[cfa_pat[i % plen]];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6082 + filters -= !filters;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6083 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6084 + case 50711: /* CFALayout */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6085 + if (get2() == 2) fuji_width = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6086 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6087 + case 291:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6088 + case 50712: /* LinearizationTable */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6089 + linear_table (len);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6090 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6091 + case 50713: /* BlackLevelRepeatDim */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6092 + cblack[4] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6093 + cblack[5] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6094 + if (cblack[4] * cblack[5] > sizeof cblack / sizeof *cblack - 6)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6095 + cblack[4] = cblack[5] = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6096 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6097 + case 61450:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6098 + cblack[4] = cblack[5] = MIN(sqrt(len),64);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6099 + case 50714: /* BlackLevel */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6100 + if (!(cblack[4] * cblack[5]))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6101 + cblack[4] = cblack[5] = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6102 + FORC (cblack[4] * cblack[5])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6103 + cblack[6+c] = getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6104 + black = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6105 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6106 + case 50715: /* BlackLevelDeltaH */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6107 + case 50716: /* BlackLevelDeltaV */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6108 + for (num=i=0; i < (len & 0xffff); i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6109 + num += getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6110 + black += num/len + 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6111 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6112 + case 50717: /* WhiteLevel */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6113 + maximum = getint(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6114 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6115 + case 50718: /* DefaultScale */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6116 + pixel_aspect = getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6117 + pixel_aspect /= getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6118 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6119 + case 50721: /* ColorMatrix1 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6120 + case 50722: /* ColorMatrix2 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6121 + FORCC for (j=0; j < 3; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6122 + cm[c][j] = getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6123 + use_cm = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6124 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6125 + case 50723: /* CameraCalibration1 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6126 + case 50724: /* CameraCalibration2 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6127 + for (i=0; i < colors; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6128 + FORCC cc[i][c] = getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6129 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6130 + case 50727: /* AnalogBalance */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6131 + FORCC ab[c] = getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6132 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6133 + case 50728: /* AsShotNeutral */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6134 + FORCC asn[c] = getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6135 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6136 + case 50729: /* AsShotWhiteXY */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6137 + xyz[0] = getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6138 + xyz[1] = getreal(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6139 + xyz[2] = 1 - xyz[0] - xyz[1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6140 + FORC3 xyz[c] /= d65_white[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6141 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6142 + case 50740: /* DNGPrivateData */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6143 + if (dng_version) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6144 + parse_minolta (j = get4()+base);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6145 + fseek (ifp, j, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6146 + parse_tiff_ifd (base);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6147 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6148 + case 50752:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6149 + read_shorts (cr2_slice, 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6150 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6151 + case 50829: /* ActiveArea */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6152 + top_margin = getint(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6153 + left_margin = getint(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6154 + height = getint(type) - top_margin;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6155 + width = getint(type) - left_margin;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6156 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6157 + case 50830: /* MaskedAreas */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6158 + for (i=0; i < len && i < 32; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6159 + ((int *)mask)[i] = getint(type);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6160 + black = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6161 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6162 + case 51009: /* OpcodeList2 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6163 + meta_offset = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6164 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6165 + case 64772: /* Kodak P-series */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6166 + if (len < 13) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6167 + fseek (ifp, 16, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6168 + data_offset = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6169 + fseek (ifp, 28, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6170 + data_offset += get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6171 + load_raw = &CLASS packed_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6172 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6173 + case 65026:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6174 + if (type == 2) fgets (model2, 64, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6175 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6176 + fseek (ifp, save, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6177 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6178 + if (sony_length && (buf = (unsigned *) malloc(sony_length))) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6179 + fseek (ifp, sony_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6180 + fread (buf, sony_length, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6181 + sony_decrypt (buf, sony_length/4, 1, sony_key);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6182 + sfp = ifp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6183 + if ((ifp = tmpfile())) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6184 + fwrite (buf, sony_length, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6185 + fseek (ifp, 0, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6186 + parse_tiff_ifd (-sony_offset);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6187 + fclose (ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6188 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6189 + ifp = sfp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6190 + free (buf);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6191 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6192 + for (i=0; i < colors; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6193 + FORCC cc[i][c] *= ab[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6194 + if (use_cm) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6195 + FORCC for (i=0; i < 3; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6196 + for (cam_xyz[c][i]=j=0; j < colors; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6197 + cam_xyz[c][i] += cc[c][j] * cm[j][i] * xyz[i];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6198 + cam_xyz_coeff (cmatrix, cam_xyz);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6199 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6200 + if (asn[0]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6201 + cam_mul[3] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6202 + FORCC cam_mul[c] = 1 / asn[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6203 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6204 + if (!use_cm)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6205 + FORCC pre_mul[c] /= cc[c][c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6206 + return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6207 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6208 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6209 +int CLASS parse_tiff (int base)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6210 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6211 + int doff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6212 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6213 + fseek (ifp, base, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6214 + order = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6215 + if (order != 0x4949 && order != 0x4d4d) return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6216 + get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6217 + while ((doff = get4())) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6218 + fseek (ifp, doff+base, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6219 + if (parse_tiff_ifd (base)) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6220 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6221 + return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6222 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6223 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6224 +void CLASS apply_tiff()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6225 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6226 + int max_samp=0, ties=0, os, ns, raw=-1, thm=-1, i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6227 + struct jhead jh;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6228 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6229 + thumb_misc = 16;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6230 + if (thumb_offset) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6231 + fseek (ifp, thumb_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6232 + if (ljpeg_start (&jh, 1)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6233 + thumb_misc = jh.bits;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6234 + thumb_width = jh.wide;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6235 + thumb_height = jh.high;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6236 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6237 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6238 + for (i=tiff_nifds; i--; ) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6239 + if (tiff_ifd[i].shutter)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6240 + shutter = tiff_ifd[i].shutter;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6241 + tiff_ifd[i].shutter = shutter;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6242 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6243 + for (i=0; i < tiff_nifds; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6244 + if (max_samp < tiff_ifd[i].samples)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6245 + max_samp = tiff_ifd[i].samples;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6246 + if (max_samp > 3) max_samp = 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6247 + os = raw_width*raw_height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6248 + ns = tiff_ifd[i].width*tiff_ifd[i].height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6249 + if (tiff_bps) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6250 + os *= tiff_bps;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6251 + ns *= tiff_ifd[i].bps;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6252 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6253 + if ((tiff_ifd[i].comp != 6 || tiff_ifd[i].samples != 3) &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6254 + (tiff_ifd[i].width | tiff_ifd[i].height) < 0x10000 &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6255 + ns && ((ns > os && (ties = 1)) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6256 + (ns == os && shot_select == ties++))) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6257 + raw_width = tiff_ifd[i].width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6258 + raw_height = tiff_ifd[i].height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6259 + tiff_bps = tiff_ifd[i].bps;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6260 + tiff_compress = tiff_ifd[i].comp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6261 + data_offset = tiff_ifd[i].offset;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6262 + tiff_flip = tiff_ifd[i].flip;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6263 + tiff_samples = tiff_ifd[i].samples;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6264 + tile_width = tiff_ifd[i].tile_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6265 + tile_length = tiff_ifd[i].tile_length;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6266 + shutter = tiff_ifd[i].shutter;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6267 + raw = i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6268 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6269 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6270 + if (is_raw == 1 && ties) is_raw = ties;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6271 + if (!tile_width ) tile_width = INT_MAX;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6272 + if (!tile_length) tile_length = INT_MAX;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6273 + for (i=tiff_nifds; i--; )
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6274 + if (tiff_ifd[i].flip) tiff_flip = tiff_ifd[i].flip;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6275 + if (raw >= 0 && !load_raw)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6276 + switch (tiff_compress) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6277 + case 32767:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6278 + if (tiff_ifd[raw].bytes == raw_width*raw_height) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6279 + tiff_bps = 12;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6280 + load_raw = &CLASS sony_arw2_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6281 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6282 + if (tiff_ifd[raw].bytes*8 != raw_width*raw_height*tiff_bps) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6283 + raw_height += 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6284 + load_raw = &CLASS sony_arw_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6285 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6286 + load_flags = 79;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6287 + case 32769:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6288 + load_flags++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6289 + case 32770:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6290 + case 32773: goto slr;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6291 + case 0: case 1:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6292 + if (!strncmp(make,"OLYMPUS",7) &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6293 + tiff_ifd[raw].bytes*2 == raw_width*raw_height*3)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6294 + load_flags = 24;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6295 + if (tiff_ifd[raw].bytes*5 == raw_width*raw_height*8) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6296 + load_flags = 81;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6297 + tiff_bps = 12;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6298 + } slr:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6299 + switch (tiff_bps) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6300 + case 8: load_raw = &CLASS eight_bit_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6301 + case 12: if (tiff_ifd[raw].phint == 2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6302 + load_flags = 6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6303 + load_raw = &CLASS packed_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6304 + case 14: load_flags = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6305 + case 16: load_raw = &CLASS unpacked_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6306 + if (!strncmp(make,"OLYMPUS",7) &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6307 + tiff_ifd[raw].bytes*7 > raw_width*raw_height)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6308 + load_raw = &CLASS olympus_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6309 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6310 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6311 + case 6: case 7: case 99:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6312 + load_raw = &CLASS lossless_jpeg_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6313 + case 262:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6314 + load_raw = &CLASS kodak_262_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6315 + case 34713:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6316 + if ((raw_width+9)/10*16*raw_height == tiff_ifd[raw].bytes) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6317 + load_raw = &CLASS packed_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6318 + load_flags = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6319 + } else if (raw_width*raw_height*3 == tiff_ifd[raw].bytes*2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6320 + load_raw = &CLASS packed_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6321 + if (model[0] == 'N') load_flags = 80;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6322 + } else if (raw_width*raw_height*3 == tiff_ifd[raw].bytes) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6323 + load_raw = &CLASS nikon_yuv_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6324 + gamma_curve (1/2.4, 12.92, 1, 4095);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6325 + memset (cblack, 0, sizeof cblack);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6326 + filters = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6327 + } else if (raw_width*raw_height*2 == tiff_ifd[raw].bytes) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6328 + load_raw = &CLASS unpacked_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6329 + load_flags = 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6330 + order = 0x4d4d;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6331 + } else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6332 + load_raw = &CLASS nikon_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6333 + case 65535:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6334 + load_raw = &CLASS pentax_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6335 + case 65000:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6336 + switch (tiff_ifd[raw].phint) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6337 + case 2: load_raw = &CLASS kodak_rgb_load_raw; filters = 0; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6338 + case 6: load_raw = &CLASS kodak_ycbcr_load_raw; filters = 0; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6339 + case 32803: load_raw = &CLASS kodak_65000_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6340 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6341 + case 32867: case 34892: break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6342 + default: is_raw = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6343 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6344 + if (!dng_version)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6345 + if ( (tiff_samples == 3 && tiff_ifd[raw].bytes && tiff_bps != 14 &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6346 + (tiff_compress & -16) != 32768)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6347 + || (tiff_bps == 8 && strncmp(make,"Phase",5) &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6348 + !strcasestr(make,"Kodak") && !strstr(model2,"DEBUG RAW")))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6349 + is_raw = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6350 + for (i=0; i < tiff_nifds; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6351 + if (i != raw && tiff_ifd[i].samples == max_samp &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6352 + tiff_ifd[i].width * tiff_ifd[i].height / (SQR(tiff_ifd[i].bps)+1) >
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6353 + thumb_width * thumb_height / (SQR(thumb_misc)+1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6354 + && tiff_ifd[i].comp != 34892) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6355 + thumb_width = tiff_ifd[i].width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6356 + thumb_height = tiff_ifd[i].height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6357 + thumb_offset = tiff_ifd[i].offset;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6358 + thumb_length = tiff_ifd[i].bytes;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6359 + thumb_misc = tiff_ifd[i].bps;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6360 + thm = i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6361 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6362 + if (thm >= 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6363 + thumb_misc |= tiff_ifd[thm].samples << 5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6364 + switch (tiff_ifd[thm].comp) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6365 + case 0:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6366 + write_thumb = &CLASS layer_thumb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6367 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6368 + case 1:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6369 + if (tiff_ifd[thm].bps <= 8)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6370 + write_thumb = &CLASS ppm_thumb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6371 + else if (!strcmp(make,"Imacon"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6372 + write_thumb = &CLASS ppm16_thumb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6373 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6374 + thumb_load_raw = &CLASS kodak_thumb_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6375 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6376 + case 65000:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6377 + thumb_load_raw = tiff_ifd[thm].phint == 6 ?
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6378 + &CLASS kodak_ycbcr_load_raw : &CLASS kodak_rgb_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6379 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6380 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6381 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6382 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6383 +void CLASS parse_minolta (int base)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6384 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6385 + int save, tag, len, offset, high=0, wide=0, i, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6386 + short sorder=order;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6387 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6388 + fseek (ifp, base, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6389 + if (fgetc(ifp) || fgetc(ifp)-'M' || fgetc(ifp)-'R') return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6390 + order = fgetc(ifp) * 0x101;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6391 + offset = base + get4() + 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6392 + while ((save=ftell(ifp)) < offset) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6393 + for (tag=i=0; i < 4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6394 + tag = tag << 8 | fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6395 + len = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6396 + switch (tag) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6397 + case 0x505244: /* PRD */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6398 + fseek (ifp, 8, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6399 + high = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6400 + wide = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6401 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6402 + case 0x574247: /* WBG */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6403 + get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6404 + i = strcmp(model,"DiMAGE A200") ? 0:3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6405 + FORC4 cam_mul[c ^ (c >> 1) ^ i] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6406 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6407 + case 0x545457: /* TTW */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6408 + parse_tiff (ftell(ifp));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6409 + data_offset = offset;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6410 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6411 + fseek (ifp, save+len+8, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6412 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6413 + raw_height = high;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6414 + raw_width = wide;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6415 + order = sorder;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6416 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6417 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6418 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6419 + Many cameras have a "debug mode" that writes JPEG and raw
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6420 + at the same time. The raw file has no header, so try to
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6421 + to open the matching JPEG file and read its metadata.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6422 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6423 +void CLASS parse_external_jpeg()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6424 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6425 + const char *file, *ext;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6426 + char *jname, *jfile, *jext;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6427 + FILE *save=ifp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6428 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6429 + ext = strrchr (ifname, '.');
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6430 + file = strrchr (ifname, '/');
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6431 + if (!file) file = strrchr (ifname, '\\');
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6432 + if (!file) file = ifname-1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6433 + file++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6434 + if (!ext || strlen(ext) != 4 || ext-file != 8) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6435 + jname = (char *) malloc (strlen(ifname) + 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6436 + merror (jname, "parse_external_jpeg()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6437 + strcpy (jname, ifname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6438 + jfile = file - ifname + jname;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6439 + jext = ext - ifname + jname;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6440 + if (strcasecmp (ext, ".jpg")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6441 + strcpy (jext, isupper(ext[1]) ? ".JPG":".jpg");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6442 + if (isdigit(*file)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6443 + memcpy (jfile, file+4, 4);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6444 + memcpy (jfile+4, file, 4);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6445 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6446 + } else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6447 + while (isdigit(*--jext)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6448 + if (*jext != '9') {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6449 + (*jext)++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6450 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6451 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6452 + *jext = '0';
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6453 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6454 + if (strcmp (jname, ifname)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6455 + if ((ifp = fopen (jname, "rb"))) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6456 + if (verbose)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6457 + fprintf (stderr,_("Reading metadata from %s ...\n"), jname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6458 + parse_tiff (12);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6459 + thumb_offset = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6460 + is_raw = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6461 + fclose (ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6462 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6463 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6464 + if (!timestamp)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6465 + fprintf (stderr,_("Failed to read metadata from %s\n"), jname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6466 + free (jname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6467 + ifp = save;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6468 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6469 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6470 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6471 + CIFF block 0x1030 contains an 8x8 white sample.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6472 + Load this into white[][] for use in scale_colors().
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6473 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6474 +void CLASS ciff_block_1030()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6475 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6476 + static const ushort key[] = { 0x410, 0x45f3 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6477 + int i, bpp, row, col, vbits=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6478 + unsigned long bitbuf=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6479 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6480 + if ((get2(),get4()) != 0x80008 || !get4()) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6481 + bpp = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6482 + if (bpp != 10 && bpp != 12) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6483 + for (i=row=0; row < 8; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6484 + for (col=0; col < 8; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6485 + if (vbits < bpp) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6486 + bitbuf = bitbuf << 16 | (get2() ^ key[i++ & 1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6487 + vbits += 16;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6488 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6489 + white[row][col] = bitbuf >> (vbits -= bpp) & ~(-1 << bpp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6490 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6491 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6492 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6493 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6494 + Parse a CIFF file, better known as Canon CRW format.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6495 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6496 +void CLASS parse_ciff (int offset, int length, int depth)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6497 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6498 + int tboff, nrecs, c, type, len, save, wbi=-1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6499 + ushort key[] = { 0x410, 0x45f3 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6500 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6501 + fseek (ifp, offset+length-4, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6502 + tboff = get4() + offset;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6503 + fseek (ifp, tboff, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6504 + nrecs = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6505 + if ((nrecs | depth) > 127) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6506 + while (nrecs--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6507 + type = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6508 + len = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6509 + save = ftell(ifp) + 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6510 + fseek (ifp, offset+get4(), SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6511 + if ((((type >> 8) + 8) | 8) == 0x38)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6512 + parse_ciff (ftell(ifp), len, depth+1); /* Parse a sub-table */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6513 + if (type == 0x0810)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6514 + fread (artist, 64, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6515 + if (type == 0x080a) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6516 + fread (make, 64, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6517 + fseek (ifp, strlen(make) - 63, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6518 + fread (model, 64, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6519 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6520 + if (type == 0x1810) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6521 + width = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6522 + height = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6523 + pixel_aspect = int_to_float(get4());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6524 + flip = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6525 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6526 + if (type == 0x1835) /* Get the decoder table */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6527 + tiff_compress = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6528 + if (type == 0x2007) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6529 + thumb_offset = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6530 + thumb_length = len;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6531 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6532 + if (type == 0x1818) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6533 + shutter = pow (2, -int_to_float((get4(),get4())));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6534 + aperture = pow (2, int_to_float(get4())/2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6535 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6536 + if (type == 0x102a) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6537 + iso_speed = pow (2, (get4(),get2())/32.0 - 4) * 50;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6538 + aperture = pow (2, (get2(),(short)get2())/64.0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6539 + shutter = pow (2,-((short)get2())/32.0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6540 + wbi = (get2(),get2());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6541 + if (wbi > 17) wbi = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6542 + fseek (ifp, 32, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6543 + if (shutter > 1e6) shutter = get2()/10.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6544 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6545 + if (type == 0x102c) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6546 + if (get2() > 512) { /* Pro90, G1 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6547 + fseek (ifp, 118, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6548 + FORC4 cam_mul[c ^ 2] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6549 + } else { /* G2, S30, S40 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6550 + fseek (ifp, 98, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6551 + FORC4 cam_mul[c ^ (c >> 1) ^ 1] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6552 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6553 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6554 + if (type == 0x0032) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6555 + if (len == 768) { /* EOS D30 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6556 + fseek (ifp, 72, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6557 + FORC4 cam_mul[c ^ (c >> 1)] = 1024.0 / get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6558 + if (!wbi) cam_mul[0] = -1; /* use my auto white balance */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6559 + } else if (!cam_mul[0]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6560 + if (get2() == key[0]) /* Pro1, G6, S60, S70 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6561 + c = (strstr(model,"Pro1") ?
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6562 + "012346000000000000":"01345:000000006008")[wbi]-'0'+ 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6563 + else { /* G3, G5, S45, S50 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6564 + c = "023457000000006000"[wbi]-'0';
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6565 + key[0] = key[1] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6566 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6567 + fseek (ifp, 78 + c*8, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6568 + FORC4 cam_mul[c ^ (c >> 1) ^ 1] = get2() ^ key[c & 1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6569 + if (!wbi) cam_mul[0] = -1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6570 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6571 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6572 + if (type == 0x10a9) { /* D60, 10D, 300D, and clones */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6573 + if (len > 66) wbi = "0134567028"[wbi]-'0';
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6574 + fseek (ifp, 2 + wbi*8, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6575 + FORC4 cam_mul[c ^ (c >> 1)] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6576 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6577 + if (type == 0x1030 && (0x18040 >> wbi & 1))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6578 + ciff_block_1030(); /* all that don't have 0x10a9 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6579 + if (type == 0x1031) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6580 + raw_width = (get2(),get2());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6581 + raw_height = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6582 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6583 + if (type == 0x5029) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6584 + focal_len = len >> 16;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6585 + if ((len & 0xffff) == 2) focal_len /= 32;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6586 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6587 + if (type == 0x5813) flash_used = int_to_float(len);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6588 + if (type == 0x5814) canon_ev = int_to_float(len);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6589 + if (type == 0x5817) shot_order = len;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6590 + if (type == 0x5834) unique_id = len;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6591 + if (type == 0x580e) timestamp = len;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6592 + if (type == 0x180e) timestamp = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6593 +#ifdef LOCALTIME
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6594 + if ((type | 0x4000) == 0x580e)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6595 + timestamp = mktime (gmtime (&timestamp));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6596 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6597 + fseek (ifp, save, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6598 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6599 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6600 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6601 +void CLASS parse_rollei()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6602 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6603 + char line[128], *val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6604 + struct tm t;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6605 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6606 + fseek (ifp, 0, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6607 + memset (&t, 0, sizeof t);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6608 + do {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6609 + fgets (line, 128, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6610 + if ((val = strchr(line,'=')))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6611 + *val++ = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6612 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6613 + val = line + strlen(line);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6614 + if (!strcmp(line,"DAT"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6615 + sscanf (val, "%d.%d.%d", &t.tm_mday, &t.tm_mon, &t.tm_year);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6616 + if (!strcmp(line,"TIM"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6617 + sscanf (val, "%d:%d:%d", &t.tm_hour, &t.tm_min, &t.tm_sec);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6618 + if (!strcmp(line,"HDR"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6619 + thumb_offset = atoi(val);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6620 + if (!strcmp(line,"X "))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6621 + raw_width = atoi(val);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6622 + if (!strcmp(line,"Y "))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6623 + raw_height = atoi(val);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6624 + if (!strcmp(line,"TX "))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6625 + thumb_width = atoi(val);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6626 + if (!strcmp(line,"TY "))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6627 + thumb_height = atoi(val);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6628 + } while (strncmp(line,"EOHD",4));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6629 + data_offset = thumb_offset + thumb_width * thumb_height * 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6630 + t.tm_year -= 1900;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6631 + t.tm_mon -= 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6632 + if (mktime(&t) > 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6633 + timestamp = mktime(&t);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6634 + strcpy (make, "Rollei");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6635 + strcpy (model,"d530flex");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6636 + write_thumb = &CLASS rollei_thumb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6637 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6638 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6639 +void CLASS parse_sinar_ia()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6640 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6641 + int entries, off;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6642 + char str[8], *cp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6643 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6644 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6645 + fseek (ifp, 4, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6646 + entries = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6647 + fseek (ifp, get4(), SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6648 + while (entries--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6649 + off = get4(); get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6650 + fread (str, 8, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6651 + if (!strcmp(str,"META")) meta_offset = off;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6652 + if (!strcmp(str,"THUMB")) thumb_offset = off;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6653 + if (!strcmp(str,"RAW0")) data_offset = off;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6654 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6655 + fseek (ifp, meta_offset+20, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6656 + fread (make, 64, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6657 + make[63] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6658 + if ((cp = strchr(make,' '))) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6659 + strcpy (model, cp+1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6660 + *cp = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6661 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6662 + raw_width = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6663 + raw_height = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6664 + load_raw = &CLASS unpacked_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6665 + thumb_width = (get4(),get2());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6666 + thumb_height = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6667 + write_thumb = &CLASS ppm_thumb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6668 + maximum = 0x3fff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6669 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6670 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6671 +void CLASS parse_phase_one (int base)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6672 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6673 + unsigned entries, tag, type, len, data, save, i, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6674 + float romm_cam[3][3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6675 + char *cp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6676 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6677 + memset (&ph1, 0, sizeof ph1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6678 + fseek (ifp, base, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6679 + order = get4() & 0xffff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6680 + if (get4() >> 8 != 0x526177) return; /* "Raw" */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6681 + fseek (ifp, get4()+base, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6682 + entries = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6683 + get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6684 + while (entries--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6685 + tag = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6686 + type = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6687 + len = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6688 + data = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6689 + save = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6690 + fseek (ifp, base+data, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6691 + switch (tag) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6692 + case 0x100: flip = "0653"[data & 3]-'0'; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6693 + case 0x106:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6694 + for (i=0; i < 9; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6695 + ((float *)romm_cam)[i] = getreal(11);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6696 + romm_coeff (romm_cam);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6697 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6698 + case 0x107:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6699 + FORC3 cam_mul[c] = getreal(11);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6700 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6701 + case 0x108: raw_width = data; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6702 + case 0x109: raw_height = data; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6703 + case 0x10a: left_margin = data; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6704 + case 0x10b: top_margin = data; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6705 + case 0x10c: width = data; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6706 + case 0x10d: height = data; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6707 + case 0x10e: ph1.format = data; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6708 + case 0x10f: data_offset = data+base; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6709 + case 0x110: meta_offset = data+base;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6710 + meta_length = len; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6711 + case 0x112: ph1.key_off = save - 4; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6712 + case 0x210: ph1.tag_210 = int_to_float(data); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6713 + case 0x21a: ph1.tag_21a = data; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6714 + case 0x21c: strip_offset = data+base; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6715 + case 0x21d: ph1.black = data; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6716 + case 0x222: ph1.split_col = data; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6717 + case 0x223: ph1.black_col = data+base; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6718 + case 0x224: ph1.split_row = data; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6719 + case 0x225: ph1.black_row = data+base; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6720 + case 0x301:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6721 + model[63] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6722 + fread (model, 1, 63, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6723 + if ((cp = strstr(model," camera"))) *cp = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6724 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6725 + fseek (ifp, save, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6726 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6727 + load_raw = ph1.format < 3 ?
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6728 + &CLASS phase_one_load_raw : &CLASS phase_one_load_raw_c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6729 + maximum = 0xffff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6730 + strcpy (make, "Phase One");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6731 + if (model[0]) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6732 + switch (raw_height) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6733 + case 2060: strcpy (model,"LightPhase"); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6734 + case 2682: strcpy (model,"H 10"); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6735 + case 4128: strcpy (model,"H 20"); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6736 + case 5488: strcpy (model,"H 25"); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6737 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6738 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6739 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6740 +void CLASS parse_fuji (int offset)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6741 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6742 + unsigned entries, tag, len, save, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6743 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6744 + fseek (ifp, offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6745 + entries = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6746 + if (entries > 255) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6747 + while (entries--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6748 + tag = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6749 + len = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6750 + save = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6751 + if (tag == 0x100) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6752 + raw_height = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6753 + raw_width = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6754 + } else if (tag == 0x121) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6755 + height = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6756 + if ((width = get2()) == 4284) width += 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6757 + } else if (tag == 0x130) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6758 + fuji_layout = fgetc(ifp) >> 7;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6759 + fuji_width = !(fgetc(ifp) & 8);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6760 + } else if (tag == 0x131) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6761 + filters = 9;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6762 + FORC(36) xtrans_abs[0][35-c] = fgetc(ifp) & 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6763 + } else if (tag == 0x2ff0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6764 + FORC4 cam_mul[c ^ 1] = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6765 + } else if (tag == 0xc000) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6766 + c = order;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6767 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6768 + while ((tag = get4()) > raw_width);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6769 + width = tag;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6770 + height = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6771 + order = c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6772 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6773 + fseek (ifp, save+len, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6774 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6775 + height <<= fuji_layout;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6776 + width >>= fuji_layout;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6777 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6778 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6779 +int CLASS parse_jpeg (int offset)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6780 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6781 + int len, save, hlen, mark;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6782 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6783 + fseek (ifp, offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6784 + if (fgetc(ifp) != 0xff || fgetc(ifp) != 0xd8) return 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6785 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6786 + while (fgetc(ifp) == 0xff && (mark = fgetc(ifp)) != 0xda) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6787 + order = 0x4d4d;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6788 + len = get2() - 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6789 + save = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6790 + if (mark == 0xc0 || mark == 0xc3 || mark == 0xc9) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6791 + fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6792 + raw_height = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6793 + raw_width = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6794 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6795 + order = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6796 + hlen = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6797 + if (get4() == 0x48454150) /* "HEAP" */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6798 + parse_ciff (save+hlen, len-hlen, 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6799 + if (parse_tiff (save+6)) apply_tiff();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6800 + fseek (ifp, save+len, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6801 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6802 + return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6803 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6804 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6805 +void CLASS parse_riff()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6806 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6807 + unsigned i, size, end;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6808 + char tag[4], date[64], month[64];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6809 + static const char mon[12][4] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6810 + { "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec" };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6811 + struct tm t;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6812 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6813 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6814 + fread (tag, 4, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6815 + size = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6816 + end = ftell(ifp) + size;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6817 + if (!memcmp(tag,"RIFF",4) || !memcmp(tag,"LIST",4)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6818 + get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6819 + while (ftell(ifp)+7 < end && !feof(ifp))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6820 + parse_riff();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6821 + } else if (!memcmp(tag,"nctg",4)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6822 + while (ftell(ifp)+7 < end) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6823 + i = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6824 + size = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6825 + if ((i+1) >> 1 == 10 && size == 20)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6826 + get_timestamp(0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6827 + else fseek (ifp, size, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6828 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6829 + } else if (!memcmp(tag,"IDIT",4) && size < 64) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6830 + fread (date, 64, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6831 + date[size] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6832 + memset (&t, 0, sizeof t);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6833 + if (sscanf (date, "%*s %s %d %d:%d:%d %d", month, &t.tm_mday,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6834 + &t.tm_hour, &t.tm_min, &t.tm_sec, &t.tm_year) == 6) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6835 + for (i=0; i < 12 && strcasecmp(mon[i],month); i++);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6836 + t.tm_mon = i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6837 + t.tm_year -= 1900;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6838 + if (mktime(&t) > 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6839 + timestamp = mktime(&t);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6840 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6841 + } else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6842 + fseek (ifp, size, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6843 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6844 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6845 +void CLASS parse_qt (int end)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6846 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6847 + unsigned save, size;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6848 + char tag[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6849 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6850 + order = 0x4d4d;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6851 + while (ftell(ifp)+7 < end) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6852 + save = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6853 + if ((size = get4()) < 8) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6854 + fread (tag, 4, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6855 + if (!memcmp(tag,"moov",4) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6856 + !memcmp(tag,"udta",4) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6857 + !memcmp(tag,"CNTH",4))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6858 + parse_qt (save+size);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6859 + if (!memcmp(tag,"CNDA",4))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6860 + parse_jpeg (ftell(ifp));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6861 + fseek (ifp, save+size, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6862 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6863 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6864 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6865 +void CLASS parse_smal (int offset, int fsize)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6866 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6867 + int ver;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6868 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6869 + fseek (ifp, offset+2, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6870 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6871 + ver = fgetc(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6872 + if (ver == 6)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6873 + fseek (ifp, 5, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6874 + if (get4() != fsize) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6875 + if (ver > 6) data_offset = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6876 + raw_height = height = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6877 + raw_width = width = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6878 + strcpy (make, "SMaL");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6879 + sprintf (model, "v%d %dx%d", ver, width, height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6880 + if (ver == 6) load_raw = &CLASS smal_v6_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6881 + if (ver == 9) load_raw = &CLASS smal_v9_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6882 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6883 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6884 +void CLASS parse_cine()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6885 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6886 + unsigned off_head, off_setup, off_image, i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6887 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6888 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6889 + fseek (ifp, 4, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6890 + is_raw = get2() == 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6891 + fseek (ifp, 14, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6892 + is_raw *= get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6893 + off_head = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6894 + off_setup = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6895 + off_image = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6896 + timestamp = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6897 + if ((i = get4())) timestamp = i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6898 + fseek (ifp, off_head+4, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6899 + raw_width = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6900 + raw_height = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6901 + switch (get2(),get2()) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6902 + case 8: load_raw = &CLASS eight_bit_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6903 + case 16: load_raw = &CLASS unpacked_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6904 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6905 + fseek (ifp, off_setup+792, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6906 + strcpy (make, "CINE");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6907 + sprintf (model, "%d", get4());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6908 + fseek (ifp, 12, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6909 + switch ((i=get4()) & 0xffffff) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6910 + case 3: filters = 0x94949494; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6911 + case 4: filters = 0x49494949; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6912 + default: is_raw = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6913 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6914 + fseek (ifp, 72, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6915 + switch ((get4()+3600) % 360) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6916 + case 270: flip = 4; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6917 + case 180: flip = 1; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6918 + case 90: flip = 7; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6919 + case 0: flip = 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6920 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6921 + cam_mul[0] = getreal(11);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6922 + cam_mul[2] = getreal(11);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6923 + maximum = ~(-1 << get4());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6924 + fseek (ifp, 668, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6925 + shutter = get4()/1000000000.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6926 + fseek (ifp, off_image, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6927 + if (shot_select < is_raw)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6928 + fseek (ifp, shot_select*8, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6929 + data_offset = (INT64) get4() + 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6930 + data_offset += (INT64) get4() << 32;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6931 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6932 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6933 +void CLASS parse_redcine()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6934 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6935 + unsigned i, len, rdvo;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6936 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6937 + order = 0x4d4d;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6938 + is_raw = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6939 + fseek (ifp, 52, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6940 + width = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6941 + height = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6942 + fseek (ifp, 0, SEEK_END);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6943 + fseek (ifp, -(i = ftello(ifp) & 511), SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6944 + if (get4() != i || get4() != 0x52454f42) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6945 + fprintf (stderr,_("%s: Tail is missing, parsing from head...\n"), ifname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6946 + fseek (ifp, 0, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6947 + while ((len = get4()) != EOF) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6948 + if (get4() == 0x52454456)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6949 + if (is_raw++ == shot_select)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6950 + data_offset = ftello(ifp) - 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6951 + fseek (ifp, len-8, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6952 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6953 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6954 + rdvo = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6955 + fseek (ifp, 12, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6956 + is_raw = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6957 + fseeko (ifp, rdvo+8 + shot_select*4, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6958 + data_offset = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6959 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6960 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6961 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6962 +char * CLASS foveon_gets (int offset, char *str, int len)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6963 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6964 + int i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6965 + fseek (ifp, offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6966 + for (i=0; i < len-1; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6967 + if ((str[i] = get2()) == 0) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6968 + str[i] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6969 + return str;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6970 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6971 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6972 +void CLASS parse_foveon()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6973 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6974 + int entries, img=0, off, len, tag, save, i, wide, high, pent, poff[256][2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6975 + char name[64], value[64];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6976 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6977 + order = 0x4949; /* Little-endian */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6978 + fseek (ifp, 36, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6979 + flip = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6980 + fseek (ifp, -4, SEEK_END);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6981 + fseek (ifp, get4(), SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6982 + if (get4() != 0x64434553) return; /* SECd */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6983 + entries = (get4(),get4());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6984 + while (entries--) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6985 + off = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6986 + len = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6987 + tag = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6988 + save = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6989 + fseek (ifp, off, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6990 + if (get4() != (0x20434553 | (tag << 24))) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6991 + switch (tag) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6992 + case 0x47414d49: /* IMAG */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6993 + case 0x32414d49: /* IMA2 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6994 + fseek (ifp, 8, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6995 + pent = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6996 + wide = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6997 + high = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6998 + if (wide > raw_width && high > raw_height) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
6999 + switch (pent) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7000 + case 5: load_flags = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7001 + case 6: load_raw = &CLASS foveon_sd_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7002 + case 30: load_raw = &CLASS foveon_dp_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7003 + default: load_raw = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7004 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7005 + raw_width = wide;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7006 + raw_height = high;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7007 + data_offset = off+28;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7008 + is_foveon = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7009 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7010 + fseek (ifp, off+28, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7011 + if (fgetc(ifp) == 0xff && fgetc(ifp) == 0xd8
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7012 + && thumb_length < len-28) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7013 + thumb_offset = off+28;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7014 + thumb_length = len-28;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7015 + write_thumb = &CLASS jpeg_thumb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7016 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7017 + if (++img == 2 && !thumb_length) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7018 + thumb_offset = off+24;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7019 + thumb_width = wide;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7020 + thumb_height = high;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7021 + write_thumb = &CLASS foveon_thumb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7022 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7023 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7024 + case 0x464d4143: /* CAMF */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7025 + meta_offset = off+8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7026 + meta_length = len-28;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7027 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7028 + case 0x504f5250: /* PROP */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7029 + pent = (get4(),get4());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7030 + fseek (ifp, 12, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7031 + off += pent*8 + 24;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7032 + if ((unsigned) pent > 256) pent=256;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7033 + for (i=0; i < pent*2; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7034 + ((int *)poff)[i] = off + get4()*2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7035 + for (i=0; i < pent; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7036 + foveon_gets (poff[i][0], name, 64);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7037 + foveon_gets (poff[i][1], value, 64);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7038 + if (!strcmp (name, "ISO"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7039 + iso_speed = atoi(value);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7040 + if (!strcmp (name, "CAMMANUF"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7041 + strcpy (make, value);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7042 + if (!strcmp (name, "CAMMODEL"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7043 + strcpy (model, value);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7044 + if (!strcmp (name, "WB_DESC"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7045 + strcpy (model2, value);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7046 + if (!strcmp (name, "TIME"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7047 + timestamp = atoi(value);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7048 + if (!strcmp (name, "EXPTIME"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7049 + shutter = atoi(value) / 1000000.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7050 + if (!strcmp (name, "APERTURE"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7051 + aperture = atof(value);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7052 + if (!strcmp (name, "FLENGTH"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7053 + focal_len = atof(value);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7054 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7055 +#ifdef LOCALTIME
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7056 + timestamp = mktime (gmtime (&timestamp));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7057 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7058 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7059 + fseek (ifp, save, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7060 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7061 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7062 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7063 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7064 + All matrices are from Adobe DNG Converter unless otherwise noted.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7065 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7066 +void CLASS adobe_coeff (const char *make, const char *model)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7067 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7068 + static const struct {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7069 + const char *prefix;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7070 + short black, maximum, trans[12];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7071 + } table[] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7072 + { "AgfaPhoto DC-833m", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7073 + { 11438,-3762,-1115,-2409,9914,2497,-1227,2295,5300 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7074 + { "Apple QuickTake", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7075 + { 21392,-5653,-3353,2406,8010,-415,7166,1427,2078 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7076 + { "Canon EOS D2000", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7077 + { 24542,-10860,-3401,-1490,11370,-297,2858,-605,3225 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7078 + { "Canon EOS D6000", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7079 + { 20482,-7172,-3125,-1033,10410,-285,2542,226,3136 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7080 + { "Canon EOS D30", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7081 + { 9805,-2689,-1312,-5803,13064,3068,-2438,3075,8775 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7082 + { "Canon EOS D60", 0, 0xfa0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7083 + { 6188,-1341,-890,-7168,14489,2937,-2640,3228,8483 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7084 + { "Canon EOS 5DS", 0, 0x3c96,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7085 + { 6250,-711,-808,-5153,12794,2636,-1249,2198,5610 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7086 + { "Canon EOS 5D Mark III", 0, 0x3c80,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7087 + { 6722,-635,-963,-4287,12460,2028,-908,2162,5668 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7088 + { "Canon EOS 5D Mark II", 0, 0x3cf0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7089 + { 4716,603,-830,-7798,15474,2480,-1496,1937,6651 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7090 + { "Canon EOS 5D", 0, 0xe6c,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7091 + { 6347,-479,-972,-8297,15954,2480,-1968,2131,7649 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7092 + { "Canon EOS 6D", 0, 0x3c82,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7093 + { 7034,-804,-1014,-4420,12564,2058,-851,1994,5758 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7094 + { "Canon EOS 7D Mark II", 0, 0x3510,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7095 + { 7268,-1082,-969,-4186,11839,2663,-825,2029,5839 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7096 + { "Canon EOS 7D", 0, 0x3510,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7097 + { 6844,-996,-856,-3876,11761,2396,-593,1772,6198 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7098 + { "Canon EOS 10D", 0, 0xfa0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7099 + { 8197,-2000,-1118,-6714,14335,2592,-2536,3178,8266 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7100 + { "Canon EOS 20Da", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7101 + { 14155,-5065,-1382,-6550,14633,2039,-1623,1824,6561 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7102 + { "Canon EOS 20D", 0, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7103 + { 6599,-537,-891,-8071,15783,2424,-1983,2234,7462 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7104 + { "Canon EOS 30D", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7105 + { 6257,-303,-1000,-7880,15621,2396,-1714,1904,7046 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7106 + { "Canon EOS 40D", 0, 0x3f60,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7107 + { 6071,-747,-856,-7653,15365,2441,-2025,2553,7315 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7108 + { "Canon EOS 50D", 0, 0x3d93,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7109 + { 4920,616,-593,-6493,13964,2784,-1774,3178,7005 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7110 + { "Canon EOS 60D", 0, 0x2ff7,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7111 + { 6719,-994,-925,-4408,12426,2211,-887,2129,6051 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7112 + { "Canon EOS 70D", 0, 0x3bc7,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7113 + { 7034,-804,-1014,-4420,12564,2058,-851,1994,5758 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7114 + { "Canon EOS 80D", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7115 + { 7457,-671,-937,-4849,12495,2643,-1213,2354,5492 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7116 + { "Canon EOS 100D", 0, 0x350f,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7117 + { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7118 + { "Canon EOS 300D", 0, 0xfa0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7119 + { 8197,-2000,-1118,-6714,14335,2592,-2536,3178,8266 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7120 + { "Canon EOS 350D", 0, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7121 + { 6018,-617,-965,-8645,15881,2975,-1530,1719,7642 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7122 + { "Canon EOS 400D", 0, 0xe8e,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7123 + { 7054,-1501,-990,-8156,15544,2812,-1278,1414,7796 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7124 + { "Canon EOS 450D", 0, 0x390d,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7125 + { 5784,-262,-821,-7539,15064,2672,-1982,2681,7427 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7126 + { "Canon EOS 500D", 0, 0x3479,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7127 + { 4763,712,-646,-6821,14399,2640,-1921,3276,6561 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7128 + { "Canon EOS 550D", 0, 0x3dd7,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7129 + { 6941,-1164,-857,-3825,11597,2534,-416,1540,6039 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7130 + { "Canon EOS 600D", 0, 0x3510,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7131 + { 6461,-907,-882,-4300,12184,2378,-819,1944,5931 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7132 + { "Canon EOS 650D", 0, 0x354d,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7133 + { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7134 + { "Canon EOS 700D", 0, 0x3c00,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7135 + { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7136 + { "Canon EOS 750D", 0, 0x368e,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7137 + { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7138 + { "Canon EOS 760D", 0, 0x350f,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7139 + { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7140 + { "Canon EOS 1000D", 0, 0xe43,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7141 + { 6771,-1139,-977,-7818,15123,2928,-1244,1437,7533 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7142 + { "Canon EOS 1100D", 0, 0x3510,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7143 + { 6444,-904,-893,-4563,12308,2535,-903,2016,6728 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7144 + { "Canon EOS 1200D", 0, 0x37c2,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7145 + { 6461,-907,-882,-4300,12184,2378,-819,1944,5931 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7146 + { "Canon EOS 1300D", 0, 0x3510,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7147 + { 6939,-1016,-866,-4428,12473,2177,-1175,2178,6162 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7148 + { "Canon EOS M3", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7149 + { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7150 + { "Canon EOS M10", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7151 + { 6400,-480,-888,-5294,13416,2047,-1296,2203,6137 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7152 + { "Canon EOS M", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7153 + { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7154 + { "Canon EOS-1Ds Mark III", 0, 0x3bb0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7155 + { 5859,-211,-930,-8255,16017,2353,-1732,1887,7448 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7156 + { "Canon EOS-1Ds Mark II", 0, 0xe80,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7157 + { 6517,-602,-867,-8180,15926,2378,-1618,1771,7633 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7158 + { "Canon EOS-1D Mark IV", 0, 0x3bb0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7159 + { 6014,-220,-795,-4109,12014,2361,-561,1824,5787 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7160 + { "Canon EOS-1D Mark III", 0, 0x3bb0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7161 + { 6291,-540,-976,-8350,16145,2311,-1714,1858,7326 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7162 + { "Canon EOS-1D Mark II N", 0, 0xe80,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7163 + { 6240,-466,-822,-8180,15825,2500,-1801,1938,8042 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7164 + { "Canon EOS-1D Mark II", 0, 0xe80,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7165 + { 6264,-582,-724,-8312,15948,2504,-1744,1919,8664 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7166 + { "Canon EOS-1DS", 0, 0xe20,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7167 + { 4374,3631,-1743,-7520,15212,2472,-2892,3632,8161 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7168 + { "Canon EOS-1D C", 0, 0x3c4e,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7169 + { 6847,-614,-1014,-4669,12737,2139,-1197,2488,6846 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7170 + { "Canon EOS-1D X Mark II", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7171 + { 7596,-978,-967,-4808,12571,2503,-1398,2567,5752 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7172 + { "Canon EOS-1D X", 0, 0x3c4e,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7173 + { 6847,-614,-1014,-4669,12737,2139,-1197,2488,6846 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7174 + { "Canon EOS-1D", 0, 0xe20,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7175 + { 6806,-179,-1020,-8097,16415,1687,-3267,4236,7690 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7176 + { "Canon EOS C500", 853, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7177 + { 17851,-10604,922,-7425,16662,763,-3660,3636,22278 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7178 + { "Canon PowerShot A530", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7179 + { 0 } }, /* don't want the A5 matrix */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7180 + { "Canon PowerShot A50", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7181 + { -5300,9846,1776,3436,684,3939,-5540,9879,6200,-1404,11175,217 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7182 + { "Canon PowerShot A5", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7183 + { -4801,9475,1952,2926,1611,4094,-5259,10164,5947,-1554,10883,547 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7184 + { "Canon PowerShot G10", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7185 + { 11093,-3906,-1028,-5047,12492,2879,-1003,1750,5561 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7186 + { "Canon PowerShot G11", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7187 + { 12177,-4817,-1069,-1612,9864,2049,-98,850,4471 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7188 + { "Canon PowerShot G12", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7189 + { 13244,-5501,-1248,-1508,9858,1935,-270,1083,4366 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7190 + { "Canon PowerShot G15", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7191 + { 7474,-2301,-567,-4056,11456,2975,-222,716,4181 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7192 + { "Canon PowerShot G16", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7193 + { 8020,-2687,-682,-3704,11879,2052,-965,1921,5556 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7194 + { "Canon PowerShot G1 X", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7195 + { 7378,-1255,-1043,-4088,12251,2048,-876,1946,5805 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7196 + { "Canon PowerShot G1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7197 + { -4778,9467,2172,4743,-1141,4344,-5146,9908,6077,-1566,11051,557 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7198 + { "Canon PowerShot G2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7199 + { 9087,-2693,-1049,-6715,14382,2537,-2291,2819,7790 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7200 + { "Canon PowerShot G3 X", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7201 + { 9701,-3857,-921,-3149,11537,1817,-786,1817,5147 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7202 + { "Canon PowerShot G3", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7203 + { 9212,-2781,-1073,-6573,14189,2605,-2300,2844,7664 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7204 + { "Canon PowerShot G5 X", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7205 + { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7206 + { "Canon PowerShot G5", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7207 + { 9757,-2872,-933,-5972,13861,2301,-1622,2328,7212 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7208 + { "Canon PowerShot G6", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7209 + { 9877,-3775,-871,-7613,14807,3072,-1448,1305,7485 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7210 + { "Canon PowerShot G7 X", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7211 + { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7212 + { "Canon PowerShot G9 X", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7213 + { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7214 + { "Canon PowerShot G9", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7215 + { 7368,-2141,-598,-5621,13254,2625,-1418,1696,5743 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7216 + { "Canon PowerShot Pro1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7217 + { 10062,-3522,-999,-7643,15117,2730,-765,817,7323 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7218 + { "Canon PowerShot Pro70", 34, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7219 + { -4155,9818,1529,3939,-25,4522,-5521,9870,6610,-2238,10873,1342 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7220 + { "Canon PowerShot Pro90", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7221 + { -4963,9896,2235,4642,-987,4294,-5162,10011,5859,-1770,11230,577 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7222 + { "Canon PowerShot S30", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7223 + { 10566,-3652,-1129,-6552,14662,2006,-2197,2581,7670 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7224 + { "Canon PowerShot S40", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7225 + { 8510,-2487,-940,-6869,14231,2900,-2318,2829,9013 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7226 + { "Canon PowerShot S45", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7227 + { 8163,-2333,-955,-6682,14174,2751,-2077,2597,8041 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7228 + { "Canon PowerShot S50", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7229 + { 8882,-2571,-863,-6348,14234,2288,-1516,2172,6569 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7230 + { "Canon PowerShot S60", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7231 + { 8795,-2482,-797,-7804,15403,2573,-1422,1996,7082 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7232 + { "Canon PowerShot S70", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7233 + { 9976,-3810,-832,-7115,14463,2906,-901,989,7889 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7234 + { "Canon PowerShot S90", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7235 + { 12374,-5016,-1049,-1677,9902,2078,-83,852,4683 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7236 + { "Canon PowerShot S95", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7237 + { 13440,-5896,-1279,-1236,9598,1931,-180,1001,4651 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7238 + { "Canon PowerShot S100", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7239 + { 7968,-2565,-636,-2873,10697,2513,180,667,4211 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7240 + { "Canon PowerShot S110", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7241 + { 8039,-2643,-654,-3783,11230,2930,-206,690,4194 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7242 + { "Canon PowerShot S120", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7243 + { 6961,-1685,-695,-4625,12945,1836,-1114,2152,5518 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7244 + { "Canon PowerShot SX1 IS", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7245 + { 6578,-259,-502,-5974,13030,3309,-308,1058,4970 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7246 + { "Canon PowerShot SX50 HS", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7247 + { 12432,-4753,-1247,-2110,10691,1629,-412,1623,4926 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7248 + { "Canon PowerShot SX60 HS", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7249 + { 13161,-5451,-1344,-1989,10654,1531,-47,1271,4955 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7250 + { "Canon PowerShot A3300", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7251 + { 10826,-3654,-1023,-3215,11310,1906,0,999,4960 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7252 + { "Canon PowerShot A470", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7253 + { 12513,-4407,-1242,-2680,10276,2405,-878,2215,4734 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7254 + { "Canon PowerShot A610", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7255 + { 15591,-6402,-1592,-5365,13198,2168,-1300,1824,5075 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7256 + { "Canon PowerShot A620", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7257 + { 15265,-6193,-1558,-4125,12116,2010,-888,1639,5220 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7258 + { "Canon PowerShot A630", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7259 + { 14201,-5308,-1757,-6087,14472,1617,-2191,3105,5348 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7260 + { "Canon PowerShot A640", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7261 + { 13124,-5329,-1390,-3602,11658,1944,-1612,2863,4885 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7262 + { "Canon PowerShot A650", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7263 + { 9427,-3036,-959,-2581,10671,1911,-1039,1982,4430 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7264 + { "Canon PowerShot A720", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7265 + { 14573,-5482,-1546,-1266,9799,1468,-1040,1912,3810 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7266 + { "Canon PowerShot S3 IS", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7267 + { 14062,-5199,-1446,-4712,12470,2243,-1286,2028,4836 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7268 + { "Canon PowerShot SX110 IS", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7269 + { 14134,-5576,-1527,-1991,10719,1273,-1158,1929,3581 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7270 + { "Canon PowerShot SX220", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7271 + { 13898,-5076,-1447,-1405,10109,1297,-244,1860,3687 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7272 + { "Canon IXUS 160", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7273 + { 11657,-3781,-1136,-3544,11262,2283,-160,1219,4700 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7274 + { "Casio EX-S20", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7275 + { 11634,-3924,-1128,-4968,12954,2015,-1588,2648,7206 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7276 + { "Casio EX-Z750", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7277 + { 10819,-3873,-1099,-4903,13730,1175,-1755,3751,4632 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7278 + { "Casio EX-Z10", 128, 0xfff, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7279 + { 9790,-3338,-603,-2321,10222,2099,-344,1273,4799 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7280 + { "CINE 650", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7281 + { 3390,480,-500,-800,3610,340,-550,2336,1192 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7282 + { "CINE 660", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7283 + { 3390,480,-500,-800,3610,340,-550,2336,1192 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7284 + { "CINE", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7285 + { 20183,-4295,-423,-3940,15330,3985,-280,4870,9800 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7286 + { "Contax N Digital", 0, 0xf1e,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7287 + { 7777,1285,-1053,-9280,16543,2916,-3677,5679,7060 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7288 + { "DXO ONE", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7289 + { 6596,-2079,-562,-4782,13016,1933,-970,1581,5181 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7290 + { "Epson R-D1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7291 + { 6827,-1878,-732,-8429,16012,2564,-704,592,7145 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7292 + { "Fujifilm E550", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7293 + { 11044,-3888,-1120,-7248,15168,2208,-1531,2277,8069 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7294 + { "Fujifilm E900", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7295 + { 9183,-2526,-1078,-7461,15071,2574,-2022,2440,8639 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7296 + { "Fujifilm F5", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7297 + { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7298 + { "Fujifilm F6", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7299 + { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7300 + { "Fujifilm F77", 0, 0xfe9,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7301 + { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7302 + { "Fujifilm F7", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7303 + { 10004,-3219,-1201,-7036,15047,2107,-1863,2565,7736 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7304 + { "Fujifilm F8", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7305 + { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7306 + { "Fujifilm S100FS", 514, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7307 + { 11521,-4355,-1065,-6524,13767,3058,-1466,1984,6045 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7308 + { "Fujifilm S1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7309 + { 12297,-4882,-1202,-2106,10691,1623,-88,1312,4790 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7310 + { "Fujifilm S20Pro", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7311 + { 10004,-3219,-1201,-7036,15047,2107,-1863,2565,7736 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7312 + { "Fujifilm S20", 512, 0x3fff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7313 + { 11401,-4498,-1312,-5088,12751,2613,-838,1568,5941 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7314 + { "Fujifilm S2Pro", 128, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7315 + { 12492,-4690,-1402,-7033,15423,1647,-1507,2111,7697 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7316 + { "Fujifilm S3Pro", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7317 + { 11807,-4612,-1294,-8927,16968,1988,-2120,2741,8006 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7318 + { "Fujifilm S5Pro", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7319 + { 12300,-5110,-1304,-9117,17143,1998,-1947,2448,8100 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7320 + { "Fujifilm S5000", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7321 + { 8754,-2732,-1019,-7204,15069,2276,-1702,2334,6982 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7322 + { "Fujifilm S5100", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7323 + { 11940,-4431,-1255,-6766,14428,2542,-993,1165,7421 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7324 + { "Fujifilm S5500", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7325 + { 11940,-4431,-1255,-6766,14428,2542,-993,1165,7421 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7326 + { "Fujifilm S5200", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7327 + { 9636,-2804,-988,-7442,15040,2589,-1803,2311,8621 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7328 + { "Fujifilm S5600", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7329 + { 9636,-2804,-988,-7442,15040,2589,-1803,2311,8621 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7330 + { "Fujifilm S6", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7331 + { 12628,-4887,-1401,-6861,14996,1962,-2198,2782,7091 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7332 + { "Fujifilm S7000", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7333 + { 10190,-3506,-1312,-7153,15051,2238,-2003,2399,7505 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7334 + { "Fujifilm S9000", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7335 + { 10491,-3423,-1145,-7385,15027,2538,-1809,2275,8692 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7336 + { "Fujifilm S9500", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7337 + { 10491,-3423,-1145,-7385,15027,2538,-1809,2275,8692 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7338 + { "Fujifilm S9100", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7339 + { 12343,-4515,-1285,-7165,14899,2435,-1895,2496,8800 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7340 + { "Fujifilm S9600", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7341 + { 12343,-4515,-1285,-7165,14899,2435,-1895,2496,8800 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7342 + { "Fujifilm SL1000", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7343 + { 11705,-4262,-1107,-2282,10791,1709,-555,1713,4945 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7344 + { "Fujifilm IS-1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7345 + { 21461,-10807,-1441,-2332,10599,1999,289,875,7703 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7346 + { "Fujifilm IS Pro", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7347 + { 12300,-5110,-1304,-9117,17143,1998,-1947,2448,8100 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7348 + { "Fujifilm HS10 HS11", 0, 0xf68,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7349 + { 12440,-3954,-1183,-1123,9674,1708,-83,1614,4086 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7350 + { "Fujifilm HS2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7351 + { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7352 + { "Fujifilm HS3", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7353 + { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7354 + { "Fujifilm HS50EXR", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7355 + { 12085,-4727,-953,-3257,11489,2002,-511,2046,4592 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7356 + { "Fujifilm F900EXR", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7357 + { 12085,-4727,-953,-3257,11489,2002,-511,2046,4592 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7358 + { "Fujifilm X100S", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7359 + { 10592,-4262,-1008,-3514,11355,2465,-870,2025,6386 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7360 + { "Fujifilm X100T", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7361 + { 10592,-4262,-1008,-3514,11355,2465,-870,2025,6386 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7362 + { "Fujifilm X100", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7363 + { 12161,-4457,-1069,-5034,12874,2400,-795,1724,6904 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7364 + { "Fujifilm X10", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7365 + { 13509,-6199,-1254,-4430,12733,1865,-331,1441,5022 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7366 + { "Fujifilm X20", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7367 + { 11768,-4971,-1133,-4904,12927,2183,-480,1723,4605 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7368 + { "Fujifilm X30", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7369 + { 12328,-5256,-1144,-4469,12927,1675,-87,1291,4351 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7370 + { "Fujifilm X70", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7371 + { 10450,-4329,-878,-3217,11105,2421,-752,1758,6519 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7372 + { "Fujifilm X-Pro1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7373 + { 10413,-3996,-993,-3721,11640,2361,-733,1540,6011 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7374 + { "Fujifilm X-Pro2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7375 + { 11434,-4948,-1210,-3746,12042,1903,-666,1479,5235 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7376 + { "Fujifilm X-A1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7377 + { 11086,-4555,-839,-3512,11310,2517,-815,1341,5940 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7378 + { "Fujifilm X-A2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7379 + { 10763,-4560,-917,-3346,11311,2322,-475,1135,5843 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7380 + { "Fujifilm X-E1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7381 + { 10413,-3996,-993,-3721,11640,2361,-733,1540,6011 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7382 + { "Fujifilm X-E2S", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7383 + { 11562,-5118,-961,-3022,11007,2311,-525,1569,6097 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7384 + { "Fujifilm X-E2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7385 + { 8458,-2451,-855,-4597,12447,2407,-1475,2482,6526 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7386 + { "Fujifilm X-M1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7387 + { 10413,-3996,-993,-3721,11640,2361,-733,1540,6011 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7388 + { "Fujifilm X-S1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7389 + { 13509,-6199,-1254,-4430,12733,1865,-331,1441,5022 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7390 + { "Fujifilm X-T1", 0, 0, /* also X-T10 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7391 + { 8458,-2451,-855,-4597,12447,2407,-1475,2482,6526 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7392 + { "Fujifilm XF1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7393 + { 13509,-6199,-1254,-4430,12733,1865,-331,1441,5022 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7394 + { "Fujifilm XQ", 0, 0, /* XQ1 and XQ2 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7395 + { 9252,-2704,-1064,-5893,14265,1717,-1101,2341,4349 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7396 + { "Imacon Ixpress", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7397 + { 7025,-1415,-704,-5188,13765,1424,-1248,2742,6038 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7398 + { "Kodak NC2000", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7399 + { 13891,-6055,-803,-465,9919,642,2121,82,1291 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7400 + { "Kodak DCS315C", 8, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7401 + { 17523,-4827,-2510,756,8546,-137,6113,1649,2250 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7402 + { "Kodak DCS330C", 8, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7403 + { 20620,-7572,-2801,-103,10073,-396,3551,-233,2220 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7404 + { "Kodak DCS420", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7405 + { 10868,-1852,-644,-1537,11083,484,2343,628,2216 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7406 + { "Kodak DCS460", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7407 + { 10592,-2206,-967,-1944,11685,230,2206,670,1273 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7408 + { "Kodak EOSDCS1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7409 + { 10592,-2206,-967,-1944,11685,230,2206,670,1273 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7410 + { "Kodak EOSDCS3B", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7411 + { 9898,-2700,-940,-2478,12219,206,1985,634,1031 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7412 + { "Kodak DCS520C", 178, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7413 + { 24542,-10860,-3401,-1490,11370,-297,2858,-605,3225 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7414 + { "Kodak DCS560C", 177, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7415 + { 20482,-7172,-3125,-1033,10410,-285,2542,226,3136 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7416 + { "Kodak DCS620C", 177, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7417 + { 23617,-10175,-3149,-2054,11749,-272,2586,-489,3453 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7418 + { "Kodak DCS620X", 176, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7419 + { 13095,-6231,154,12221,-21,-2137,895,4602,2258 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7420 + { "Kodak DCS660C", 173, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7421 + { 18244,-6351,-2739,-791,11193,-521,3711,-129,2802 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7422 + { "Kodak DCS720X", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7423 + { 11775,-5884,950,9556,1846,-1286,-1019,6221,2728 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7424 + { "Kodak DCS760C", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7425 + { 16623,-6309,-1411,-4344,13923,323,2285,274,2926 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7426 + { "Kodak DCS Pro SLR", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7427 + { 5494,2393,-232,-6427,13850,2846,-1876,3997,5445 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7428 + { "Kodak DCS Pro 14nx", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7429 + { 5494,2393,-232,-6427,13850,2846,-1876,3997,5445 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7430 + { "Kodak DCS Pro 14", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7431 + { 7791,3128,-776,-8588,16458,2039,-2455,4006,6198 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7432 + { "Kodak ProBack645", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7433 + { 16414,-6060,-1470,-3555,13037,473,2545,122,4948 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7434 + { "Kodak ProBack", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7435 + { 21179,-8316,-2918,-915,11019,-165,3477,-180,4210 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7436 + { "Kodak P712", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7437 + { 9658,-3314,-823,-5163,12695,2768,-1342,1843,6044 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7438 + { "Kodak P850", 0, 0xf7c,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7439 + { 10511,-3836,-1102,-6946,14587,2558,-1481,1792,6246 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7440 + { "Kodak P880", 0, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7441 + { 12805,-4662,-1376,-7480,15267,2360,-1626,2194,7904 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7442 + { "Kodak EasyShare Z980", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7443 + { 11313,-3559,-1101,-3893,11891,2257,-1214,2398,4908 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7444 + { "Kodak EasyShare Z981", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7445 + { 12729,-4717,-1188,-1367,9187,2582,274,860,4411 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7446 + { "Kodak EasyShare Z990", 0, 0xfed,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7447 + { 11749,-4048,-1309,-1867,10572,1489,-138,1449,4522 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7448 + { "Kodak EASYSHARE Z1015", 0, 0xef1,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7449 + { 11265,-4286,-992,-4694,12343,2647,-1090,1523,5447 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7450 + { "Leaf CMost", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7451 + { 3952,2189,449,-6701,14585,2275,-4536,7349,6536 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7452 + { "Leaf Valeo 6", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7453 + { 3952,2189,449,-6701,14585,2275,-4536,7349,6536 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7454 + { "Leaf Aptus 54S", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7455 + { 8236,1746,-1314,-8251,15953,2428,-3673,5786,5771 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7456 + { "Leaf Aptus 65", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7457 + { 7914,1414,-1190,-8777,16582,2280,-2811,4605,5562 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7458 + { "Leaf Aptus 75", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7459 + { 7914,1414,-1190,-8777,16582,2280,-2811,4605,5562 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7460 + { "Leaf", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7461 + { 8236,1746,-1314,-8251,15953,2428,-3673,5786,5771 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7462 + { "Mamiya ZD", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7463 + { 7645,2579,-1363,-8689,16717,2015,-3712,5941,5961 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7464 + { "Micron 2010", 110, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7465 + { 16695,-3761,-2151,155,9682,163,3433,951,4904 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7466 + { "Minolta DiMAGE 5", 0, 0xf7d,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7467 + { 8983,-2942,-963,-6556,14476,2237,-2426,2887,8014 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7468 + { "Minolta DiMAGE 7Hi", 0, 0xf7d,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7469 + { 11368,-3894,-1242,-6521,14358,2339,-2475,3056,7285 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7470 + { "Minolta DiMAGE 7", 0, 0xf7d,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7471 + { 9144,-2777,-998,-6676,14556,2281,-2470,3019,7744 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7472 + { "Minolta DiMAGE A1", 0, 0xf8b,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7473 + { 9274,-2547,-1167,-8220,16323,1943,-2273,2720,8340 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7474 + { "Minolta DiMAGE A200", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7475 + { 8560,-2487,-986,-8112,15535,2771,-1209,1324,7743 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7476 + { "Minolta DiMAGE A2", 0, 0xf8f,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7477 + { 9097,-2726,-1053,-8073,15506,2762,-966,981,7763 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7478 + { "Minolta DiMAGE Z2", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7479 + { 11280,-3564,-1370,-4655,12374,2282,-1423,2168,5396 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7480 + { "Minolta DYNAX 5", 0, 0xffb,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7481 + { 10284,-3283,-1086,-7957,15762,2316,-829,882,6644 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7482 + { "Minolta DYNAX 7", 0, 0xffb,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7483 + { 10239,-3104,-1099,-8037,15727,2451,-927,925,6871 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7484 + { "Motorola PIXL", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7485 + { 8898,-989,-1033,-3292,11619,1674,-661,3178,5216 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7486 + { "Nikon D100", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7487 + { 5902,-933,-782,-8983,16719,2354,-1402,1455,6464 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7488 + { "Nikon D1H", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7489 + { 7577,-2166,-926,-7454,15592,1934,-2377,2808,8606 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7490 + { "Nikon D1X", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7491 + { 7702,-2245,-975,-9114,17242,1875,-2679,3055,8521 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7492 + { "Nikon D1", 0, 0, /* multiplied by 2.218750, 1.0, 1.148438 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7493 + { 16772,-4726,-2141,-7611,15713,1972,-2846,3494,9521 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7494 + { "Nikon D200", 0, 0xfbc,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7495 + { 8367,-2248,-763,-8758,16447,2422,-1527,1550,8053 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7496 + { "Nikon D2H", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7497 + { 5710,-901,-615,-8594,16617,2024,-2975,4120,6830 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7498 + { "Nikon D2X", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7499 + { 10231,-2769,-1255,-8301,15900,2552,-797,680,7148 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7500 + { "Nikon D3000", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7501 + { 8736,-2458,-935,-9075,16894,2251,-1354,1242,8263 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7502 + { "Nikon D3100", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7503 + { 7911,-2167,-813,-5327,13150,2408,-1288,2483,7968 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7504 + { "Nikon D3200", 0, 0xfb9,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7505 + { 7013,-1408,-635,-5268,12902,2640,-1470,2801,7379 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7506 + { "Nikon D3300", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7507 + { 6988,-1384,-714,-5631,13410,2447,-1485,2204,7318 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7508 + { "Nikon D300", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7509 + { 9030,-1992,-715,-8465,16302,2255,-2689,3217,8069 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7510 + { "Nikon D3X", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7511 + { 7171,-1986,-648,-8085,15555,2718,-2170,2512,7457 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7512 + { "Nikon D3S", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7513 + { 8828,-2406,-694,-4874,12603,2541,-660,1509,7587 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7514 + { "Nikon D3", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7515 + { 8139,-2171,-663,-8747,16541,2295,-1925,2008,8093 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7516 + { "Nikon D40X", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7517 + { 8819,-2543,-911,-9025,16928,2151,-1329,1213,8449 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7518 + { "Nikon D40", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7519 + { 6992,-1668,-806,-8138,15748,2543,-874,850,7897 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7520 + { "Nikon D4S", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7521 + { 8598,-2848,-857,-5618,13606,2195,-1002,1773,7137 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7522 + { "Nikon D4", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7523 + { 8598,-2848,-857,-5618,13606,2195,-1002,1773,7137 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7524 + { "Nikon Df", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7525 + { 8598,-2848,-857,-5618,13606,2195,-1002,1773,7137 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7526 + { "Nikon D5000", 0, 0xf00,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7527 + { 7309,-1403,-519,-8474,16008,2622,-2433,2826,8064 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7528 + { "Nikon D5100", 0, 0x3de6,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7529 + { 8198,-2239,-724,-4871,12389,2798,-1043,2050,7181 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7530 + { "Nikon D5200", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7531 + { 8322,-3112,-1047,-6367,14342,2179,-988,1638,6394 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7532 + { "Nikon D5300", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7533 + { 6988,-1384,-714,-5631,13410,2447,-1485,2204,7318 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7534 + { "Nikon D5500", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7535 + { 8821,-2938,-785,-4178,12142,2287,-824,1651,6860 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7536 + { "Nikon D500", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7537 + { 8813,-3210,-1036,-4703,12868,2021,-1054,1940,6129 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7538 + { "Nikon D50", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7539 + { 7732,-2422,-789,-8238,15884,2498,-859,783,7330 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7540 + { "Nikon D5", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7541 + { 9200,-3522,-992,-5755,13803,2117,-753,1486,6338 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7542 + { "Nikon D600", 0, 0x3e07,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7543 + { 8178,-2245,-609,-4857,12394,2776,-1207,2086,7298 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7544 + { "Nikon D610", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7545 + { 8178,-2245,-609,-4857,12394,2776,-1207,2086,7298 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7546 + { "Nikon D60", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7547 + { 8736,-2458,-935,-9075,16894,2251,-1354,1242,8263 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7548 + { "Nikon D7000", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7549 + { 8198,-2239,-724,-4871,12389,2798,-1043,2050,7181 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7550 + { "Nikon D7100", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7551 + { 8322,-3112,-1047,-6367,14342,2179,-988,1638,6394 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7552 + { "Nikon D7200", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7553 + { 8322,-3112,-1047,-6367,14342,2179,-988,1638,6394 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7554 + { "Nikon D750", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7555 + { 9020,-2890,-715,-4535,12436,2348,-934,1919,7086 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7556 + { "Nikon D700", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7557 + { 8139,-2171,-663,-8747,16541,2295,-1925,2008,8093 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7558 + { "Nikon D70", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7559 + { 7732,-2422,-789,-8238,15884,2498,-859,783,7330 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7560 + { "Nikon D810", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7561 + { 9369,-3195,-791,-4488,12430,2301,-893,1796,6872 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7562 + { "Nikon D800", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7563 + { 7866,-2108,-555,-4869,12483,2681,-1176,2069,7501 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7564 + { "Nikon D80", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7565 + { 8629,-2410,-883,-9055,16940,2171,-1490,1363,8520 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7566 + { "Nikon D90", 0, 0xf00,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7567 + { 7309,-1403,-519,-8474,16008,2622,-2434,2826,8064 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7568 + { "Nikon E700", 0, 0x3dd, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7569 + { -3746,10611,1665,9621,-1734,2114,-2389,7082,3064,3406,6116,-244 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7570 + { "Nikon E800", 0, 0x3dd, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7571 + { -3746,10611,1665,9621,-1734,2114,-2389,7082,3064,3406,6116,-244 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7572 + { "Nikon E950", 0, 0x3dd, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7573 + { -3746,10611,1665,9621,-1734,2114,-2389,7082,3064,3406,6116,-244 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7574 + { "Nikon E995", 0, 0, /* copied from E5000 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7575 + { -5547,11762,2189,5814,-558,3342,-4924,9840,5949,688,9083,96 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7576 + { "Nikon E2100", 0, 0, /* copied from Z2, new white balance */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7577 + { 13142,-4152,-1596,-4655,12374,2282,-1769,2696,6711} },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7578 + { "Nikon E2500", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7579 + { -5547,11762,2189,5814,-558,3342,-4924,9840,5949,688,9083,96 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7580 + { "Nikon E3200", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7581 + { 9846,-2085,-1019,-3278,11109,2170,-774,2134,5745 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7582 + { "Nikon E4300", 0, 0, /* copied from Minolta DiMAGE Z2 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7583 + { 11280,-3564,-1370,-4655,12374,2282,-1423,2168,5396 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7584 + { "Nikon E4500", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7585 + { -5547,11762,2189,5814,-558,3342,-4924,9840,5949,688,9083,96 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7586 + { "Nikon E5000", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7587 + { -5547,11762,2189,5814,-558,3342,-4924,9840,5949,688,9083,96 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7588 + { "Nikon E5400", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7589 + { 9349,-2987,-1001,-7919,15766,2266,-2098,2680,6839 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7590 + { "Nikon E5700", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7591 + { -5368,11478,2368,5537,-113,3148,-4969,10021,5782,778,9028,211 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7592 + { "Nikon E8400", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7593 + { 7842,-2320,-992,-8154,15718,2599,-1098,1342,7560 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7594 + { "Nikon E8700", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7595 + { 8489,-2583,-1036,-8051,15583,2643,-1307,1407,7354 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7596 + { "Nikon E8800", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7597 + { 7971,-2314,-913,-8451,15762,2894,-1442,1520,7610 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7598 + { "Nikon COOLPIX A", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7599 + { 8198,-2239,-724,-4871,12389,2798,-1043,2050,7181 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7600 + { "Nikon COOLPIX P330", 200, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7601 + { 10321,-3920,-931,-2750,11146,1824,-442,1545,5539 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7602 + { "Nikon COOLPIX P340", 200, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7603 + { 10321,-3920,-931,-2750,11146,1824,-442,1545,5539 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7604 + { "Nikon COOLPIX P6000", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7605 + { 9698,-3367,-914,-4706,12584,2368,-837,968,5801 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7606 + { "Nikon COOLPIX P7000", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7607 + { 11432,-3679,-1111,-3169,11239,2202,-791,1380,4455 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7608 + { "Nikon COOLPIX P7100", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7609 + { 11053,-4269,-1024,-1976,10182,2088,-526,1263,4469 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7610 + { "Nikon COOLPIX P7700", 200, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7611 + { 10321,-3920,-931,-2750,11146,1824,-442,1545,5539 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7612 + { "Nikon COOLPIX P7800", 200, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7613 + { 10321,-3920,-931,-2750,11146,1824,-442,1545,5539 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7614 + { "Nikon 1 V3", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7615 + { 5958,-1559,-571,-4021,11453,2939,-634,1548,5087 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7616 + { "Nikon 1 J4", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7617 + { 5958,-1559,-571,-4021,11453,2939,-634,1548,5087 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7618 + { "Nikon 1 J5", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7619 + { 7520,-2518,-645,-3844,12102,1945,-913,2249,6835 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7620 + { "Nikon 1 S2", 200, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7621 + { 6612,-1342,-618,-3338,11055,2623,-174,1792,5075 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7622 + { "Nikon 1 V2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7623 + { 6588,-1305,-693,-3277,10987,2634,-355,2016,5106 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7624 + { "Nikon 1 J3", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7625 + { 6588,-1305,-693,-3277,10987,2634,-355,2016,5106 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7626 + { "Nikon 1 AW1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7627 + { 6588,-1305,-693,-3277,10987,2634,-355,2016,5106 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7628 + { "Nikon 1 ", 0, 0, /* J1, J2, S1, V1 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7629 + { 8994,-2667,-865,-4594,12324,2552,-699,1786,6260 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7630 + { "Olympus AIR A01", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7631 + { 8992,-3093,-639,-2563,10721,2122,-437,1270,5473 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7632 + { "Olympus C5050", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7633 + { 10508,-3124,-1273,-6079,14294,1901,-1653,2306,6237 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7634 + { "Olympus C5060", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7635 + { 10445,-3362,-1307,-7662,15690,2058,-1135,1176,7602 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7636 + { "Olympus C7070", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7637 + { 10252,-3531,-1095,-7114,14850,2436,-1451,1723,6365 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7638 + { "Olympus C70", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7639 + { 10793,-3791,-1146,-7498,15177,2488,-1390,1577,7321 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7640 + { "Olympus C80", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7641 + { 8606,-2509,-1014,-8238,15714,2703,-942,979,7760 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7642 + { "Olympus E-10", 0, 0xffc,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7643 + { 12745,-4500,-1416,-6062,14542,1580,-1934,2256,6603 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7644 + { "Olympus E-1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7645 + { 11846,-4767,-945,-7027,15878,1089,-2699,4122,8311 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7646 + { "Olympus E-20", 0, 0xffc,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7647 + { 13173,-4732,-1499,-5807,14036,1895,-2045,2452,7142 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7648 + { "Olympus E-300", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7649 + { 7828,-1761,-348,-5788,14071,1830,-2853,4518,6557 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7650 + { "Olympus E-330", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7651 + { 8961,-2473,-1084,-7979,15990,2067,-2319,3035,8249 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7652 + { "Olympus E-30", 0, 0xfbc,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7653 + { 8144,-1861,-1111,-7763,15894,1929,-1865,2542,7607 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7654 + { "Olympus E-3", 0, 0xf99,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7655 + { 9487,-2875,-1115,-7533,15606,2010,-1618,2100,7389 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7656 + { "Olympus E-400", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7657 + { 6169,-1483,-21,-7107,14761,2536,-2904,3580,8568 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7658 + { "Olympus E-410", 0, 0xf6a,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7659 + { 8856,-2582,-1026,-7761,15766,2082,-2009,2575,7469 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7660 + { "Olympus E-420", 0, 0xfd7,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7661 + { 8746,-2425,-1095,-7594,15612,2073,-1780,2309,7416 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7662 + { "Olympus E-450", 0, 0xfd2,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7663 + { 8745,-2425,-1095,-7594,15613,2073,-1780,2309,7416 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7664 + { "Olympus E-500", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7665 + { 8136,-1968,-299,-5481,13742,1871,-2556,4205,6630 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7666 + { "Olympus E-510", 0, 0xf6a,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7667 + { 8785,-2529,-1033,-7639,15624,2112,-1783,2300,7817 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7668 + { "Olympus E-520", 0, 0xfd2,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7669 + { 8344,-2322,-1020,-7596,15635,2048,-1748,2269,7287 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7670 + { "Olympus E-5", 0, 0xeec,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7671 + { 11200,-3783,-1325,-4576,12593,2206,-695,1742,7504 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7672 + { "Olympus E-600", 0, 0xfaf,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7673 + { 8453,-2198,-1092,-7609,15681,2008,-1725,2337,7824 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7674 + { "Olympus E-620", 0, 0xfaf,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7675 + { 8453,-2198,-1092,-7609,15681,2008,-1725,2337,7824 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7676 + { "Olympus E-P1", 0, 0xffd,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7677 + { 8343,-2050,-1021,-7715,15705,2103,-1831,2380,8235 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7678 + { "Olympus E-P2", 0, 0xffd,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7679 + { 8343,-2050,-1021,-7715,15705,2103,-1831,2380,8235 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7680 + { "Olympus E-P3", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7681 + { 7575,-2159,-571,-3722,11341,2725,-1434,2819,6271 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7682 + { "Olympus E-P5", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7683 + { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7684 + { "Olympus E-PL1s", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7685 + { 11409,-3872,-1393,-4572,12757,2003,-709,1810,7415 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7686 + { "Olympus E-PL1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7687 + { 11408,-4289,-1215,-4286,12385,2118,-387,1467,7787 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7688 + { "Olympus E-PL2", 0, 0xcf3,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7689 + { 15030,-5552,-1806,-3987,12387,1767,-592,1670,7023 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7690 + { "Olympus E-PL3", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7691 + { 7575,-2159,-571,-3722,11341,2725,-1434,2819,6271 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7692 + { "Olympus E-PL5", 0, 0xfcb,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7693 + { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7694 + { "Olympus E-PL6", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7695 + { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7696 + { "Olympus E-PL7", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7697 + { 9197,-3190,-659,-2606,10830,2039,-458,1250,5458 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7698 + { "Olympus E-PM1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7699 + { 7575,-2159,-571,-3722,11341,2725,-1434,2819,6271 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7700 + { "Olympus E-PM2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7701 + { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7702 + { "Olympus E-M10", 0, 0, /* also E-M10 Mark II */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7703 + { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7704 + { "Olympus E-M1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7705 + { 7687,-1984,-606,-4327,11928,2721,-1381,2339,6452 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7706 + { "Olympus E-M5MarkII", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7707 + { 9422,-3258,-711,-2655,10898,2015,-512,1354,5512 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7708 + { "Olympus E-M5", 0, 0xfe1,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7709 + { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7710 + { "Olympus PEN-F", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7711 + { 9476,-3182,-765,-2613,10958,1893,-449,1315,5268 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7712 + { "Olympus SH-2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7713 + { 10156,-3425,-1077,-2611,11177,1624,-385,1592,5080 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7714 + { "Olympus SP350", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7715 + { 12078,-4836,-1069,-6671,14306,2578,-786,939,7418 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7716 + { "Olympus SP3", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7717 + { 11766,-4445,-1067,-6901,14421,2707,-1029,1217,7572 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7718 + { "Olympus SP500UZ", 0, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7719 + { 9493,-3415,-666,-5211,12334,3260,-1548,2262,6482 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7720 + { "Olympus SP510UZ", 0, 0xffe,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7721 + { 10593,-3607,-1010,-5881,13127,3084,-1200,1805,6721 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7722 + { "Olympus SP550UZ", 0, 0xffe,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7723 + { 11597,-4006,-1049,-5432,12799,2957,-1029,1750,6516 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7724 + { "Olympus SP560UZ", 0, 0xff9,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7725 + { 10915,-3677,-982,-5587,12986,2911,-1168,1968,6223 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7726 + { "Olympus SP570UZ", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7727 + { 11522,-4044,-1146,-4736,12172,2904,-988,1829,6039 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7728 + { "Olympus STYLUS1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7729 + { 8360,-2420,-880,-3928,12353,1739,-1381,2416,5173 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7730 + { "Olympus TG-4", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7731 + { 11426,-4159,-1126,-2066,10678,1593,-120,1327,4998 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7732 + { "Olympus XZ-10", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7733 + { 9777,-3483,-925,-2886,11297,1800,-602,1663,5134 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7734 + { "Olympus XZ-1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7735 + { 10901,-4095,-1074,-1141,9208,2293,-62,1417,5158 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7736 + { "Olympus XZ-2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7737 + { 9777,-3483,-925,-2886,11297,1800,-602,1663,5134 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7738 + { "OmniVision", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7739 + { 12782,-4059,-379,-478,9066,1413,1340,1513,5176 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7740 + { "Pentax *ist DL2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7741 + { 10504,-2438,-1189,-8603,16207,2531,-1022,863,12242 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7742 + { "Pentax *ist DL", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7743 + { 10829,-2838,-1115,-8339,15817,2696,-837,680,11939 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7744 + { "Pentax *ist DS2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7745 + { 10504,-2438,-1189,-8603,16207,2531,-1022,863,12242 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7746 + { "Pentax *ist DS", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7747 + { 10371,-2333,-1206,-8688,16231,2602,-1230,1116,11282 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7748 + { "Pentax *ist D", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7749 + { 9651,-2059,-1189,-8881,16512,2487,-1460,1345,10687 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7750 + { "Pentax K10D", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7751 + { 9566,-2863,-803,-7170,15172,2112,-818,803,9705 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7752 + { "Pentax K1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7753 + { 11095,-3157,-1324,-8377,15834,2720,-1108,947,11688 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7754 + { "Pentax K20D", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7755 + { 9427,-2714,-868,-7493,16092,1373,-2199,3264,7180 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7756 + { "Pentax K200D", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7757 + { 9186,-2678,-907,-8693,16517,2260,-1129,1094,8524 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7758 + { "Pentax K2000", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7759 + { 11057,-3604,-1155,-5152,13046,2329,-282,375,8104 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7760 + { "Pentax K-m", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7761 + { 11057,-3604,-1155,-5152,13046,2329,-282,375,8104 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7762 + { "Pentax K-x", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7763 + { 8843,-2837,-625,-5025,12644,2668,-411,1234,7410 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7764 + { "Pentax K-r", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7765 + { 9895,-3077,-850,-5304,13035,2521,-883,1768,6936 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7766 + { "Pentax K-1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7767 + { 8566,-2746,-1201,-3612,12204,1550,-893,1680,6264 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7768 + { "Pentax K-30", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7769 + { 8710,-2632,-1167,-3995,12301,1881,-981,1719,6535 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7770 + { "Pentax K-3 II", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7771 + { 8626,-2607,-1155,-3995,12301,1881,-1039,1822,6925 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7772 + { "Pentax K-3", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7773 + { 7415,-2052,-721,-5186,12788,2682,-1446,2157,6773 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7774 + { "Pentax K-5 II", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7775 + { 8170,-2725,-639,-4440,12017,2744,-771,1465,6599 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7776 + { "Pentax K-5", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7777 + { 8713,-2833,-743,-4342,11900,2772,-722,1543,6247 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7778 + { "Pentax K-7", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7779 + { 9142,-2947,-678,-8648,16967,1663,-2224,2898,8615 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7780 + { "Pentax K-S1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7781 + { 8512,-3211,-787,-4167,11966,2487,-638,1288,6054 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7782 + { "Pentax K-S2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7783 + { 8662,-3280,-798,-3928,11771,2444,-586,1232,6054 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7784 + { "Pentax Q-S1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7785 + { 12995,-5593,-1107,-1879,10139,2027,-64,1233,4919 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7786 + { "Pentax 645D", 0, 0x3e00,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7787 + { 10646,-3593,-1158,-3329,11699,1831,-667,2874,6287 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7788 + { "Panasonic DMC-CM1", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7789 + { 8770,-3194,-820,-2871,11281,1803,-513,1552,4434 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7790 + { "Panasonic DMC-FZ8", 0, 0xf7f,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7791 + { 8986,-2755,-802,-6341,13575,3077,-1476,2144,6379 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7792 + { "Panasonic DMC-FZ18", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7793 + { 9932,-3060,-935,-5809,13331,2753,-1267,2155,5575 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7794 + { "Panasonic DMC-FZ28", 15, 0xf96,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7795 + { 10109,-3488,-993,-5412,12812,2916,-1305,2140,5543 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7796 + { "Panasonic DMC-FZ330", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7797 + { 8378,-2798,-769,-3068,11410,1877,-538,1792,4623 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7798 + { "Panasonic DMC-FZ300", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7799 + { 8378,-2798,-769,-3068,11410,1877,-538,1792,4623 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7800 + { "Panasonic DMC-FZ30", 0, 0xf94,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7801 + { 10976,-4029,-1141,-7918,15491,2600,-1670,2071,8246 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7802 + { "Panasonic DMC-FZ3", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7803 + { 9938,-2780,-890,-4604,12393,2480,-1117,2304,4620 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7804 + { "Panasonic DMC-FZ4", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7805 + { 13639,-5535,-1371,-1698,9633,2430,316,1152,4108 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7806 + { "Panasonic DMC-FZ50", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7807 + { 7906,-2709,-594,-6231,13351,3220,-1922,2631,6537 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7808 + { "Panasonic DMC-FZ7", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7809 + { 11532,-4324,-1066,-2375,10847,1749,-564,1699,4351 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7810 + { "Leica V-LUX1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7811 + { 7906,-2709,-594,-6231,13351,3220,-1922,2631,6537 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7812 + { "Panasonic DMC-L10", 15, 0xf96,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7813 + { 8025,-1942,-1050,-7920,15904,2100,-2456,3005,7039 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7814 + { "Panasonic DMC-L1", 0, 0xf7f,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7815 + { 8054,-1885,-1025,-8349,16367,2040,-2805,3542,7629 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7816 + { "Leica DIGILUX 3", 0, 0xf7f,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7817 + { 8054,-1885,-1025,-8349,16367,2040,-2805,3542,7629 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7818 + { "Panasonic DMC-LC1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7819 + { 11340,-4069,-1275,-7555,15266,2448,-2960,3426,7685 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7820 + { "Leica DIGILUX 2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7821 + { 11340,-4069,-1275,-7555,15266,2448,-2960,3426,7685 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7822 + { "Panasonic DMC-LX100", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7823 + { 8844,-3538,-768,-3709,11762,2200,-698,1792,5220 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7824 + { "Leica D-LUX (Typ 109)", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7825 + { 8844,-3538,-768,-3709,11762,2200,-698,1792,5220 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7826 + { "Panasonic DMC-LF1", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7827 + { 9379,-3267,-816,-3227,11560,1881,-926,1928,5340 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7828 + { "Leica C (Typ 112)", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7829 + { 9379,-3267,-816,-3227,11560,1881,-926,1928,5340 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7830 + { "Panasonic DMC-LX1", 0, 0xf7f,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7831 + { 10704,-4187,-1230,-8314,15952,2501,-920,945,8927 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7832 + { "Leica D-LUX2", 0, 0xf7f,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7833 + { 10704,-4187,-1230,-8314,15952,2501,-920,945,8927 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7834 + { "Panasonic DMC-LX2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7835 + { 8048,-2810,-623,-6450,13519,3272,-1700,2146,7049 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7836 + { "Leica D-LUX3", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7837 + { 8048,-2810,-623,-6450,13519,3272,-1700,2146,7049 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7838 + { "Panasonic DMC-LX3", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7839 + { 8128,-2668,-655,-6134,13307,3161,-1782,2568,6083 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7840 + { "Leica D-LUX 4", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7841 + { 8128,-2668,-655,-6134,13307,3161,-1782,2568,6083 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7842 + { "Panasonic DMC-LX5", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7843 + { 10909,-4295,-948,-1333,9306,2399,22,1738,4582 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7844 + { "Leica D-LUX 5", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7845 + { 10909,-4295,-948,-1333,9306,2399,22,1738,4582 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7846 + { "Panasonic DMC-LX7", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7847 + { 10148,-3743,-991,-2837,11366,1659,-701,1893,4899 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7848 + { "Leica D-LUX 6", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7849 + { 10148,-3743,-991,-2837,11366,1659,-701,1893,4899 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7850 + { "Panasonic DMC-FZ1000", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7851 + { 7830,-2696,-763,-3325,11667,1866,-641,1712,4824 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7852 + { "Leica V-LUX (Typ 114)", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7853 + { 7830,-2696,-763,-3325,11667,1866,-641,1712,4824 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7854 + { "Panasonic DMC-FZ100", 15, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7855 + { 16197,-6146,-1761,-2393,10765,1869,366,2238,5248 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7856 + { "Leica V-LUX 2", 15, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7857 + { 16197,-6146,-1761,-2393,10765,1869,366,2238,5248 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7858 + { "Panasonic DMC-FZ150", 15, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7859 + { 11904,-4541,-1189,-2355,10899,1662,-296,1586,4289 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7860 + { "Leica V-LUX 3", 15, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7861 + { 11904,-4541,-1189,-2355,10899,1662,-296,1586,4289 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7862 + { "Panasonic DMC-FZ200", 15, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7863 + { 8112,-2563,-740,-3730,11784,2197,-941,2075,4933 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7864 + { "Leica V-LUX 4", 15, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7865 + { 8112,-2563,-740,-3730,11784,2197,-941,2075,4933 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7866 + { "Panasonic DMC-FX150", 15, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7867 + { 9082,-2907,-925,-6119,13377,3058,-1797,2641,5609 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7868 + { "Panasonic DMC-G10", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7869 + { 10113,-3400,-1114,-4765,12683,2317,-377,1437,6710 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7870 + { "Panasonic DMC-G1", 15, 0xf94,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7871 + { 8199,-2065,-1056,-8124,16156,2033,-2458,3022,7220 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7872 + { "Panasonic DMC-G2", 15, 0xf3c,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7873 + { 10113,-3400,-1114,-4765,12683,2317,-377,1437,6710 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7874 + { "Panasonic DMC-G3", 15, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7875 + { 6763,-1919,-863,-3868,11515,2684,-1216,2387,5879 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7876 + { "Panasonic DMC-G5", 15, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7877 + { 7798,-2562,-740,-3879,11584,2613,-1055,2248,5434 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7878 + { "Panasonic DMC-G6", 15, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7879 + { 8294,-2891,-651,-3869,11590,2595,-1183,2267,5352 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7880 + { "Panasonic DMC-G7", 15, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7881 + { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7882 + { "Panasonic DMC-GF1", 15, 0xf92,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7883 + { 7888,-1902,-1011,-8106,16085,2099,-2353,2866,7330 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7884 + { "Panasonic DMC-GF2", 15, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7885 + { 7888,-1902,-1011,-8106,16085,2099,-2353,2866,7330 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7886 + { "Panasonic DMC-GF3", 15, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7887 + { 9051,-2468,-1204,-5212,13276,2121,-1197,2510,6890 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7888 + { "Panasonic DMC-GF5", 15, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7889 + { 8228,-2945,-660,-3938,11792,2430,-1094,2278,5793 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7890 + { "Panasonic DMC-GF6", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7891 + { 8130,-2801,-946,-3520,11289,2552,-1314,2511,5791 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7892 + { "Panasonic DMC-GF7", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7893 + { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7894 + { "Panasonic DMC-GF8", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7895 + { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7896 + { "Panasonic DMC-GH1", 15, 0xf92,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7897 + { 6299,-1466,-532,-6535,13852,2969,-2331,3112,5984 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7898 + { "Panasonic DMC-GH2", 15, 0xf95,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7899 + { 7780,-2410,-806,-3913,11724,2484,-1018,2390,5298 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7900 + { "Panasonic DMC-GH3", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7901 + { 6559,-1752,-491,-3672,11407,2586,-962,1875,5130 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7902 + { "Panasonic DMC-GH4", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7903 + { 7122,-2108,-512,-3155,11201,2231,-541,1423,5045 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7904 + { "Panasonic DMC-GM1", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7905 + { 6770,-1895,-744,-5232,13145,2303,-1664,2691,5703 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7906 + { "Panasonic DMC-GM5", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7907 + { 8238,-3244,-679,-3921,11814,2384,-836,2022,5852 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7908 + { "Panasonic DMC-GX1", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7909 + { 6763,-1919,-863,-3868,11515,2684,-1216,2387,5879 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7910 + { "Panasonic DMC-GX7", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7911 + { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7912 + { "Panasonic DMC-GX8", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7913 + { 7564,-2263,-606,-3148,11239,2177,-540,1435,4853 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7914 + { "Panasonic DMC-TZ1", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7915 + { 7790,-2736,-755,-3452,11870,1769,-628,1647,4898 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7916 + { "Panasonic DMC-ZS1", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7917 + { 7790,-2736,-755,-3452,11870,1769,-628,1647,4898 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7918 + { "Panasonic DMC-TZ6", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7919 + { 8607,-2822,-808,-3755,11930,2049,-820,2060,5224 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7920 + { "Panasonic DMC-ZS4", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7921 + { 8607,-2822,-808,-3755,11930,2049,-820,2060,5224 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7922 + { "Panasonic DMC-TZ7", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7923 + { 8802,-3135,-789,-3151,11468,1904,-550,1745,4810 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7924 + { "Panasonic DMC-ZS5", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7925 + { 8802,-3135,-789,-3151,11468,1904,-550,1745,4810 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7926 + { "Panasonic DMC-TZ8", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7927 + { 8550,-2908,-842,-3195,11529,1881,-338,1603,4631 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7928 + { "Panasonic DMC-ZS6", 15, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7929 + { 8550,-2908,-842,-3195,11529,1881,-338,1603,4631 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7930 + { "Leica S (Typ 007)", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7931 + { 6063,-2234,-231,-5210,13787,1500,-1043,2866,6997 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7932 + { "Leica X", 0, 0, /* X and X-U, both (Typ 113) */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7933 + { 7712,-2059,-653,-3882,11494,2726,-710,1332,5958 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7934 + { "Leica Q (Typ 116)", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7935 + { 11865,-4523,-1441,-5423,14458,935,-1587,2687,4830 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7936 + { "Leica M (Typ 262)", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7937 + { 6653,-1486,-611,-4221,13303,929,-881,2416,7226 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7938 + { "Leica SL (Typ 601)", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7939 + { 11865,-4523,-1441,-5423,14458,935,-1587,2687,4830} },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7940 + { "Phase One H 20", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7941 + { 1313,1855,-109,-6715,15908,808,-327,1840,6020 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7942 + { "Phase One H 25", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7943 + { 2905,732,-237,-8134,16626,1476,-3038,4253,7517 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7944 + { "Phase One P 2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7945 + { 2905,732,-237,-8134,16626,1476,-3038,4253,7517 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7946 + { "Phase One P 30", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7947 + { 4516,-245,-37,-7020,14976,2173,-3206,4671,7087 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7948 + { "Phase One P 45", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7949 + { 5053,-24,-117,-5684,14076,1702,-2619,4492,5849 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7950 + { "Phase One P40", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7951 + { 8035,435,-962,-6001,13872,2320,-1159,3065,5434 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7952 + { "Phase One P65", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7953 + { 8035,435,-962,-6001,13872,2320,-1159,3065,5434 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7954 + { "Photron BC2-HD", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7955 + { 14603,-4122,-528,-1810,9794,2017,-297,2763,5936 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7956 + { "Red One", 704, 0xffff, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7957 + { 21014,-7891,-2613,-3056,12201,856,-2203,5125,8042 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7958 + { "Ricoh GR II", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7959 + { 4630,-834,-423,-4977,12805,2417,-638,1467,6115 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7960 + { "Ricoh GR", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7961 + { 3708,-543,-160,-5381,12254,3556,-1471,1929,8234 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7962 + { "Samsung EX1", 0, 0x3e00,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7963 + { 8898,-2498,-994,-3144,11328,2066,-760,1381,4576 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7964 + { "Samsung EX2F", 0, 0x7ff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7965 + { 10648,-3897,-1055,-2022,10573,1668,-492,1611,4742 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7966 + { "Samsung EK-GN120", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7967 + { 7557,-2522,-739,-4679,12949,1894,-840,1777,5311 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7968 + { "Samsung NX mini", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7969 + { 5222,-1196,-550,-6540,14649,2009,-1666,2819,5657 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7970 + { "Samsung NX3300", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7971 + { 8060,-2933,-761,-4504,12890,1762,-630,1489,5227 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7972 + { "Samsung NX3000", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7973 + { 8060,-2933,-761,-4504,12890,1762,-630,1489,5227 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7974 + { "Samsung NX30", 0, 0, /* NX30, NX300, NX300M */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7975 + { 7557,-2522,-739,-4679,12949,1894,-840,1777,5311 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7976 + { "Samsung NX2000", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7977 + { 7557,-2522,-739,-4679,12949,1894,-840,1777,5311 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7978 + { "Samsung NX2", 0, 0xfff, /* NX20, NX200, NX210 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7979 + { 6933,-2268,-753,-4921,13387,1647,-803,1641,6096 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7980 + { "Samsung NX1000", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7981 + { 6933,-2268,-753,-4921,13387,1647,-803,1641,6096 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7982 + { "Samsung NX1100", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7983 + { 6933,-2268,-753,-4921,13387,1647,-803,1641,6096 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7984 + { "Samsung NX11", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7985 + { 10332,-3234,-1168,-6111,14639,1520,-1352,2647,8331 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7986 + { "Samsung NX10", 0, 0, /* also NX100 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7987 + { 10332,-3234,-1168,-6111,14639,1520,-1352,2647,8331 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7988 + { "Samsung NX500", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7989 + { 10686,-4042,-1052,-3595,13238,276,-464,1259,5931 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7990 + { "Samsung NX5", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7991 + { 10332,-3234,-1168,-6111,14639,1520,-1352,2647,8331 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7992 + { "Samsung NX1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7993 + { 10686,-4042,-1052,-3595,13238,276,-464,1259,5931 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7994 + { "Samsung WB2000", 0, 0xfff,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7995 + { 12093,-3557,-1155,-1000,9534,1733,-22,1787,4576 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7996 + { "Samsung GX-1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7997 + { 10504,-2438,-1189,-8603,16207,2531,-1022,863,12242 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7998 + { "Samsung GX20", 0, 0, /* copied from Pentax K20D */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
7999 + { 9427,-2714,-868,-7493,16092,1373,-2199,3264,7180 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8000 + { "Samsung S85", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8001 + { 11885,-3968,-1473,-4214,12299,1916,-835,1655,5549 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8002 + { "Sinar", 0, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8003 + { 16442,-2956,-2422,-2877,12128,750,-1136,6066,4559 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8004 + { "Sony DSC-F828", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8005 + { 7924,-1910,-777,-8226,15459,2998,-1517,2199,6818,-7242,11401,3481 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8006 + { "Sony DSC-R1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8007 + { 8512,-2641,-694,-8042,15670,2526,-1821,2117,7414 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8008 + { "Sony DSC-V3", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8009 + { 7511,-2571,-692,-7894,15088,3060,-948,1111,8128 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8010 + { "Sony DSC-RX100M", 0, 0, /* M2, M3, and M4 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8011 + { 6596,-2079,-562,-4782,13016,1933,-970,1581,5181 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8012 + { "Sony DSC-RX100", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8013 + { 8651,-2754,-1057,-3464,12207,1373,-568,1398,4434 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8014 + { "Sony DSC-RX10", 0, 0, /* also RX10M2 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8015 + { 6679,-1825,-745,-5047,13256,1953,-1580,2422,5183 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8016 + { "Sony DSC-RX1RM2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8017 + { 6629,-1900,-483,-4618,12349,2550,-622,1381,6514 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8018 + { "Sony DSC-RX1", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8019 + { 6344,-1612,-462,-4863,12477,2681,-865,1786,6899 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8020 + { "Sony DSLR-A100", 0, 0xfeb,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8021 + { 9437,-2811,-774,-8405,16215,2290,-710,596,7181 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8022 + { "Sony DSLR-A290", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8023 + { 6038,-1484,-579,-9145,16746,2512,-875,746,7218 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8024 + { "Sony DSLR-A2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8025 + { 9847,-3091,-928,-8485,16345,2225,-715,595,7103 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8026 + { "Sony DSLR-A300", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8027 + { 9847,-3091,-928,-8485,16345,2225,-715,595,7103 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8028 + { "Sony DSLR-A330", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8029 + { 9847,-3091,-929,-8485,16346,2225,-714,595,7103 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8030 + { "Sony DSLR-A350", 0, 0xffc,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8031 + { 6038,-1484,-578,-9146,16746,2513,-875,746,7217 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8032 + { "Sony DSLR-A380", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8033 + { 6038,-1484,-579,-9145,16746,2512,-875,746,7218 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8034 + { "Sony DSLR-A390", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8035 + { 6038,-1484,-579,-9145,16746,2512,-875,746,7218 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8036 + { "Sony DSLR-A450", 0, 0xfeb,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8037 + { 4950,-580,-103,-5228,12542,3029,-709,1435,7371 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8038 + { "Sony DSLR-A580", 0, 0xfeb,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8039 + { 5932,-1492,-411,-4813,12285,2856,-741,1524,6739 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8040 + { "Sony DSLR-A500", 0, 0xfeb,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8041 + { 6046,-1127,-278,-5574,13076,2786,-691,1419,7625 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8042 + { "Sony DSLR-A5", 0, 0xfeb,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8043 + { 4950,-580,-103,-5228,12542,3029,-709,1435,7371 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8044 + { "Sony DSLR-A700", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8045 + { 5775,-805,-359,-8574,16295,2391,-1943,2341,7249 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8046 + { "Sony DSLR-A850", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8047 + { 5413,-1162,-365,-5665,13098,2866,-608,1179,8440 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8048 + { "Sony DSLR-A900", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8049 + { 5209,-1072,-397,-8845,16120,2919,-1618,1803,8654 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8050 + { "Sony ILCA-68", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8051 + { 6435,-1903,-536,-4722,12449,2550,-663,1363,6517 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8052 + { "Sony ILCA-77M2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8053 + { 5991,-1732,-443,-4100,11989,2381,-704,1467,5992 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8054 + { "Sony ILCE-6300", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8055 + { 5973,-1695,-419,-3826,11797,2293,-639,1398,5789 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8056 + { "Sony ILCE-7M2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8057 + { 5271,-712,-347,-6153,13653,2763,-1601,2366,7242 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8058 + { "Sony ILCE-7S", 0, 0, /* also ILCE-7SM2 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8059 + { 5838,-1430,-246,-3497,11477,2297,-748,1885,5778 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8060 + { "Sony ILCE-7RM2", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8061 + { 6629,-1900,-483,-4618,12349,2550,-622,1381,6514 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8062 + { "Sony ILCE-7R", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8063 + { 4913,-541,-202,-6130,13513,2906,-1564,2151,7183 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8064 + { "Sony ILCE-7", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8065 + { 5271,-712,-347,-6153,13653,2763,-1601,2366,7242 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8066 + { "Sony ILCE", 0, 0, /* 3000, 5000, 5100, 6000, and QX1 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8067 + { 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8068 + { "Sony NEX-5N", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8069 + { 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8070 + { "Sony NEX-5R", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8071 + { 6129,-1545,-418,-4930,12490,2743,-977,1693,6615 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8072 + { "Sony NEX-5T", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8073 + { 6129,-1545,-418,-4930,12490,2743,-977,1693,6615 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8074 + { "Sony NEX-3N", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8075 + { 6129,-1545,-418,-4930,12490,2743,-977,1693,6615 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8076 + { "Sony NEX-3", 138, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8077 + { 6907,-1256,-645,-4940,12621,2320,-1710,2581,6230 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8078 + { "Sony NEX-5", 116, 0, /* DJC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8079 + { 6807,-1350,-342,-4216,11649,2567,-1089,2001,6420 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8080 + { "Sony NEX-3", 0, 0, /* Adobe */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8081 + { 6549,-1550,-436,-4880,12435,2753,-854,1868,6976 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8082 + { "Sony NEX-5", 0, 0, /* Adobe */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8083 + { 6549,-1550,-436,-4880,12435,2753,-854,1868,6976 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8084 + { "Sony NEX-6", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8085 + { 6129,-1545,-418,-4930,12490,2743,-977,1693,6615 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8086 + { "Sony NEX-7", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8087 + { 5491,-1192,-363,-4951,12342,2948,-911,1722,7192 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8088 + { "Sony NEX", 0, 0, /* NEX-C3, NEX-F3 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8089 + { 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8090 + { "Sony SLT-A33", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8091 + { 6069,-1221,-366,-5221,12779,2734,-1024,2066,6834 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8092 + { "Sony SLT-A35", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8093 + { 5986,-1618,-415,-4557,11820,3120,-681,1404,6971 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8094 + { "Sony SLT-A37", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8095 + { 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8096 + { "Sony SLT-A55", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8097 + { 5932,-1492,-411,-4813,12285,2856,-741,1524,6739 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8098 + { "Sony SLT-A57", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8099 + { 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8100 + { "Sony SLT-A58", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8101 + { 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8102 + { "Sony SLT-A65", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8103 + { 5491,-1192,-363,-4951,12342,2948,-911,1722,7192 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8104 + { "Sony SLT-A77", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8105 + { 5491,-1192,-363,-4951,12342,2948,-911,1722,7192 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8106 + { "Sony SLT-A99", 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8107 + { 6344,-1612,-462,-4863,12477,2681,-865,1786,6899 } },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8108 + };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8109 + double cam_xyz[4][3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8110 + char name[130];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8111 + int i, j;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8112 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8113 + sprintf (name, "%s %s", make, model);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8114 + for (i=0; i < sizeof table / sizeof *table; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8115 + if (!strncmp (name, table[i].prefix, strlen(table[i].prefix))) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8116 + if (table[i].black) black = (ushort) table[i].black;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8117 + if (table[i].maximum) maximum = (ushort) table[i].maximum;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8118 + if (table[i].trans[0]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8119 + for (raw_color = j=0; j < 12; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8120 + ((double *)cam_xyz)[j] = table[i].trans[j] / 10000.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8121 + cam_xyz_coeff (rgb_cam, cam_xyz);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8122 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8123 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8124 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8125 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8126 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8127 +void CLASS simple_coeff (int index)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8128 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8129 + static const float table[][12] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8130 + /* index 0 -- all Foveon cameras */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8131 + { 1.4032,-0.2231,-0.1016,-0.5263,1.4816,0.017,-0.0112,0.0183,0.9113 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8132 + /* index 1 -- Kodak DC20 and DC25 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8133 + { 2.25,0.75,-1.75,-0.25,-0.25,0.75,0.75,-0.25,-0.25,-1.75,0.75,2.25 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8134 + /* index 2 -- Logitech Fotoman Pixtura */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8135 + { 1.893,-0.418,-0.476,-0.495,1.773,-0.278,-1.017,-0.655,2.672 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8136 + /* index 3 -- Nikon E880, E900, and E990 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8137 + { -1.936280, 1.800443, -1.448486, 2.584324,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8138 + 1.405365, -0.524955, -0.289090, 0.408680,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8139 + -1.204965, 1.082304, 2.941367, -1.818705 }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8140 + };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8141 + int i, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8142 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8143 + for (raw_color = i=0; i < 3; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8144 + FORCC rgb_cam[i][c] = table[index][i*colors+c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8145 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8146 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8147 +short CLASS guess_byte_order (int words)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8148 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8149 + uchar test[4][2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8150 + int t=2, msb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8151 + double diff, sum[2] = {0,0};
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8152 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8153 + fread (test[0], 2, 2, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8154 + for (words-=2; words--; ) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8155 + fread (test[t], 2, 1, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8156 + for (msb=0; msb < 2; msb++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8157 + diff = (test[t^2][msb] << 8 | test[t^2][!msb])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8158 + - (test[t ][msb] << 8 | test[t ][!msb]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8159 + sum[msb] += diff*diff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8160 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8161 + t = (t+1) & 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8162 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8163 + return sum[0] < sum[1] ? 0x4d4d : 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8164 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8165 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8166 +float CLASS find_green (int bps, int bite, int off0, int off1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8167 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8168 + UINT64 bitbuf=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8169 + int vbits, col, i, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8170 + ushort img[2][2064];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8171 + double sum[]={0,0};
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8172 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8173 + FORC(2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8174 + fseek (ifp, c ? off1:off0, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8175 + for (vbits=col=0; col < width; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8176 + for (vbits -= bps; vbits < 0; vbits += bite) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8177 + bitbuf <<= bite;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8178 + for (i=0; i < bite; i+=8)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8179 + bitbuf |= (unsigned) (fgetc(ifp) << i);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8180 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8181 + img[c][col] = bitbuf << (64-bps-vbits) >> (64-bps);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8182 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8183 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8184 + FORC(width-1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8185 + sum[ c & 1] += ABS(img[0][c]-img[1][c+1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8186 + sum[~c & 1] += ABS(img[1][c]-img[0][c+1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8187 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8188 + return 100 * log(sum[0]/sum[1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8189 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8190 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8191 +/*
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8192 + Identify which camera created this file, and set global variables
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8193 + accordingly.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8194 + */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8195 +void CLASS identify()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8196 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8197 + static const short pana[][6] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8198 + { 3130, 1743, 4, 0, -6, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8199 + { 3130, 2055, 4, 0, -6, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8200 + { 3130, 2319, 4, 0, -6, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8201 + { 3170, 2103, 18, 0,-42, 20 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8202 + { 3170, 2367, 18, 13,-42,-21 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8203 + { 3177, 2367, 0, 0, -1, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8204 + { 3304, 2458, 0, 0, -1, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8205 + { 3330, 2463, 9, 0, -5, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8206 + { 3330, 2479, 9, 0,-17, 4 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8207 + { 3370, 1899, 15, 0,-44, 20 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8208 + { 3370, 2235, 15, 0,-44, 20 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8209 + { 3370, 2511, 15, 10,-44,-21 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8210 + { 3690, 2751, 3, 0, -8, -3 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8211 + { 3710, 2751, 0, 0, -3, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8212 + { 3724, 2450, 0, 0, 0, -2 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8213 + { 3770, 2487, 17, 0,-44, 19 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8214 + { 3770, 2799, 17, 15,-44,-19 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8215 + { 3880, 2170, 6, 0, -6, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8216 + { 4060, 3018, 0, 0, 0, -2 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8217 + { 4290, 2391, 3, 0, -8, -1 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8218 + { 4330, 2439, 17, 15,-44,-19 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8219 + { 4508, 2962, 0, 0, -3, -4 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8220 + { 4508, 3330, 0, 0, -3, -6 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8221 + };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8222 + static const ushort canon[][11] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8223 + { 1944, 1416, 0, 0, 48, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8224 + { 2144, 1560, 4, 8, 52, 2, 0, 0, 0, 25 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8225 + { 2224, 1456, 48, 6, 0, 2 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8226 + { 2376, 1728, 12, 6, 52, 2 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8227 + { 2672, 1968, 12, 6, 44, 2 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8228 + { 3152, 2068, 64, 12, 0, 0, 16 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8229 + { 3160, 2344, 44, 12, 4, 4 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8230 + { 3344, 2484, 4, 6, 52, 6 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8231 + { 3516, 2328, 42, 14, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8232 + { 3596, 2360, 74, 12, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8233 + { 3744, 2784, 52, 12, 8, 12 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8234 + { 3944, 2622, 30, 18, 6, 2 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8235 + { 3948, 2622, 42, 18, 0, 2 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8236 + { 3984, 2622, 76, 20, 0, 2, 14 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8237 + { 4104, 3048, 48, 12, 24, 12 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8238 + { 4116, 2178, 4, 2, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8239 + { 4152, 2772, 192, 12, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8240 + { 4160, 3124, 104, 11, 8, 65 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8241 + { 4176, 3062, 96, 17, 8, 0, 0, 16, 0, 7, 0x49 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8242 + { 4192, 3062, 96, 17, 24, 0, 0, 16, 0, 0, 0x49 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8243 + { 4312, 2876, 22, 18, 0, 2 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8244 + { 4352, 2874, 62, 18, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8245 + { 4476, 2954, 90, 34, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8246 + { 4480, 3348, 12, 10, 36, 12, 0, 0, 0, 18, 0x49 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8247 + { 4480, 3366, 80, 50, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8248 + { 4496, 3366, 80, 50, 12, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8249 + { 4768, 3516, 96, 16, 0, 0, 0, 16 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8250 + { 4832, 3204, 62, 26, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8251 + { 4832, 3228, 62, 51, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8252 + { 5108, 3349, 98, 13, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8253 + { 5120, 3318, 142, 45, 62, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8254 + { 5280, 3528, 72, 52, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8255 + { 5344, 3516, 142, 51, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8256 + { 5344, 3584, 126,100, 0, 2 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8257 + { 5360, 3516, 158, 51, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8258 + { 5568, 3708, 72, 38, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8259 + { 5632, 3710, 96, 17, 0, 0, 0, 16, 0, 0, 0x49 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8260 + { 5712, 3774, 62, 20, 10, 2 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8261 + { 5792, 3804, 158, 51, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8262 + { 5920, 3950, 122, 80, 2, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8263 + { 6096, 4056, 72, 34, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8264 + { 6288, 4056, 264, 34, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8265 + { 8896, 5920, 160, 64, 0, 0 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8266 + };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8267 + static const struct {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8268 + ushort id;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8269 + char model[20];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8270 + } unique[] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8271 + { 0x168, "EOS 10D" }, { 0x001, "EOS-1D" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8272 + { 0x175, "EOS 20D" }, { 0x174, "EOS-1D Mark II" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8273 + { 0x234, "EOS 30D" }, { 0x232, "EOS-1D Mark II N" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8274 + { 0x190, "EOS 40D" }, { 0x169, "EOS-1D Mark III" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8275 + { 0x261, "EOS 50D" }, { 0x281, "EOS-1D Mark IV" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8276 + { 0x287, "EOS 60D" }, { 0x167, "EOS-1DS" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8277 + { 0x325, "EOS 70D" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8278 + { 0x350, "EOS 80D" }, { 0x328, "EOS-1D X Mark II" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8279 + { 0x170, "EOS 300D" }, { 0x188, "EOS-1Ds Mark II" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8280 + { 0x176, "EOS 450D" }, { 0x215, "EOS-1Ds Mark III" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8281 + { 0x189, "EOS 350D" }, { 0x324, "EOS-1D C" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8282 + { 0x236, "EOS 400D" }, { 0x269, "EOS-1D X" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8283 + { 0x252, "EOS 500D" }, { 0x213, "EOS 5D" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8284 + { 0x270, "EOS 550D" }, { 0x218, "EOS 5D Mark II" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8285 + { 0x286, "EOS 600D" }, { 0x285, "EOS 5D Mark III" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8286 + { 0x301, "EOS 650D" }, { 0x302, "EOS 6D" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8287 + { 0x326, "EOS 700D" }, { 0x250, "EOS 7D" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8288 + { 0x393, "EOS 750D" }, { 0x289, "EOS 7D Mark II" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8289 + { 0x347, "EOS 760D" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8290 + { 0x254, "EOS 1000D" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8291 + { 0x288, "EOS 1100D" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8292 + { 0x327, "EOS 1200D" }, { 0x382, "Canon EOS 5DS" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8293 + { 0x404, "EOS 1300D" }, { 0x401, "Canon EOS 5DS R" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8294 + { 0x346, "EOS 100D" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8295 + }, sonique[] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8296 + { 0x002, "DSC-R1" }, { 0x100, "DSLR-A100" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8297 + { 0x101, "DSLR-A900" }, { 0x102, "DSLR-A700" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8298 + { 0x103, "DSLR-A200" }, { 0x104, "DSLR-A350" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8299 + { 0x105, "DSLR-A300" }, { 0x108, "DSLR-A330" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8300 + { 0x109, "DSLR-A230" }, { 0x10a, "DSLR-A290" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8301 + { 0x10d, "DSLR-A850" }, { 0x111, "DSLR-A550" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8302 + { 0x112, "DSLR-A500" }, { 0x113, "DSLR-A450" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8303 + { 0x116, "NEX-5" }, { 0x117, "NEX-3" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8304 + { 0x118, "SLT-A33" }, { 0x119, "SLT-A55V" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8305 + { 0x11a, "DSLR-A560" }, { 0x11b, "DSLR-A580" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8306 + { 0x11c, "NEX-C3" }, { 0x11d, "SLT-A35" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8307 + { 0x11e, "SLT-A65V" }, { 0x11f, "SLT-A77V" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8308 + { 0x120, "NEX-5N" }, { 0x121, "NEX-7" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8309 + { 0x123, "SLT-A37" }, { 0x124, "SLT-A57" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8310 + { 0x125, "NEX-F3" }, { 0x126, "SLT-A99V" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8311 + { 0x127, "NEX-6" }, { 0x128, "NEX-5R" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8312 + { 0x129, "DSC-RX100" }, { 0x12a, "DSC-RX1" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8313 + { 0x12e, "ILCE-3000" }, { 0x12f, "SLT-A58" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8314 + { 0x131, "NEX-3N" }, { 0x132, "ILCE-7" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8315 + { 0x133, "NEX-5T" }, { 0x134, "DSC-RX100M2" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8316 + { 0x135, "DSC-RX10" }, { 0x136, "DSC-RX1R" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8317 + { 0x137, "ILCE-7R" }, { 0x138, "ILCE-6000" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8318 + { 0x139, "ILCE-5000" }, { 0x13d, "DSC-RX100M3" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8319 + { 0x13e, "ILCE-7S" }, { 0x13f, "ILCA-77M2" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8320 + { 0x153, "ILCE-5100" }, { 0x154, "ILCE-7M2" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8321 + { 0x155, "DSC-RX100M4" },{ 0x156, "DSC-RX10M2" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8322 + { 0x158, "DSC-RX1RM2" }, { 0x15a, "ILCE-QX1" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8323 + { 0x15b, "ILCE-7RM2" }, { 0x15e, "ILCE-7SM2" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8324 + { 0x161, "ILCA-68" }, { 0x165, "ILCE-6300" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8325 + };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8326 + static const struct {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8327 + unsigned fsize;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8328 + ushort rw, rh;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8329 + uchar lm, tm, rm, bm, lf, cf, max, flags;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8330 + char make[10], model[20];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8331 + ushort offset;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8332 + } table[] = {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8333 + { 786432,1024, 768, 0, 0, 0, 0, 0,0x94,0,0,"AVT","F-080C" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8334 + { 1447680,1392,1040, 0, 0, 0, 0, 0,0x94,0,0,"AVT","F-145C" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8335 + { 1920000,1600,1200, 0, 0, 0, 0, 0,0x94,0,0,"AVT","F-201C" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8336 + { 5067304,2588,1958, 0, 0, 0, 0, 0,0x94,0,0,"AVT","F-510C" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8337 + { 5067316,2588,1958, 0, 0, 0, 0, 0,0x94,0,0,"AVT","F-510C",12 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8338 + { 10134608,2588,1958, 0, 0, 0, 0, 9,0x94,0,0,"AVT","F-510C" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8339 + { 10134620,2588,1958, 0, 0, 0, 0, 9,0x94,0,0,"AVT","F-510C",12 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8340 + { 16157136,3272,2469, 0, 0, 0, 0, 9,0x94,0,0,"AVT","F-810C" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8341 + { 15980544,3264,2448, 0, 0, 0, 0, 8,0x61,0,1,"AgfaPhoto","DC-833m" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8342 + { 9631728,2532,1902, 0, 0, 0, 0,96,0x61,0,0,"Alcatel","5035D" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8343 + { 2868726,1384,1036, 0, 0, 0, 0,64,0x49,0,8,"Baumer","TXG14",1078 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8344 + { 5298000,2400,1766,12,12,44, 2,40,0x94,0,2,"Canon","PowerShot SD300" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8345 + { 6553440,2664,1968, 4, 4,44, 4,40,0x94,0,2,"Canon","PowerShot A460" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8346 + { 6573120,2672,1968,12, 8,44, 0,40,0x94,0,2,"Canon","PowerShot A610" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8347 + { 6653280,2672,1992,10, 6,42, 2,40,0x94,0,2,"Canon","PowerShot A530" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8348 + { 7710960,2888,2136,44, 8, 4, 0,40,0x94,0,2,"Canon","PowerShot S3 IS" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8349 + { 9219600,3152,2340,36,12, 4, 0,40,0x94,0,2,"Canon","PowerShot A620" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8350 + { 9243240,3152,2346,12, 7,44,13,40,0x49,0,2,"Canon","PowerShot A470" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8351 + { 10341600,3336,2480, 6, 5,32, 3,40,0x94,0,2,"Canon","PowerShot A720 IS" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8352 + { 10383120,3344,2484,12, 6,44, 6,40,0x94,0,2,"Canon","PowerShot A630" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8353 + { 12945240,3736,2772,12, 6,52, 6,40,0x94,0,2,"Canon","PowerShot A640" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8354 + { 15636240,4104,3048,48,12,24,12,40,0x94,0,2,"Canon","PowerShot A650" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8355 + { 15467760,3720,2772, 6,12,30, 0,40,0x94,0,2,"Canon","PowerShot SX110 IS" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8356 + { 15534576,3728,2778,12, 9,44, 9,40,0x94,0,2,"Canon","PowerShot SX120 IS" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8357 + { 18653760,4080,3048,24,12,24,12,40,0x94,0,2,"Canon","PowerShot SX20 IS" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8358 + { 19131120,4168,3060,92,16, 4, 1,40,0x94,0,2,"Canon","PowerShot SX220 HS" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8359 + { 21936096,4464,3276,25,10,73,12,40,0x16,0,2,"Canon","PowerShot SX30 IS" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8360 + { 24724224,4704,3504, 8,16,56, 8,40,0x94,0,2,"Canon","PowerShot A3300 IS" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8361 + { 30858240,5248,3920, 8,16,56,16,40,0x94,0,2,"Canon","IXUS 160" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8362 + { 1976352,1632,1211, 0, 2, 0, 1, 0,0x94,0,1,"Casio","QV-2000UX" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8363 + { 3217760,2080,1547, 0, 0,10, 1, 0,0x94,0,1,"Casio","QV-3*00EX" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8364 + { 6218368,2585,1924, 0, 0, 9, 0, 0,0x94,0,1,"Casio","QV-5700" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8365 + { 7816704,2867,2181, 0, 0,34,36, 0,0x16,0,1,"Casio","EX-Z60" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8366 + { 2937856,1621,1208, 0, 0, 1, 0, 0,0x94,7,13,"Casio","EX-S20" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8367 + { 4948608,2090,1578, 0, 0,32,34, 0,0x94,7,1,"Casio","EX-S100" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8368 + { 6054400,2346,1720, 2, 0,32, 0, 0,0x94,7,1,"Casio","QV-R41" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8369 + { 7426656,2568,1928, 0, 0, 0, 0, 0,0x94,0,1,"Casio","EX-P505" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8370 + { 7530816,2602,1929, 0, 0,22, 0, 0,0x94,7,1,"Casio","QV-R51" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8371 + { 7542528,2602,1932, 0, 0,32, 0, 0,0x94,7,1,"Casio","EX-Z50" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8372 + { 7562048,2602,1937, 0, 0,25, 0, 0,0x16,7,1,"Casio","EX-Z500" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8373 + { 7753344,2602,1986, 0, 0,32,26, 0,0x94,7,1,"Casio","EX-Z55" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8374 + { 9313536,2858,2172, 0, 0,14,30, 0,0x94,7,1,"Casio","EX-P600" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8375 + { 10834368,3114,2319, 0, 0,27, 0, 0,0x94,0,1,"Casio","EX-Z750" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8376 + { 10843712,3114,2321, 0, 0,25, 0, 0,0x94,0,1,"Casio","EX-Z75" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8377 + { 10979200,3114,2350, 0, 0,32,32, 0,0x94,7,1,"Casio","EX-P700" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8378 + { 12310144,3285,2498, 0, 0, 6,30, 0,0x94,0,1,"Casio","EX-Z850" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8379 + { 12489984,3328,2502, 0, 0,47,35, 0,0x94,0,1,"Casio","EX-Z8" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8380 + { 15499264,3754,2752, 0, 0,82, 0, 0,0x94,0,1,"Casio","EX-Z1050" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8381 + { 18702336,4096,3044, 0, 0,24, 0,80,0x94,7,1,"Casio","EX-ZR100" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8382 + { 7684000,2260,1700, 0, 0, 0, 0,13,0x94,0,1,"Casio","QV-4000" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8383 + { 787456,1024, 769, 0, 1, 0, 0, 0,0x49,0,0,"Creative","PC-CAM 600" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8384 + { 28829184,4384,3288, 0, 0, 0, 0,36,0x61,0,0,"DJI" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8385 + { 15151104,4608,3288, 0, 0, 0, 0, 0,0x94,0,0,"Matrix" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8386 + { 3840000,1600,1200, 0, 0, 0, 0,65,0x49,0,0,"Foculus","531C" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8387 + { 307200, 640, 480, 0, 0, 0, 0, 0,0x94,0,0,"Generic" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8388 + { 62464, 256, 244, 1, 1, 6, 1, 0,0x8d,0,0,"Kodak","DC20" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8389 + { 124928, 512, 244, 1, 1,10, 1, 0,0x8d,0,0,"Kodak","DC20" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8390 + { 1652736,1536,1076, 0,52, 0, 0, 0,0x61,0,0,"Kodak","DCS200" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8391 + { 4159302,2338,1779, 1,33, 1, 2, 0,0x94,0,0,"Kodak","C330" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8392 + { 4162462,2338,1779, 1,33, 1, 2, 0,0x94,0,0,"Kodak","C330",3160 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8393 + { 2247168,1232, 912, 0, 0,16, 0, 0,0x00,0,0,"Kodak","C330" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8394 + { 3370752,1232, 912, 0, 0,16, 0, 0,0x00,0,0,"Kodak","C330" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8395 + { 6163328,2864,2152, 0, 0, 0, 0, 0,0x94,0,0,"Kodak","C603" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8396 + { 6166488,2864,2152, 0, 0, 0, 0, 0,0x94,0,0,"Kodak","C603",3160 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8397 + { 460800, 640, 480, 0, 0, 0, 0, 0,0x00,0,0,"Kodak","C603" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8398 + { 9116448,2848,2134, 0, 0, 0, 0, 0,0x00,0,0,"Kodak","C603" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8399 + { 12241200,4040,3030, 2, 0, 0,13, 0,0x49,0,0,"Kodak","12MP" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8400 + { 12272756,4040,3030, 2, 0, 0,13, 0,0x49,0,0,"Kodak","12MP",31556 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8401 + { 18000000,4000,3000, 0, 0, 0, 0, 0,0x00,0,0,"Kodak","12MP" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8402 + { 614400, 640, 480, 0, 3, 0, 0,64,0x94,0,0,"Kodak","KAI-0340" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8403 + { 15360000,3200,2400, 0, 0, 0, 0,96,0x16,0,0,"Lenovo","A820" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8404 + { 3884928,1608,1207, 0, 0, 0, 0,96,0x16,0,0,"Micron","2010",3212 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8405 + { 1138688,1534, 986, 0, 0, 0, 0, 0,0x61,0,0,"Minolta","RD175",513 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8406 + { 1581060,1305, 969, 0, 0,18, 6, 6,0x1e,4,1,"Nikon","E900" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8407 + { 2465792,1638,1204, 0, 0,22, 1, 6,0x4b,5,1,"Nikon","E950" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8408 + { 2940928,1616,1213, 0, 0, 0, 7,30,0x94,0,1,"Nikon","E2100" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8409 + { 4771840,2064,1541, 0, 0, 0, 1, 6,0xe1,0,1,"Nikon","E990" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8410 + { 4775936,2064,1542, 0, 0, 0, 0,30,0x94,0,1,"Nikon","E3700" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8411 + { 5865472,2288,1709, 0, 0, 0, 1, 6,0xb4,0,1,"Nikon","E4500" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8412 + { 5869568,2288,1710, 0, 0, 0, 0, 6,0x16,0,1,"Nikon","E4300" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8413 + { 7438336,2576,1925, 0, 0, 0, 1, 6,0xb4,0,1,"Nikon","E5000" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8414 + { 8998912,2832,2118, 0, 0, 0, 0,30,0x94,7,1,"Nikon","COOLPIX S6" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8415 + { 5939200,2304,1718, 0, 0, 0, 0,30,0x16,0,0,"Olympus","C770UZ" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8416 + { 3178560,2064,1540, 0, 0, 0, 0, 0,0x94,0,1,"Pentax","Optio S" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8417 + { 4841984,2090,1544, 0, 0,22, 0, 0,0x94,7,1,"Pentax","Optio S" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8418 + { 6114240,2346,1737, 0, 0,22, 0, 0,0x94,7,1,"Pentax","Optio S4" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8419 + { 10702848,3072,2322, 0, 0, 0,21,30,0x94,0,1,"Pentax","Optio 750Z" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8420 + { 4147200,1920,1080, 0, 0, 0, 0, 0,0x49,0,0,"Photron","BC2-HD" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8421 + { 4151666,1920,1080, 0, 0, 0, 0, 0,0x49,0,0,"Photron","BC2-HD",8 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8422 + { 13248000,2208,3000, 0, 0, 0, 0,13,0x61,0,0,"Pixelink","A782" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8423 + { 6291456,2048,1536, 0, 0, 0, 0,96,0x61,0,0,"RoverShot","3320AF" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8424 + { 311696, 644, 484, 0, 0, 0, 0, 0,0x16,0,8,"ST Micro","STV680 VGA" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8425 + { 16098048,3288,2448, 0, 0,24, 0, 9,0x94,0,1,"Samsung","S85" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8426 + { 16215552,3312,2448, 0, 0,48, 0, 9,0x94,0,1,"Samsung","S85" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8427 + { 20487168,3648,2808, 0, 0, 0, 0,13,0x94,5,1,"Samsung","WB550" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8428 + { 24000000,4000,3000, 0, 0, 0, 0,13,0x94,5,1,"Samsung","WB550" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8429 + { 12582980,3072,2048, 0, 0, 0, 0,33,0x61,0,0,"Sinar","",68 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8430 + { 33292868,4080,4080, 0, 0, 0, 0,33,0x61,0,0,"Sinar","",68 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8431 + { 44390468,4080,5440, 0, 0, 0, 0,33,0x61,0,0,"Sinar","",68 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8432 + { 1409024,1376,1024, 0, 0, 1, 0, 0,0x49,0,0,"Sony","XCD-SX910CR" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8433 + { 2818048,1376,1024, 0, 0, 1, 0,97,0x49,0,0,"Sony","XCD-SX910CR" },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8434 + };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8435 + static const char *corp[] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8436 + { "AgfaPhoto", "Canon", "Casio", "Epson", "Fujifilm",
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8437 + "Mamiya", "Minolta", "Motorola", "Kodak", "Konica", "Leica",
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8438 + "Nikon", "Nokia", "Olympus", "Ricoh", "Pentax", "Phase One",
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8439 + "Samsung", "Sigma", "Sinar", "Sony" };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8440 + char head[32], *cp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8441 + int hlen, flen, fsize, zero_fsize=1, i, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8442 + struct jhead jh;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8443 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8444 + tiff_flip = flip = filters = UINT_MAX; /* unknown */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8445 + raw_height = raw_width = fuji_width = fuji_layout = cr2_slice[0] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8446 + maximum = height = width = top_margin = left_margin = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8447 + cdesc[0] = desc[0] = artist[0] = make[0] = model[0] = model2[0] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8448 + iso_speed = shutter = aperture = focal_len = unique_id = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8449 + tiff_nifds = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8450 + memset (tiff_ifd, 0, sizeof tiff_ifd);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8451 + memset (gpsdata, 0, sizeof gpsdata);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8452 + memset (cblack, 0, sizeof cblack);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8453 + memset (white, 0, sizeof white);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8454 + memset (mask, 0, sizeof mask);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8455 + thumb_offset = thumb_length = thumb_width = thumb_height = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8456 + load_raw = thumb_load_raw = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8457 + write_thumb = &CLASS jpeg_thumb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8458 + data_offset = meta_offset = meta_length = tiff_bps = tiff_compress = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8459 + kodak_cbpp = zero_after_ff = dng_version = load_flags = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8460 + timestamp = shot_order = tiff_samples = black = is_foveon = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8461 + mix_green = profile_length = data_error = zero_is_bad = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8462 + pixel_aspect = is_raw = raw_color = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8463 + tile_width = tile_length = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8464 + for (i=0; i < 4; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8465 + cam_mul[i] = i == 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8466 + pre_mul[i] = i < 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8467 + FORC3 cmatrix[c][i] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8468 + FORC3 rgb_cam[c][i] = c == i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8469 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8470 + colors = 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8471 + for (i=0; i < 0x10000; i++) curve[i] = i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8472 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8473 + order = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8474 + hlen = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8475 + fseek (ifp, 0, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8476 + fread (head, 1, 32, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8477 + fseek (ifp, 0, SEEK_END);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8478 + flen = fsize = ftell(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8479 + if ((cp = (char *) memmem (head, 32, "MMMM", 4)) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8480 + (cp = (char *) memmem (head, 32, "IIII", 4))) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8481 + parse_phase_one (cp-head);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8482 + if (cp-head && parse_tiff(0)) apply_tiff();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8483 + } else if (order == 0x4949 || order == 0x4d4d) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8484 + if (!memcmp (head+6,"HEAPCCDR",8)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8485 + data_offset = hlen;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8486 + parse_ciff (hlen, flen-hlen, 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8487 + load_raw = &CLASS canon_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8488 + } else if (parse_tiff(0)) apply_tiff();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8489 + } else if (!memcmp (head,"\xff\xd8\xff\xe1",4) &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8490 + !memcmp (head+6,"Exif",4)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8491 + fseek (ifp, 4, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8492 + data_offset = 4 + get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8493 + fseek (ifp, data_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8494 + if (fgetc(ifp) != 0xff)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8495 + parse_tiff(12);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8496 + thumb_offset = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8497 + } else if (!memcmp (head+25,"ARECOYK",7)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8498 + strcpy (make, "Contax");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8499 + strcpy (model,"N Digital");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8500 + fseek (ifp, 33, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8501 + get_timestamp(1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8502 + fseek (ifp, 60, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8503 + FORC4 cam_mul[c ^ (c >> 1)] = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8504 + } else if (!strcmp (head, "PXN")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8505 + strcpy (make, "Logitech");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8506 + strcpy (model,"Fotoman Pixtura");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8507 + } else if (!strcmp (head, "qktk")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8508 + strcpy (make, "Apple");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8509 + strcpy (model,"QuickTake 100");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8510 + load_raw = &CLASS quicktake_100_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8511 + } else if (!strcmp (head, "qktn")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8512 + strcpy (make, "Apple");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8513 + strcpy (model,"QuickTake 150");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8514 + load_raw = &CLASS kodak_radc_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8515 + } else if (!memcmp (head,"FUJIFILM",8)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8516 + fseek (ifp, 84, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8517 + thumb_offset = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8518 + thumb_length = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8519 + fseek (ifp, 92, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8520 + parse_fuji (get4());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8521 + if (thumb_offset > 120) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8522 + fseek (ifp, 120, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8523 + is_raw += (i = get4()) && 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8524 + if (is_raw == 2 && shot_select)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8525 + parse_fuji (i);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8526 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8527 + load_raw = &CLASS unpacked_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8528 + fseek (ifp, 100+28*(shot_select > 0), SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8529 + parse_tiff (data_offset = get4());
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8530 + parse_tiff (thumb_offset+12);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8531 + apply_tiff();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8532 + } else if (!memcmp (head,"RIFF",4)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8533 + fseek (ifp, 0, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8534 + parse_riff();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8535 + } else if (!memcmp (head+4,"ftypqt ",9)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8536 + fseek (ifp, 0, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8537 + parse_qt (fsize);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8538 + is_raw = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8539 + } else if (!memcmp (head,"\0\001\0\001\0@",6)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8540 + fseek (ifp, 6, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8541 + fread (make, 1, 8, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8542 + fread (model, 1, 8, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8543 + fread (model2, 1, 16, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8544 + data_offset = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8545 + get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8546 + raw_width = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8547 + raw_height = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8548 + load_raw = &CLASS nokia_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8549 + filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8550 + } else if (!memcmp (head,"NOKIARAW",8)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8551 + strcpy (make, "NOKIA");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8552 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8553 + fseek (ifp, 300, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8554 + data_offset = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8555 + i = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8556 + width = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8557 + height = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8558 + switch (tiff_bps = i*8 / (width * height)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8559 + case 8: load_raw = &CLASS eight_bit_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8560 + case 10: load_raw = &CLASS nokia_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8561 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8562 + raw_height = height + (top_margin = i / (width * tiff_bps/8) - height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8563 + mask[0][3] = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8564 + filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8565 + } else if (!memcmp (head,"ARRI",4)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8566 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8567 + fseek (ifp, 20, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8568 + width = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8569 + height = get4();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8570 + strcpy (make, "ARRI");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8571 + fseek (ifp, 668, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8572 + fread (model, 1, 64, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8573 + data_offset = 4096;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8574 + load_raw = &CLASS packed_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8575 + load_flags = 88;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8576 + filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8577 + } else if (!memcmp (head,"XPDS",4)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8578 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8579 + fseek (ifp, 0x800, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8580 + fread (make, 1, 41, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8581 + raw_height = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8582 + raw_width = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8583 + fseek (ifp, 56, SEEK_CUR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8584 + fread (model, 1, 30, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8585 + data_offset = 0x10000;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8586 + load_raw = &CLASS canon_rmf_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8587 + gamma_curve (0, 12.25, 1, 1023);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8588 + } else if (!memcmp (head+4,"RED1",4)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8589 + strcpy (make, "Red");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8590 + strcpy (model,"One");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8591 + parse_redcine();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8592 + load_raw = &CLASS redcine_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8593 + gamma_curve (1/2.4, 12.92, 1, 4095);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8594 + filters = 0x49494949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8595 + } else if (!memcmp (head,"DSC-Image",9))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8596 + parse_rollei();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8597 + else if (!memcmp (head,"PWAD",4))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8598 + parse_sinar_ia();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8599 + else if (!memcmp (head,"\0MRM",4))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8600 + parse_minolta(0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8601 + else if (!memcmp (head,"FOVb",4))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8602 + parse_foveon();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8603 + else if (!memcmp (head,"CI",2))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8604 + parse_cine();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8605 + if (make[0] == 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8606 + for (zero_fsize=i=0; i < sizeof table / sizeof *table; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8607 + if (fsize == table[i].fsize) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8608 + strcpy (make, table[i].make );
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8609 + strcpy (model, table[i].model);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8610 + flip = table[i].flags >> 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8611 + zero_is_bad = table[i].flags & 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8612 + if (table[i].flags & 1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8613 + parse_external_jpeg();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8614 + data_offset = table[i].offset;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8615 + raw_width = table[i].rw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8616 + raw_height = table[i].rh;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8617 + left_margin = table[i].lm;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8618 + top_margin = table[i].tm;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8619 + width = raw_width - left_margin - table[i].rm;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8620 + height = raw_height - top_margin - table[i].bm;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8621 + filters = 0x1010101 * table[i].cf;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8622 + colors = 4 - !((filters & filters >> 1) & 0x5555);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8623 + load_flags = table[i].lf;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8624 + switch (tiff_bps = (fsize-data_offset)*8 / (raw_width*raw_height)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8625 + case 6:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8626 + load_raw = &CLASS minolta_rd175_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8627 + case 8:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8628 + load_raw = &CLASS eight_bit_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8629 + case 10: case 12:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8630 + load_flags |= 128;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8631 + load_raw = &CLASS packed_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8632 + case 16:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8633 + order = 0x4949 | 0x404 * (load_flags & 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8634 + tiff_bps -= load_flags >> 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8635 + tiff_bps -= load_flags = load_flags >> 1 & 7;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8636 + load_raw = &CLASS unpacked_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8637 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8638 + maximum = (1 << tiff_bps) - (1 << table[i].max);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8639 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8640 + if (zero_fsize) fsize = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8641 + if (make[0] == 0) parse_smal (0, flen);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8642 + if (make[0] == 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8643 + parse_jpeg(0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8644 + if (!(strncmp(model,"ov",2) && strncmp(model,"RP_OV",5)) &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8645 + !fseek (ifp, -6404096, SEEK_END) &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8646 + fread (head, 1, 32, ifp) && !strcmp(head,"BRCMn")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8647 + strcpy (make, "OmniVision");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8648 + data_offset = ftell(ifp) + 0x8000-32;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8649 + width = raw_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8650 + raw_width = 2611;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8651 + load_raw = &CLASS nokia_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8652 + filters = 0x16161616;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8653 + } else is_raw = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8654 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8655 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8656 + for (i=0; i < sizeof corp / sizeof *corp; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8657 + if (strcasestr (make, corp[i])) /* Simplify company names */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8658 + strcpy (make, corp[i]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8659 + if ((!strcmp(make,"Kodak") || !strcmp(make,"Leica")) &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8660 + ((cp = strcasestr(model," DIGITAL CAMERA")) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8661 + (cp = strstr(model,"FILE VERSION"))))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8662 + *cp = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8663 + if (!strncasecmp(model,"PENTAX",6))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8664 + strcpy (make, "Pentax");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8665 + cp = make + strlen(make); /* Remove trailing spaces */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8666 + while (*--cp == ' ') *cp = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8667 + cp = model + strlen(model);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8668 + while (*--cp == ' ') *cp = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8669 + i = strlen(make); /* Remove make from model */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8670 + if (!strncasecmp (model, make, i) && model[i++] == ' ')
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8671 + memmove (model, model+i, 64-i);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8672 + if (!strncmp (model,"FinePix ",8))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8673 + strcpy (model, model+8);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8674 + if (!strncmp (model,"Digital Camera ",15))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8675 + strcpy (model, model+15);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8676 + desc[511] = artist[63] = make[63] = model[63] = model2[63] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8677 + if (!is_raw) goto notraw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8678 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8679 + if (!height) height = raw_height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8680 + if (!width) width = raw_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8681 + if (height == 2624 && width == 3936) /* Pentax K10D and Samsung GX10 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8682 + { height = 2616; width = 3896; }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8683 + if (height == 3136 && width == 4864) /* Pentax K20D and Samsung GX20 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8684 + { height = 3124; width = 4688; filters = 0x16161616; }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8685 + if (width == 4352 && (!strcmp(model,"K-r") || !strcmp(model,"K-x")))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8686 + { width = 4309; filters = 0x16161616; }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8687 + if (width >= 4960 && !strncmp(model,"K-5",3))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8688 + { left_margin = 10; width = 4950; filters = 0x16161616; }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8689 + if (width == 4736 && !strcmp(model,"K-7"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8690 + { height = 3122; width = 4684; filters = 0x16161616; top_margin = 2; }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8691 + if (width == 6080 && !strcmp(model,"K-3"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8692 + { left_margin = 4; width = 6040; }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8693 + if (width == 7424 && !strcmp(model,"645D"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8694 + { height = 5502; width = 7328; filters = 0x61616161; top_margin = 29;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8695 + left_margin = 48; }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8696 + if (height == 3014 && width == 4096) /* Ricoh GX200 */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8697 + width = 4014;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8698 + if (dng_version) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8699 + if (filters == UINT_MAX) filters = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8700 + if (filters) is_raw *= tiff_samples;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8701 + else colors = tiff_samples;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8702 + switch (tiff_compress) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8703 + case 0:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8704 + case 1: load_raw = &CLASS packed_dng_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8705 + case 7: load_raw = &CLASS lossless_dng_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8706 + case 34892: load_raw = &CLASS lossy_dng_load_raw; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8707 + default: load_raw = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8708 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8709 + goto dng_skip;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8710 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8711 + if (!strcmp(make,"Canon") && !fsize && tiff_bps != 15) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8712 + if (!load_raw)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8713 + load_raw = &CLASS lossless_jpeg_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8714 + for (i=0; i < sizeof canon / sizeof *canon; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8715 + if (raw_width == canon[i][0] && raw_height == canon[i][1]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8716 + width = raw_width - (left_margin = canon[i][2]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8717 + height = raw_height - (top_margin = canon[i][3]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8718 + width -= canon[i][4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8719 + height -= canon[i][5];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8720 + mask[0][1] = canon[i][6];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8721 + mask[0][3] = -canon[i][7];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8722 + mask[1][1] = canon[i][8];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8723 + mask[1][3] = -canon[i][9];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8724 + if (canon[i][10]) filters = canon[i][10] * 0x01010101;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8725 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8726 + if ((unique_id | 0x20000) == 0x2720000) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8727 + left_margin = 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8728 + top_margin = 16;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8729 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8730 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8731 + for (i=0; i < sizeof unique / sizeof *unique; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8732 + if (unique_id == 0x80000000 + unique[i].id) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8733 + adobe_coeff ("Canon", unique[i].model);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8734 + if (model[4] == 'K' && strlen(model) == 8)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8735 + strcpy (model, unique[i].model);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8736 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8737 + for (i=0; i < sizeof sonique / sizeof *sonique; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8738 + if (unique_id == sonique[i].id)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8739 + strcpy (model, sonique[i].model);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8740 + if (!strcmp(make,"Nikon")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8741 + if (!load_raw)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8742 + load_raw = &CLASS packed_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8743 + if (model[0] == 'E')
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8744 + load_flags |= !data_offset << 2 | 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8745 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8746 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8747 +/* Set parameters based on camera name (for non-DNG files). */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8748 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8749 + if (!strcmp(model,"KAI-0340")
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8750 + && find_green (16, 16, 3840, 5120) < 25) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8751 + height = 480;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8752 + top_margin = filters = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8753 + strcpy (model,"C603");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8754 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8755 + if (!strcmp(make,"Sony") && raw_width > 3888)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8756 + black = 128 << (tiff_bps - 12);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8757 + if (is_foveon) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8758 + if (height*2 < width) pixel_aspect = 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8759 + if (height > width) pixel_aspect = 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8760 + filters = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8761 + simple_coeff(0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8762 + } else if (!strcmp(make,"Canon") && tiff_bps == 15) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8763 + switch (width) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8764 + case 3344: width -= 66;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8765 + case 3872: width -= 6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8766 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8767 + if (height > width) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8768 + SWAP(height,width);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8769 + SWAP(raw_height,raw_width);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8770 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8771 + if (width == 7200 && height == 3888) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8772 + raw_width = width = 6480;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8773 + raw_height = height = 4320;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8774 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8775 + filters = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8776 + tiff_samples = colors = 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8777 + load_raw = &CLASS canon_sraw_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8778 + } else if (!strcmp(model,"PowerShot 600")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8779 + height = 613;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8780 + width = 854;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8781 + raw_width = 896;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8782 + colors = 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8783 + filters = 0xe1e4e1e4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8784 + load_raw = &CLASS canon_600_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8785 + } else if (!strcmp(model,"PowerShot A5") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8786 + !strcmp(model,"PowerShot A5 Zoom")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8787 + height = 773;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8788 + width = 960;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8789 + raw_width = 992;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8790 + pixel_aspect = 256/235.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8791 + filters = 0x1e4e1e4e;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8792 + goto canon_a5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8793 + } else if (!strcmp(model,"PowerShot A50")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8794 + height = 968;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8795 + width = 1290;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8796 + raw_width = 1320;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8797 + filters = 0x1b4e4b1e;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8798 + goto canon_a5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8799 + } else if (!strcmp(model,"PowerShot Pro70")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8800 + height = 1024;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8801 + width = 1552;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8802 + filters = 0x1e4b4e1b;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8803 +canon_a5:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8804 + colors = 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8805 + tiff_bps = 10;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8806 + load_raw = &CLASS packed_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8807 + load_flags = 40;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8808 + } else if (!strcmp(model,"PowerShot Pro90 IS") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8809 + !strcmp(model,"PowerShot G1")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8810 + colors = 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8811 + filters = 0xb4b4b4b4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8812 + } else if (!strcmp(model,"PowerShot A610")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8813 + if (canon_s2is()) strcpy (model+10, "S2 IS");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8814 + } else if (!strcmp(model,"PowerShot SX220 HS")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8815 + mask[1][3] = -4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8816 + } else if (!strcmp(model,"EOS D2000C")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8817 + filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8818 + black = curve[200];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8819 + } else if (!strcmp(model,"D1")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8820 + cam_mul[0] *= 256/527.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8821 + cam_mul[2] *= 256/317.0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8822 + } else if (!strcmp(model,"D1X")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8823 + width -= 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8824 + pixel_aspect = 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8825 + } else if (!strcmp(model,"D40X") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8826 + !strcmp(model,"D60") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8827 + !strcmp(model,"D80") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8828 + !strcmp(model,"D3000")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8829 + height -= 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8830 + width -= 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8831 + } else if (!strcmp(model,"D3") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8832 + !strcmp(model,"D3S") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8833 + !strcmp(model,"D700")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8834 + width -= 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8835 + left_margin = 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8836 + } else if (!strcmp(model,"D3100")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8837 + width -= 28;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8838 + left_margin = 6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8839 + } else if (!strcmp(model,"D5000") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8840 + !strcmp(model,"D90")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8841 + width -= 42;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8842 + } else if (!strcmp(model,"D5100") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8843 + !strcmp(model,"D7000") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8844 + !strcmp(model,"COOLPIX A")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8845 + width -= 44;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8846 + } else if (!strcmp(model,"D3200") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8847 + !strncmp(model,"D6",2) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8848 + !strncmp(model,"D800",4)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8849 + width -= 46;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8850 + } else if (!strcmp(model,"D4") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8851 + !strcmp(model,"Df")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8852 + width -= 52;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8853 + left_margin = 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8854 + } else if (!strncmp(model,"D40",3) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8855 + !strncmp(model,"D50",3) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8856 + !strncmp(model,"D70",3)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8857 + width--;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8858 + } else if (!strcmp(model,"D100")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8859 + if (load_flags)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8860 + raw_width = (width += 3) + 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8861 + } else if (!strcmp(model,"D200")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8862 + left_margin = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8863 + width -= 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8864 + filters = 0x94949494;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8865 + } else if (!strncmp(model,"D2H",3)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8866 + left_margin = 6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8867 + width -= 14;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8868 + } else if (!strncmp(model,"D2X",3)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8869 + if (width == 3264) width -= 32;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8870 + else width -= 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8871 + } else if (!strncmp(model,"D300",4)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8872 + width -= 32;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8873 + } else if (!strncmp(model,"COOLPIX P",9) && raw_width != 4032) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8874 + load_flags = 24;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8875 + filters = 0x94949494;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8876 + if (model[9] == '7' && iso_speed >= 400)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8877 + black = 255;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8878 + } else if (!strncmp(model,"1 ",2)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8879 + height -= 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8880 + } else if (fsize == 1581060) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8881 + simple_coeff(3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8882 + pre_mul[0] = 1.2085;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8883 + pre_mul[1] = 1.0943;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8884 + pre_mul[3] = 1.1103;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8885 + } else if (fsize == 3178560) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8886 + cam_mul[0] *= 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8887 + cam_mul[2] *= 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8888 + } else if (fsize == 4771840) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8889 + if (!timestamp && nikon_e995())
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8890 + strcpy (model, "E995");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8891 + if (strcmp(model,"E995")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8892 + filters = 0xb4b4b4b4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8893 + simple_coeff(3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8894 + pre_mul[0] = 1.196;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8895 + pre_mul[1] = 1.246;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8896 + pre_mul[2] = 1.018;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8897 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8898 + } else if (fsize == 2940928) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8899 + if (!timestamp && !nikon_e2100())
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8900 + strcpy (model,"E2500");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8901 + if (!strcmp(model,"E2500")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8902 + height -= 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8903 + load_flags = 6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8904 + colors = 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8905 + filters = 0x4b4b4b4b;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8906 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8907 + } else if (fsize == 4775936) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8908 + if (!timestamp) nikon_3700();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8909 + if (model[0] == 'E' && atoi(model+1) < 3700)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8910 + filters = 0x49494949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8911 + if (!strcmp(model,"Optio 33WR")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8912 + flip = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8913 + filters = 0x16161616;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8914 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8915 + if (make[0] == 'O') {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8916 + i = find_green (12, 32, 1188864, 3576832);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8917 + c = find_green (12, 32, 2383920, 2387016);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8918 + if (abs(i) < abs(c)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8919 + SWAP(i,c);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8920 + load_flags = 24;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8921 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8922 + if (i < 0) filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8923 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8924 + } else if (fsize == 5869568) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8925 + if (!timestamp && minolta_z2()) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8926 + strcpy (make, "Minolta");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8927 + strcpy (model,"DiMAGE Z2");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8928 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8929 + load_flags = 6 + 24*(make[0] == 'M');
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8930 + } else if (fsize == 6291456) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8931 + fseek (ifp, 0x300000, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8932 + if ((order = guess_byte_order(0x10000)) == 0x4d4d) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8933 + height -= (top_margin = 16);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8934 + width -= (left_margin = 28);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8935 + maximum = 0xf5c0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8936 + strcpy (make, "ISG");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8937 + model[0] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8938 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8939 + } else if (!strcmp(make,"Fujifilm")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8940 + if (!strcmp(model+7,"S2Pro")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8941 + strcpy (model,"S2Pro");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8942 + height = 2144;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8943 + width = 2880;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8944 + flip = 6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8945 + } else if (load_raw != &CLASS packed_load_raw)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8946 + maximum = (is_raw == 2 && shot_select) ? 0x2f00 : 0x3e00;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8947 + top_margin = (raw_height - height) >> 2 << 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8948 + left_margin = (raw_width - width ) >> 2 << 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8949 + if (width == 2848 || width == 3664) filters = 0x16161616;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8950 + if (width == 4032 || width == 4952 || width == 6032) left_margin = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8951 + if (width == 3328 && (width -= 66)) left_margin = 34;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8952 + if (width == 4936) left_margin = 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8953 + if (!strcmp(model,"HS50EXR") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8954 + !strcmp(model,"F900EXR")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8955 + width += 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8956 + left_margin = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8957 + filters = 0x16161616;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8958 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8959 + if (fuji_layout) raw_width *= is_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8960 + if (filters == 9)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8961 + FORC(36) ((char *)xtrans)[c] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8962 + xtrans_abs[(c/6+top_margin) % 6][(c+left_margin) % 6];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8963 + } else if (!strcmp(model,"KD-400Z")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8964 + height = 1712;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8965 + width = 2312;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8966 + raw_width = 2336;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8967 + goto konica_400z;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8968 + } else if (!strcmp(model,"KD-510Z")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8969 + goto konica_510z;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8970 + } else if (!strcasecmp(make,"Minolta")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8971 + if (!load_raw && (maximum = 0xfff))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8972 + load_raw = &CLASS unpacked_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8973 + if (!strncmp(model,"DiMAGE A",8)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8974 + if (!strcmp(model,"DiMAGE A200"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8975 + filters = 0x49494949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8976 + tiff_bps = 12;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8977 + load_raw = &CLASS packed_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8978 + } else if (!strncmp(model,"ALPHA",5) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8979 + !strncmp(model,"DYNAX",5) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8980 + !strncmp(model,"MAXXUM",6)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8981 + sprintf (model+20, "DYNAX %-10s", model+6+(model[0]=='M'));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8982 + adobe_coeff (make, model+20);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8983 + load_raw = &CLASS packed_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8984 + } else if (!strncmp(model,"DiMAGE G",8)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8985 + if (model[8] == '4') {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8986 + height = 1716;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8987 + width = 2304;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8988 + } else if (model[8] == '5') {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8989 +konica_510z:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8990 + height = 1956;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8991 + width = 2607;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8992 + raw_width = 2624;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8993 + } else if (model[8] == '6') {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8994 + height = 2136;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8995 + width = 2848;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8996 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8997 + data_offset += 14;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8998 + filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
8999 +konica_400z:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9000 + load_raw = &CLASS unpacked_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9001 + maximum = 0x3df;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9002 + order = 0x4d4d;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9003 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9004 + } else if (!strcmp(model,"*ist D")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9005 + load_raw = &CLASS unpacked_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9006 + data_error = -1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9007 + } else if (!strcmp(model,"*ist DS")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9008 + height -= 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9009 + } else if (!strcmp(make,"Samsung") && raw_width == 4704) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9010 + height -= top_margin = 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9011 + width -= 2 * (left_margin = 8);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9012 + load_flags = 32;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9013 + } else if (!strcmp(make,"Samsung") && raw_height == 3714) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9014 + height -= top_margin = 18;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9015 + left_margin = raw_width - (width = 5536);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9016 + if (raw_width != 5600)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9017 + left_margin = top_margin = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9018 + filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9019 + colors = 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9020 + } else if (!strcmp(make,"Samsung") && raw_width == 5632) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9021 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9022 + height = 3694;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9023 + top_margin = 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9024 + width = 5574 - (left_margin = 32 + tiff_bps);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9025 + if (tiff_bps == 12) load_flags = 80;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9026 + } else if (!strcmp(make,"Samsung") && raw_width == 5664) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9027 + height -= top_margin = 17;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9028 + left_margin = 96;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9029 + width = 5544;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9030 + filters = 0x49494949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9031 + } else if (!strcmp(make,"Samsung") && raw_width == 6496) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9032 + filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9033 + black = 1 << (tiff_bps - 7);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9034 + } else if (!strcmp(model,"EX1")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9035 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9036 + height -= 20;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9037 + top_margin = 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9038 + if ((width -= 6) > 3682) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9039 + height -= 10;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9040 + width -= 46;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9041 + top_margin = 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9042 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9043 + } else if (!strcmp(model,"WB2000")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9044 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9045 + height -= 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9046 + top_margin = 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9047 + if ((width -= 10) > 3718) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9048 + height -= 28;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9049 + width -= 56;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9050 + top_margin = 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9051 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9052 + } else if (strstr(model,"WB550")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9053 + strcpy (model, "WB550");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9054 + } else if (!strcmp(model,"EX2F")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9055 + height = 3045;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9056 + width = 4070;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9057 + top_margin = 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9058 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9059 + filters = 0x49494949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9060 + load_raw = &CLASS unpacked_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9061 + } else if (!strcmp(model,"STV680 VGA")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9062 + black = 16;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9063 + } else if (!strcmp(model,"N95")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9064 + height = raw_height - (top_margin = 2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9065 + } else if (!strcmp(model,"640x480")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9066 + gamma_curve (0.45, 4.5, 1, 255);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9067 + } else if (!strcmp(make,"Hasselblad")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9068 + if (load_raw == &CLASS lossless_jpeg_load_raw)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9069 + load_raw = &CLASS hasselblad_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9070 + if (raw_width == 7262) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9071 + height = 5444;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9072 + width = 7248;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9073 + top_margin = 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9074 + left_margin = 7;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9075 + filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9076 + } else if (raw_width == 7410 || raw_width == 8282) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9077 + height -= 84;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9078 + width -= 82;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9079 + top_margin = 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9080 + left_margin = 41;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9081 + filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9082 + } else if (raw_width == 9044) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9083 + height = 6716;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9084 + width = 8964;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9085 + top_margin = 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9086 + left_margin = 40;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9087 + black += load_flags = 256;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9088 + maximum = 0x8101;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9089 + } else if (raw_width == 4090) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9090 + strcpy (model, "V96C");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9091 + height -= (top_margin = 6);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9092 + width -= (left_margin = 3) + 7;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9093 + filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9094 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9095 + if (tiff_samples > 1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9096 + is_raw = tiff_samples+1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9097 + if (!shot_select && !half_size) filters = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9098 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9099 + } else if (!strcmp(make,"Sinar")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9100 + if (!load_raw) load_raw = &CLASS unpacked_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9101 + if (is_raw > 1 && !shot_select && !half_size) filters = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9102 + maximum = 0x3fff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9103 + } else if (!strcmp(make,"Leaf")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9104 + maximum = 0x3fff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9105 + fseek (ifp, data_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9106 + if (ljpeg_start (&jh, 1) && jh.bits == 15)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9107 + maximum = 0x1fff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9108 + if (tiff_samples > 1) filters = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9109 + if (tiff_samples > 1 || tile_length < raw_height) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9110 + load_raw = &CLASS leaf_hdr_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9111 + raw_width = tile_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9112 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9113 + if ((width | height) == 2048) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9114 + if (tiff_samples == 1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9115 + filters = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9116 + strcpy (cdesc, "RBTG");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9117 + strcpy (model, "CatchLight");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9118 + top_margin = 8; left_margin = 18; height = 2032; width = 2016;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9119 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9120 + strcpy (model, "DCB2");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9121 + top_margin = 10; left_margin = 16; height = 2028; width = 2022;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9122 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9123 + } else if (width+height == 3144+2060) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9124 + if (!model[0]) strcpy (model, "Cantare");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9125 + if (width > height) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9126 + top_margin = 6; left_margin = 32; height = 2048; width = 3072;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9127 + filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9128 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9129 + left_margin = 6; top_margin = 32; width = 2048; height = 3072;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9130 + filters = 0x16161616;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9131 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9132 + if (!cam_mul[0] || model[0] == 'V') filters = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9133 + else is_raw = tiff_samples;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9134 + } else if (width == 2116) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9135 + strcpy (model, "Valeo 6");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9136 + height -= 2 * (top_margin = 30);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9137 + width -= 2 * (left_margin = 55);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9138 + filters = 0x49494949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9139 + } else if (width == 3171) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9140 + strcpy (model, "Valeo 6");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9141 + height -= 2 * (top_margin = 24);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9142 + width -= 2 * (left_margin = 24);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9143 + filters = 0x16161616;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9144 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9145 + } else if (!strcmp(make,"Leica") || !strcmp(make,"Panasonic")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9146 + if ((flen - data_offset) / (raw_width*8/7) == raw_height)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9147 + load_raw = &CLASS panasonic_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9148 + if (!load_raw) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9149 + load_raw = &CLASS unpacked_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9150 + load_flags = 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9151 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9152 + zero_is_bad = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9153 + if ((height += 12) > raw_height) height = raw_height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9154 + for (i=0; i < sizeof pana / sizeof *pana; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9155 + if (raw_width == pana[i][0] && raw_height == pana[i][1]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9156 + left_margin = pana[i][2];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9157 + top_margin = pana[i][3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9158 + width += pana[i][4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9159 + height += pana[i][5];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9160 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9161 + filters = 0x01010101 * (uchar) "\x94\x61\x49\x16"
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9162 + [((filters-1) ^ (left_margin & 1) ^ (top_margin << 1)) & 3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9163 + } else if (!strcmp(model,"C770UZ")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9164 + height = 1718;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9165 + width = 2304;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9166 + filters = 0x16161616;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9167 + load_raw = &CLASS packed_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9168 + load_flags = 30;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9169 + } else if (!strcmp(make,"Olympus")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9170 + height += height & 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9171 + if (exif_cfa) filters = exif_cfa;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9172 + if (width == 4100) width -= 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9173 + if (width == 4080) width -= 24;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9174 + if (width == 9280) { width -= 6; height -= 6; }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9175 + if (load_raw == &CLASS unpacked_load_raw)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9176 + load_flags = 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9177 + tiff_bps = 12;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9178 + if (!strcmp(model,"E-300") ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9179 + !strcmp(model,"E-500")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9180 + width -= 20;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9181 + if (load_raw == &CLASS unpacked_load_raw) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9182 + maximum = 0xfc3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9183 + memset (cblack, 0, sizeof cblack);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9184 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9185 + } else if (!strcmp(model,"E-330")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9186 + width -= 30;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9187 + if (load_raw == &CLASS unpacked_load_raw)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9188 + maximum = 0xf79;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9189 + } else if (!strcmp(model,"SP550UZ")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9190 + thumb_length = flen - (thumb_offset = 0xa39800);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9191 + thumb_height = 480;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9192 + thumb_width = 640;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9193 + } else if (!strcmp(model,"TG-4")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9194 + width -= 16;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9195 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9196 + } else if (!strcmp(model,"N Digital")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9197 + height = 2047;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9198 + width = 3072;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9199 + filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9200 + data_offset = 0x1a00;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9201 + load_raw = &CLASS packed_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9202 + } else if (!strcmp(model,"DSC-F828")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9203 + width = 3288;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9204 + left_margin = 5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9205 + mask[1][3] = -17;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9206 + data_offset = 862144;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9207 + load_raw = &CLASS sony_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9208 + filters = 0x9c9c9c9c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9209 + colors = 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9210 + strcpy (cdesc, "RGBE");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9211 + } else if (!strcmp(model,"DSC-V3")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9212 + width = 3109;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9213 + left_margin = 59;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9214 + mask[0][1] = 9;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9215 + data_offset = 787392;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9216 + load_raw = &CLASS sony_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9217 + } else if (!strcmp(make,"Sony") && raw_width == 3984) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9218 + width = 3925;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9219 + order = 0x4d4d;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9220 + } else if (!strcmp(make,"Sony") && raw_width == 4288) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9221 + width -= 32;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9222 + } else if (!strcmp(make,"Sony") && raw_width == 4600) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9223 + if (!strcmp(model,"DSLR-A350"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9224 + height -= 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9225 + black = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9226 + } else if (!strcmp(make,"Sony") && raw_width == 4928) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9227 + if (height < 3280) width -= 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9228 + } else if (!strcmp(make,"Sony") && raw_width == 5504) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9229 + width -= height > 3664 ? 8 : 32;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9230 + if (!strncmp(model,"DSC",3))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9231 + black = 200 << (tiff_bps - 12);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9232 + } else if (!strcmp(make,"Sony") && raw_width == 6048) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9233 + width -= 24;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9234 + if (strstr(model,"RX1") || strstr(model,"A99"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9235 + width -= 6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9236 + } else if (!strcmp(make,"Sony") && raw_width == 7392) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9237 + width -= 30;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9238 + } else if (!strcmp(make,"Sony") && raw_width == 8000) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9239 + width -= 32;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9240 + if (!strncmp(model,"DSC",3)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9241 + tiff_bps = 14;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9242 + load_raw = &CLASS unpacked_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9243 + black = 512;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9244 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9245 + } else if (!strcmp(model,"DSLR-A100")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9246 + if (width == 3880) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9247 + height--;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9248 + width = ++raw_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9249 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9250 + height -= 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9251 + width -= 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9252 + order = 0x4d4d;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9253 + load_flags = 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9254 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9255 + filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9256 + } else if (!strcmp(model,"PIXL")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9257 + height -= top_margin = 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9258 + width -= left_margin = 32;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9259 + gamma_curve (0, 7, 1, 255);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9260 + } else if (!strcmp(model,"C603") || !strcmp(model,"C330")
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9261 + || !strcmp(model,"12MP")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9262 + order = 0x4949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9263 + if (filters && data_offset) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9264 + fseek (ifp, data_offset < 4096 ? 168 : 5252, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9265 + read_shorts (curve, 256);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9266 + } else gamma_curve (0, 3.875, 1, 255);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9267 + load_raw = filters ? &CLASS eight_bit_load_raw :
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9268 + strcmp(model,"C330") ? &CLASS kodak_c603_load_raw :
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9269 + &CLASS kodak_c330_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9270 + load_flags = tiff_bps > 16;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9271 + tiff_bps = 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9272 + } else if (!strncasecmp(model,"EasyShare",9)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9273 + data_offset = data_offset < 0x15000 ? 0x15000 : 0x17000;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9274 + load_raw = &CLASS packed_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9275 + } else if (!strcasecmp(make,"Kodak")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9276 + if (filters == UINT_MAX) filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9277 + if (!strncmp(model,"NC2000",6) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9278 + !strncmp(model,"EOSDCS",6) ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9279 + !strncmp(model,"DCS4",4)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9280 + width -= 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9281 + left_margin = 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9282 + if (model[6] == ' ') model[6] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9283 + if (!strcmp(model,"DCS460A")) goto bw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9284 + } else if (!strcmp(model,"DCS660M")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9285 + black = 214;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9286 + goto bw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9287 + } else if (!strcmp(model,"DCS760M")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9288 +bw: colors = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9289 + filters = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9290 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9291 + if (!strcmp(model+4,"20X"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9292 + strcpy (cdesc, "MYCY");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9293 + if (strstr(model,"DC25")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9294 + strcpy (model, "DC25");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9295 + data_offset = 15424;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9296 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9297 + if (!strncmp(model,"DC2",3)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9298 + raw_height = 2 + (height = 242);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9299 + if (flen < 100000) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9300 + raw_width = 256; width = 249;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9301 + pixel_aspect = (4.0*height) / (3.0*width);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9302 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9303 + raw_width = 512; width = 501;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9304 + pixel_aspect = (493.0*height) / (373.0*width);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9305 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9306 + top_margin = left_margin = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9307 + colors = 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9308 + filters = 0x8d8d8d8d;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9309 + simple_coeff(1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9310 + pre_mul[1] = 1.179;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9311 + pre_mul[2] = 1.209;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9312 + pre_mul[3] = 1.036;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9313 + load_raw = &CLASS eight_bit_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9314 + } else if (!strcmp(model,"40")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9315 + strcpy (model, "DC40");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9316 + height = 512;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9317 + width = 768;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9318 + data_offset = 1152;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9319 + load_raw = &CLASS kodak_radc_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9320 + tiff_bps = 12;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9321 + } else if (strstr(model,"DC50")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9322 + strcpy (model, "DC50");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9323 + height = 512;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9324 + width = 768;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9325 + data_offset = 19712;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9326 + load_raw = &CLASS kodak_radc_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9327 + } else if (strstr(model,"DC120")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9328 + strcpy (model, "DC120");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9329 + height = 976;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9330 + width = 848;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9331 + pixel_aspect = height/0.75/width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9332 + load_raw = tiff_compress == 7 ?
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9333 + &CLASS kodak_jpeg_load_raw : &CLASS kodak_dc120_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9334 + } else if (!strcmp(model,"DCS200")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9335 + thumb_height = 128;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9336 + thumb_width = 192;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9337 + thumb_offset = 6144;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9338 + thumb_misc = 360;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9339 + write_thumb = &CLASS layer_thumb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9340 + black = 17;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9341 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9342 + } else if (!strcmp(model,"Fotoman Pixtura")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9343 + height = 512;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9344 + width = 768;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9345 + data_offset = 3632;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9346 + load_raw = &CLASS kodak_radc_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9347 + filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9348 + simple_coeff(2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9349 + } else if (!strncmp(model,"QuickTake",9)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9350 + if (head[5]) strcpy (model+10, "200");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9351 + fseek (ifp, 544, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9352 + height = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9353 + width = get2();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9354 + data_offset = (get4(),get2()) == 30 ? 738:736;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9355 + if (height > width) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9356 + SWAP(height,width);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9357 + fseek (ifp, data_offset-6, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9358 + flip = ~get2() & 3 ? 5:6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9359 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9360 + filters = 0x61616161;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9361 + } else if (!strcmp(make,"Rollei") && !load_raw) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9362 + switch (raw_width) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9363 + case 1316:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9364 + height = 1030;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9365 + width = 1300;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9366 + top_margin = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9367 + left_margin = 6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9368 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9369 + case 2568:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9370 + height = 1960;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9371 + width = 2560;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9372 + top_margin = 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9373 + left_margin = 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9374 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9375 + filters = 0x16161616;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9376 + load_raw = &CLASS rollei_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9377 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9378 + if (!model[0])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9379 + sprintf (model, "%dx%d", width, height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9380 + if (filters == UINT_MAX) filters = 0x94949494;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9381 + if (thumb_offset && !thumb_height) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9382 + fseek (ifp, thumb_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9383 + if (ljpeg_start (&jh, 1)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9384 + thumb_width = jh.wide;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9385 + thumb_height = jh.high;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9386 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9387 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9388 +dng_skip:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9389 + if ((use_camera_matrix & (use_camera_wb || dng_version))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9390 + && cmatrix[0][0] > 0.125) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9391 + memcpy (rgb_cam, cmatrix, sizeof cmatrix);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9392 + raw_color = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9393 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9394 + if (raw_color) adobe_coeff (make, model);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9395 + if (load_raw == &CLASS kodak_radc_load_raw)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9396 + if (raw_color) adobe_coeff ("Apple","Quicktake");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9397 + if (fuji_width) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9398 + fuji_width = width >> !fuji_layout;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9399 + filters = fuji_width & 1 ? 0x94949494 : 0x49494949;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9400 + width = (height >> fuji_layout) + fuji_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9401 + height = width - 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9402 + pixel_aspect = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9403 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9404 + if (raw_height < height) raw_height = height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9405 + if (raw_width < width ) raw_width = width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9406 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9407 + if (!tiff_bps) tiff_bps = 12;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9408 + if (!maximum) maximum = (1 << tiff_bps) - 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9409 + if (!load_raw || height < 22 || width < 22 ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9410 + tiff_bps > 16 || tiff_samples > 6 || colors > 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9411 + is_raw = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9412 +#ifdef NO_JASPER
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9413 + if (load_raw == &CLASS redcine_load_raw) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9414 + fprintf (stderr,_("%s: You must link dcraw with %s!!\n"),
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9415 + ifname, "libjasper");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9416 + is_raw = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9417 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9418 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9419 +#ifdef NO_JPEG
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9420 + if (load_raw == &CLASS kodak_jpeg_load_raw ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9421 + load_raw == &CLASS lossy_dng_load_raw) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9422 + fprintf (stderr,_("%s: You must link dcraw with %s!!\n"),
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9423 + ifname, "libjpeg");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9424 + is_raw = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9425 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9426 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9427 + if (!cdesc[0])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9428 + strcpy (cdesc, colors == 3 ? "RGBG":"GMCY");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9429 + if (!raw_height) raw_height = height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9430 + if (!raw_width ) raw_width = width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9431 + if (filters > 999 && colors == 3)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9432 + filters |= ((filters >> 2 & 0x22222222) |
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9433 + (filters << 2 & 0x88888888)) & filters << 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9434 +notraw:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9435 + if (flip == UINT_MAX) flip = tiff_flip;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9436 + if (flip == UINT_MAX) flip = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9437 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9438 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9439 +#ifndef NO_LCMS
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9440 +void CLASS apply_profile (const char *input, const char *output)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9441 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9442 + char *prof;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9443 + cmsHPROFILE hInProfile=0, hOutProfile=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9444 + cmsHTRANSFORM hTransform;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9445 + FILE *fp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9446 + unsigned size;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9447 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9448 + if (strcmp (input, "embed"))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9449 + hInProfile = cmsOpenProfileFromFile (input, "r");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9450 + else if (profile_length) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9451 + prof = (char *) malloc (profile_length);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9452 + merror (prof, "apply_profile()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9453 + fseek (ifp, profile_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9454 + fread (prof, 1, profile_length, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9455 + hInProfile = cmsOpenProfileFromMem (prof, profile_length);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9456 + free (prof);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9457 + } else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9458 + fprintf (stderr,_("%s has no embedded profile.\n"), ifname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9459 + if (!hInProfile) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9460 + if (!output)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9461 + hOutProfile = cmsCreate_sRGBProfile();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9462 + else if ((fp = fopen (output, "rb"))) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9463 + fread (&size, 4, 1, fp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9464 + fseek (fp, 0, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9465 + oprof = (unsigned *) malloc (size = ntohl(size));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9466 + merror (oprof, "apply_profile()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9467 + fread (oprof, 1, size, fp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9468 + fclose (fp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9469 + if (!(hOutProfile = cmsOpenProfileFromMem (oprof, size))) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9470 + free (oprof);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9471 + oprof = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9472 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9473 + } else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9474 + fprintf (stderr,_("Cannot open file %s!\n"), output);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9475 + if (!hOutProfile) goto quit;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9476 + if (verbose)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9477 + fprintf (stderr,_("Applying color profile...\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9478 + hTransform = cmsCreateTransform (hInProfile, TYPE_RGBA_16,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9479 + hOutProfile, TYPE_RGBA_16, INTENT_PERCEPTUAL, 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9480 + cmsDoTransform (hTransform, image, image, width*height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9481 + raw_color = 1; /* Don't use rgb_cam with a profile */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9482 + cmsDeleteTransform (hTransform);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9483 + cmsCloseProfile (hOutProfile);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9484 +quit:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9485 + cmsCloseProfile (hInProfile);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9486 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9487 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9488 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9489 +void CLASS convert_to_rgb()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9490 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9491 + int row, col, c, i, j, k;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9492 + ushort *img;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9493 + float out[3], out_cam[3][4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9494 + double num, inverse[3][3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9495 + static const double xyzd50_srgb[3][3] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9496 + { { 0.436083, 0.385083, 0.143055 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9497 + { 0.222507, 0.716888, 0.060608 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9498 + { 0.013930, 0.097097, 0.714022 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9499 + static const double rgb_rgb[3][3] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9500 + { { 1,0,0 }, { 0,1,0 }, { 0,0,1 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9501 + static const double adobe_rgb[3][3] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9502 + { { 0.715146, 0.284856, 0.000000 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9503 + { 0.000000, 1.000000, 0.000000 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9504 + { 0.000000, 0.041166, 0.958839 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9505 + static const double wide_rgb[3][3] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9506 + { { 0.593087, 0.404710, 0.002206 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9507 + { 0.095413, 0.843149, 0.061439 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9508 + { 0.011621, 0.069091, 0.919288 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9509 + static const double prophoto_rgb[3][3] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9510 + { { 0.529317, 0.330092, 0.140588 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9511 + { 0.098368, 0.873465, 0.028169 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9512 + { 0.016879, 0.117663, 0.865457 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9513 + static const double aces_rgb[3][3] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9514 + { { 0.432996, 0.375380, 0.189317 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9515 + { 0.089427, 0.816523, 0.102989 },
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9516 + { 0.019165, 0.118150, 0.941914 } };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9517 + static const double (*out_rgb[])[3] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9518 + { rgb_rgb, adobe_rgb, wide_rgb, prophoto_rgb, xyz_rgb, aces_rgb };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9519 + static const char *name[] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9520 + { "sRGB", "Adobe RGB (1998)", "WideGamut D65", "ProPhoto D65", "XYZ", "ACES" };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9521 + static const unsigned phead[] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9522 + { 1024, 0, 0x2100000, 0x6d6e7472, 0x52474220, 0x58595a20, 0, 0, 0,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9523 + 0x61637370, 0, 0, 0x6e6f6e65, 0, 0, 0, 0, 0xf6d6, 0x10000, 0xd32d };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9524 + unsigned pbody[] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9525 + { 10, 0x63707274, 0, 36, /* cprt */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9526 + 0x64657363, 0, 40, /* desc */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9527 + 0x77747074, 0, 20, /* wtpt */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9528 + 0x626b7074, 0, 20, /* bkpt */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9529 + 0x72545243, 0, 14, /* rTRC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9530 + 0x67545243, 0, 14, /* gTRC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9531 + 0x62545243, 0, 14, /* bTRC */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9532 + 0x7258595a, 0, 20, /* rXYZ */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9533 + 0x6758595a, 0, 20, /* gXYZ */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9534 + 0x6258595a, 0, 20 }; /* bXYZ */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9535 + static const unsigned pwhite[] = { 0xf351, 0x10000, 0x116cc };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9536 + unsigned pcurve[] = { 0x63757276, 0, 1, 0x1000000 };
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9537 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9538 + gamma_curve (gamm[0], gamm[1], 0, 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9539 + memcpy (out_cam, rgb_cam, sizeof out_cam);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9540 + raw_color |= colors == 1 || document_mode ||
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9541 + output_color < 1 || output_color > 6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9542 + if (!raw_color) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9543 + oprof = (unsigned *) calloc (phead[0], 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9544 + merror (oprof, "convert_to_rgb()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9545 + memcpy (oprof, phead, sizeof phead);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9546 + if (output_color == 5) oprof[4] = oprof[5];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9547 + oprof[0] = 132 + 12*pbody[0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9548 + for (i=0; i < pbody[0]; i++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9549 + oprof[oprof[0]/4] = i ? (i > 1 ? 0x58595a20 : 0x64657363) : 0x74657874;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9550 + pbody[i*3+2] = oprof[0];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9551 + oprof[0] += (pbody[i*3+3] + 3) & -4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9552 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9553 + memcpy (oprof+32, pbody, sizeof pbody);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9554 + oprof[pbody[5]/4+2] = strlen(name[output_color-1]) + 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9555 + memcpy ((char *)oprof+pbody[8]+8, pwhite, sizeof pwhite);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9556 + pcurve[3] = (short)(256/gamm[5]+0.5) << 16;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9557 + for (i=4; i < 7; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9558 + memcpy ((char *)oprof+pbody[i*3+2], pcurve, sizeof pcurve);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9559 + pseudoinverse ((double (*)[3]) out_rgb[output_color-1], inverse, 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9560 + for (i=0; i < 3; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9561 + for (j=0; j < 3; j++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9562 + for (num = k=0; k < 3; k++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9563 + num += xyzd50_srgb[i][k] * inverse[j][k];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9564 + oprof[pbody[j*3+23]/4+i+2] = num * 0x10000 + 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9565 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9566 + for (i=0; i < phead[0]/4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9567 + oprof[i] = htonl(oprof[i]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9568 + strcpy ((char *)oprof+pbody[2]+8, "auto-generated by dcraw");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9569 + strcpy ((char *)oprof+pbody[5]+12, name[output_color-1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9570 + for (i=0; i < 3; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9571 + for (j=0; j < colors; j++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9572 + for (out_cam[i][j] = k=0; k < 3; k++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9573 + out_cam[i][j] += out_rgb[output_color-1][i][k] * rgb_cam[k][j];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9574 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9575 + if (verbose)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9576 + fprintf (stderr, raw_color ? _("Building histograms...\n") :
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9577 + _("Converting to %s colorspace...\n"), name[output_color-1]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9578 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9579 + memset (histogram, 0, sizeof histogram);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9580 + for (img=image[0], row=0; row < height; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9581 + for (col=0; col < width; col++, img+=4) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9582 + if (!raw_color) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9583 + out[0] = out[1] = out[2] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9584 + FORCC {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9585 + out[0] += out_cam[0][c] * img[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9586 + out[1] += out_cam[1][c] * img[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9587 + out[2] += out_cam[2][c] * img[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9588 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9589 + FORC3 img[c] = CLIP((int) out[c]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9590 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9591 + else if (document_mode)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9592 + img[0] = img[fcol(row,col)];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9593 + FORCC histogram[c][img[c] >> 3]++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9594 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9595 + if (colors == 4 && output_color) colors = 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9596 + if (document_mode && filters) colors = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9597 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9598 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9599 +void CLASS fuji_rotate()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9600 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9601 + int i, row, col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9602 + double step;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9603 + float r, c, fr, fc;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9604 + unsigned ur, uc;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9605 + ushort wide, high, (*img)[4], (*pix)[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9606 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9607 + if (!fuji_width) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9608 + if (verbose)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9609 + fprintf (stderr,_("Rotating image 45 degrees...\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9610 + fuji_width = (fuji_width - 1 + shrink) >> shrink;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9611 + step = sqrt(0.5);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9612 + wide = fuji_width / step;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9613 + high = (height - fuji_width) / step;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9614 + img = (ushort (*)[4]) calloc (high, wide*sizeof *img);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9615 + merror (img, "fuji_rotate()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9616 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9617 + for (row=0; row < high; row++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9618 + for (col=0; col < wide; col++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9619 + ur = r = fuji_width + (row-col)*step;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9620 + uc = c = (row+col)*step;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9621 + if (ur > height-2 || uc > width-2) continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9622 + fr = r - ur;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9623 + fc = c - uc;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9624 + pix = image + ur*width + uc;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9625 + for (i=0; i < colors; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9626 + img[row*wide+col][i] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9627 + (pix[ 0][i]*(1-fc) + pix[ 1][i]*fc) * (1-fr) +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9628 + (pix[width][i]*(1-fc) + pix[width+1][i]*fc) * fr;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9629 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9630 + free (image);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9631 + width = wide;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9632 + height = high;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9633 + image = img;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9634 + fuji_width = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9635 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9636 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9637 +void CLASS stretch()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9638 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9639 + ushort newdim, (*img)[4], *pix0, *pix1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9640 + int row, col, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9641 + double rc, frac;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9642 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9643 + if (pixel_aspect == 1) return;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9644 + if (verbose) fprintf (stderr,_("Stretching the image...\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9645 + if (pixel_aspect < 1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9646 + newdim = height / pixel_aspect + 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9647 + img = (ushort (*)[4]) calloc (width, newdim*sizeof *img);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9648 + merror (img, "stretch()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9649 + for (rc=row=0; row < newdim; row++, rc+=pixel_aspect) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9650 + frac = rc - (c = rc);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9651 + pix0 = pix1 = image[c*width];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9652 + if (c+1 < height) pix1 += width*4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9653 + for (col=0; col < width; col++, pix0+=4, pix1+=4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9654 + FORCC img[row*width+col][c] = pix0[c]*(1-frac) + pix1[c]*frac + 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9655 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9656 + height = newdim;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9657 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9658 + newdim = width * pixel_aspect + 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9659 + img = (ushort (*)[4]) calloc (height, newdim*sizeof *img);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9660 + merror (img, "stretch()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9661 + for (rc=col=0; col < newdim; col++, rc+=1/pixel_aspect) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9662 + frac = rc - (c = rc);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9663 + pix0 = pix1 = image[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9664 + if (c+1 < width) pix1 += 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9665 + for (row=0; row < height; row++, pix0+=width*4, pix1+=width*4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9666 + FORCC img[row*newdim+col][c] = pix0[c]*(1-frac) + pix1[c]*frac + 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9667 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9668 + width = newdim;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9669 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9670 + free (image);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9671 + image = img;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9672 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9673 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9674 +int CLASS flip_index (int row, int col)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9675 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9676 + if (flip & 4) SWAP(row,col);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9677 + if (flip & 2) row = iheight - 1 - row;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9678 + if (flip & 1) col = iwidth - 1 - col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9679 + return row * iwidth + col;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9680 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9681 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9682 +struct tiff_tag {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9683 + ushort tag, type;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9684 + int count;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9685 + union { char c[4]; short s[2]; int i; } val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9686 +};
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9687 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9688 +struct tiff_hdr {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9689 + ushort order, magic;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9690 + int ifd;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9691 + ushort pad, ntag;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9692 + struct tiff_tag tag[23];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9693 + int nextifd;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9694 + ushort pad2, nexif;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9695 + struct tiff_tag exif[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9696 + ushort pad3, ngps;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9697 + struct tiff_tag gpst[10];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9698 + short bps[4];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9699 + int rat[10];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9700 + unsigned gps[26];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9701 + char desc[512], make[64], model[64], soft[32], date[20], artist[64];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9702 +};
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9703 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9704 +void CLASS tiff_set (struct tiff_hdr *th, ushort *ntag,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9705 + ushort tag, ushort type, int count, int val)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9706 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9707 + struct tiff_tag *tt;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9708 + int c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9709 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9710 + tt = (struct tiff_tag *)(ntag+1) + (*ntag)++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9711 + tt->val.i = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9712 + if (type == 1 && count <= 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9713 + FORC(4) tt->val.c[c] = val >> (c << 3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9714 + else if (type == 2) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9715 + count = strnlen((char *)th + val, count-1) + 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9716 + if (count <= 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9717 + FORC(4) tt->val.c[c] = ((char *)th)[val+c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9718 + } else if (type == 3 && count <= 2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9719 + FORC(2) tt->val.s[c] = val >> (c << 4);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9720 + tt->count = count;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9721 + tt->type = type;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9722 + tt->tag = tag;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9723 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9724 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9725 +#define TOFF(ptr) ((char *)(&(ptr)) - (char *)th)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9726 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9727 +void CLASS tiff_head (struct tiff_hdr *th, int full)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9728 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9729 + int c, psize=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9730 + struct tm *t;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9731 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9732 + memset (th, 0, sizeof *th);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9733 + th->order = htonl(0x4d4d4949) >> 16;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9734 + th->magic = 42;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9735 + th->ifd = 10;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9736 + th->rat[0] = th->rat[2] = 300;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9737 + th->rat[1] = th->rat[3] = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9738 + FORC(6) th->rat[4+c] = 1000000;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9739 + th->rat[4] *= shutter;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9740 + th->rat[6] *= aperture;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9741 + th->rat[8] *= focal_len;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9742 + strncpy (th->desc, desc, 512);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9743 + strncpy (th->make, make, 64);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9744 + strncpy (th->model, model, 64);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9745 + strcpy (th->soft, "dcraw v"DCRAW_VERSION);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9746 + t = localtime (&timestamp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9747 + sprintf (th->date, "%04d:%02d:%02d %02d:%02d:%02d",
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9748 + t->tm_year+1900,t->tm_mon+1,t->tm_mday,t->tm_hour,t->tm_min,t->tm_sec);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9749 + strncpy (th->artist, artist, 64);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9750 + if (full) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9751 + tiff_set (th, &th->ntag, 254, 4, 1, 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9752 + tiff_set (th, &th->ntag, 256, 4, 1, width);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9753 + tiff_set (th, &th->ntag, 257, 4, 1, height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9754 + tiff_set (th, &th->ntag, 258, 3, colors, output_bps);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9755 + if (colors > 2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9756 + th->tag[th->ntag-1].val.i = TOFF(th->bps);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9757 + FORC4 th->bps[c] = output_bps;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9758 + tiff_set (th, &th->ntag, 259, 3, 1, 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9759 + tiff_set (th, &th->ntag, 262, 3, 1, 1 + (colors > 1));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9760 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9761 + tiff_set (th, &th->ntag, 270, 2, 512, TOFF(th->desc));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9762 + tiff_set (th, &th->ntag, 271, 2, 64, TOFF(th->make));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9763 + tiff_set (th, &th->ntag, 272, 2, 64, TOFF(th->model));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9764 + if (full) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9765 + if (oprof) psize = ntohl(oprof[0]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9766 + tiff_set (th, &th->ntag, 273, 4, 1, sizeof *th + psize);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9767 + tiff_set (th, &th->ntag, 277, 3, 1, colors);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9768 + tiff_set (th, &th->ntag, 278, 4, 1, height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9769 + tiff_set (th, &th->ntag, 279, 4, 1, height*width*colors*output_bps/8);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9770 + } else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9771 + tiff_set (th, &th->ntag, 274, 3, 1, "12435867"[flip]-'0');
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9772 + tiff_set (th, &th->ntag, 282, 5, 1, TOFF(th->rat[0]));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9773 + tiff_set (th, &th->ntag, 283, 5, 1, TOFF(th->rat[2]));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9774 + tiff_set (th, &th->ntag, 284, 3, 1, 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9775 + tiff_set (th, &th->ntag, 296, 3, 1, 2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9776 + tiff_set (th, &th->ntag, 305, 2, 32, TOFF(th->soft));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9777 + tiff_set (th, &th->ntag, 306, 2, 20, TOFF(th->date));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9778 + tiff_set (th, &th->ntag, 315, 2, 64, TOFF(th->artist));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9779 + tiff_set (th, &th->ntag, 34665, 4, 1, TOFF(th->nexif));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9780 + if (psize) tiff_set (th, &th->ntag, 34675, 7, psize, sizeof *th);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9781 + tiff_set (th, &th->nexif, 33434, 5, 1, TOFF(th->rat[4]));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9782 + tiff_set (th, &th->nexif, 33437, 5, 1, TOFF(th->rat[6]));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9783 + tiff_set (th, &th->nexif, 34855, 3, 1, iso_speed);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9784 + tiff_set (th, &th->nexif, 37386, 5, 1, TOFF(th->rat[8]));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9785 + if (gpsdata[1]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9786 + tiff_set (th, &th->ntag, 34853, 4, 1, TOFF(th->ngps));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9787 + tiff_set (th, &th->ngps, 0, 1, 4, 0x202);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9788 + tiff_set (th, &th->ngps, 1, 2, 2, gpsdata[29]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9789 + tiff_set (th, &th->ngps, 2, 5, 3, TOFF(th->gps[0]));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9790 + tiff_set (th, &th->ngps, 3, 2, 2, gpsdata[30]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9791 + tiff_set (th, &th->ngps, 4, 5, 3, TOFF(th->gps[6]));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9792 + tiff_set (th, &th->ngps, 5, 1, 1, gpsdata[31]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9793 + tiff_set (th, &th->ngps, 6, 5, 1, TOFF(th->gps[18]));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9794 + tiff_set (th, &th->ngps, 7, 5, 3, TOFF(th->gps[12]));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9795 + tiff_set (th, &th->ngps, 18, 2, 12, TOFF(th->gps[20]));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9796 + tiff_set (th, &th->ngps, 29, 2, 12, TOFF(th->gps[23]));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9797 + memcpy (th->gps, gpsdata, sizeof th->gps);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9798 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9799 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9800 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9801 +void CLASS jpeg_thumb()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9802 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9803 + char *thumb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9804 + ushort exif[5];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9805 + struct tiff_hdr th;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9806 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9807 + thumb = (char *) malloc (thumb_length);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9808 + merror (thumb, "jpeg_thumb()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9809 + fread (thumb, 1, thumb_length, ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9810 + fputc (0xff, ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9811 + fputc (0xd8, ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9812 + if (strcmp (thumb+6, "Exif")) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9813 + memcpy (exif, "\xff\xe1 Exif\0\0", 10);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9814 + exif[1] = htons (8 + sizeof th);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9815 + fwrite (exif, 1, sizeof exif, ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9816 + tiff_head (&th, 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9817 + fwrite (&th, 1, sizeof th, ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9818 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9819 + fwrite (thumb+2, 1, thumb_length-2, ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9820 + free (thumb);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9821 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9822 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9823 +void CLASS write_ppm_tiff()
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9824 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9825 + struct tiff_hdr th;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9826 + uchar *ppm;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9827 + ushort *ppm2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9828 + int c, row, col, soff, rstep, cstep;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9829 + int perc, val, total, white=0x2000;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9830 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9831 + perc = width * height * 0.01; /* 99th percentile white level */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9832 + if (fuji_width) perc /= 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9833 + if (!((highlight & ~2) || no_auto_bright))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9834 + for (white=c=0; c < colors; c++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9835 + for (val=0x2000, total=0; --val > 32; )
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9836 + if ((total += histogram[c][val]) > perc) break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9837 + if (white < val) white = val;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9838 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9839 + gamma_curve (gamm[0], gamm[1], 2, (white << 3)/bright);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9840 + iheight = height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9841 + iwidth = width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9842 + if (flip & 4) SWAP(height,width);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9843 + ppm = (uchar *) calloc (width, colors*output_bps/8);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9844 + ppm2 = (ushort *) ppm;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9845 + merror (ppm, "write_ppm_tiff()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9846 + if (output_tiff) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9847 + tiff_head (&th, 1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9848 + fwrite (&th, sizeof th, 1, ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9849 + if (oprof)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9850 + fwrite (oprof, ntohl(oprof[0]), 1, ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9851 + } else if (colors > 3)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9852 + fprintf (ofp,
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9853 + "P7\nWIDTH %d\nHEIGHT %d\nDEPTH %d\nMAXVAL %d\nTUPLTYPE %s\nENDHDR\n",
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9854 + width, height, colors, (1 << output_bps)-1, cdesc);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9855 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9856 + fprintf (ofp, "P%d\n%d %d\n%d\n",
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9857 + colors/2+5, width, height, (1 << output_bps)-1);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9858 + soff = flip_index (0, 0);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9859 + cstep = flip_index (0, 1) - soff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9860 + rstep = flip_index (1, 0) - flip_index (0, width);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9861 + for (row=0; row < height; row++, soff += rstep) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9862 + for (col=0; col < width; col++, soff += cstep)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9863 + if (output_bps == 8)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9864 + FORCC ppm [col*colors+c] = curve[image[soff][c]] >> 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9865 + else FORCC ppm2[col*colors+c] = curve[image[soff][c]];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9866 + if (output_bps == 16 && !output_tiff && htons(0x55aa) != 0x55aa)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9867 + swab (ppm2, ppm2, width*colors*2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9868 + fwrite (ppm, colors*output_bps/8, width, ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9869 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9870 + free (ppm);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9871 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9872 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9873 +int CLASS main (int argc, const char **argv)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9874 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9875 + int arg, status=0, quality, i, c;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9876 + int timestamp_only=0, thumbnail_only=0, identify_only=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9877 + int user_qual=-1, user_black=-1, user_sat=-1, user_flip=-1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9878 + int use_fuji_rotate=1, write_to_stdout=0, read_from_stdin=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9879 + const char *sp, *bpfile=0, *dark_frame=0, *write_ext;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9880 + char opm, opt, *ofname, *cp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9881 + struct utimbuf ut;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9882 +#ifndef NO_LCMS
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9883 + const char *cam_profile=0, *out_profile=0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9884 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9885 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9886 +#ifndef LOCALTIME
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9887 + putenv ((char *) "TZ=UTC");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9888 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9889 +#ifdef LOCALEDIR
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9890 + setlocale (LC_CTYPE, "");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9891 + setlocale (LC_MESSAGES, "");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9892 + bindtextdomain ("dcraw", LOCALEDIR);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9893 + textdomain ("dcraw");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9894 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9895 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9896 + if (argc == 1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9897 + printf(_("\nRaw photo decoder \"dcraw\" v%s"), DCRAW_VERSION);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9898 + printf(_("\nby Dave Coffin, dcoffin a cybercom o net\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9899 + printf(_("\nUsage: %s [OPTION]... [FILE]...\n\n"), argv[0]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9900 + puts(_("-v Print verbose messages"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9901 + puts(_("-c Write image data to standard output"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9902 + puts(_("-e Extract embedded thumbnail image"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9903 + puts(_("-i Identify files without decoding them"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9904 + puts(_("-i -v Identify files and show metadata"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9905 + puts(_("-z Change file dates to camera timestamp"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9906 + puts(_("-w Use camera white balance, if possible"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9907 + puts(_("-a Average the whole image for white balance"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9908 + puts(_("-A <x y w h> Average a grey box for white balance"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9909 + puts(_("-r <r g b g> Set custom white balance"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9910 + puts(_("+M/-M Use/don't use an embedded color matrix"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9911 + puts(_("-C <r b> Correct chromatic aberration"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9912 + puts(_("-O <file> Write output to this file"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9913 + puts(_("-P <file> Fix the dead pixels listed in this file"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9914 + puts(_("-K <file> Subtract dark frame (16-bit raw PGM)"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9915 + puts(_("-k <num> Set the darkness level"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9916 + puts(_("-S <num> Set the saturation level"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9917 + puts(_("-n <num> Set threshold for wavelet denoising"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9918 + puts(_("-H [0-9] Highlight mode (0=clip, 1=unclip, 2=blend, 3+=rebuild)"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9919 + puts(_("-t [0-7] Flip image (0=none, 3=180, 5=90CCW, 6=90CW)"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9920 + puts(_("-o [0-6] Output colorspace (raw,sRGB,Adobe,Wide,ProPhoto,XYZ,ACES)"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9921 +#ifndef NO_LCMS
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9922 + puts(_("-o <file> Apply output ICC profile from file"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9923 + puts(_("-p <file> Apply camera ICC profile from file or \"embed\""));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9924 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9925 + puts(_("-d Document mode (no color, no interpolation)"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9926 + puts(_("-D Document mode without scaling (totally raw)"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9927 + puts(_("-j Don't stretch or rotate raw pixels"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9928 + puts(_("-W Don't automatically brighten the image"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9929 + puts(_("-b <num> Adjust brightness (default = 1.0)"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9930 + puts(_("-g <p ts> Set custom gamma curve (default = 2.222 4.5)"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9931 + puts(_("-q [0-3] Set the interpolation quality"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9932 + puts(_("-h Half-size color image (twice as fast as \"-q 0\")"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9933 + puts(_("-f Interpolate RGGB as four colors"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9934 + puts(_("-m <num> Apply a 3x3 median filter to R-G and B-G"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9935 + puts(_("-s [0..N-1] Select one raw image or \"all\" from each file"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9936 + puts(_("-6 Write 16-bit instead of 8-bit"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9937 + puts(_("-4 Linear 16-bit, same as \"-6 -W -g 1 1\""));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9938 + puts(_("-T Write TIFF instead of PPM"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9939 + puts("");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9940 + return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9941 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9942 + argv[argc] = "";
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9943 + for (arg=1; (((opm = argv[arg][0]) - 2) | 2) == '+'; ) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9944 + opt = argv[arg++][1];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9945 + if ((cp = (char *) strchr (sp="nbrkStqmHACg", opt)))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9946 + for (i=0; i < "114111111422"[cp-sp]-'0'; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9947 + if (!isdigit(argv[arg+i][0])) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9948 + fprintf (stderr,_("Non-numeric argument to \"-%c\"\n"), opt);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9949 + return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9950 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9951 + switch (opt) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9952 + case 'n': threshold = atof(argv[arg++]); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9953 + case 'b': bright = atof(argv[arg++]); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9954 + case 'r':
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9955 + FORC4 user_mul[c] = atof(argv[arg++]); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9956 + case 'C': aber[0] = 1 / atof(argv[arg++]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9957 + aber[2] = 1 / atof(argv[arg++]); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9958 + case 'g': gamm[0] = atof(argv[arg++]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9959 + gamm[1] = atof(argv[arg++]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9960 + if (gamm[0]) gamm[0] = 1/gamm[0]; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9961 + case 'k': user_black = atoi(argv[arg++]); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9962 + case 'S': user_sat = atoi(argv[arg++]); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9963 + case 't': user_flip = atoi(argv[arg++]); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9964 + case 'q': user_qual = atoi(argv[arg++]); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9965 + case 'm': med_passes = atoi(argv[arg++]); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9966 + case 'H': highlight = atoi(argv[arg++]); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9967 + case 's':
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9968 + shot_select = abs(atoi(argv[arg]));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9969 + multi_out = !strcmp(argv[arg++],"all");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9970 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9971 + case 'o':
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9972 + if (isdigit(argv[arg][0]) && !argv[arg][1])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9973 + output_color = atoi(argv[arg++]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9974 +#ifndef NO_LCMS
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9975 + else out_profile = argv[arg++];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9976 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9977 + case 'p': cam_profile = argv[arg++];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9978 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9979 + break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9980 + case 'P': bpfile = argv[arg++]; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9981 + case 'O': outfile = argv[arg++]; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9982 + case 'K': dark_frame = argv[arg++]; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9983 + case 'z': timestamp_only = 1; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9984 + case 'e': thumbnail_only = 1; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9985 + case 'i': identify_only = 1; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9986 + case 'c': write_to_stdout = 1; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9987 + case 'v': verbose = 1; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9988 + case 'h': half_size = 1; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9989 + case 'f': four_color_rgb = 1; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9990 + case 'A': FORC4 greybox[c] = atoi(argv[arg++]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9991 + case 'a': use_auto_wb = 1; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9992 + case 'w': use_camera_wb = 1; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9993 + case 'M': use_camera_matrix = 3 * (opm == '+'); break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9994 + case 'I': read_from_stdin = 1; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9995 + case 'E': document_mode++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9996 + case 'D': document_mode++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9997 + case 'd': document_mode++;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9998 + case 'j': use_fuji_rotate = 0; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
9999 + case 'W': no_auto_bright = 1; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10000 + case 'T': output_tiff = 1; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10001 + case '4': gamm[0] = gamm[1] =
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10002 + no_auto_bright = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10003 + case '6': output_bps = 16; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10004 + default:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10005 + fprintf (stderr,_("Unknown option \"-%c\".\n"), opt);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10006 + return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10007 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10008 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10009 + if (arg == argc) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10010 + fprintf (stderr,_("No files to process.\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10011 + return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10012 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10013 + if (write_to_stdout) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10014 + if (isatty(1)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10015 + fprintf (stderr,_("Will not write an image to the terminal!\n"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10016 + return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10017 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10018 +#if defined(WIN32) || defined(DJGPP) || defined(__CYGWIN__)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10019 + if (setmode(1,O_BINARY) < 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10020 + perror ("setmode()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10021 + return 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10022 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10023 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10024 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10025 + for ( ; arg < argc; arg++) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10026 + status = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10027 + raw_image = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10028 + image = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10029 + oprof = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10030 + meta_data = ofname = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10031 + ofp = stdout;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10032 + if (setjmp (failure)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10033 + if (fileno(ifp) > 2) fclose(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10034 + if (fileno(ofp) > 2) fclose(ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10035 + status = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10036 + goto cleanup;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10037 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10038 + ifname = argv[arg];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10039 + if (!(ifp = fopen (ifname, "rb"))) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10040 + perror (ifname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10041 + continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10042 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10043 + status = (identify(),!is_raw);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10044 + if (user_flip >= 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10045 + flip = user_flip;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10046 + switch ((flip+3600) % 360) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10047 + case 270: flip = 5; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10048 + case 180: flip = 3; break;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10049 + case 90: flip = 6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10050 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10051 + if (timestamp_only) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10052 + if ((status = !timestamp))
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10053 + fprintf (stderr,_("%s has no timestamp.\n"), ifname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10054 + else if (identify_only)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10055 + printf ("%10ld%10d %s\n", (long) timestamp, shot_order, ifname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10056 + else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10057 + if (verbose)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10058 + fprintf (stderr,_("%s time set to %d.\n"), ifname, (int) timestamp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10059 + ut.actime = ut.modtime = timestamp;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10060 + utime (ifname, &ut);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10061 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10062 + goto next;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10063 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10064 + write_fun = &CLASS write_ppm_tiff;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10065 + if (thumbnail_only) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10066 + if ((status = !thumb_offset)) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10067 + fprintf (stderr,_("%s has no thumbnail.\n"), ifname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10068 + goto next;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10069 + } else if (thumb_load_raw) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10070 + load_raw = thumb_load_raw;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10071 + data_offset = thumb_offset;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10072 + height = thumb_height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10073 + width = thumb_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10074 + filters = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10075 + colors = 3;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10076 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10077 + fseek (ifp, thumb_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10078 + write_fun = write_thumb;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10079 + goto thumbnail;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10080 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10081 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10082 + if (load_raw == &CLASS kodak_ycbcr_load_raw) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10083 + height += height & 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10084 + width += width & 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10085 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10086 + if (identify_only && verbose && make[0]) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10087 + printf (_("\nFilename: %s\n"), ifname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10088 + printf (_("Timestamp: %s"), ctime(&timestamp));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10089 + printf (_("Camera: %s %s\n"), make, model);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10090 + if (artist[0])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10091 + printf (_("Owner: %s\n"), artist);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10092 + if (dng_version) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10093 + printf (_("DNG Version: "));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10094 + for (i=24; i >= 0; i -= 8)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10095 + printf ("%d%c", dng_version >> i & 255, i ? '.':'\n');
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10096 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10097 + printf (_("ISO speed: %d\n"), (int) iso_speed);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10098 + printf (_("Shutter: "));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10099 + if (shutter > 0 && shutter < 1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10100 + shutter = (printf ("1/"), 1 / shutter);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10101 + printf (_("%0.1f sec\n"), shutter);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10102 + printf (_("Aperture: f/%0.1f\n"), aperture);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10103 + printf (_("Focal length: %0.1f mm\n"), focal_len);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10104 + printf (_("Embedded ICC profile: %s\n"), profile_length ? _("yes"):_("no"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10105 + printf (_("Number of raw images: %d\n"), is_raw);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10106 + if (pixel_aspect != 1)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10107 + printf (_("Pixel Aspect Ratio: %0.6f\n"), pixel_aspect);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10108 + if (thumb_offset)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10109 + printf (_("Thumb size: %4d x %d\n"), thumb_width, thumb_height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10110 + printf (_("Full size: %4d x %d\n"), raw_width, raw_height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10111 + } else if (!is_raw)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10112 + fprintf (stderr,_("Cannot decode file %s\n"), ifname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10113 + if (!is_raw) goto next;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10114 + shrink = filters && (half_size || (!identify_only &&
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10115 + (threshold || aber[0] != 1 || aber[2] != 1)));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10116 + iheight = (height + shrink) >> shrink;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10117 + iwidth = (width + shrink) >> shrink;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10118 + if (identify_only) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10119 + if (verbose) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10120 + if (document_mode == 3) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10121 + top_margin = left_margin = fuji_width = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10122 + height = raw_height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10123 + width = raw_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10124 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10125 + iheight = (height + shrink) >> shrink;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10126 + iwidth = (width + shrink) >> shrink;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10127 + if (use_fuji_rotate) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10128 + if (fuji_width) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10129 + fuji_width = (fuji_width - 1 + shrink) >> shrink;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10130 + iwidth = fuji_width / sqrt(0.5);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10131 + iheight = (iheight - fuji_width) / sqrt(0.5);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10132 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10133 + if (pixel_aspect < 1) iheight = iheight / pixel_aspect + 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10134 + if (pixel_aspect > 1) iwidth = iwidth * pixel_aspect + 0.5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10135 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10136 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10137 + if (flip & 4)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10138 + SWAP(iheight,iwidth);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10139 + printf (_("Image size: %4d x %d\n"), width, height);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10140 + printf (_("Output size: %4d x %d\n"), iwidth, iheight);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10141 + printf (_("Raw colors: %d"), colors);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10142 + if (filters) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10143 + int fhigh = 2, fwide = 2;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10144 + if ((filters ^ (filters >> 8)) & 0xff) fhigh = 4;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10145 + if ((filters ^ (filters >> 16)) & 0xffff) fhigh = 8;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10146 + if (filters == 1) fhigh = fwide = 16;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10147 + if (filters == 9) fhigh = fwide = 6;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10148 + printf (_("\nFilter pattern: "));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10149 + for (i=0; i < fhigh; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10150 + for (c = i && putchar('/') && 0; c < fwide; c++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10151 + putchar (cdesc[fcol(i,c)]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10152 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10153 + printf (_("\nDaylight multipliers:"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10154 + FORCC printf (" %f", pre_mul[c]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10155 + if (cam_mul[0] > 0) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10156 + printf (_("\nCamera multipliers:"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10157 + FORC4 printf (" %f", cam_mul[c]);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10158 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10159 + putchar ('\n');
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10160 + } else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10161 + printf (_("%s is a %s %s image.\n"), ifname, make, model);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10162 +next:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10163 + fclose(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10164 + continue;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10165 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10166 + if (meta_length) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10167 + meta_data = (char *) malloc (meta_length);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10168 + merror (meta_data, "main()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10169 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10170 + if (filters || colors == 1) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10171 + raw_image = (ushort *) calloc ((raw_height+7), raw_width*2);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10172 + merror (raw_image, "main()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10173 + } else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10174 + image = (ushort (*)[4]) calloc (iheight, iwidth*sizeof *image);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10175 + merror (image, "main()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10176 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10177 + if (verbose)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10178 + fprintf (stderr,_("Loading %s %s image from %s ...\n"),
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10179 + make, model, ifname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10180 + if (shot_select >= is_raw)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10181 + fprintf (stderr,_("%s: \"-s %d\" requests a nonexistent image!\n"),
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10182 + ifname, shot_select);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10183 + fseeko (ifp, data_offset, SEEK_SET);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10184 + if (raw_image && read_from_stdin)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10185 + fread (raw_image, 2, raw_height*raw_width, stdin);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10186 + else (*load_raw)();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10187 + if (document_mode == 3) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10188 + top_margin = left_margin = fuji_width = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10189 + height = raw_height;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10190 + width = raw_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10191 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10192 + iheight = (height + shrink) >> shrink;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10193 + iwidth = (width + shrink) >> shrink;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10194 + if (raw_image) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10195 + image = (ushort (*)[4]) calloc (iheight, iwidth*sizeof *image);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10196 + merror (image, "main()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10197 + crop_masked_pixels();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10198 + free (raw_image);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10199 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10200 + if (zero_is_bad) remove_zeroes();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10201 + bad_pixels (bpfile);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10202 + if (dark_frame) subtract (dark_frame);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10203 + quality = 2 + !fuji_width;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10204 + if (user_qual >= 0) quality = user_qual;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10205 + i = cblack[3];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10206 + FORC3 if (i > cblack[c]) i = cblack[c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10207 + FORC4 cblack[c] -= i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10208 + black += i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10209 + i = cblack[6];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10210 + FORC (cblack[4] * cblack[5])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10211 + if (i > cblack[6+c]) i = cblack[6+c];
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10212 + FORC (cblack[4] * cblack[5])
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10213 + cblack[6+c] -= i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10214 + black += i;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10215 + if (user_black >= 0) black = user_black;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10216 + FORC4 cblack[c] += black;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10217 + if (user_sat > 0) maximum = user_sat;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10218 +#ifdef COLORCHECK
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10219 + colorcheck();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10220 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10221 + if (is_foveon) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10222 + if (document_mode || load_raw == &CLASS foveon_dp_load_raw) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10223 + for (i=0; i < height*width*4; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10224 + if ((short) image[0][i] < 0) image[0][i] = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10225 + } else foveon_interpolate();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10226 + } else if (document_mode < 2)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10227 + scale_colors();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10228 + pre_interpolate();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10229 + if (filters && !document_mode) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10230 + if (quality == 0)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10231 + lin_interpolate();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10232 + else if (quality == 1 || colors > 3)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10233 + vng_interpolate();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10234 + else if (quality == 2 && filters > 1000)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10235 + ppg_interpolate();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10236 + else if (filters == 9)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10237 + xtrans_interpolate (quality*2-3);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10238 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10239 + ahd_interpolate();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10240 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10241 + if (mix_green)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10242 + for (colors=3, i=0; i < height*width; i++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10243 + image[i][1] = (image[i][1] + image[i][3]) >> 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10244 + if (!is_foveon && colors == 3) median_filter();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10245 + if (!is_foveon && highlight == 2) blend_highlights();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10246 + if (!is_foveon && highlight > 2) recover_highlights();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10247 + if (use_fuji_rotate) fuji_rotate();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10248 +#ifndef NO_LCMS
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10249 + if (cam_profile) apply_profile (cam_profile, out_profile);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10250 +#endif
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10251 + convert_to_rgb();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10252 + if (use_fuji_rotate) stretch();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10253 +thumbnail:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10254 + if (write_fun == &CLASS jpeg_thumb)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10255 + write_ext = ".jpg";
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10256 + else if (output_tiff && write_fun == &CLASS write_ppm_tiff)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10257 + write_ext = ".tiff";
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10258 + else
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10259 + write_ext = ".pgm\0.ppm\0.ppm\0.pam" + colors*5-5;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10260 + ofname = (char *) malloc (strlen(ifname) + 64);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10261 + merror (ofname, "main()");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10262 + if (write_to_stdout)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10263 + strcpy (ofname,_("standard output"));
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10264 + else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10265 + if (outfile)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10266 + strcpy (ofname,outfile);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10267 + else {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10268 + strcpy (ofname, ifname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10269 + if ((cp = strrchr (ofname, '.'))) *cp = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10270 + if (multi_out)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10271 + sprintf (ofname+strlen(ofname), "_%0*d",
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10272 + snprintf(0,0,"%d",is_raw-1), shot_select);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10273 + if (thumbnail_only)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10274 + strcat (ofname, ".thumb");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10275 + strcat (ofname, write_ext);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10276 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10277 + ofp = fopen (ofname, "wb");
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10278 + if (!ofp) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10279 + status = 1;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10280 + perror (ofname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10281 + goto cleanup;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10282 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10283 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10284 + if (verbose)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10285 + fprintf (stderr,_("Writing data to %s ...\n"), ofname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10286 + (*write_fun)();
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10287 + fclose(ifp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10288 + if (ofp != stdout) fclose(ofp);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10289 +cleanup:
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10290 + if (meta_data) free (meta_data);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10291 + if (ofname) free (ofname);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10292 + if (oprof) free (oprof);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10293 + if (image) free (image);
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10294 + if (multi_out) {
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10295 + if (++shot_select < is_raw) arg--;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10296 + else shot_select = 0;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10297 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10298 + }
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10299 + return status;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10300 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10301
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10302 diff -ruN graphicsmagick_orig/dcraw/port/strnlen.c graphicsmagick/dcraw/port/strnlen.c
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10303 --- graphicsmagick_orig/dcraw/port/strnlen.c 1970-01-01 01:00:00.000000000 +0100
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10304 +++ graphicsmagick/dcraw/port/strnlen.c 2021-06-04 12:17:20.710715767 +0200
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10305 @@ -0,0 +1,18 @@
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10306 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10307 +#include <stdio.h>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10308 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10309 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10310 +/** Implementation of posix' strnlen for systems where it's not available.
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10311 + *
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10312 + * Returns the number of characters before a null-byte in the string pointed
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10313 + * to by str, unless there's no null-byte before maxlen. In the latter case
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10314 + * maxlen is returned. */
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10315 +unsigned strnlen(const char *s, unsigned maxlen)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10316 +{
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10317 + register const char *e;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10318 + unsigned n;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10319 +
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10320 + for(e=s, n=0; *e && n<maxlen; e++, n++)
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10321 + ;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10322 + return n;
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10323 +}
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10324
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10325 --- graphicsmagick.orig/config/delegates.mgk.in 2021-06-04 12:17:20.662689000 +0200
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10326 +++ graphicsmagick/config/delegates.mgk.in 2021-06-04 12:34:16.975259869 +0200
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10327 @@ -72,7 +72,7 @@
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10328 <delegatemap>
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10329 <delegate decode="browse" stealth="True" command='"@BrowseDelegate@" "http://www.GraphicsMagick.org/" &' />
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10330 <delegate decode="cgm" command='"@CGMDecodeDelegate@" -d ps < "%i" > "%o" 2>/dev/null' />
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10331 - <delegate decode="dcraw" command='"@DCRAWDecodeDelegate@" -c -w @DcrawExtraOptions@ "%i" > "%o"' />
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10332 + <delegate decode="dcraw" command='"@DCRAWDecodeDelegate@" -w @DcrawExtraOptions@ -O "%o" "%i"' />
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10333 <delegate decode="dot" command='"@DOTDecodeDelegate@" -Tps "%i" -o "%o"' />
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10334 <delegate decode="dvi" command='"@DVIDecodeDelegate@" -q -o "%o" "%i"' />
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10335 <delegate decode="edit" stealth="True" command='"@EditorDelegate@" -title "Edit Image Comment" -e vi "%o"' />
c23139e3560e GraphicsMagick: Build upstream version of dcraw (bug #60664).
Markus Mützel <markus.muetzel@gmx.de>
parents:
diff changeset
10336