[tracker/miner-web: 6/11] Coalesce nie:comment in jpeg extractor.
- From: Adrien Bustany <abustany src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/miner-web: 6/11] Coalesce nie:comment in jpeg extractor.
- Date: Thu, 5 Nov 2009 12:58:33 +0000 (UTC)
commit c8e5995bc23ccdabd4e4f436f989d3db18ce84a9
Author: Carlos Garnacho <carlos lanedo com>
Date: Tue Nov 3 14:56:11 2009 +0100
Coalesce nie:comment in jpeg extractor.
comment info may come from builtin and exif data. Coalesce both, since
nie:comment only allows one value.
src/tracker-extract/tracker-extract-jpeg.c | 67 +++++++++++++++++++--------
1 files changed, 47 insertions(+), 20 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-jpeg.c b/src/tracker-extract/tracker-extract-jpeg.c
index 99dcb94..d348145 100644
--- a/src/tracker-extract/tracker-extract-jpeg.c
+++ b/src/tracker-extract/tracker-extract-jpeg.c
@@ -70,26 +70,14 @@
#endif /* HAVE_LIBIPTCDATA */
typedef struct {
- gchar *camera;
- gchar *title;
- gchar *orientation;
- gchar *copyright;
- gchar *white_balance;
- gchar *fnumber;
- gchar *flash;
- gchar *focal_length;
- gchar *artist;
- gchar *exposure_time;
- gchar *iso_speed_ratings;
- gchar *date;
- gchar *description;
- gchar *metering_mode;
- gchar *creator;
- gchar *comment;
-} MergeData;
-
-static void extract_jpeg (const gchar *filename,
- TrackerSparqlBuilder *metadata);
+ gchar *camera, *title, *orientation, *copyright, *white_balance,
+ *fnumber, *flash, *focal_length, *artist,
+ *exposure_time, *iso_speed_ratings, *date, *description,
+ *metering_mode, *creator, *comment;
+} JpegNeedsMergeData;
+
+static void extract_jpeg (const gchar *filename,
+ TrackerSparqlBuilder *metadata);
static TrackerExtractData data[] = {
{ "image/jpeg", extract_jpeg },
@@ -161,6 +149,7 @@ extract_jpeg (const gchar *uri,
f = tracker_file_open (filename, "rb", FALSE);
if (f) {
+<<<<<<< HEAD
TrackerXmpData xd = { 0 };
TrackerExifData ed = { 0 };
TrackerIptcData id = { 0 };
@@ -172,6 +161,26 @@ extract_jpeg (const gchar *uri,
tracker_sparql_builder_object (metadata, "nfo:Image");
tracker_sparql_builder_predicate (metadata, "a");
tracker_sparql_builder_object (metadata, "nmm:Photo");
+=======
+ TrackerXmpData xmp_data = { 0 };
+ TrackerExifData exif_data = { 0 };
+ TrackerIptcData iptc_data = { 0 };
+ JpegNeedsMergeData merge_data = { 0 };
+ gchar *str, *comment = NULL;
+ gsize len;
+#ifdef HAVE_LIBIPTCDATA
+ gsize offset;
+ gsize sublen;
+#endif /* HAVE_LIBIPTCDATA */
+
+ tracker_statement_list_insert (metadata, uri,
+ RDF_PREFIX "type",
+ NFO_PREFIX "Image");
+
+ tracker_statement_list_insert (metadata, uri,
+ RDF_PREFIX "type",
+ NMM_PREFIX "Photo");
+>>>>>>> Coalesce nie:comment in jpeg extractor.
cinfo.err = jpeg_std_error (&tejerr.jpeg);
tejerr.jpeg.error_exit = extract_jpeg_error_exit;
@@ -210,8 +219,13 @@ extract_jpeg (const gchar *uri,
switch (marker->marker) {
case JPEG_COM:
+<<<<<<< HEAD
g_free (comment);
comment = g_strndup ((gchar*) marker->data, marker->data_length);
+=======
+ len = marker->data_length;
+ comment = g_strndup ((gchar*) marker->data, len);
+>>>>>>> Coalesce nie:comment in jpeg extractor.
break;
case JPEG_APP0 + 1:
@@ -310,6 +324,7 @@ extract_jpeg (const gchar *uri,
tracker_sparql_builder_object_int64 (metadata, cinfo.image_width);
g_free (ed.x_dimension);
+<<<<<<< HEAD
tracker_sparql_builder_predicate (metadata, "nfo:height");
tracker_sparql_builder_object_int64 (metadata, cinfo.image_height);
g_free (ed.y_dimension);
@@ -318,6 +333,13 @@ extract_jpeg (const gchar *uri,
insert_keywords (metadata, xd.keywords);
g_free (xd.keywords);
}
+=======
+ merge_data.creator = tracker_coalesce (3, iptc_data.byline,
+ xmp_data.creator,
+ iptc_data.credit);
+ merge_data.comment = tracker_coalesce (2, exif_data.user_comment,
+ comment);
+>>>>>>> Coalesce nie:comment in jpeg extractor.
if (xd.subject) {
insert_keywords (metadata, xd.subject);
@@ -506,6 +528,11 @@ extract_jpeg (const gchar *uri,
g_free (md.comment);
}
+ if (merge_data.comment) {
+ tracker_statement_list_insert (metadata, uri, NIE_PREFIX "comment", merge_data.comment);
+ g_free (merge_data.comment);
+ }
+
jpeg_destroy_decompress (&cinfo);
fail:
tracker_file_close (f, FALSE);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]