[tracker] tracker-extract: clean up libstreamanalyzer integration a bit



commit 09ffcd5518c0950620b3c2ffd9426185e4e63ddb
Author: Martyn Russell <martyn lanedo com>
Date:   Mon Oct 26 15:57:31 2009 +0000

    tracker-extract: clean up libstreamanalyzer integration a bit

 configure.ac                                |   20 ++++++++++++------
 src/tracker-extract/Makefile.am             |   11 ++++-----
 src/tracker-extract/tracker-extract.c       |   29 +++++++++++++++++---------
 src/tracker-extract/tracker-topanalyzer.cpp |   21 +++++++++++--------
 4 files changed, 49 insertions(+), 32 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 36ea0c8..b55d699 100644
--- a/configure.ac
+++ b/configure.ac
@@ -151,7 +151,7 @@ HILDON_THUMBNAIL_REQUIRED=3.0.10
 EVO_REQUIRED=2.25.5
 EDS_REQUIRED=2.25.5
 # Unlikely version for now, Nepomuk integration isn't finished in streamanalyzer atm
-STREAMANALYZER_REQUIRED=9.9.9
+LIBSTREAMANALYZER_REQUIRED=0.7.0
 GEE_REQUIRED=0.3
 
 # Library Checks
@@ -201,12 +201,18 @@ AC_SUBST(GCONF_LIBS)
 AM_CONDITIONAL(HAVE_GCONF, test "$have_gconf" = "yes")
 
 # Check for Streamanalyzer
-PKG_CHECK_MODULES(STREAMANALYZER, [libstreamanalyzer >= $STREAMANALYZER_REQUIRED],
-		  [have_streamanalyzer=yes], [have_streamanalyzer=no])
-AC_SUBST(STREAMANALYZER_CFLAGS)
-AC_SUBST(STREAMANALYZER_LIBS)
+PKG_CHECK_MODULES(LIBSTREAMANALYZER, 
+	          [libstreamanalyzer >= $LIBSTREAMANALYZER_REQUIRED],
+		  [have_libstreamanalyzer=yes], 
+		  [have_libstreamanalyzer=no])
+AC_SUBST(LIBSTREAMANALYZER_CFLAGS)
+AC_SUBST(LIBSTREAMANALYZER_LIBS)
 
-AM_CONDITIONAL(HAVE_STREAMANALYZER, test "$have_streamanalyzer" = "yes")
+AM_CONDITIONAL(HAVE_LIBSTREAMANALYZER, test "$have_libstreamanalyzer" = "yes")
+
+if test x$have_libstreamanalyzer == "xyes"; then
+  AC_DEFINE(HAVE_LIBSTREAMANALYZER, 1, [libstreamanalyzer is available])
+fi
 
 # Check for libuuid
 PKG_CHECK_MODULES(UUID, [uuid])
@@ -1466,7 +1472,7 @@ Applications:
 
 Metadata Extractors:
 
-	Support StreamAnalyzer:			$have_streamanalyzer
+	Support libstreamanalyzer:		$have_libstreamanalyzer
 	Support PNG:				yes
 	Support PDF:				$have_poppler_glib
 	Support JPEG:				$have_libjpeg (xmp: $have_exempi, exif: $have_libexif, iptc: $have_libiptcdata)
diff --git a/src/tracker-extract/Makefile.am b/src/tracker-extract/Makefile.am
index 6b5e0db..b098bd8 100644
--- a/src/tracker-extract/Makefile.am
+++ b/src/tracker-extract/Makefile.am
@@ -28,8 +28,8 @@ INCLUDES = 								\
 	$(XINE_CFLAGS) 							\
 	$(TOTEM_PL_PARSER_CFLAGS)					
 
-if HAVE_STREAMANALYZER
-INCLUDES += $(STREAMANALYZER_CFLAGS) -DHAVE_STREAMANALYZER
+if HAVE_LIBSTREAMANALYZER
+INCLUDES += $(LIBSTREAMANALYZER_CFLAGS)
 endif
 
 if HAVE_ENCA
@@ -264,12 +264,11 @@ tracker_extract_LDADD = 						\
 	$(GMODULE_LIBS)							\
 	$(GTHREAD_LIBS)							\
 	$(GCOV_LIBS)							\
-	$(GLIB2_LIBS)							\
-	$(STREAMANALYZER_LIBS)
+	$(GLIB2_LIBS)
 
-if HAVE_STREAMANALYZER
+if HAVE_LIBSTREAMANALYZER
 tracker_extract_SOURCES += tracker-topanalyzer.cpp tracker-topanalyzer.h
-tracker_extract_LDADD += $(STREAMANALYZER_LIBS)
+tracker_extract_LDADD += $(LIBSTREAMANALYZER_LIBS)
 endif
 
 if HAVE_GDKPIXBUF
diff --git a/src/tracker-extract/tracker-extract.c b/src/tracker-extract/tracker-extract.c
index 3b2d64b..82e8139 100644
--- a/src/tracker-extract/tracker-extract.c
+++ b/src/tracker-extract/tracker-extract.c
@@ -34,9 +34,9 @@
 #include "tracker-main.h"
 #include "tracker-marshal.h"
 
-#ifdef HAVE_STREAMANALYZER
+#ifdef HAVE_LIBSTREAMANALYZER
 #include "tracker-topanalyzer.h"
-#endif
+#endif /* HAVE_STREAMANALYZER */
 
 #define MAX_EXTRACT_TIME 10
 
