Fixed handling of shadows/highlights in simpleprocess.cc (broken by the fast export refactoring)

See issue #3793
This commit is contained in:
Alberto Griggio 2017-04-02 10:35:19 +02:00
parent cd93dab966
commit 3a90374d59

View File

@ -55,6 +55,7 @@ public:
tunnelMetaData(tunnelMetaData), tunnelMetaData(tunnelMetaData),
flush(flush), flush(flush),
// internal state // internal state
ipf_p(nullptr),
ii(nullptr), ii(nullptr),
imgsrc(nullptr), imgsrc(nullptr),
fw(-1), fw(-1),
@ -160,7 +161,8 @@ private:
// MyTime t1,t2; // MyTime t1,t2;
// t1.set(); // t1.set();
ImProcFunctions ipf (&params, true); ipf_p.reset(new ImProcFunctions(&params, true));
ImProcFunctions &ipf = *(ipf_p.get());
pp = PreviewProps(0, 0, fw, fh, 1); pp = PreviewProps(0, 0, fw, fh, 1);
imgsrc->setCurrentFrame(params.raw.bayersensor.imageNum); imgsrc->setCurrentFrame(params.raw.bayersensor.imageNum);
@ -733,7 +735,8 @@ private:
void stage_denoise() void stage_denoise()
{ {
procparams::ProcParams& params = job->pparams; procparams::ProcParams& params = job->pparams;
ImProcFunctions ipf (&params, true); //ImProcFunctions ipf (&params, true);
ImProcFunctions &ipf = *(ipf_p.get());
// perform luma/chroma denoise // perform luma/chroma denoise
// CieImage *cieView; // CieImage *cieView;
@ -797,7 +800,8 @@ private:
void stage_transform() void stage_transform()
{ {
procparams::ProcParams& params = job->pparams; procparams::ProcParams& params = job->pparams;
ImProcFunctions ipf (&params, true); //ImProcFunctions ipf (&params, true);
ImProcFunctions &ipf = *(ipf_p.get());
imgsrc->convertColorSpace(baseImg, params.icm, currWB); imgsrc->convertColorSpace(baseImg, params.icm, currWB);
@ -819,7 +823,8 @@ private:
Image16 *stage_finish() Image16 *stage_finish()
{ {
procparams::ProcParams& params = job->pparams; procparams::ProcParams& params = job->pparams;
ImProcFunctions ipf (&params, true); //ImProcFunctions ipf (&params, true);
ImProcFunctions &ipf = *(ipf_p.get());
if (params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !params.colorappearance.enabled) { if (params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !params.colorappearance.enabled) {
const int W = baseImg->getWidth(); const int W = baseImg->getWidth();
@ -1344,7 +1349,8 @@ private:
void stage_early_resize() void stage_early_resize()
{ {
procparams::ProcParams& params = job->pparams; procparams::ProcParams& params = job->pparams;
ImProcFunctions ipf (&params, true); //ImProcFunctions ipf (&params, true);
ImProcFunctions &ipf = *(ipf_p.get());
int imw, imh; int imw, imh;
double scale_factor = ipf.resizeScale(&params, fw, fh, imw, imh); double scale_factor = ipf.resizeScale(&params, fw, fh, imw, imh);
@ -1445,6 +1451,7 @@ private:
bool flush; bool flush;
// internal state // internal state
std::unique_ptr<ImProcFunctions> ipf_p;
InitialImage *ii; InitialImage *ii;
ImageSource *imgsrc; ImageSource *imgsrc;
int fw; int fw;