mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-06-03 09:32:34 +02:00
2019-06-04 Fred Gleason <fredg@paravelsystems.com>
* Fixed a bug in rdimport(1) that caused a segfault when processing an ID3 tag with a field that contained a null value.
This commit is contained in:
parent
120b9bf07c
commit
43f441422d
@ -18731,3 +18731,6 @@
|
||||
2019-06-04 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Documented the 'Stop Recording' ['SR'] command in the CAE
|
||||
API documentation.
|
||||
2019-06-04 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Fixed a bug in rdimport(1) that caused a segfault when
|
||||
processing an ID3 tag with a field that contained a null value.
|
||||
|
@ -3541,58 +3541,65 @@ void RDWaveFile::ReadId3Metadata()
|
||||
}
|
||||
|
||||
if(!using_rdxl) {
|
||||
for(TagLib::PropertyMap::ConstIterator it=tags.begin();it!=tags.end();++it) {
|
||||
for(TagLib::PropertyMap::ConstIterator it=tags.begin();
|
||||
it!=tags.end();++it) {
|
||||
QString name=QString::fromUtf8(it->first.toCString(true));
|
||||
if(name=="TITLE") {
|
||||
if((name=="TITLE")&&(it->second.size()!=0)) {
|
||||
wave_data->
|
||||
setTitle(QString::fromUtf8(it->second.begin()->toCString(true)));
|
||||
wave_data->setMetadataFound(true);
|
||||
}
|
||||
if(name=="ARTIST") {
|
||||
if((name=="ARTIST")&&(it->second.size()!=0)) {
|
||||
wave_data->
|
||||
setArtist(QString::fromUtf8(it->second.begin()->toCString(true)));
|
||||
wave_data->setMetadataFound(true);
|
||||
}
|
||||
if(name=="ALBUM") {
|
||||
if((name=="ALBUM")&&(it->second.size()!=0)) {
|
||||
wave_data->
|
||||
setAlbum(QString::fromUtf8(it->second.begin()->toCString(true)));
|
||||
wave_data->setMetadataFound(true);
|
||||
}
|
||||
if(name=="COMPOSER") {
|
||||
if((name=="COMPOSER")&&(it->second.size()!=0)) {
|
||||
wave_data->
|
||||
setComposer(QString::fromUtf8(it->second.begin()->toCString(true)));
|
||||
wave_data->setMetadataFound(true);
|
||||
}
|
||||
if(name=="CONDUCTOR") {
|
||||
if((name=="CONDUCTOR")&&(it->second.size()!=0)) {
|
||||
wave_data->
|
||||
setConductor(QString::fromUtf8(it->second.begin()->toCString(true)));
|
||||
wave_data->setMetadataFound(true);
|
||||
}
|
||||
if(name=="PUBLISHER") {
|
||||
if((name=="PUBLISHER")&&(it->second.size()!=0)) {
|
||||
wave_data->
|
||||
setPublisher(QString::fromUtf8(it->second.begin()->toCString(true)));
|
||||
wave_data->setMetadataFound(true);
|
||||
}
|
||||
if(name=="ISRC") {
|
||||
if((name=="ISRC")&&(it->second.size()!=0)) {
|
||||
wave_data->
|
||||
setIsrc(QString::fromUtf8(it->second.begin()->toCString(true)));
|
||||
wave_data->setMetadataFound(true);
|
||||
}
|
||||
if(name=="COPYRIGHT") {
|
||||
if((name=="COPYRIGHT")&&(it->second.size()!=0)) {
|
||||
wave_data->
|
||||
setCopyrightNotice(QString::fromUtf8(it->second.begin()->
|
||||
toCString(true)));
|
||||
wave_data->setMetadataFound(true);
|
||||
}
|
||||
if(name=="YEAR") {
|
||||
wave_data->
|
||||
setReleaseYear(QString(it->second.begin()->toCString(true)).toInt());
|
||||
wave_data->setMetadataFound(true);
|
||||
if((name=="YEAR")&&(it->second.size()!=0)) {
|
||||
bool ok=false;
|
||||
int year=QString(it->second.begin()->toCString(true)).toInt(&ok);
|
||||
if(ok&&(year>0)) {
|
||||
wave_data->setReleaseYear(year);
|
||||
wave_data->setMetadataFound(true);
|
||||
}
|
||||
}
|
||||
if(name=="BPM") {
|
||||
wave_data->
|
||||
setBeatsPerMinute(QString(it->second.begin()->toCString(true)).toInt());
|
||||
wave_data->setMetadataFound(true);
|
||||
bool ok=false;
|
||||
int beats=QString(it->second.begin()->toCString(true)).toInt(&ok);
|
||||
if(ok&&(beats>0)) {
|
||||
wave_data->setBeatsPerMinute(beats);
|
||||
wave_data->setMetadataFound(true);
|
||||
}
|
||||
}
|
||||
/*
|
||||
printf("TAG: %s = ",it->first.toCString(true));
|
||||
|
Loading…
x
Reference in New Issue
Block a user