tracker r2304 - in trunk: . src/tracker-extract
- From: mr svn gnome org
- To: svn-commits-list gnome org
- Subject: tracker r2304 - in trunk: . src/tracker-extract
- Date: Fri, 3 Oct 2008 11:24:07 +0000 (UTC)
Author: mr
Date: Fri Oct 3 11:24:07 2008
New Revision: 2304
URL: http://svn.gnome.org/viewvc/tracker?rev=2304&view=rev
Log:
* configure.ac:
* src/tracker-extract/Makefile.am:
* src/tracker-extract/tracker-albumart.[ch]:
* src/tracker-extract/tracker-extract-mp3.c: Don't require
GdkPixbuf for MP3 album art extraction. Instead make it optionally
disabled for the Maemo platform while we wait for the latest
GdkPixbuf to be available.
Modified:
trunk/ChangeLog
trunk/configure.ac
trunk/src/tracker-extract/Makefile.am
trunk/src/tracker-extract/tracker-albumart.c
trunk/src/tracker-extract/tracker-albumart.h
trunk/src/tracker-extract/tracker-extract-mp3.c
Modified: trunk/configure.ac
==============================================================================
--- trunk/configure.ac (original)
+++ trunk/configure.ac Fri Oct 3 11:24:07 2008
@@ -90,22 +90,23 @@
GLIB_REQUIRED=2.16.0
PANGO_REQUIRED=1.0.0
GMIME_REQUIRED=2.1.0
+GDKPIXBUF_REQUIRED=2.12.0
PKG_CHECK_MODULES(GLIB2, [glib-2.0 >= $GLIB_REQUIRED])
AC_SUBST(GLIB2_CFLAGS)
AC_SUBST(GLIB2_LIBS)
-# Check for gthread 2.0
+# Check for GThread 2.0
PKG_CHECK_MODULES(GTHREAD, [ gthread-2.0 >= $GLIB_REQUIRED])
AC_SUBST(GTHREAD_CFLAGS)
AC_SUBST(GTHREAD_LIBS)
-# Check for gobject 2.0
+# Check for GObject 2.0
PKG_CHECK_MODULES(GOBJECT, [gobject-2.0 >= $GLIB_REQUIRED])
AC_SUBST(GOBJECT_CFLAGS)
AC_SUBST(GOBJECT_LIBS)
-# Check for gmodule 2.0
+# Check for GModule 2.0
PKG_CHECK_MODULES(GMODULE, [gmodule-2.0 >= $GLIB_REQUIRED])
AC_SUBST(GMODULE_CFLAGS)
AC_SUBST(GMODULE_LIBS)
@@ -114,7 +115,7 @@
AC_SUBST(GIO_CFLAGS)
AC_SUBST(GIO_LIBS)
-# Check for pango
+# Check for Pango
PKG_CHECK_MODULES(PANGO, [pango >= $PANGO_REQUIRED])
AC_SUBST(PANGO_CFLAGS)
AC_SUBST(PANGO_LIBS)
@@ -124,12 +125,6 @@
AC_SUBST(GMIME_CFLAGS)
AC_SUBST(GMIME_LIBS)
-# Check GdkPixbuf
-GDK_PIXBUF_CHECK="gdk-pixbuf-2.0 >= 2.12.0"
-PKG_CHECK_MODULES(GDK_PIXBUF, $GDK_PIXBUF_CHECK)
-AC_SUBST(GDK_PIXBUF_LIBS)
-AC_SUBST(GDK_PIXBUF_CFLAGS)
-
# Check for Dbus 0.50 or higher
PKG_CHECK_MODULES(DBUS, [dbus-1 >= $DBUS_REQUIRED dbus-glib-1 >= $DBUS_REQUIRED])
AC_SUBST(DBUS_CFLAGS)
@@ -398,8 +393,37 @@
AM_CONDITIONAL(HAVE_HAL, test "x$have_hal" = "xyes")
+##################################################################
+# Check for GdkPixbuf, needed for the MP3 album art extractor
+##################################################################
+
+# Check GdkPixbuf
+
+AC_ARG_ENABLE(gdkpixbuf,
+ AS_HELP_STRING([--disable-gdkpixbuf],
+ [Disable GdkPixbuf support, required for MP3 album art extraction]),,
+ [enable_gdkpixbuf=yes])
+
+if test "x$enable_gdkpixbuf" = "xyes"; then
+ PKG_CHECK_MODULES(GDKPIXBUF,
+ [gdk-pixbuf-2.0 >= $GDKPIXBUF_REQUIRED],
+ [have_gdkpixbuf=yes],
+ [have_gdkpixbuf=no])
+ AC_SUBST(GDKPIXBUF_LIBS)
+ AC_SUBST(GDKPIXBUF_CFLAGS)
+else
+ have_gdkpixbuf="no (disabled)"
+fi
+
+if test "x$have_gdkpixbuf" = "xyes"; then
+ AC_DEFINE(HAVE_GDKPIXBUF, [], [Define if we have GdkPixbuf])
+fi
+
+AM_CONDITIONAL(HAVE_GDKPIXBUF, test "x$have_gdkpixbuf" = "xyes")
+
+
####################################################################
-# check for GStreamer or Xine. Otherwise, call an external video
+# Check for GStreamer or Xine. Otherwise, call an external video
# player (Totem or MPlayer).
####################################################################
@@ -426,40 +450,40 @@
if test "x$enable_video_extractor" = "xauto"; then
if test "$have_libgstreamer" = "yes"; then
- videos_handler="GStreamer"
- videos_are_handled="yes"
+ have_video_handler_app="GStreamer"
+ have_video_handler="yes"
elif test "$have_libxine" = "yes"; then
- videos_handler="Xine"
- videos_are_handled="yes"
+ have_video_handler_app="Xine"
+ have_video_handler="yes"
else
- videos_are_handled="?"
- videos_handler="An external video player will be called"
+ have_video_handler="?"
+ have_video_handler_app="An external video player will be called"
fi
elif test "x$enable_video_extractor" = "xgstreamer"; then
if test "$have_libgstreamer" = "yes"; then
- videos_handler="GStreamer"
- videos_are_handled="yes"
+ have_video_handler_app="GStreamer"
+ have_video_handler="yes"
else
AC_MSG_ERROR([***Gstreamer requested but not found - exiting!])
fi
elif test "x$enable_video_extractor" = "xxine"; then
if test "$have_libxine" = "yes"; then
- videos_handler="Xine"
- videos_are_handled="yes"
+ have_video_handler_app="Xine"
+ have_video_handler="yes"
else
AC_MSG_ERROR([***libxine requested but not found - exiting!])
fi
else
- videos_are_handled="?"
- videos_handler="An external video player will be called"
+ have_video_handler="?"
+ have_video_handler_app="An external video player will be called"
fi
-if test "$videos_handler" = "GStreamer"; then
+if test "$have_video_handler_app" = "GStreamer"; then
AC_DEFINE(HAVE_GSTREAMER, [], [Define if we have GStreamer])
AM_CONDITIONAL(HAVE_GSTREAMER, true)
AM_CONDITIONAL(HAVE_LIBXINE, false)
AM_CONDITIONAL(USING_EXTERNAL_VIDEO_PLAYER, false)
-elif test "$videos_handler" = "Xine"; then
+elif test "$have_video_handler_app" = "Xine"; then
AC_DEFINE(HAVE_LIBXINE, [], [Define if we have Libxine])
AM_CONDITIONAL(HAVE_LIBXINE, true)
AM_CONDITIONAL(HAVE_GSTREAMER, false)
@@ -1178,14 +1202,15 @@
Metadata Extractors:
- Support png: yes
- Support pdf: $have_poppler
- Support jpeg: $have_libjpeg (xmp: $have_exempi exif: $have_libexif)
- Support tiff: $have_libtiff (xmp: $have_exempi exif: yes)
- Support ms & openoffice (gsf): $have_libgsf
- Support xml / html formats: $have_libxml2
- Support embedded / sidecar xmp: $have_exempi
- Support video files: $videos_are_handled ($videos_handler)
+ Support PNG: yes
+ Support PDF: $have_poppler
+ Support JPEG: $have_libjpeg (xmp: $have_exempi exif: $have_libexif)
+ Support TIFF: $have_libtiff (xmp: $have_exempi exif: yes)
+ Support MS & Open Office (gsf): $have_libgsf
+ Support XML / HTML formats: $have_libxml2
+ Support embedded / sidecar XMP: $have_exempi
+ Support video formats: $have_video_handler ($have_video_handler_app)
+ Support MP3 album art (w/ GdkPixbuf): $have_gdkpixbuf
Thumbnailers:
Modified: trunk/src/tracker-extract/Makefile.am
==============================================================================
--- trunk/src/tracker-extract/Makefile.am (original)
+++ trunk/src/tracker-extract/Makefile.am Fri Oct 3 11:24:07 2008
@@ -62,15 +62,20 @@
modules_LTLIBRARIES += libextract-xine.la
endif
+
# Common XMP Sources
xmp_sources = \
tracker-xmp.c \
tracker-xmp.h
# Common AlbumArt sources
-albumart_sources = \
+albumart_sources =
+
+if HAVE_GDKPIXBUF
+albumart_sources += \
tracker-albumart.c \
tracker-albumart.h
+endif
# ABW
libextract_abw_la_SOURCES = tracker-extract-abw.c
Modified: trunk/src/tracker-extract/tracker-albumart.c
==============================================================================
--- trunk/src/tracker-extract/tracker-albumart.c (original)
+++ trunk/src/tracker-extract/tracker-albumart.c Fri Oct 3 11:24:07 2008
@@ -1,5 +1,5 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/* Tracker AlbumArt - Album art helper functions
+/*
* Copyright (C) 2008, Nokia
*
* This program is free software; you can redistribute it and/or
@@ -18,20 +18,23 @@
* Boston, MA 02110-1301, USA.
*/
+#include "config.h"
+
#include <glib.h>
#include <glib/gprintf.h>
+
#include <gio/gio.h>
+
#include <gdk-pixbuf/gdk-pixbuf.h>
-#include "config.h"
#include "tracker-albumart.h"
gboolean
tracker_save_albumart (const unsigned char *buffer,
- size_t len,
- const gchar *artist,
- const gchar *album,
- const gchar *uri)
+ size_t len,
+ const gchar *artist,
+ const gchar *album,
+ const gchar *uri)
{
GdkPixbufLoader *loader;
GdkPixbuf *pixbuf = NULL;
@@ -41,7 +44,7 @@
gchar *checksum;
GError *error = NULL;
- g_type_init();
+ g_type_init ();
if (artist && album) {
g_sprintf (name, "%s %s", album, artist);
@@ -60,28 +63,26 @@
".album_art",
NULL);
- filename = g_build_filename (dir,
- name,
- NULL);
+ filename = g_build_filename (dir, name, NULL);
- if(g_file_test (filename, G_FILE_TEST_EXISTS)) {
+ if (g_file_test (filename, G_FILE_TEST_EXISTS)) {
g_free (filename);
g_free (dir);
return TRUE;
}
- if(!g_file_test (dir, G_FILE_TEST_EXISTS)) {
+ if (!g_file_test (dir, G_FILE_TEST_EXISTS)) {
g_mkdir_with_parents (dir, 0770);
}
g_free (dir);
- loader = gdk_pixbuf_loader_new();
+ loader = gdk_pixbuf_loader_new ();
if (!gdk_pixbuf_loader_write (loader, buffer, len, &error)) {
- g_warning("%s\n", error->message);
- g_error_free(error);
+ g_warning ("%s\n", error->message);
+ g_error_free (error);
gdk_pixbuf_loader_close (loader, NULL);
g_free (filename);
@@ -91,22 +92,22 @@
pixbuf = gdk_pixbuf_loader_get_pixbuf (loader);
if (!gdk_pixbuf_save (pixbuf, filename, "jpeg", &error, NULL)) {
- g_warning("%s\n", error->message);
- g_error_free(error);
+ g_warning ("%s\n", error->message);
+ g_error_free (error);
g_free (filename);
- g_object_unref(pixbuf);
+ g_object_unref (pixbuf);
gdk_pixbuf_loader_close (loader, NULL);
return FALSE;
}
g_free (filename);
- g_object_unref(pixbuf);
+ g_object_unref (pixbuf);
if (!gdk_pixbuf_loader_close (loader, &error)) {
- g_warning("%s\n", error->message);
- g_error_free(error);
+ g_warning ("%s\n", error->message);
+ g_error_free (error);
return FALSE;
}
Modified: trunk/src/tracker-extract/tracker-albumart.h
==============================================================================
--- trunk/src/tracker-extract/tracker-albumart.h (original)
+++ trunk/src/tracker-extract/tracker-albumart.h Fri Oct 3 11:24:07 2008
@@ -17,15 +17,19 @@
* Boston, MA 02110-1301, USA.
*/
-#ifndef _TRACKER_ALBUMART_H_
-#define _TRACKER_ALBUMART_H_
+#ifndef __TRACKER_ALBUMART_H__
+#define __TRACKER_ALBUMART_H__
#include <glib.h>
-gboolean tracker_save_albumart (const unsigned char *buffer,
- size_t len,
- const char *artist,
- const char *album,
- const gchar *uri);
+G_BEGIN_DECLS
-#endif /* _TRACKER_ALBUMART_H_ */
+gboolean tracker_save_albumart (const unsigned char *buffer,
+ size_t len,
+ const gchar *artist,
+ const gchar *album,
+ const gchar *uri);
+
+G_END_DECLS
+
+#endif /* __TRACKER_ALBUMART_H__ */
Modified: trunk/src/tracker-extract/tracker-extract-mp3.c
==============================================================================
--- trunk/src/tracker-extract/tracker-extract-mp3.c (original)
+++ trunk/src/tracker-extract/tracker-extract-mp3.c Fri Oct 3 11:24:07 2008
@@ -38,10 +38,13 @@
#ifndef G_OS_WIN32
#include <sys/mman.h>
-#endif
+#endif /* G_OS_WIN32 */
#include "tracker-extract.h"
+
+#ifdef HAVE_GDKPIXBUF
#include "tracker-albumart.h"
+#endif /* HAVE_GDKPIXBUF */
#define MAX_FILE_READ 1024 * 1024 * 10
#define MAX_MP3_SCAN_DEEP 16768
@@ -1152,12 +1155,14 @@
mp3_parse (buffer, size, metadata);
/* Save embedded album art */
+#ifdef HAVE_GDKPIXBUF
if (albumart.data && albumart.size) {
tracker_save_albumart (albumart.data, albumart.size,
g_hash_table_lookup (metadata, "Audio:Artist") ,
g_hash_table_lookup (metadata, "Audio:Album"),
filename);
}
+#endif /* HAVE_GDKPIXBUF */
/* Check that we have the minimum data. FIXME We should not need to do this */
if (!g_hash_table_lookup (metadata, "Audio:Title")) {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]