metadata: allow to select which metadata tags to include in the output image

(cherry picked from commit ed64206cb8b4455870815e2c51aecbd5c09e4054)
This commit is contained in:
Alberto Griggio
2020-04-08 11:48:36 -07:00
committed by Lawrence Lee
parent 5fdff8dab4
commit abb052e51b
12 changed files with 347 additions and 67 deletions

View File

@@ -23,6 +23,7 @@
#include <glibmm.h>
#include <exiv2/exiv2.hpp>
#include <memory>
#include <unordered_set>
#include "procparams.h"
#include "cache.h"
@@ -55,6 +56,8 @@ public:
void saveToImage(const Glib::ustring& path) const;
void saveToXmp(const Glib::ustring& path) const;
void setExifKeys(const std::vector<std::string> *keys);
static Glib::ustring xmpSidecarPath(const Glib::ustring& path);
static Exiv2::XmpData getXmpSidecar(const Glib::ustring& path);
@@ -76,6 +79,8 @@ private:
Exiv2::IptcData iptc_data_;
Exiv2::XmpData xmp_data_;
std::shared_ptr<std::unordered_set<std::string>> exif_keys_;
typedef std::pair<std::shared_ptr<Exiv2::Image>, Glib::TimeVal> CacheVal;
typedef Cache<Glib::ustring, CacheVal> ImageCache;
static std::unique_ptr<ImageCache> cache_;