@@ -93,9 +93,9 @@ tracker_extract_class_init (TrackerExtractClass *klass)
 static void
 tracker_extract_init (TrackerExtract *object)
 {
-#ifdef HAVE_STREAMANALYZER
+#ifdef HAVE_LIBSTREAMANALYZER
 	tracker_topanalyzer_init ();
-#endif
+#endif /* HAVE_STREAMANALYZER */
 }
 
 static void
@@ -105,9 +105,9 @@ tracker_extract_finalize (GObject *object)
 
 	priv = TRACKER_EXTRACT_GET_PRIVATE (object);
 
-#ifdef HAVE_STREAMANALYZER
+#ifdef HAVE_LIBSTREAMANALYZER
 	tracker_topanalyzer_shutdown ();
-#endif
+#endif /* HAVE_STREAMANALYZER */
 
 	g_array_free (priv->specific_extractors, TRUE);
 	g_array_free (priv->generic_extractors, TRUE);
@@ -140,6 +140,11 @@ tracker_extract_new (gboolean disable_shutdown)
 		return NULL;
 	}
 
+#ifdef HAVE_LIBSTREAMANALYZER
+	g_message ("Adding extractor for libstreamanalyzer");
+	g_message ("  Generic  match for ALL (tried first before our module)");
+	g_message ("  Specific match for NONE (fallback to our modules)");
+#endif /* HAVE_STREAMANALYZER */
 	specific_extractors = g_array_new (FALSE,
 					   TRUE,
 					   sizeof (ModuleData));
@@ -226,13 +231,17 @@ get_file_metadata (TrackerExtract *extract,
 
 	tracker_sparql_builder_insert_open (statements);
 
-#ifdef HAVE_STREAMANALYZER
+#ifdef HAVE_LIBSTREAMANALYZER
+	tracker_dbus_request_comment (request_id,
+				      "  Extracting with libstreamanalyzer...");
+
 	tracker_topanalyzer_extract (uri, statements, &content_type);
 
-	if ((!mime || mime[0]=='\0') && content_type) {
-		mime = content_type;
+	if (tracker_sparql_builder_get_length (statements) > 0) {
+		tracker_sparql_builder_insert_close (statements);
+		return statements;
 	}
-#endif
+#endif /* HAVE_LIBSTREAMANALYZER */
 
 	if (mime && *mime) {
 		/* We know the mime */
diff --git a/src/tracker-extract/tracker-topanalyzer.cpp b/src/tracker-extract/tracker-topanalyzer.cpp
index bf6c4b8..af11db4 100644
--- a/src/tracker-extract/tracker-topanalyzer.cpp
+++ b/src/tracker-extract/tracker-topanalyzer.cpp
@@ -233,7 +233,7 @@ namespace Tracker {
 		                               value.c_str());
 	}
 
-	void Tracker::TripleCollector::finishAnalysis (const AnalysisResult* ) { }
+	void Tracker::TripleCollector::finishAnalysis (const AnalysisResult*) { }
 }
 
 typedef struct {
@@ -245,7 +245,7 @@ typedef struct {
 static void
 private_free (gpointer data)
 {
-	TrackerTopanalyzerPrivate *priv = (TrackerTopanalyzerPrivate *) data;
+	TrackerTopanalyzerPrivate *priv = (TrackerTopanalyzerPrivate*) data;
 
 	delete priv->mconfig;
 	delete priv->streamindexer;
@@ -263,7 +263,7 @@ tracker_topanalyzer_init (void)
 	 * filetype or file, you can inherit a Strigi::AnalyzerConfiguration
 	 * and have some tuning this way. */
 
-	FieldRegister::FieldRegister();
+	FieldRegister::FieldRegister ();
 
 	priv = g_new0 (TrackerTopanalyzerPrivate, 1);
 
@@ -285,12 +285,14 @@ tracker_topanalyzer_shutdown (void)
 }
 
 void
-tracker_topanalyzer_extract (const gchar *uri, TrackerSparqlBuilder  *metadata, gchar **content_type)
+tracker_topanalyzer_extract (const gchar           *uri, 
+			     TrackerSparqlBuilder  *metadata, 
+			     gchar                **content_type)
 {
-	gchar *filename;
 	TrackerTopanalyzerPrivate *priv;
+	gchar *filename;
 
-	priv = (TrackerTopanalyzerPrivate *) g_static_private_get (&private_key);
+	priv = (TrackerTopanalyzerPrivate*) g_static_private_get (&private_key);
 	g_return_if_fail (priv != NULL);
 
 	/* We need the filename from the URI because we'll use stat() and because
@@ -307,7 +309,7 @@ tracker_topanalyzer_extract (const gchar *uri, TrackerSparqlBuilder  *metadata,
 		 * implementation does (collecting triples) */
 
 		priv->m_writer->setParams (uri, metadata);
-		stat(filename, &s);
+		stat (filename, &s);
 
 		/* The first parameter that we pass here will influence what 
 		 * idx->path() will be above. StreamAnalyzer only ever appends
@@ -339,10 +341,11 @@ tracker_topanalyzer_extract (const gchar *uri, TrackerSparqlBuilder  *metadata,
 		FileInputStream resource (filename);
 
 		if (resource.status() == Ok) {
-			analysisresult.index(&resource);
+			analysisresult.index (&resource);
 
-			if (content_type && priv->m_writer->content_type)
+			if (content_type && priv->m_writer->content_type) {
 				*content_type = g_strdup (priv->m_writer->content_type);
+			}
 		}
 
 		g_free (filename);



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