From 427d73cdc8d5e9cae41a605cc658f82c58c64556 Mon Sep 17 00:00:00 2001 From: Pierre d'Herbemont Date: Sat, 16 Jan 2010 16:22:09 +0100 Subject: [PATCH] libvlc: Don't request art if it was already asked before. --- src/control/media.c | 7 +++---- src/control/media_internal.h | 1 + 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/control/media.c b/src/control/media.c index 07c8b08197..cdcfb1cb1e 100644 --- a/src/control/media.c +++ b/src/control/media.c @@ -252,7 +252,7 @@ libvlc_media_t * libvlc_media_new_from_input_item( return NULL; } - p_md = malloc( sizeof(libvlc_media_t) ); + p_md = calloc( sizeof(libvlc_media_t), 1 ); if( !p_md ) { libvlc_exception_raise( p_e ); @@ -262,9 +262,7 @@ libvlc_media_t * libvlc_media_new_from_input_item( p_md->p_libvlc_instance = p_instance; p_md->p_input_item = p_input_item; - p_md->b_preparsed = false; p_md->i_refcount = 1; - p_md->p_user_data = NULL; p_md->state = libvlc_NothingSpecial; @@ -453,8 +451,9 @@ char *libvlc_media_get_meta( libvlc_media_t *p_md, libvlc_meta_t e_meta ) psz_meta = input_item_GetMeta( p_md->p_input_item, libvlc_to_vlc_meta[e_meta] ); - if( e_meta == libvlc_meta_ArtworkURL && !psz_meta ) + if( e_meta == libvlc_meta_ArtworkURL && !psz_meta && !p_md->has_asked_art ) { + p_md->has_asked_art = true; playlist_AskForArtEnqueue( libvlc_priv(p_md->p_libvlc_instance->p_libvlc_int)->p_playlist, p_md->p_input_item, pl_Unlocked ); diff --git a/src/control/media_internal.h b/src/control/media_internal.h index 7afd8dc477..650f71d14e 100644 --- a/src/control/media_internal.h +++ b/src/control/media_internal.h @@ -41,6 +41,7 @@ struct libvlc_media_t libvlc_state_t state; VLC_FORWARD_DECLARE_OBJECT(libvlc_media_list_t*) p_subitems; /* A media descriptor can have Sub items. This is the only dependancy we really have on media_list */ void *p_user_data; + bool has_asked_art; }; /* Media Descriptor */ -- 2.39.2