diff --git a/lib/rbcodec/metadata/id3tags.c b/lib/rbcodec/metadata/id3tags.c index e7fed7c868..fed99d81a0 100644 --- a/lib/rbcodec/metadata/id3tags.c +++ b/lib/rbcodec/metadata/id3tags.c @@ -299,7 +299,10 @@ static int parsegenre( struct mp3entry* entry, char* tag, int bufferpos ) /* parse embed albumart */ static int parsealbumart( struct mp3entry* entry, char* tag, int bufferpos ) { - entry->has_embedded_albumart = false; + /* don't parse albumart if already one found. This callback function is + * called unconditionally. */ + if(entry->has_embedded_albumart) + return bufferpos; /* we currently don't support unsynchronizing albumart */ if (entry->albumart.type == AA_TYPE_UNSYNC) @@ -735,6 +738,10 @@ void setid3v2title(int fd, struct mp3entry *entry) bool itunes_gapless = false; #endif +#ifdef HAVE_ALBUMART + entry->has_embedded_albumart = false; +#endif + global_ff_found = false; /* Bail out if the tag is shorter than 10 bytes */