This file is indexed.

/usr/include/libkdcraw/rawdecodingsettings.h is in libkdcraw-dev 4:15.08.2-0ubuntu2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
/** ===========================================================
 * @file
 *
 * This file is a part of digiKam project
 * <a href="http://www.digikam.org">http://www.digikam.org</a>
 *
 * @date   2006-12-09
 * @brief  Raw decoding settings
 *
 * @author Copyright (C) 2006-2013 by Gilles Caulier
 *         <a href="mailto:caulier dot gilles at gmail dot com">caulier dot gilles at gmail dot com</a>
 * @author Copyright (C) 2006-2013 by Marcel Wiesweg
 *         <a href="mailto:marcel dot wiesweg at gmx dot de">marcel dot wiesweg at gmx dot de</a>
 * @author Copyright (C) 2007-2008 by Guillaume Castagnino
 *         <a href="mailto:casta at xwing dot info">casta at xwing dot info</a>
 *
 * This program is free software; you can redistribute it
 * and/or modify it under the terms of the GNU General
 * Public License as published by the Free Software Foundation;
 * either version 2, or (at your option)
 * any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * ============================================================ */

#ifndef RAW_DECODING_SETTINGS_H
#define RAW_DECODING_SETTINGS_H

// Qt includes

#include <QtCore/QRect>
#include <QtCore/QString>
#include <QtCore/QDebug>

// KDE includes

#include <kconfiggroup.h>

// Local includes

#include "libkdcraw_export.h"

namespace KDcrawIface
{

class LIBKDCRAW_EXPORT RawDecodingSettings
{

public:

    /** RAW decoding Interpolation methods
     *
     * NOTE: from original dcraw demosaic
     * 
     *  Bilinear: use high-speed but low-quality bilinear
     *            interpolation (default - for slow computer). In this method,
     *            the red value of a non-red pixel is computed as the average of
     *            the adjacent red pixels, and similar for blue and green.
     *  VNG:      use Variable Number of Gradients interpolation.
     *            This method computes gradients near the pixel of interest and uses
     *            the lower gradients (representing smoother and more similar parts
     *            of the image) to make an estimate.
     *  PPG:      use Patterned Pixel Grouping interpolation.
     *            Pixel Grouping uses assumptions about natural scenery in making estimates.
     *            It has fewer color artifacts on natural images than the Variable Number of
     *            Gradients method.
     *  AHD:      use Adaptive Homogeneity-Directed interpolation.
     *            This method selects the direction of interpolation so as to
     *            maximize a homogeneity metric, thus typically minimizing color artifacts.
     * 
     * NOTE: from GPL2 demosaic pack.
     * 
     *  DCB:      DCB interpolation (see http://www.linuxphoto.org/html/dcb.html for details)
     *  PL_AHD:   modified AHD interpolation (see http://sites.google.com/site/demosaicalgorithms/modified-dcraw
     *            for details).
     *  AFD:      demosaicing through 5 pass median filter from PerfectRaw project.
     *  VCD:      VCD interpolation.
     *  VCD_AHD:  mixed demosaicing between VCD and AHD.
     *  LMMSE:    LMMSE interpolation from PerfectRaw.
     * 
     * NOTE: from GPL3 demosaic pack.
     * 
     *  AMAZE:    AMaZE interpolation and color aberration removal from RawTherapee project.
     */
    enum DecodingQuality
    {
        // from original dcraw demosaic
        BILINEAR = 0,
        VNG      = 1,
        PPG      = 2,
        AHD      = 3,
        // Extended demosaicing method from GPL2 demosaic pack
        DCB      = 4,
        PL_AHD   = 5,
        AFD      = 6,
        VCD      = 7,
        VCD_AHD  = 8,
        LMMSE    = 9,
        // Extended demosaicing methods from GPL3 demosaic pack
        AMAZE    = 10
    };

