Fix some Coverity warnings

This commit is contained in:
Flössie
2018-01-12 18:20:21 +01:00
parent c46511f347
commit 3b6cc19ae9
6 changed files with 50 additions and 21 deletions

View File

@@ -69,7 +69,7 @@ public:
virtual int load (const Glib::ustring &fname) = 0; virtual int load (const Glib::ustring &fname) = 0;
virtual void preprocess (const RAWParams &raw, const LensProfParams &lensProf, const CoarseTransformParams& coarse, bool prepareDenoise = true) {}; virtual void preprocess (const RAWParams &raw, const LensProfParams &lensProf, const CoarseTransformParams& coarse, bool prepareDenoise = true) {};
virtual void demosaic (const RAWParams &raw) {}; virtual void demosaic (const RAWParams &raw) {};
virtual void retinex (const ColorManagementParams& cmp, const RetinexParams &deh, ToneCurveParams Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D<float, 4> &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI) {}; virtual void retinex (const ColorManagementParams& cmp, const RetinexParams &deh, const ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D<float, 4> &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI) {};
virtual void retinexPrepareCurves (const RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI) {}; virtual void retinexPrepareCurves (const RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI) {};
virtual void retinexPrepareBuffers (const ColorManagementParams& cmp, const RetinexParams &retinexParams, multi_array2D<float, 4> &conversionBuffer, LUTu &lhist16RETI) {}; virtual void retinexPrepareBuffers (const ColorManagementParams& cmp, const RetinexParams &retinexParams, multi_array2D<float, 4> &conversionBuffer, LUTu &lhist16RETI) {};
virtual void flushRawData () {}; virtual void flushRawData () {};

View File

