[gnac/gnac-video] Add a thumbnail for video files.



commit 45dc554ecdbed057de9f3be4acf00da00374579d
Author: Benoît Dupasquier <bdupasqu src gnome org>
Date:   Tue Aug 18 17:20:50 2009 +0200

    Add a thumbnail for video files.

 libgnac/libgnac-metadata.c |   35 +++++++++++++++++++++++++----------
 1 files changed, 25 insertions(+), 10 deletions(-)
---
diff --git a/libgnac/libgnac-metadata.c b/libgnac/libgnac-metadata.c
index 8146815..36b4bd9 100644
--- a/libgnac/libgnac-metadata.c
+++ b/libgnac/libgnac-metadata.c
@@ -618,16 +618,19 @@ static void
 libgnac_metadata_get_file_info(GFile           *uri, 
                                LibgnacMetadata *md)
 {
-  gchar     *path;
-  GError    *error = NULL;
-  GFileInfo *info;
-  GValue    *file_size_value;
-  GValue    *filename_value;
-  GValue    *location_value;
-
-  info = g_file_query_info(uri, 
-        "standard::display-name,standard::size", G_FILE_QUERY_INFO_NONE, 
-        NULL, &error);
+  gchar       *path;
+  GdkPixbuf   *pixbuf;
+  GError      *error = NULL;
+  GFileInfo   *info;
+  GValue      *file_size_value;
+  GValue      *filename_value;
+  GValue      *location_value;
+  GValue      *thumbnail_value;
+  const gchar *thumbnail_path;
+
+  info = g_file_query_info(uri,
+        "standard::display-name,standard::size,thumbnail::path",
+        G_FILE_QUERY_INFO_NONE, NULL, &error);
 
   if (error) {
     g_clear_error(&error);
@@ -653,6 +656,18 @@ libgnac_metadata_get_file_info(GFile           *uri,
   g_value_set_string(filename_value, g_file_info_get_display_name(info));
   g_hash_table_insert(md->priv->metadata, GNAC_TAG_FILENAME, filename_value);  
 
+  /* thumbnail */
+  thumbnail_path = g_file_info_get_attribute_byte_string(info,
+                  G_FILE_ATTRIBUTE_THUMBNAIL_PATH);
+  if (thumbnail_path)
+  {
+    pixbuf = gdk_pixbuf_new_from_file(thumbnail_path, NULL);
+    thumbnail_value = g_new0(GValue, 1);
+    g_value_init(thumbnail_value, G_TYPE_OBJECT);
+    g_value_set_object(thumbnail_value, pixbuf);
+    g_hash_table_insert(md->priv->metadata, GST_TAG_IMAGE, thumbnail_value);
+  }
+
   /* cleanup */
   g_free(path);
   g_object_unref(info);



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