diff options
author | Philip Van Hoof <philip@codeminded.be> | 2010-05-21 15:30:20 +0200 |
---|---|---|
committer | Martyn Russell <martyn@lanedo.com> | 2010-05-27 10:58:39 +0100 |
commit | 26900b8bfc6faa3bc039dd607c687345af57d059 (patch) | |
tree | f5fdf0f27784edd8693602f0d75e73bddad8294f | |
parent | d792445764424f724dc582e447951444482a34c0 (diff) | |
download | tracker-26900b8bfc6faa3bc039dd607c687345af57d059.tar.gz |
tracker-writeback: XMP: Don't writeback fields that are typically set by the camera itself
-rw-r--r-- | src/tracker-writeback/tracker-writeback-xmp.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/tracker-writeback/tracker-writeback-xmp.c b/src/tracker-writeback/tracker-writeback-xmp.c index c67552c8f..1b5386328 100644 --- a/src/tracker-writeback/tracker-writeback-xmp.c +++ b/src/tracker-writeback/tracker-writeback-xmp.c @@ -269,6 +269,12 @@ writeback_xmp_update_file_metadata (TrackerWritebackFile *wbf, } } +#ifdef SET_TYPICAL_CAMERA_FIELDS + /* Default we don't do this, we shouldn't overwrite fields that are + * typically set by the camera itself. What do we know (better) than + * the actual camera did, anyway? Even if the user overwrites them in + * the RDF store ... (does he know what he's doing anyway?) */ + if (g_strcmp0 (row[2], TRACKER_NMM_PREFIX "meteringMode") == 0) { xmp_delete_property (xmp, NS_EXIF, "MeteringMode"); @@ -318,13 +324,17 @@ writeback_xmp_update_file_metadata (TrackerWritebackFile *wbf, if (g_strcmp0 (row[3], TRACKER_NMM_PREFIX "flash-on") == 0) { /* 0 = Flash did not fire - 1 = Flash fired */ + * 1 = Flash fired */ xmp_set_property (xmp, NS_EXIF, "Flash", "1", 0); } else { xmp_set_property (xmp, NS_EXIF, "Flash", "0", 0); } } + + /* TODO: Don't write row[3] as-is here, read xmp_specification.pdf, + page 84 (bottom). */ + if (g_strcmp0 (row[2], TRACKER_NMM_PREFIX "focalLength") == 0) { xmp_delete_property (xmp, NS_EXIF, "FocalLength"); xmp_set_property (xmp, NS_EXIF, "FocalLength", row[3], 0); @@ -345,6 +355,7 @@ writeback_xmp_update_file_metadata (TrackerWritebackFile *wbf, xmp_set_property (xmp, NS_EXIF, "FNumber", row[3], 0); } + if (g_strcmp0 (row[2], TRACKER_NMM_PREFIX "camera") == 0) { gchar *work_on = g_strdup (row[3]); gchar *ptr = strchr (work_on, ' '); @@ -366,6 +377,7 @@ writeback_xmp_update_file_metadata (TrackerWritebackFile *wbf, g_free (work_on); } +#endif /* SET_TYPICAL_CAMERA_FIELDS */ if (g_strcmp0 (row[2], TRACKER_MLO_PREFIX "location") == 0 || g_strcmp0 (row[2], TRACKER_MLO_PREFIX "city") == 0 || |