Warn about empty METADATA_BLOCK_PICTURE
This commit is contained in:
parent
eb2d3bb54a
commit
d7ca2a0cd4
|
@ -96,9 +96,13 @@ void FlacMetaDataBlockPicture::parse(istream &inputStream, uint32 maxSize)
|
||||||
inputStream.seekg(4 * 4, ios_base::cur);
|
inputStream.seekg(4 * 4, ios_base::cur);
|
||||||
size = reader.readUInt32BE();
|
size = reader.readUInt32BE();
|
||||||
CHECK_MAX_SIZE(size);
|
CHECK_MAX_SIZE(size);
|
||||||
auto data = make_unique<char[]>(size);
|
if(size) {
|
||||||
inputStream.read(data.get(), size);
|
auto data = make_unique<char[]>(size);
|
||||||
m_value.assignData(move(data), size, TagDataType::Picture);
|
inputStream.read(data.get(), size);
|
||||||
|
m_value.assignData(move(data), size, TagDataType::Picture);
|
||||||
|
} else {
|
||||||
|
m_value.clearData();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
|
|
|
@ -127,13 +127,17 @@ void FlacStream::internalParseHeader()
|
||||||
picture.parse(*m_istream, header.dataSize());
|
picture.parse(*m_istream, header.dataSize());
|
||||||
coverField.setTypeInfo(picture.pictureType());
|
coverField.setTypeInfo(picture.pictureType());
|
||||||
|
|
||||||
// add the cover to the Vorbis comment
|
if(coverField.value().isEmpty()) {
|
||||||
if(!m_vorbisComment) {
|
addNotification(NotificationType::Warning, "\"METADATA_BLOCK_PICTURE\" contains no picture.", context);
|
||||||
// create one if none exists yet
|
} else {
|
||||||
m_vorbisComment = make_unique<VorbisComment>();
|
// add the cover to the Vorbis comment
|
||||||
m_vorbisComment->setVendor(TagValue(APP_NAME " v" APP_VERSION, TagTextEncoding::Utf8));
|
if(!m_vorbisComment) {
|
||||||
|
// create one if none exists yet
|
||||||
|
m_vorbisComment = make_unique<VorbisComment>();
|
||||||
|
m_vorbisComment->setVendor(TagValue(APP_NAME " v" APP_VERSION, TagTextEncoding::Utf8));
|
||||||
|
}
|
||||||
|
m_vorbisComment->fields().insert(make_pair(coverField.id(), move(coverField)));
|
||||||
}
|
}
|
||||||
m_vorbisComment->fields().insert(make_pair(coverField.id(), move(coverField)));
|
|
||||||
|
|
||||||
} catch(const TruncatedDataException &) {
|
} catch(const TruncatedDataException &) {
|
||||||
addNotification(NotificationType::Critical, "\"METADATA_BLOCK_PICTURE\" is truncated and will be ignored.", context);
|
addNotification(NotificationType::Critical, "\"METADATA_BLOCK_PICTURE\" is truncated and will be ignored.", context);
|
||||||
|
|
Loading…
Reference in New Issue