[tracker/tracker-0.6] Fixes NB#110584, Image:HasKeywords cannot be used for ImageViewer puprposes



commit 1852f721ca79282721cc0805025900f76a367bd3
Author: Mikael Ottela <mikael ottela ixonos com>
Date:   Wed May 27 20:06:14 2009 +0300

    Fixes NB#110584, Image:HasKeywords cannot be used for ImageViewer puprposes
    Fixes NB#100123, Image:Date is empty for some of the images
---
 src/tracker-extract/tracker-extract-gstreamer.c |    1 -
 src/tracker-extract/tracker-extract-jpeg.c      |    2 +-
 src/tracker-extract/tracker-extract-png.c       |    1 -
 src/tracker-extract/tracker-iptc.c              |   17 ++++++++++++++++-
 4 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/src/tracker-extract/tracker-extract-gstreamer.c b/src/tracker-extract/tracker-extract-gstreamer.c
index 0a46677..a1f3fe8 100644
--- a/src/tracker-extract/tracker-extract-gstreamer.c
+++ b/src/tracker-extract/tracker-extract-gstreamer.c
@@ -267,7 +267,6 @@ get_embedded_album_art(MetadataExtractor *extractor)
 				extractor->album_art_data = buffer->data;
 				extractor->album_art_size = buffer->size;
 				extractor->album_art_mime = gst_structure_get_name (caps_struct);
-				g_debug ("Mime was %s", extractor->album_art_mime);
 				return;
 			}
 
diff --git a/src/tracker-extract/tracker-extract-jpeg.c b/src/tracker-extract/tracker-extract-jpeg.c
index 914f7b0..fd195ee 100644
--- a/src/tracker-extract/tracker-extract-jpeg.c
+++ b/src/tracker-extract/tracker-extract-jpeg.c
@@ -384,7 +384,7 @@ extract_jpeg (const gchar *filename,
 		 *
 		 * jpeg_calc_output_dimensions(&cinfo);
 		 */
-		
+
 		marker = (struct jpeg_marker_struct *) &cinfo.marker_list;
 		
 		while (marker) {
diff --git a/src/tracker-extract/tracker-extract-png.c b/src/tracker-extract/tracker-extract-png.c
index a3f8f46..38082e0 100644
--- a/src/tracker-extract/tracker-extract-png.c
+++ b/src/tracker-extract/tracker-extract-png.c
@@ -133,7 +133,6 @@ metadata_append (GHashTable *metadata, gchar *key, gchar *value, gboolean append
 	/* Adding certain fields also to keywords FIXME Postprocessing is evil */
 	if ((strcmp (key, "Image:Title") == 0) ||
 	    (strcmp (key, "Image:Description") == 0) ) {
-		metadata_append (metadata, "Image:Keywords", value, TRUE);
 		g_hash_table_insert (metadata,
 				     g_strdup ("Image:HasKeywords"),
 				     tracker_escape_metadata ("1"));
diff --git a/src/tracker-extract/tracker-iptc.c b/src/tracker-extract/tracker-iptc.c
index 8f0edaf..7d88402 100644
--- a/src/tracker-extract/tracker-iptc.c
+++ b/src/tracker-extract/tracker-iptc.c
@@ -26,11 +26,16 @@
 #include <glib.h>
 #include <string.h>
 
+#include <libtracker-common/tracker-type-utils.h>
+#include <libtracker-common/tracker-file-utils.h>
+
 #ifdef HAVE_LIBIPTCDATA
 
 #include <libiptcdata/iptc-data.h>
 #include <libiptcdata/iptc-dataset.h>
 
+#define IPTC_DATE_FORMAT "%Y %m %d"
+
 typedef gchar * (*IptcPostProcessor) (const gchar*);
 
 typedef struct {
@@ -42,12 +47,13 @@ typedef struct {
 } IptcTagType;
 
 static gchar *fix_iptc_orientation (const gchar *orientation);
+static gchar *date_to_iso8601 (const gchar *date);
 
 static IptcTagType iptctags[] = {
         { 2, IPTC_TAG_KEYWORDS, "Image:Keywords", TRUE, NULL },
 	/*	{ 2, IPTC_TAG_CONTENT_LOC_NAME, "Image:Location", NULL }, */
 	{ 2, IPTC_TAG_SUBLOCATION, "Image:Location", FALSE, NULL },
-        { 2, IPTC_TAG_DATE_CREATED, "Image:Date", FALSE, NULL },
+        { 2, IPTC_TAG_DATE_CREATED, "Image:Date", FALSE, date_to_iso8601 },
         { 2, IPTC_TAG_BYLINE, "Image:Creator", FALSE, NULL },
         { 2, IPTC_TAG_CITY, "Image:City", FALSE, NULL },
         { 2, IPTC_TAG_COUNTRY_NAME, "Image:Country", FALSE, NULL },
@@ -122,6 +128,15 @@ metadata_append (GHashTable *metadata, gchar *key, gchar *value, gboolean append
 }
 
 static gchar *
+date_to_iso8601 (const gchar *date)
+{
+	/* From: ex; date "2007:04:15 15:35:58"
+	 * To  : ex. "2007-04-15T17:35:58+0200 where +0200 is localtime
+	 */
+	return tracker_date_format_to_iso8601 (date, IPTC_DATE_FORMAT);
+}
+
+static gchar *
 fix_iptc_orientation (const gchar *orientation)
 {
 	if (strcmp(orientation, "P")==0) {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]