@@ -105,7 +105,7 @@ void ImProcFunctions::Lanczos (const Imagefloat* src, Imagefloat* dst, float sca
float y0 = (static_cast<float> (i) + 0.5f) * delta - 0.5f; float y0 = (static_cast<float> (i) + 0.5f) * delta - 0.5f;
// weights for interpolation in y direction // weights for interpolation in y direction
float w[support]; float w[support] = {};
// sum of weights used for normalization // sum of weights used for normalization
float ws = 0.0f; float ws = 0.0f;

View File

@@ -2360,7 +2360,7 @@ void RawImageSource::retinexPrepareCurves(const RetinexParams &retinexParams, LU
retinexParams.getCurves(retinextransmissionCurve, retinexgaintransmissionCurve); retinexParams.getCurves(retinextransmissionCurve, retinexgaintransmissionCurve);
} }
void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexParams &deh, ToneCurveParams Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D<float, 4> &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI) void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexParams &deh, const ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D<float, 4> &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI)
{ {
MyTime t4, t5; MyTime t4, t5;
t4.set(); t4.set();

View File

@@ -119,7 +119,7 @@ public:
int load (const Glib::ustring &fname); int load (const Glib::ustring &fname);
void preprocess (const RAWParams &raw, const LensProfParams &lensProf, const CoarseTransformParams& coarse, bool prepareDenoise = true); void preprocess (const RAWParams &raw, const LensProfParams &lensProf, const CoarseTransformParams& coarse, bool prepareDenoise = true);
void demosaic (const RAWParams &raw); void demosaic (const RAWParams &raw);
void retinex (const ColorManagementParams& cmp, const RetinexParams &deh, ToneCurveParams Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D<float, 4> &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI); void retinex (const ColorManagementParams& cmp, const RetinexParams &deh, const ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D<float, 4> &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI);
void retinexPrepareCurves (const RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI); void retinexPrepareCurves (const RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI);
void retinexPrepareBuffers (const ColorManagementParams& cmp, const RetinexParams &retinexParams, multi_array2D<float, 4> &conversionBuffer, LUTu &lhist16RETI); void retinexPrepareBuffers (const ColorManagementParams& cmp, const RetinexParams &retinexParams, multi_array2D<float, 4> &conversionBuffer, LUTu &lhist16RETI);
void flushRawData (); void flushRawData ();

View File

@@ -49,19 +49,48 @@ void adjust_radius (const T &default_param, double scale_factor, T &param)
class ImageProcessor class ImageProcessor
{ {
public: public:
ImageProcessor (ProcessingJob* pjob, int& errorCode, ImageProcessor(
ProgressListener* pl, bool flush): ProcessingJob* pjob,
int& errorCode,
ProgressListener* pl,
bool flush
) :
job (static_cast<ProcessingJobImpl*> (pjob)), job (static_cast<ProcessingJobImpl*> (pjob)),
errorCode (errorCode), errorCode (errorCode),
pl (pl), pl (pl),
flush (flush), flush (flush),
// internal state // internal state
ipf_p (nullptr), ii(nullptr),
ii (nullptr), imgsrc(nullptr),
imgsrc (nullptr), fw(0),
fw (-1), fh(0),
fh (-1), tr(0),
pp (0, 0, 0, 0, 0) pp(0, 0, 0, 0, 0),
calclum(nullptr),
autoNR(0.f),
autoNRmax(0.f),
tilesize(0),
overlap(0),
ch_M(nullptr),
max_r(nullptr),
max_b(nullptr),
min_b(nullptr),
min_r(nullptr),
lumL(nullptr),
chromC(nullptr),
ry(nullptr),
sk(nullptr),
pcsk(nullptr),
expcomp(0.0),
bright(0),
contr(0),
black(0),
hlcompr(0),
hlcomprthresh(0),
baseImg(nullptr),
labView(nullptr),
autili(false),
butili(false)
{ {
} }
@@ -814,7 +843,7 @@ private:
if (params.fattal.enabled) { if (params.fattal.enabled) {
ipf.ToneMapFattal02(baseImg); ipf.ToneMapFattal02(baseImg);
} }
// perform transform (excepted resizing) // perform transform (excepted resizing)
if (ipf.needsTransform()) { if (ipf.needsTransform()) {
Imagefloat* trImg = nullptr; Imagefloat* trImg = nullptr;

View File

@@ -1116,13 +1116,13 @@ void ImProcFunctions::ToneMapFattal02 (Imagefloat *rgb)
Array2Df Yr (w, h); Array2Df Yr (w, h);
const float epsilon = 1e-4f; constexpr float epsilon = 1e-4f;
const float luminance_noise_floor = 65.535f; constexpr float luminance_noise_floor = 65.535f;
const float min_luminance = 1.f; constexpr float min_luminance = 1.f;
const auto unclipped = const auto unclipped =
[=](int y, int x) -> bool [rgb](int y, int x) -> bool
{ {
const float c = 65500.f; constexpr float c = 65500.f;
return rgb->r(y, x) < c && rgb->g(y, x) < c && rgb->b(y, x) < c; return rgb->r(y, x) < c && rgb->g(y, x) < c && rgb->b(y, x) < c;
}; };
TMatrix ws = ICCStore::getInstance()->workingSpaceMatrix (params->icm.working); TMatrix ws = ICCStore::getInstance()->workingSpaceMatrix (params->icm.working);
@@ -1200,16 +1200,16 @@ void ImProcFunctions::ToneMapFattal02 (Imagefloat *rgb)
const float wr = float(w2) / float(w); const float wr = float(w2) / float(w);
const float scale = 65535.f / std::max(L(max_x * wr + 1, max_y * hr + 1), epsilon) * (65535.f / Yr(max_x, max_y)); const float scale = 65535.f / std::max(L(max_x * wr + 1, max_y * hr + 1), epsilon) * (65535.f / Yr(max_x, max_y));
#ifdef _OPENMP #ifdef _OPENMP
#pragma omp parallel for schedule(dynamic,16) if(multiThread) #pragma omp parallel for schedule(dynamic,16) if(multiThread)
#endif #endif
for (int y = 0; y < h; y++) { for (int y = 0; y < h; y++) {
int yy = y * hr + 1; int yy = y * hr + 1;
for (int x = 0; x < w; x++) { for (int x = 0; x < w; x++) {
int xx = x * wr + 1; int xx = x * wr + 1;
float Y = Yr (x, y); float Y = Yr (x, y);
float l = std::max (L (xx, yy), epsilon) * (scale / Y); float l = std::max (L (xx, yy), epsilon) * (scale / Y);
rgb->r (y, x) = std::max (rgb->r (y, x), 0.f) * l; rgb->r (y, x) = std::max (rgb->r (y, x), 0.f) * l;