diff --git a/rtengine/cJSON.c b/rtengine/cJSON.c index fb8ce27e8..130c8e2a5 100644 --- a/rtengine/cJSON.c +++ b/rtengine/cJSON.c @@ -445,9 +445,7 @@ static unsigned char* ensure(printbuffer * const p, size_t needed) p->buffer = NULL; return NULL; - } - if (newbuffer) - { + } else { memcpy(newbuffer, p->buffer, p->offset + 1); } p->hooks.deallocate(p->buffer); @@ -1436,7 +1434,7 @@ fail: static cJSON_bool print_array(const cJSON * const item, printbuffer * const output_buffer) { unsigned char *output_pointer = NULL; - size_t length = 0; + size_t length; cJSON *current_element = item->child; if (output_buffer == NULL) diff --git a/rtengine/ciecam02.cc b/rtengine/ciecam02.cc index 8314e5e8f..c7e49b2ed 100644 --- a/rtengine/ciecam02.cc +++ b/rtengine/ciecam02.cc @@ -404,7 +404,7 @@ void Ciecam02::calculate_abfloat ( vfloat &aa, vfloat &bb, vfloat h, vfloat e, v #endif void Ciecam02::initcam1float (float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb, - float &cz, float &aw, float &wh, float &pfl, float &fl, float &c) + float &cz, float &aw, float &wh, float &pfl, float &fl, float c) { n = yb / yw; diff --git a/rtengine/ciecam02.h b/rtengine/ciecam02.h index 8b532fba0..75ccfaa8c 100644 --- a/rtengine/ciecam02.h +++ b/rtengine/ciecam02.h @@ -84,7 +84,7 @@ public: * Forward transform from XYZ to CIECAM02 JCh. */ static void initcam1float (float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb, - float &cz, float &aw, float &wh, float &pfl, float &fl, float &c); + float &cz, float &aw, float &wh, float &pfl, float &fl, float c); static void initcam2float (float yb, float pilotd, float f, float la, float xw, float yw, float zw, float &n, float &d, float &nbb, float &ncb, float &cz, float &aw, float &fl); diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 097390619..f9d82c148 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -196,18 +196,8 @@ void Crop::update(int todo) params.dirpyrDenoise.getCurves(noiseLCurve, noiseCCurve); - int tilesize; - int overlap; - - if (settings->leveldnti == 0) { - tilesize = 1024; - overlap = 128; - } - - if (settings->leveldnti == 1) { - tilesize = 768; - overlap = 96; - } + const int tilesize = settings->leveldnti == 0 ? 1024 : 768; + const int overlap = settings->leveldnti == 0 ? 128 : 96; int numtiles_W, numtiles_H, tilewidth, tileheight, tileWskip, tileHskip; diff --git a/rtengine/image8.cc b/rtengine/image8.cc index 3d0a8df06..66ad8b60f 100644 --- a/rtengine/image8.cc +++ b/rtengine/image8.cc @@ -233,10 +233,10 @@ void Image8::getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, P lineB[dst_x] = CLIP(bm * btot); } else { // computing a special factor for this incomplete sub-region - float area = src_sub_width * src_sub_height; - lineR[dst_x] = CLIP(rm2 * rtot / area); - lineG[dst_x] = CLIP(gm2 * gtot / area); - lineB[dst_x] = CLIP(bm2 * btot / area); + float larea = src_sub_width * src_sub_height; + lineR[dst_x] = CLIP(rm2 * rtot / larea); + lineG[dst_x] = CLIP(gm2 * gtot / larea); + lineB[dst_x] = CLIP(bm2 * btot / larea); } } } diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 63c58b5ff..ada67ffe4 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -318,9 +318,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) MyMutex::MyLock processingLock(mProcessing); - constexpr int numofphases = 14; - int readyphase = 0; - bool highDetailNeeded = options.prevdemo == PD_Sidecar ? true : (todo & M_HIGHQUAL); // Check if any detail crops need high detail. If not, take a fast path short cut @@ -361,8 +358,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) //rp.deadPixelFilter = rp.hotPixelFilter = false; } - progress("Applying white balance, color correction & sRGB conversion...", 100 * readyphase / numofphases); - if (frameCountListener) { frameCountListener->FrameCountChanged(imgsrc->getFrameCount(), params->raw.bayersensor.imageNum); } @@ -621,8 +616,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) ipf.firstAnalysis(orig_prev, *params, vhist16); } - readyphase++; - if ((todo & M_HDR) && (params->fattal.enabled || params->dehaze.enabled)) { if (fattal_11_dcrop_cache) { delete fattal_11_dcrop_cache; @@ -639,7 +632,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) oprevi = orig_prev; - progress("Rotate / Distortion...", 100 * readyphase / numofphases); // Remove transformation if unneeded bool needstransform = ipf.needsTransform(); @@ -665,11 +657,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) ipf.lab2rgb(labcbdl, *oprevi, params->icm.workingProfile); } - readyphase++; - progress("Preparing shadow/highlight map...", 100 * readyphase / numofphases); - - readyphase++; - if (todo & M_AUTOEXP) { if (params->toneCurve.autoexp) { LUTu aehist; @@ -706,8 +693,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } } - progress("Exposure curve & CIELAB conversion...", 100 * readyphase / numofphases); - if (todo & (M_AUTOEXP | M_RGBCURVE)) { if (params->icm.workingTRC == "Custom") { //exec TRC IN free if (oprevi == orig_prev) { @@ -857,9 +842,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) params->crop.mapToResized(pW, pH, scale, x1, x2, y1, y2); } - readyphase++; // lhist16(32768); - if (todo & (M_LUMACURVE | M_CROP)) { LUTu lhist16(32768); lhist16.clear(); @@ -906,8 +889,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) lastorigimp->CopyFrom(oprevl); // int maxspot = 1; - progress("Applying Color Boost...", 100 * readyphase / numofphases); - //************************************************************* // locallab //************************************************************* @@ -1236,72 +1217,22 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) ipf.EPDToneMap(nprevl, 0, scale); } - // for all treatments Defringe, Sharpening, Contrast detail , Microcontrast they are activated if "CIECAM" function are disabled - readyphase++; - - /* Issue 2785, disabled some 1:1 tools - if (scale==1) { - if((params->colorappearance.enabled && !settings->autocielab) || (!params->colorappearance.enabled)){ - progress ("Denoising luminance impulse...",100*readyphase/numofphases); - ipf.impulsedenoise (nprevl); - readyphase++; - } - if((params->colorappearance.enabled && !settings->autocielab) || (!params->colorappearance.enabled)){ - progress ("Defringing...",100*readyphase/numofphases); - ipf.defringe (nprevl); - readyphase++; - } - if (params->sharpenEdge.enabled) { - progress ("Edge sharpening...",100*readyphase/numofphases); - ipf.MLsharpen (nprevl); - readyphase++; - } - if (params->sharpenMicro.enabled) { - if(( params->colorappearance.enabled && !settings->autocielab) || (!params->colorappearance.enabled)){ - progress ("Microcontrast...",100*readyphase/numofphases); - ipf.MLmicrocontrast (nprevl); - readyphase++; - } - } - if(((params->colorappearance.enabled && !settings->autocielab) || (!params->colorappearance.enabled)) && params->sharpening.enabled) { - progress ("Sharpening...",100*readyphase/numofphases); - - float **buffer = new float*[pH]; - for (int i=0; idirpyrequalizer.cbdlMethod == "aft") { if (((params->colorappearance.enabled && !settings->autocielab) || (!params->colorappearance.enabled))) { - progress("Pyramid wavelet...", 100 * readyphase / numofphases); ipf.dirpyrequalizer(nprevl, scale); - //ipf.Lanczoslab (ip_wavelet(LabImage * lab, LabImage * dst, const procparams::EqualizerParams & eqparams), nprevl, 1.f/scale); - readyphase++; } } wavcontlutili = false; - //CurveFactory::curveWavContL ( wavcontlutili,params->wavelet.lcurve, wavclCurve, LUTu & histogramwavcl, LUTu & outBeforeWavCLurveHistogram,int skip); CurveFactory::curveWavContL(wavcontlutili, params->wavelet.wavclCurve, wavclCurve, scale == 1 ? 1 : 16); if ((params->wavelet.enabled)) { WaveletParams WaveParams = params->wavelet; - // WaveParams.getCurves(wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY); WaveParams.getCurves(wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); int kall = 0; - progress("Wavelet...", 100 * readyphase / numofphases); - // ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, scale); ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); } @@ -1309,7 +1240,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) ipf.softLight(nprevl, params->softlight); if (params->colorappearance.enabled) { - //L histo and Chroma histo for ciecam + // L histo and Chroma histo for ciecam // histogram well be for Lab (Lch) values, because very difficult to do with J,Q, M, s, C int x1, y1, x2, y2; params->crop.mapToResized(pW, pH, scale, x1, x2, y1, y2); @@ -1390,8 +1321,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if (params->colorappearance.autoybscen && acListener && params->colorappearance.enabled) { acListener->ybCamChanged((int) yb); //real value Yb scene } - - readyphase++; } else { // CIECAM is disabled, we free up its image buffer to save some space if (ncie) { @@ -1425,8 +1354,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) crops[i]->update(todo); // may call ourselves } if (panningRelatedChange || (todo & M_MONITOR)) { - progress("Conversion to RGB...", 100 * readyphase / numofphases); - if ((todo != CROP && todo != MINUPDATE) || (todo & M_MONITOR)) { MyMutex::MyLock prevImgLock(previmg->getMutex()); @@ -1438,7 +1365,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) delete workimg; workimg = ipf.lab2rgb(nprevl, 0, 0, pW, pH, params->icm); } catch (char * str) { - progress("Error converting file...", 0); return; } } @@ -1457,8 +1383,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) imageListener->imageReady(params->crop); } - readyphase++; - if (hListener) { updateLRGBHistograms(); hListener->histogramChanged(histRed, histGreen, histBlue, histLuma, histToneCurve, histLCurve, histCCurve, /*histCLurve, histLLCurve,*/ histLCAM, histCCAM, histRedRaw, histGreenRaw, histBlueRaw, histChroma, histLRETI); @@ -1629,15 +1553,6 @@ void ImProcCoordinator::updateLRGBHistograms() } -void ImProcCoordinator::progress(Glib::ustring str, int pr) -{ - - /* if (plistener) { - plistener->setProgressStr (str); - plistener->setProgress ((double)pr / 100.0); - }*/ -} - bool ImProcCoordinator::getAutoWB(double& temp, double& green, double equal, double tempBias) { diff --git a/rtengine/improccoordinator.h b/rtengine/improccoordinator.h index ae1b82080..c74fe0033 100644 --- a/rtengine/improccoordinator.h +++ b/rtengine/improccoordinator.h @@ -187,7 +187,6 @@ protected: MyMutex minit; // to gain mutually exclusive access to ... to what exactly? - void progress(Glib::ustring str, int pr); void reallocAll(); void updateLRGBHistograms(); void setScale(int prevscale); diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index 3f9fec910..0a9d94e9b 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -24,7 +24,6 @@ #include "gamutwarning.h" #include "jaggedarray.h" #include "pipettebuffer.h" -#include "shmap.h" #include "array2D.h" #include diff --git a/rtengine/ipretinex.cc b/rtengine/ipretinex.cc index ec7674f25..a0ef4516e 100644 --- a/rtengine/ipretinex.cc +++ b/rtengine/ipretinex.cc @@ -51,7 +51,7 @@ #include "procparams.h" #include "rawimagesource.h" #include "rtengine.h" - +#include "shmap.h" #define BENCHMARK #include "StopWatch.h" #include "guidedfilter.h" diff --git a/rtengine/iptransform.cc b/rtengine/iptransform.cc index a4f304413..b1531cc9c 100644 --- a/rtengine/iptransform.cc +++ b/rtengine/iptransform.cc @@ -220,7 +220,7 @@ bool ImProcFunctions::transCoord (int W, int H, const std::vector &src, blue.push_back (Coord2D (src[i].x, src[i].y)); } - return clipped; + return false; } double oW = W, oH = H; diff --git a/rtengine/panasonic_decoders.cc b/rtengine/panasonic_decoders.cc index 37f586a6b..bbbfb7c20 100644 --- a/rtengine/panasonic_decoders.cc +++ b/rtengine/panasonic_decoders.cc @@ -64,7 +64,7 @@ class pana_cs6_page_decoder unsigned char current, *buffer; public: pana_cs6_page_decoder(unsigned char *_buffer, unsigned int bsize) - : lastoffset(0), maxoffset(bsize), current(0), buffer(_buffer) + : pixelbuffer{}, lastoffset(0), maxoffset(bsize), current(0), buffer(_buffer) { } void read_page(); // will throw IO error if not enough space in buffer diff --git a/rtengine/shmap.cc b/rtengine/shmap.cc index 44096d965..abdcc42a4 100644 --- a/rtengine/shmap.cc +++ b/rtengine/shmap.cc @@ -351,7 +351,7 @@ void SHMap::forceStat (float max_, float min_, float avg_) avg = avg_; } -void SHMap::dirpyr_shmap(float ** data_fine, float ** data_coarse, int width, int height, LUTf & rangefn, int level, int scale) +void SHMap::dirpyr_shmap(float ** data_fine, float ** data_coarse, int width, int height, const LUTf& rangefn, int level, int scale) { //scale is spacing of directional averaging weights diff --git a/rtengine/shmap.h b/rtengine/shmap.h index 5b710e48f..03276276e 100644 --- a/rtengine/shmap.h +++ b/rtengine/shmap.h @@ -53,7 +53,7 @@ private: void fillLuminance( Imagefloat * img, float **luminance, double lumi[3] ); void fillLuminanceL( float ** L, float **luminance ); - void dirpyr_shmap(float ** data_fine, float ** data_coarse, int width, int height, LUTf & rangefn, int level, int scale); + void dirpyr_shmap(float ** data_fine, float ** data_coarse, int width, int height, const LUTf& rangefn, int level, int scale); };