merge dev

This commit is contained in:
Desmis
2019-11-30 11:04:05 +01:00
2 changed files with 12 additions and 0 deletions

View File

@@ -500,6 +500,7 @@ std::unique_ptr<LFModifier> LFDatabase::getModifier(const LFCamera &camera, cons
return ret; return ret;
} }
std::set<std::string> LFDatabase::notFound;
std::unique_ptr<LFModifier> LFDatabase::findModifier(const procparams::LensProfParams &lensProf, const FramesMetaData *idata, int width, int height, const procparams::CoarseTransformParams &coarse, int rawRotationDeg) std::unique_ptr<LFModifier> LFDatabase::findModifier(const procparams::LensProfParams &lensProf, const FramesMetaData *idata, int width, int height, const procparams::CoarseTransformParams &coarse, int rawRotationDeg)
{ {
@@ -521,6 +522,11 @@ std::unique_ptr<LFModifier> LFDatabase::findModifier(const procparams::LensProfP
return nullptr; return nullptr;
} }
const std::string key = (make + model + lens).collate_key();
if (notFound.find(key) != notFound.end()) {
// This combination was not found => do not search again
return nullptr;
}
const LFDatabase *db = getInstance(); const LFDatabase *db = getInstance();
LFCamera c = db->findCamera(make, model); LFCamera c = db->findCamera(make, model);
LFLens l = db->findLens(lensProf.lfAutoMatch() ? c : LFCamera(), lens); LFLens l = db->findLens(lensProf.lfAutoMatch() ? c : LFCamera(), lens);
@@ -549,6 +555,10 @@ std::unique_ptr<LFModifier> LFDatabase::findModifier(const procparams::LensProfP
<< (ret ? ret->getDisplayString() : "NONE") << std::endl; << (ret ? ret->getDisplayString() : "NONE") << std::endl;
} }
if (!ret) {
notFound.emplace(key);
}
return ret; return ret;
} }

View File

@@ -21,6 +21,7 @@
#pragma once #pragma once
#include <memory> #include <memory>
#include <set>
#include <vector> #include <vector>
#include <glibmm/ustring.h> #include <glibmm/ustring.h>
@@ -135,6 +136,7 @@ private:
mutable MyMutex lfDBMutex; mutable MyMutex lfDBMutex;
static LFDatabase instance_; static LFDatabase instance_;
lfDatabase *data_; lfDatabase *data_;
static std::set<std::string> notFound;
}; };
} // namespace rtengine } // namespace rtengine