uri-clip-asset: Add file-size metadata
authornamanyadav12 <namanyadav128@gmail.com>
Sat, 4 Feb 2017 20:15:55 +0000 (20:15 +0000)
committerThibault Saunier <thibault.saunier@osg.samsung.com>
Sat, 4 Feb 2017 21:52:59 +0000 (18:52 -0300)
Add file-size metadata to GESUriClipAsset.

Reviewed-by: Thibault Saunier <thibault.saunier@osg.samsung.com>
Reviewed-by: Thibault Saunier <thibault.saunier@collabora.com>
Differential Revision: https://phabricator.freedesktop.org/D1645

ges/ges-uri-asset.c

index 1b82949..0a78a3a 100644 (file)
@@ -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);