    /** White balances alternatives
     *  NONE:     no white balance used : reverts to standard daylight D65 WB.
     *  CAMERA:   Use the camera embedded WB if available. Reverts to NONE if not.
     *  AUTO:     Averages an auto WB on the entire image.
     *  CUSTOM:   Let use set it's own temperature and green factor (later converted to RGBG factors).
     *  AERA:     Let use an aera from image to average white balance (see whiteBalanceArea for details).
     */
    enum WhiteBalance
    {
        NONE    = 0,
        CAMERA  = 1,
        AUTO    = 2,
        CUSTOM  = 3,
        AERA    = 4
    };

    /** Noise Reduction method to apply before demosaicing
     *  NONR:       No noise reduction.
     *  WAVELETSNR: wavelets correction to erase noise while preserving real detail. It's applied after interpolation.
     *  FBDDNR:     Fake Before Demosaicing Denoising noise reduction. It's applied before interpolation.
     *  LINENR:     CFA Line Denoise. It's applied after interpolation.
     *  IMPULSENR:  Impulse Denoise. It's applied after interpolation.
     */
    enum NoiseReduction
    {
        NONR = 0,
        WAVELETSNR,
        FBDDNR,
        LINENR,
        IMPULSENR
    };

    /** Input color profile used to decoded image
     *  NOINPUTCS:     No input color profile.
     *  EMBEDDED:      Use the camera profile embedded in RAW file if exist.
     *  CUSTOMINPUTCS: Use a custom input color space profile.
     */
    enum InputColorSpace
    {
        NOINPUTCS = 0,
        EMBEDDED,
        CUSTOMINPUTCS
    };

    /** Output RGB color space used to decoded image
     *  RAWCOLOR:       No output color profile (Linear RAW).
     *  SRGB:           Use standard sRGB color space.
     *  ADOBERGB:       Use standard Adobe RGB color space.
     *  WIDEGAMMUT:     Use standard RGB Wide Gamut color space.
     *  PROPHOTO:       Use standard RGB Pro Photo color space.
     *  CUSTOMOUTPUTCS: Use a custom workspace color profile.
     */
    enum OutputColorSpace
    {
        RAWCOLOR = 0,
        SRGB,
        ADOBERGB,
        WIDEGAMMUT,
        PROPHOTO,
        CUSTOMOUTPUTCS
    };

    /** Standard constructor with default settings
     */
    RawDecodingSettings();

    /** Equivalent to the copy constructor
     */
    RawDecodingSettings& operator=(const RawDecodingSettings& prm);

    /** Compare for equality
     */
    bool operator==(const RawDecodingSettings& o) const;

    /** Standard destructor
     */
    virtual ~RawDecodingSettings();

    /** Method to use a settings to optimize time loading, for exemple to compute image histogram
     */
    void optimizeTimeLoading();

    /** Methods to read/write settings from/to a config file
     */
    void readSettings(KConfigGroup& group);
    void writeSettings(KConfigGroup& group);

public:

    /** If true, images with overblown channels are processed much more accurate,
     *  without 'pink clouds' (and blue highlights under tungsteen lamps).
     */
    bool fixColorsHighlights;

    /** If false, use a fixed white level, ignoring the image histogram.
     */
    bool autoBrightness;

    /** Turn on RAW file decoding in 16 bits per color per pixel instead 8 bits.
     */
    bool sixteenBitsImage;

    /** Half-size color image decoding (twice as fast as "enableRAWQuality").
     *  Turn on this option to reduce time loading to render histogram for example,
     *  no to render an image to screen.
     */
    bool halfSizeColorImage;

    /** White balance type to use. See WhiteBalance values for detail
     */
    WhiteBalance whiteBalance;

    /** The temperature and the green multiplier of the custom white balance
     */
    int    customWhiteBalance;
    double customWhiteBalanceGreen;

    /** Turn on RAW file decoding using RGB interpolation as four colors.
     */
    bool RGBInterpolate4Colors;

    /** For cameras with non-square pixels, do not stretch the image to its
     *  correct aspect ratio. In any case, this option guarantees that each
     *  output pixel corresponds to one RAW pixel.
     */
    bool DontStretchPixels;

