[packages/tracker] - updated to 1.0.3 - added libmediaart patch (update for libmediaart >= 0.5.0, from tracker 1.1 bran
qboosh
qboosh at pld-linux.org
Tue Sep 2 20:11:23 CEST 2014
commit 8c84151e66259417bf84ad4d25a5e6d2d5fa009e
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date: Tue Sep 2 20:11:52 2014 +0200
- updated to 1.0.3
- added libmediaart patch (update for libmediaart >= 0.5.0, from tracker 1.1 branch)
tracker-libmediaart.patch | 596 ++++++++++++++++++++++++++++++++++++++++++++++
tracker.spec | 51 +++-
2 files changed, 637 insertions(+), 10 deletions(-)
---
diff --git a/tracker.spec b/tracker.spec
index a3a16ae..5a4040c 100644
--- a/tracker.spec
+++ b/tracker.spec
@@ -1,24 +1,26 @@
#
# Conditional build:
%bcond_without apidocs # do not build and package API docs
-%bcond_with evolution # build with Evolution miner
+%bcond_with evolution # Evolution miner
%bcond_with icu # libicu instead of libunistring
-%bcond_without nautilus # build with Evolution miner
-%bcond_without vala # do not build Vala API
+%bcond_without nautilus # Nautilus extension
+%bcond_with static_libs # static libraries
+%bcond_without vala # Vala API
#
%define ver 1.0
Summary: Tracker - an indexing subsystem
Summary(pl.UTF-8): Tracker - podsystem indeksujący
Name: tracker
-Version: 1.0.2
+Version: 1.0.3
Release: 1
License: GPL v2+
Group: X11/Applications
Source0: http://ftp.gnome.org/pub/GNOME/sources/tracker/1.0/%{name}-%{version}.tar.xz
-# Source0-md5: 649f7e3d2c4c9dc01dfa51e131010ba3
+# Source0-md5: b4e3462c8dfbd423ec5de4836bd5677b
Patch0: link.patch
Patch1: force-tb-fx-miners.patch
Patch2: %{name}-giflib.patch
+Patch3: %{name}-libmediaart.patch
URL: http://projects.gnome.org/tracker/
BuildRequires: NetworkManager-devel >= 0.8.0
BuildRequires: autoconf >= 2.64
@@ -52,7 +54,7 @@ BuildRequires: libgxps-devel
%{?with_icu:BuildRequires: libicu-devel >= 4.8.1.1}
BuildRequires: libiptcdata-devel
BuildRequires: libjpeg-devel
-BuildRequires: libmediaart-devel >= 0.1.0
+BuildRequires: libmediaart-devel >= 0.5.0
BuildRequires: libosinfo-devel >= 0.2.9
BuildRequires: libpng-devel >= 2:1.2.24
BuildRequires: libtiff-devel
@@ -115,6 +117,7 @@ Requires: enca-libs >= 1.9
Requires: exempi >= 2.1.0
Requires: glib2 >= 1:2.38.0
Requires: libexif >= 0.6.13
+Requires: libmediaart >= 0.5.0
Requires: sqlite3 >= 3.7.9
Obsoletes: libtracker
Obsoletes: libtracker-gtk
@@ -131,10 +134,11 @@ Summary(pl.UTF-8): Pliki nagłówkowe bibliotek Trackera
Group: Development/Libraries
Requires: %{name}-libs = %{version}-%{release}
Requires: glib2-devel >= 1:2.38.0
+Requires: libmediaart-devel >= 0.5.0
Obsoletes: libtracker-devel
Obsoletes: libtracker-gtk-devel
Obsoletes: libtracker-gtk-static
-Obsoletes: libtracker-static
+%{!?with_static_libs:Obsoletes: libtracker-static}
%description devel
Header files for Tracker libraries.
@@ -142,6 +146,18 @@ Header files for Tracker libraries.
%description devel -l pl.UTF-8
Pliki nagłówkowe bibliotek Trackera.
+%package static
+Summary: Static Tracker libraries
+Summary(pl.UTF-8): Statyczne biblioteki Trackera
+Group: Development/Libraries
+Requires: %{name}-devel = %{version}-%{release}
+
+%description static
+Static Tracker libraries.
+
+%description static -l pl.UTF-8
+Statyczne biblioteki Trackera.
+
%package apidocs
Summary: Tracker libraries API documentation
Summary(pl.UTF-8): Dokumentacja API bibliotek Trackera
@@ -225,6 +241,7 @@ API tracker dla języka Vala.
%patch0 -p1
%patch1 -p1
%patch2 -p1
+%patch3 -p1
%build
%{__intltoolize}
@@ -234,10 +251,8 @@ API tracker dla języka Vala.
%{__autoheader}
%{__automake}
%configure \
- --disable-hal \
- --disable-unit-tests \
- --disable-silent-rules \
%{__enable_disable apidocs gtk-doc} \
+ --disable-hal \
--enable-libcue \
--enable-libflac \
--enable-libvorbis \
@@ -245,6 +260,9 @@ API tracker dla języka Vala.
--enable-miner-firefox \
--enable-miner-thunderbird \
%{__enable_disable nautilus nautilus-extension} \
+ --disable-silent-rules \
+ %{!?with_static_libs:--disable-static} \
+ --disable-unit-tests \
--with-firefox-plugin-dir=%{_datadir}/iceweasel/browser/extensions \
--with-html-dir=%{_gtkdocdir} \
--with-thunderbird-plugin-dir=%{_datadir}/icedove/extensions \
@@ -263,6 +281,11 @@ rm -rf $RPM_BUILD_ROOT
%{__rm} $RPM_BUILD_ROOT%{_libdir}/tracker-%{ver}/*.la
%{?with_evolution:%{__rm} $RPM_BUILD_ROOT%{_libdir}/evolution/*/plugins/*.la}
%{?with_nautilus:%{__rm} $RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-*/*.la}
+%if %{with static_libs}
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/tracker-%{ver}/libtracker-*.a
+%{__rm} $RPM_BUILD_ROOT%{_libdir}/tracker-%{ver}/*/lib*.a
+%endif
+
%find_lang tracker
@@ -392,6 +415,14 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/gir-1.0/TrackerControl-%{ver}.gir
%{_datadir}/gir-1.0/TrackerMiner-%{ver}.gir
+%if %{with static_libs}
+%files static
+%defattr(644,root,root,755)
+%{_libdir}/libtracker-control-%{ver}.a
+%{_libdir}/libtracker-miner-%{ver}.a
+%{_libdir}/libtracker-sparql-%{ver}.a
+%endif
+
%if %{with apidocs}
%files apidocs
%defattr(644,root,root,755)
diff --git a/tracker-libmediaart.patch b/tracker-libmediaart.patch
new file mode 100644
index 0000000..677a81f
--- /dev/null
+++ b/tracker-libmediaart.patch
@@ -0,0 +1,596 @@
+ configure.ac | 10 +++-
+ src/libtracker-extract/tracker-extract-info.c | 56 +++++++++++++++++
+ src/libtracker-extract/tracker-extract-info.h | 12 ++++
+ src/tracker-extract/tracker-extract.c | 41 ++++++++++++
+ src/tracker-extract/tracker-extract.h | 5 ++
+ src/tracker-extract/tracker-main.c | 21 ------
+ 10 files changed, 255 insertions(+), 71 deletions(-)
+---
+diff --git a/configure.ac b/configure.ac
+index 3fb59e6..709ef32 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -229,7 +229,7 @@ NETWORK_MANAGER_REQUIRED=0.8
+ GSTREAMER_REQUIRED=0.10.31
+ GUPNP_DLNA_REQUIRED=0.9.4
+ LIBPNG_REQUIRED=0.89
+-LIBMEDIAART_REQUIRED=0.1.0
++LIBMEDIAART_REQUIRED=0.5.0
+
+ # 3.6.11 for sqlite_backup API
+ # 3.6.16 to fix test failures
+@@ -1070,9 +1070,15 @@ if test "x$enable_libmediaart" != "xno" ; then
+ LIBTRACKER_MINER_CFLAGS="$LIBTRACKER_MINER_CFLAGS $LIBMEDIAART_CFLAGS"
+ LIBTRACKER_MINER_LIBS="$LIBTRACKER_MINER_LIBS $LIBMEDIAART_LIBS"
+
++ LIBTRACKER_EXTRACT_CFLAGS="$LIBTRACKER_EXTRACT_CFLAGS $LIBMEDIAART_CFLAGS"
++ LIBTRACKER_EXTRACT_LIBS="$LIBTRACKER_EXTRACT_LIBS $LIBMEDIAART_LIBS"
++
+ TRACKER_EXTRACT_CFLAGS="$TRACKER_EXTRACT_CFLAGS $LIBMEDIAART_CFLAGS"
+ TRACKER_EXTRACT_LIBS="$TRACKER_EXTRACT_LIBS $LIBMEDIAART_LIBS"
+
++ TRACKER_MINER_FS_CFLAGS="$TRACKER_MINER_FS_CFLAGS $LIBMEDIAART_CFLAGS"
++ TRACKER_MINER_FS_LIBS="$TRACKER_MINER_FS_LIBS $LIBMEDIAART_LIBS"
++
+ # Used for .pc file...
+ LIBTRACKER_MINER_PC_REQUIRES="libmediaart-1.0"
+ AC_SUBST(LIBTRACKER_MINER_PC_REQUIRES)
+@@ -1755,7 +1761,7 @@ PKG_CHECK_MODULES(AVCODEC,
+ AC_SUBST(AVCODEC_CFLAGS)
+ AC_SUBST(AVCODEC_LIBS)
+
+-PKG_CHECK_MODULES(AVCODEC,
++PKG_CHECK_MODULES(AVUTIL,
+ [libavutil >= 0.8.4],
+ [have_libavutil=yes],
+ [have_libavutil=no])
+diff --git a/src/libtracker-extract/tracker-extract-info.c b/src/libtracker-extract/tracker-extract-info.c
+index a624301..63d77c6 100644
+--- a/src/libtracker-extract/tracker-extract-info.c
++++ b/src/libtracker-extract/tracker-extract-info.c
+@@ -19,6 +19,8 @@
+ * Author: Carlos Garnacho <carlos lanedo com>
+ */
+
++#include "config.h"
++
+ #include "tracker-extract-info.h"
+
+ /**
+@@ -46,6 +46,10 @@ struct _TrackerExtractInfo
+ gchar *mimetype;
+ gchar *graph;
+
++#ifdef HAVE_LIBMEDIAART
++ MediaArtProcess *media_art_process;
++#endif
++
+ gint ref_count;
+ };
+
+@@ -84,6 +88,10 @@ tracker_extract_info_new (GFile *f
+
+ info->where_clause = NULL;
+
++#ifdef HAVE_LIBMEDIAART
++ info->media_art_process = NULL;
++#endif
++
+ info->ref_count = 1;
+
+ return info;
+@@ -294,3 +304,49 @@ tracker_extract_info_set_where_clause (TrackerExtractInfo *info,
+ g_free (info->where_clause);
+ info->where_clause = g_strdup (where);
+ }
++
++#ifdef HAVE_LIBMEDIAART
++
++/**
++ * tracker_extract_info_get_media_art_process:
++ * @info: a #TrackerExtractInfo
++ *
++ * Returns the #MediaArtProcess object that can be used to retrieve
++ * and store media art caches found in extracted content.
++ *
++ * Returns: (transfer none): The #MediaArtProcess. This object should
++ * not be unreferenced.
++ *
++ * Since: 1.2
++ **/
++MediaArtProcess *
++tracker_extract_info_get_media_art_process (TrackerExtractInfo *info)
++{
++ g_return_if_fail (info != NULL);
++ return info->media_art_process;
++}
++
++/**
++ * tracker_extract_info_set_media_art_process:
++ * @info: a #TrackerExtractInfo
++ * @media_art_process: a #MediaArtProcess.
++ *
++ * Use @media_art_process for caching and looking up media art.
++ *
++ * Since: 1.2
++ **/
++void
++tracker_extract_info_set_media_art_process (TrackerExtractInfo *info,
++ MediaArtProcess *media_art_process)
++{
++ g_return_if_fail (info != NULL);
++ g_return_if_fail (MEDIA_ART_IS_PROCESS (media_art_process));
++
++ if (info->media_art_process) {
++ g_object_unref (info->media_art_process);
++ }
++
++ info->media_art_process = g_object_ref (media_art_process);
++}
++
++#endif /* HAVE_LIBMEDIAART */
+diff --git a/src/libtracker-extract/tracker-extract-info.h b/src/libtracker-extract/tracker-extract-info.h
+index f54b113..ffd1bce 100644
+--- a/src/libtracker-extract/tracker-extract-info.h
++++ b/src/libtracker-extract/tracker-extract-info.h
+@@ -29,6 +29,10 @@
+ #include <libtracker-sparql/tracker-sparql.h>
+ #include <gio/gio.h>
+
++#ifdef HAVE_LIBMEDIAART
++#include <libmediaart/mediaart.h>
++#endif
++
+ G_BEGIN_DECLS
+
+ typedef struct _TrackerExtractInfo TrackerExtractInfo;
+@@ -50,6 +54,14 @@ const gchar * tracker_extract_info_get_where_clause (TrackerExtrac
+ void tracker_extract_info_set_where_clause (TrackerExtractInfo *info,
+ const gchar *where);
+
++#ifdef HAVE_LIBMEDIAART
++
++MediaArtProcess * tracker_extract_info_get_media_art_process (TrackerExtractInfo *info);
++void tracker_extract_info_set_media_art_process (TrackerExtractInfo *info,
++ MediaArtProcess *media_art_process);
++
++#endif /* HAVE_LIBMEDIAART */
++
+ G_END_DECLS
+
+ #endif /* __LIBTRACKER_EXTRACT_INFO_H__ */
+diff --git a/src/tracker-extract/tracker-extract.c b/src/tracker-extract/tracker-extract.c
+index 5b3eca9..b5c60af 100644
+--- a/src/tracker-extract/tracker-extract.c
++++ b/src/tracker-extract/tracker-extract.c
+@@ -73,6 +73,10 @@ typedef struct {
+ gchar *force_module;
+
+ gint unhandled_count;
++
++#ifdef HAVE_LIBMEDIAART
++ MediaArtProcess *media_art_process;
++#endif
+ } TrackerExtractPrivate;
+
+ typedef struct {
+@@ -131,6 +135,17 @@ tracker_extract_init (TrackerExtract *ob
+ priv->thread_pool = g_thread_pool_new ((GFunc) get_metadata,
+ NULL, 10, TRUE, NULL);
+
++#ifdef HAVE_LIBMEDIAART
++ GError *error = NULL;
++
++ priv->media_art_process = media_art_process_new (&error);
++ if (!priv->media_art_process || error) {
++ g_warning ("Could not initialize media art, %s",
++ error ? error->message : _("No error given"));
++ g_error_free (error);
++ }
++#endif
++
+ g_mutex_init (&priv->task_mutex);
+ }
+
+@@ -152,6 +167,12 @@ tracker_extract_finalize (GObject *objec
+
+ g_hash_table_destroy (priv->statistics_data);
+
++#ifdef HAVE_LIBMEDIAART
++ if (priv->media_art_process) {
++ g_object_unref (priv->media_art_process);
++ }
++#endif
++
+ g_mutex_clear (&priv->task_mutex);
+
+ G_OBJECT_CLASS (tracker_extract_parent_class)->finalize (object);
+@@ -280,6 +301,10 @@ get_file_metadata (TrackerExtractTask *
+ info = tracker_extract_info_new (file, task->mimetype, task->graph);
+ g_object_unref (file);
+
++#ifdef HAVE_LIBMEDIAART
++ tracker_extract_info_set_media_art_process (info, tracker_extract_get_media_art_process (task->extract));
++#endif
++
+ if (task->mimetype && *task->mimetype) {
+ /* We know the mime */
+ mime_used = g_strdup (task->mimetype);
+@@ -720,6 +745,22 @@ tracker_extract_file (TrackerExtract
+ g_object_unref (res);
+ }
+
++#ifdef HAVE_LIBMEDIAART
++
++MediaArtProcess *
++tracker_extract_get_media_art_process (TrackerExtract *extract)
++{
++ TrackerExtractPrivate *priv;
++
++ g_return_val_if_fail (TRACKER_IS_EXTRACT (extract), NULL);
++
++ priv = TRACKER_EXTRACT_GET_PRIVATE (extract);
++
++ return priv->media_art_process;
++}
++
++#endif
++
+ void
+ tracker_extract_get_metadata_by_cmdline (TrackerExtract *object,
+ const gchar *uri,
+diff --git a/src/tracker-extract/tracker-extract.h b/src/tracker-extract/tracker-extract.h
+index 1d250d9..0679e99 100644
+--- a/src/tracker-extract/tracker-extract.h
++++ b/src/tracker-extract/tracker-extract.h
+@@ -60,6 +60,11 @@ void tracker_extract_file (TrackerExtract
+ GAsyncReadyCallback cb,
+ gpointer user_data);
+
++#ifdef HAVE_LIBMEDIAART
++MediaArtProcess *
++ tracker_extract_get_media_art_process (TrackerExtract *extract);
++#endif
++
+ void tracker_extract_dbus_start (TrackerExtract *extract);
+ void tracker_extract_dbus_stop (TrackerExtract *extract);
+
+diff --git a/src/tracker-extract/tracker-main.c b/src/tracker-extract/tracker-main.c
+index c707922..f515ec7 100644
+--- a/src/tracker-extract/tracker-main.c
++++ b/src/tracker-extract/tracker-main.c
+@@ -262,12 +262,6 @@ run_standalone (TrackerConfig *config)
+
+ tracker_locale_init ();
+
+-#ifdef HAVE_LIBMEDIAART
+- if (!media_art_init ()) {
+- g_warning ("Could not initialize media art, will not be available");
+- }
+-#endif
+-
+ /* This makes sure we don't steal all the system's resources */
+ initialize_priority_and_scheduling (tracker_config_get_sched_idle (config),
+ tracker_db_manager_get_first_index_done () == FALSE);
+@@ -280,9 +274,6 @@ run_standalone (TrackerConfig *config)
+ if (!object) {
+ g_object_unref (file);
+ g_free (uri);
+-#ifdef HAVE_LIBMEDIAART
+- media_art_shutdown ();
+-#endif
+ tracker_locale_shutdown ();
+ return EXIT_FAILURE;
+ }
+@@ -295,9 +286,6 @@ run_standalone (TrackerConfig *config)
+ g_object_unref (file);
+ g_free (uri);
+
+-#ifdef HAVE_LIBMEDIAART
+- media_art_shutdown ();
+-#endif
+ tracker_locale_shutdown ();
+
+ return EXIT_SUCCESS;
+@@ -404,12 +392,6 @@ main (int argc, char *argv[])
+
+ tracker_locale_init ();
+
+-#ifdef HAVE_LIBMEDIAART
+- if (!media_art_init ()) {
+- g_warning ("Could not initialize media art, will not be available");
+- }
+-#endif
+-
+ controller = tracker_extract_controller_new (decorator);
+ tracker_miner_start (TRACKER_MINER (decorator));
+
+@@ -424,9 +406,6 @@ main (int argc, char *argv[])
+ tracker_miner_stop (TRACKER_MINER (decorator));
+
+ /* Shutdown subsystems */
+-#ifdef HAVE_LIBMEDIAART
+- media_art_shutdown ();
+-#endif
+ tracker_locale_shutdown ();
+
+ g_object_unref (extract);
+diff --git a/src/tracker-extract/tracker-extract-gstreamer.c b/src/tracker-extract/tracker-extract-gstreamer.c
+index 1157a8b..9f27bdd 100644
+--- a/src/tracker-extract/tracker-extract-gstreamer.c
++++ b/src/tracker-extract/tracker-extract-gstreamer.c
+@@ -1558,18 +1558,27 @@ discoverer_init_and_run (MetadataExtract
+
+ static void
+ tracker_extract_gstreamer (const gchar *uri,
+- TrackerSparqlBuilder *preupdate,
+- TrackerSparqlBuilder *postupdate,
+- TrackerSparqlBuilder *metadata,
++ TrackerExtractInfo *info,
+ ExtractMime type,
+ const gchar *graph)
+ {
++ TrackerSparqlBuilder *metadata, *preupdate, *postupdate;
+ MetadataExtractor *extractor;
+ GstBuffer *buffer;
+ gchar *cue_sheet;
+ gboolean success;
+
++#ifdef HAVE_LIBMEDIAART
++ MediaArtProcess *media_art_process;
++#endif
++
+ g_return_if_fail (uri);
++
++ graph = tracker_extract_info_get_graph (info);
++ metadata = tracker_extract_info_get_metadata_builder (info);
++ preupdate = tracker_extract_info_get_preupdate_builder (info);
++ postupdate = tracker_extract_info_get_postupdate_builder (info);
++
+ g_return_if_fail (metadata);
+
+ gst_init (NULL, NULL);
+@@ -1579,6 +1588,7 @@ tracker_extract_gstreamer (const gchar
+ extractor->tagcache = gst_tag_list_new_empty ();
+
+ #ifdef HAVE_LIBMEDIAART
++ media_art_process = tracker_extract_info_get_media_art_process (info);
+ extractor->media_art_type = MEDIA_ART_NONE;
+ #endif
+
+@@ -1608,13 +1618,36 @@ tracker_extract_gstreamer (const gchar
+
+ #ifdef HAVE_LIBMEDIAART
+ if (extractor->media_art_type != MEDIA_ART_NONE) {
+- media_art_process (extractor->media_art_buffer,
+- extractor->media_art_buffer_size,
+- extractor->media_art_buffer_mime,
+- extractor->media_art_type,
+- extractor->media_art_artist,
+- extractor->media_art_title,
+- uri);
++ GError *error = NULL;
++ gboolean success = TRUE;
++
++ if (extractor->media_art_buffer) {
++ success = media_art_process_buffer (media_art_process,
++ extractor->media_art_type,
++ MEDIA_ART_PROCESS_FLAGS_NONE,
++ tracker_extract_info_get_file (info),
++ extractor->media_art_buffer,
++ extractor->media_art_buffer_size,
++ extractor->media_art_buffer_mime,
++ extractor->media_art_artist,
++ extractor->media_art_title,
++ &error);
++ } else {
++ success = media_art_process_file (media_art_process,
++ extractor->media_art_type,
++ MEDIA_ART_PROCESS_FLAGS_NONE,
++ tracker_extract_info_get_file (info),
++ extractor->media_art_artist,
++ extractor->media_art_title,
++ &error);
++ }
++
++ if (!success || error) {
++ g_warning ("Could not process media art for '%s', %s",
++ uri,
++ error ? error->message : "No error given");
++ g_clear_error (&error);
++ }
+ }
+ #endif
+ }
+@@ -1646,24 +1679,19 @@ tracker_extract_gstreamer (const gchar
+ G_MODULE_EXPORT gboolean
+ tracker_extract_get_metadata (TrackerExtractInfo *info)
+ {
+- TrackerSparqlBuilder *metadata, *preupdate, *postupdate;
+- const gchar *mimetype;
+ GFile *file;
+ gchar *uri;
+ const gchar *graph;
+-
+- graph = tracker_extract_info_get_graph (info);
+- metadata = tracker_extract_info_get_metadata_builder (info);
+- preupdate = tracker_extract_info_get_preupdate_builder (info);
+- postupdate = tracker_extract_info_get_postupdate_builder (info);
+- mimetype = tracker_extract_info_get_mimetype (info);
++ const gchar *mimetype;
+
+ file = tracker_extract_info_get_file (info);
+ uri = g_file_get_uri (file);
++ graph = tracker_extract_info_get_graph (info);
++ mimetype = tracker_extract_info_get_mimetype (info);
+
+ #if defined(GSTREAMER_BACKEND_GUPNP_DLNA)
+ if (g_str_has_prefix (mimetype, "dlna/")) {
+- tracker_extract_gstreamer (uri, preupdate, postupdate, metadata, EXTRACT_MIME_GUESS, graph);
++ tracker_extract_gstreamer (uri, info, EXTRACT_MIME_GUESS, graph);
+ } else
+ #endif /* GSTREAMER_BACKEND_GUPNP_DLNA */
+
+@@ -1696,19 +1696,19 @@ tracker_extract_get_metadata (TrackerExt
+ #endif /* GSTREAMER_BACKEND_GUPNP_DLNA */
+
+ if (strcmp (mimetype, "image/svg+xml") == 0) {
+- tracker_extract_gstreamer (uri, preupdate, postupdate, metadata, EXTRACT_MIME_SVG, graph);
++ tracker_extract_gstreamer (uri, info, EXTRACT_MIME_SVG, graph);
+ } else if (strcmp (mimetype, "video/3gpp") == 0 ||
+ strcmp (mimetype, "video/mp4") == 0 ||
+ strcmp (mimetype, "video/x-ms-asf") == 0 ||
+ strcmp (mimetype, "application/vnd.ms-asf") == 0 ||
+ strcmp (mimetype, "application/vnd.rn-realmedia") == 0) {
+- tracker_extract_gstreamer (uri, preupdate, postupdate, metadata, EXTRACT_MIME_GUESS, graph);
++ tracker_extract_gstreamer (uri, info, EXTRACT_MIME_GUESS, graph);
+ } else if (g_str_has_prefix (mimetype, "audio/")) {
+- tracker_extract_gstreamer (uri, preupdate, postupdate, metadata, EXTRACT_MIME_AUDIO, graph);
++ tracker_extract_gstreamer (uri, info, EXTRACT_MIME_AUDIO, graph);
+ } else if (g_str_has_prefix (mimetype, "video/")) {
+- tracker_extract_gstreamer (uri, preupdate, postupdate, metadata, EXTRACT_MIME_VIDEO, graph);
++ tracker_extract_gstreamer (uri, info, EXTRACT_MIME_VIDEO, graph);
+ } else if (g_str_has_prefix (mimetype, "image/")) {
+- tracker_extract_gstreamer (uri, preupdate, postupdate, metadata, EXTRACT_MIME_IMAGE, graph);
++ tracker_extract_gstreamer (uri, info, EXTRACT_MIME_IMAGE, graph);
+ } else {
+ g_free (uri);
+ return FALSE;
+diff --git a/src/tracker-extract/tracker-extract-libav.c b/src/tracker-extract/tracker-extract-libav.c
+index c14998b..78b0071 100644
+--- a/src/tracker-extract/tracker-extract-libav.c
++++ b/src/tracker-extract/tracker-extract-libav.c
+@@ -330,13 +330,27 @@ tracker_extract_get_metadata (TrackerExt
+ }
+
+ #ifdef HAVE_LIBMEDIAART
+- media_art_process (NULL,
+- 0,
+- NULL,
+- MEDIA_ART_ALBUM,
+- album_artist,
+- album_title,
+- uri);
++ if (album_artist || album_title) {
++ MediaArtProcess *media_art_process;
++ GError *error = NULL;
++ gboolean success;
++
++ media_art_process = tracker_extract_info_get_media_art_process (info);
++ success = media_art_process_file (media_art_process,
++ MEDIA_ART_ALBUM,
++ MEDIA_ART_PROCESS_FLAGS_NONE,
++ file,
++ album_artist,
++ album_title,
++ &error);
++
++ if (!success || error) {
++ g_warning ("Could not process media art for '%s', %s",
++ uri,
++ error ? error->message : "No error given");
++ g_clear_error (&error);
++ }
++ }
+ #endif
+
+ g_free(performer_uri);
+diff --git a/src/tracker-extract/tracker-extract-mp3.c b/src/tracker-extract/tracker-extract-mp3.c
+index d26ccf3..772085b 100644
+--- a/src/tracker-extract/tracker-extract-mp3.c
++++ b/src/tracker-extract/tracker-extract-mp3.c
+@@ -2647,13 +2647,41 @@ tracker_extract_get_metadata (TrackerExt
+ mp3_parse (buffer, buffer_size, audio_offset, uri, metadata, &md);
+
+ #ifdef HAVE_LIBMEDIAART
+- media_art_process (md.media_art_data,
+- md.media_art_size,
+- md.media_art_mime,
+- MEDIA_ART_ALBUM,
+- md.performer,
+- md.album,
+- uri);
++ if (md.performer || md.title) {
++ MediaArtProcess *media_art_process;
++ GError *error = NULL;
++ gboolean success = TRUE;
++
++ media_art_process = tracker_extract_info_get_media_art_process (info);
++
++ if (md.media_art_data) {
++ success = media_art_process_buffer (media_art_process,
++ MEDIA_ART_ALBUM,
++ MEDIA_ART_PROCESS_FLAGS_NONE,
++ file,
++ md.media_art_data,
++ md.media_art_size,
++ md.media_art_mime,
++ md.performer,
++ md.title,
++ &error);
++ } else {
++ success = media_art_process_file (media_art_process,
++ MEDIA_ART_ALBUM,
++ MEDIA_ART_PROCESS_FLAGS_NONE,
++ file,
++ md.performer,
++ md.title,
++ &error);
++ }
++
++ if (!success || error) {
++ g_warning ("Could not process media art for '%s', %s",
++ uri,
++ error ? error->message : "No error given");
++ g_clear_error (&error);
++ }
++ }
+ #endif
+ g_free (md.media_art_data);
+ g_free (md.media_art_mime);
+diff --git a/src/tracker-extract/tracker-extract-vorbis.c b/src/tracker-extract/tracker-extract-vorbis.c
+index 530bf20..e619650 100644
+--- a/src/tracker-extract/tracker-extract-vorbis.c
++++ b/src/tracker-extract/tracker-extract-vorbis.c
+@@ -514,16 +514,31 @@ tracker_extract_get_metadata (TrackerExt
+ }
+
+ #ifdef HAVE_LIBMEDIAART
+- {
+- gchar *uri = g_file_get_uri (file);
+- media_art_process (NULL,
+- 0,
+- NULL,
+- MEDIA_ART_ALBUM,
+- vd.album_artist ? vd.album_artist : vd.artist,
+- vd.album,
+- uri);
+- g_free (uri);
++ if ((vd.album_artist || vd.artist) || vd.album) {
++ MediaArtProcess *media_art_process;
++ GError *error = NULL;
++ gboolean success;
++
++ media_art_process = tracker_extract_info_get_media_art_process (info);
++
++ success = media_art_process_file (media_art_process,
++ MEDIA_ART_ALBUM,
++ MEDIA_ART_PROCESS_FLAGS_NONE,
++ file,
++ vd.album_artist ? vd.album_artist : vd.artist,
++ vd.album,
++ &error);
++
++ if (!success || error) {
++ gchar *uri;
++
++ uri = g_file_get_uri (file);
++ g_warning ("Could not process media art for '%s', %s",
++ uri,
++ error ? error->message : "No error given");
++ g_free (uri);
++ g_clear_error (&error);
++ }
+ }
+ #endif
+
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/tracker.git/commitdiff/8c84151e66259417bf84ad4d25a5e6d2d5fa009e
More information about the pld-cvs-commit
mailing list