decoder/flac: support embedded pictures (FLAC__METADATA_TYPE_PICTURE)

This commit is contained in:
Max Kellermann 2019-08-12 20:44:22 +02:00
parent 575ba51931
commit 54daa85ac2

View File

@ -149,6 +149,21 @@ Scan(const FLAC__StreamMetadata_StreamInfo &stream_info,
}
}
static void
Scan(const FLAC__StreamMetadata_Picture &picture, TagHandler &handler) noexcept
{
if (!handler.WantPicture())
return;
if (picture.mime_type != nullptr &&
StringIsEqual(picture.mime_type, "-->"))
/* this is a URL, not image data */
return;
handler.OnPicture(picture.mime_type,
{picture.data, picture.data_length});
}
void
flac_scan_metadata(const FLAC__StreamMetadata *block,
TagHandler &handler) noexcept
@ -163,6 +178,10 @@ flac_scan_metadata(const FLAC__StreamMetadata *block,
Scan(block->data.stream_info, handler);
break;
case FLAC__METADATA_TYPE_PICTURE:
Scan(block->data.picture, handler);
break;
default:
break;
}