[rygel] server,media-export: Use libmediaart for storing



commit 124cb22dab426aff9d62b37ca98ca11c99f94848
Author: Jens Georg <mail jensge org>
Date:   Sat Jun 14 21:07:43 2014 +0200

    server,media-export: Use libmediaart for storing
    
    Signed-off-by: Jens Georg <mail jensge org>
    
    https://bugzilla.gnome.org/show_bug.cgi?id=710387

 configure.ac                                       |    1 +
 src/librygel-server/rygel-media-art-store.vala     |    7 ++
 src/plugins/media-export/Makefile.am               |    1 -
 .../rygel-media-export-item-factory.vala           |    9 +--
 .../rygel-media-export-jpeg-writer.vala            |   71 --------------------
 5 files changed, 12 insertions(+), 77 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index f0e44cf..b01d88f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -170,6 +170,7 @@ AS_IF([test "x$with_media_engine" = "xgstreamer"],
                                gstreamer-pbutils-1.0 >= $GSTPBU_REQUIRED
                                libsoup-2.4 >= $LIBSOUP_REQUIRED
                                sqlite3 >= $LIBSQLITE3_REQUIRED
+                               libmediaart-1.0 >= $MEDIAART_REQUIRED
                                uuid])
             RYGEL_PLUGIN_MEDIA_EXPORT_DEPS_VALAFLAGS="$RYGEL_COMMON_MODULES_VALAFLAGS --pkg gupnp-dlna-2.0 
--pkg gupnp-dlna-gst-2.0 --pkg gstreamer-tag-1.0 --pkg gstreamer-app-1.0 --pkg gstreamer-pbutils-1.0 --pkg 
sqlite3"
             AC_SUBST([RYGEL_PLUGIN_MEDIA_EXPORT_DEPS_VALAFLAGS])
diff --git a/src/librygel-server/rygel-media-art-store.vala b/src/librygel-server/rygel-media-art-store.vala
index ed72480..116be04 100644
--- a/src/librygel-server/rygel-media-art-store.vala
+++ b/src/librygel-server/rygel-media-art-store.vala
@@ -40,6 +40,7 @@ public class Rygel.MediaArtStore : GLib.Object {
     public static MediaArtStore? get_default () {
         if (first_time) {
             try {
+                MediaArt.init ();
                 media_art_store = new MediaArtStore ();
             } catch (MediaArtStoreError error) {
                 warning ("No media art available: %s", error.message);
@@ -105,6 +106,12 @@ public class Rygel.MediaArtStore : GLib.Object {
         return file;
     }
 
+    public void add (MusicItem item, File file, uint8[]? data) {
+        MediaArt.process_file (data, item.mime_type,
+                               MediaArt.Type.ALBUM, item.artist, item.album,
+                               file);
+    }
+
     private MediaArtStore () throws MediaArtStoreError {
         var dir = Path.build_filename (Environment.get_user_cache_dir (),
                                        "media-art");
diff --git a/src/plugins/media-export/Makefile.am b/src/plugins/media-export/Makefile.am
index 470fed6..4916bcc 100644
--- a/src/plugins/media-export/Makefile.am
+++ b/src/plugins/media-export/Makefile.am
@@ -26,7 +26,6 @@ librygel_media_export_la_SOURCES = \
        rygel-media-export-harvester.vala \
        rygel-media-export-harvesting-task.vala \
        rygel-media-export-item-factory.vala \
-       rygel-media-export-jpeg-writer.vala \
        rygel-media-export-object-factory.vala \
        rygel-media-export-writable-db-container.vala \
        rygel-media-export-playlist-root-container.vala \
diff --git a/src/plugins/media-export/rygel-media-export-item-factory.vala 
b/src/plugins/media-export/rygel-media-export-item-factory.vala
index 14296b9..9e45b1a 100644
--- a/src/plugins/media-export/rygel-media-export-item-factory.vala
+++ b/src/plugins/media-export/rygel-media-export-item-factory.vala
@@ -283,11 +283,10 @@ namespace Rygel.MediaExport.ItemFactory {
             case Tag.ImageType.UNDEFINED:
             case Tag.ImageType.FRONT_COVER:
                 var store = MediaArtStore.get_default ();
-                var thumb = store.get_media_art_file ("album", item, true);
-                try {
-                    var writer = new JPEGWriter ();
-                    writer.write (sample.get_buffer (), thumb);
-                } catch (Error error) {}
+                Gst.MapInfo map_info;
+                sample.get_buffer ().map (out map_info, Gst.MapFlags.READ);
+                store.add (item, file, map_info.data);
+                sample.get_buffer ().unmap (map_info);
                 break;
             default:
                 break;


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