mirror of
https://github.com/Rafostar/clapper.git
synced 2025-08-29 15:22:11 +02:00
clapper: discoverer: Skip items that already have tags
When tags are populated elsewhere, do not run discovery on them again. It is possible they were discovered in more efficient maner (e.g. from playlist data itself). This avoid us downloading each media item separately after all playlist items are queued.
This commit is contained in:
@@ -39,6 +39,7 @@
|
||||
*/
|
||||
|
||||
#include <gst/gst.h>
|
||||
#include <gst/tag/tag.h>
|
||||
#include <gst/pbutils/pbutils.h>
|
||||
|
||||
#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 had_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);
|
||||
had_tags = !gst_tag_list_is_empty (tags);
|
||||
gst_tag_list_unref (tags);
|
||||
|
||||
if (had_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);
|
||||
|
Reference in New Issue
Block a user