merge dev
This commit is contained in:
@@ -500,6 +500,7 @@ std::unique_ptr<LFModifier> LFDatabase::getModifier(const LFCamera &camera, cons
|
||||
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)
|
||||
{
|
||||
@@ -521,6 +522,11 @@ std::unique_ptr<LFModifier> LFDatabase::findModifier(const procparams::LensProfP
|
||||
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();
|
||||
LFCamera c = db->findCamera(make, model);
|
||||
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;
|
||||
}
|
||||
|
||||
if (!ret) {
|
||||
notFound.emplace(key);
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@@ -21,6 +21,7 @@
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
#include <set>
|
||||
#include <vector>
|
||||
|
||||
#include <glibmm/ustring.h>
|
||||
@@ -135,6 +136,7 @@ private:
|
||||
mutable MyMutex lfDBMutex;
|
||||
static LFDatabase instance_;
|
||||
lfDatabase *data_;
|
||||
static std::set<std::string> notFound;
|
||||
};
|
||||
|
||||
} // namespace rtengine
|
||||
|
Reference in New Issue
Block a user