33#ifndef DT_METADATA_EXIF_INTERNAL_H
34#define DT_METADATA_EXIF_INTERNAL_H
39#include <exiv2/exiv2.hpp>
59#define read_metadata_threadsafe(image) \
62 image->readMetadata(); \
RAII guard over the process-wide exiv2 lock.
static int dt_pthread_mutex_unlock(dt_pthread_mutex_t *mutex) RELEASE(mutex) NO_THREAD_SAFETY_ANALYSIS
static int dt_pthread_mutex_lock(dt_pthread_mutex_t *mutex) ACQUIRE(mutex) NO_THREAD_SAFETY_ANALYSIS
bool dt_exif_decode_xmp_data(dt_image_t *img, Exiv2::XmpData &xmpData, int version, bool exif_read)
Apply one XMP packet's metadata, tags and colour labels to img.
void dt_remove_exif_keys(Exiv2::ExifData &exif, const char *keys[], unsigned int n_keys)
Strip the given EXIF keys from exif, ignoring any that are absent.
bool dt_exif_read_exif_tag(Exiv2::ExifData &exifData, Exiv2::ExifData::const_iterator *pos, std::string key)
Read one EXIF tag into pos, FALSE if the image does not carry it.
dt_pthread_mutex_t * dt_exiv2_threadsafe_mutex(void)