    /** Unclip Highlight color level:
     *  0   = Clip all highlights to solid white.
     *  1   = Leave highlights unclipped in various shades of pink.
     *  2   = Blend clipped and unclipped values together for a gradual
     *        fade to white.
     *  3-9 = Reconstruct highlights. Low numbers favor whites; high numbers
     *        favor colors.
     */
    int unclipColors;

    /** RAW quality decoding factor value. See DecodingQuality values
     *  for details.
     */
    DecodingQuality RAWQuality;

    /** After interpolation, clean up color artifacts by repeatedly applying
     *  a 3x3 median filter to the R-G and B-G channels.
     */
    int medianFilterPasses;

    /** Noise reduction method to apply before demosaicing.
     */
    NoiseReduction NRType;

    /** Noise reduction threshold value. Null value disable NR. Range is between 100 and 1000.
     *  For IMPULSENR : set the amount of Luminance impulse denoise.
     */
    int NRThreshold;

    /** Turn on chromatic aberrations correction
     */
    bool enableCACorrection;

    /** Magnification factor for Red and Blue layers
     *  - caMultiplier[0] = amount of correction on red-green axis.
     *  - caMultiplier[1] = amount of correction on blue-yellow axis.
     *  - Both values set to 0.0 = automatic CA correction.
     */
    double caMultiplier[2];

    /** Brightness of output image.
     */
    double brightness;

    /** Turn on the black point setting to decode RAW image.
     */
    bool enableBlackPoint;

    /** Black Point value of output image.
     */
    int blackPoint;

    /** Turn on the white point setting to decode RAW image.
     */
    bool enableWhitePoint;

    /** White Point value of output image.
     */
    int whitePoint;

    /** The input color profile used to decoded RAW data. See OutputColorProfile
     *  values for details.
     */
    InputColorSpace inputColorSpace;

    /** Path to custom input ICC profile to define the camera's raw colorspace.
     */
    QString inputProfile;

    /** The output color profile used to decoded RAW data. See OutputColorProfile
     *  values for details.
     */
    OutputColorSpace outputColorSpace;

    /** Path to custom output ICC profile to define the color workspace.
     */
    QString outputProfile;

    /** Path to text file including dead pixel list.
     */
    QString deadPixelMap;

    /** Rectangle used to calculate the white balance by averaging the region of image.
     */
    QRect whiteBalanceArea;

    //-- Extended demosaicing settings ----------------------------------------------------------

    /// For DCB interpolation.

    /** Number of DCB median filtering correction passes.
     * -1   : disable (default)
     * 1-10 : DCB correction passes
     */
    int dcbIterations;

    /** Turn on the DCB interpolation with enhance interpolated colors.
     */
    bool dcbEnhanceFl;

    /// For VCD_AHD interpolation.

    /** Turn on the EECI refine for VCD Demosaicing.
     */
    bool eeciRefine;

    /** Use edge-sensitive median filtering for artifact supression after VCD demosaicing.
     * 0   : disable (default)
     * 1-10 : median filter passes.
     */
    int esMedPasses;

    /** For IMPULSENR Noise reduction. Set the amount of Chrominance impulse denoise.
        Null value disable NR. Range is between 100 and 1000.
     */
    int NRChroThreshold;

    /** Turn on the Exposure Correction before interpolation.
     */
    bool expoCorrection;

    /** Shift of Exposure Correction before interpolation in linear scale.
     *  Usable range is from 0.25 (darken image 1 stop : -2EV) to 8.0 (lighten ~1.5 photographic stops : +3EV).
     */
    double expoCorrectionShift;

    /** Amount of highlight preservation for exposure correction before interpolation in E.V.
     *  Usable range is from 0.0 (linear exposure shift, highlights may blow) to 1.0 (maximum highlights preservation)
     *  This settings can only take effect if expoCorrectionShift > 1.0. 
     */
    double expoCorrectionHighlight;
};

//! kDebug() stream operator. Writes settings @a s to the debug output in a nicely formatted way.
LIBKDCRAW_EXPORT QDebug operator<<(QDebug dbg, const RawDecodingSettings& s);

}  // namespace KDcrawIface

#endif /* RAW_DECODING_SETTINGS_H */