[tracker-miners/wip/carlosg/extraction-fixes: 7/8] tracker-extract-gstreamer: Add helper function to create file resource




commit 5d4a803994d96e4ffcace23c0a52f369e5098c41
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed Sep 30 18:10:52 2020 +0200

    tracker-extract-gstreamer: Add helper function to create file resource
    
    This is already useful, and will be used further.

 src/tracker-extract/tracker-extract-gstreamer.c | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)
---
diff --git a/src/tracker-extract/tracker-extract-gstreamer.c b/src/tracker-extract/tracker-extract-gstreamer.c
index 6db34f71c..21c5c97f8 100644
--- a/src/tracker-extract/tracker-extract-gstreamer.c
+++ b/src/tracker-extract/tracker-extract-gstreamer.c
@@ -615,6 +615,21 @@ extractor_get_equipment (MetadataExtractor    *extractor,
        return equipment;
 }
 
+static TrackerResource *
+ensure_file_resource (TrackerResource *resource,
+                      const gchar     *file_url)
+{
+       TrackerResource *file_resource;
+
+       file_resource = tracker_resource_get_first_relation (resource, "nie:isStoredAs");
+       if (!file_resource) {
+               file_resource = tracker_resource_new (file_url);
+               tracker_resource_set_relation (resource, "nie:isStoredAs", file_resource);
+       }
+
+       return file_resource;
+}
+
 static void
 extractor_apply_audio_metadata (MetadataExtractor     *extractor,
                                 GstTagList            *tag_list,
@@ -961,8 +976,8 @@ extract_metadata (MetadataExtractor      *extractor,
                                        else
                                                track = tracker_resource_new (NULL);
 
+                                       file_resource = ensure_file_resource (track, file_url);
                                        extract_track (track, extractor, node->data, file_url, album_disc);
-                                       tracker_resource_set_relation (track, "nie:isStoredAs", 
file_resource);
                                        tracker_resource_add_take_relation (file_resource, 
"nie:interpretedAs", track);
                                }
 
@@ -1004,8 +1019,7 @@ extract_metadata (MetadataExtractor      *extractor,
 
                        tracker_resource_set_string (hash_resource, "nfo:hashAlgorithm", "gibest");
 
-                       file_resource = tracker_resource_new (file_url);
-                       tracker_resource_add_take_relation (resource, "nie:isStoredAs", file_resource);
+                       file_resource = ensure_file_resource (resource, file_url);
 
                        tracker_resource_set_relation (file_resource, "nfo:hasHash", hash_resource);
 


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