diff --git a/tagutils/tagutils-aac.c b/tagutils/tagutils-aac.c index bf5fddd..25bb110 100644 --- a/tagutils/tagutils-aac.c +++ b/tagutils/tagutils-aac.c @@ -165,6 +165,14 @@ _get_aactags(char *file, struct song_metadata *psong) { psong->compilation = current_data[16]; } + else if(!memcmp(current_atom, "covr", 4)) + { + psong->image_size = current_size - 8 - 16; + if((psong->image = malloc(psong->image_size))) + memcpy(psong->image, current_data+16, psong->image_size); + else + DPRINTF(E_ERROR, L_SCANNER, "Out of memory [%s]\n", file); + } free(current_data); current_offset += current_size; diff --git a/tagutils/tagutils-flc.c b/tagutils/tagutils-flc.c index 61f8927..09ce828 100644 --- a/tagutils/tagutils-flc.c +++ b/tagutils/tagutils-flc.c @@ -76,6 +76,13 @@ _get_flctags(char *filename, struct song_metadata *psong) block->data.vorbis_comment.comments[i].length); } break; + case FLAC__METADATA_TYPE_PICTURE: + psong->image_size = block->data.picture.data_length; + if((psong->image = malloc(psong->image_size))) + memcpy(psong->image, block->data.picture.data, psong->image_size); + else + DPRINTF(E_ERROR, L_SCANNER, "Out of memory [%s]\n", filename); + break; default: break; }