diff --git a/src/lib/clapper/features/discoverer/clapper-discoverer.c b/src/lib/clapper/features/discoverer/clapper-discoverer.c index cfd62653..c9497434 100644 --- a/src/lib/clapper/features/discoverer/clapper-discoverer.c +++ b/src/lib/clapper/features/discoverer/clapper-discoverer.c @@ -39,6 +39,7 @@ */ #include +#include #include #include "clapper-discoverer.h" @@ -128,8 +129,9 @@ _run_discovery (ClapperDiscoverer *self) ClapperMediaItem *item; ClapperQueue *queue; ClapperDiscovererDiscoveryMode discovery_mode; + GstTagList *tags; const gchar *uri; - gboolean success = FALSE; + gboolean empty_tags, success = FALSE; if (self->pending_items->len == 0) { GST_DEBUG_OBJECT (self, "No more pending items"); @@ -157,6 +159,16 @@ _run_discovery (ClapperDiscoverer *self) goto finish; } + tags = clapper_media_item_get_tags (item); + empty_tags = gst_tag_list_is_empty (tags); + gst_tag_list_unref (tags); + + if (!empty_tags) { + GST_DEBUG_OBJECT (self, "Queued %" GST_PTR_FORMAT + " already has tags, ignoring discovery", item); + goto finish; + } + uri = clapper_media_item_get_uri (item); GST_DEBUG_OBJECT (self, "Starting discovery of %" GST_PTR_FORMAT "(%s)", item, uri);