[gnac/gnac-video] Add a thumbnail for video files.
- From: Benoît Dupasquier <bdupasqu src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnac/gnac-video] Add a thumbnail for video files.
- Date: Tue, 18 Aug 2009 15:21:29 +0000 (UTC)
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]