From 7ba2c22ccb34008e441b23ad9e8e1e9eda7cc1db Mon Sep 17 00:00:00 2001 From: namanyadav12 Date: Sat, 4 Feb 2017 20:15:55 +0000 Subject: [PATCH] uri-clip-asset: Add file-size metadata Add file-size metadata to GESUriClipAsset. Reviewed-by: Thibault Saunier Reviewed-by: Thibault Saunier Differential Revision: https://phabricator.freedesktop.org/D1645 --- ges/ges-uri-asset.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/ges/ges-uri-asset.c b/ges/ges-uri-asset.c index 1b82949..0a78a3a 100644 --- a/ges/ges-uri-asset.c +++ b/ges/ges-uri-asset.c @@ -343,6 +343,26 @@ ges_uri_clip_asset_set_info (GESUriClipAsset * self, GstDiscovererInfo * info) } static void +_set_meta_file_size (const gchar * uri, GESUriClipAsset * asset) +{ + GError *error = NULL; + GFileInfo *file_info; + guint64 file_size; + + GESMetaContainer *container = GES_META_CONTAINER (asset); + + file_info = g_file_query_info (g_file_new_for_uri (uri), "standard::size", + G_FILE_QUERY_INFO_NONE, NULL, &error); + if (!error) { + file_size = g_file_info_get_attribute_uint64 (file_info, "standard::size"); + ges_meta_container_register_meta_uint64 (container, GES_META_READ_WRITE, + "file-size", file_size); + } else { + g_error_free (error); + } +} + +static void _set_meta_foreach (const GstTagList * tags, const gchar * tag, GESMetaContainer * container) { @@ -371,6 +391,8 @@ discoverer_discovered_cb (GstDiscoverer * discoverer, if (tags) gst_tag_list_foreach (tags, (GstTagForeachFunc) _set_meta_foreach, mfs); + _set_meta_file_size (uri, mfs); + if (gst_discoverer_info_get_result (info) == GST_DISCOVERER_OK) { ges_uri_clip_asset_set_info (mfs, info); } else { @@ -546,6 +568,8 @@ ges_uri_clip_asset_request_sync (const gchar * uri, GError ** error) gst_discoverer_info_get_result (info)); } + _set_meta_file_size (uri, asset); + ges_asset_cache_put (gst_object_ref (asset), NULL); ges_uri_clip_asset_set_info (asset, info); ges_asset_cache_set_loaded (GES_TYPE_URI_CLIP, uri, lerror); -- 2.7.4