Skip to content

Commit

Permalink
Merge branch 'stable'
Browse files Browse the repository at this point in the history
  • Loading branch information
gogglesguy committed Mar 24, 2015
2 parents 7e5d160 + d2402a2 commit 5da2295
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 24 deletions.
5 changes: 4 additions & 1 deletion ChangeLog
@@ -1,5 +1,8 @@
1.0.2
- Fix: don't crash when loading invalid or empty covers from taglib

1.0.1
- Fix: mpris v2 dbus properties interface
- Fix: mpris v2 dbus properties interface

1.0.0
- Added support for filters. Similar to automatic/smart playlists found in other music players
Expand Down
2 changes: 1 addition & 1 deletion build/version
@@ -1,5 +1,5 @@
MAJOR=1
MINOR=0
LEVEL=1
LEVEL=2
VERSION_TAG=
BETA_DB=0
33 changes: 16 additions & 17 deletions src/GMCover.cpp
Expand Up @@ -396,28 +396,27 @@ FXbool GMCover::getImageInfo(GMImageInfo & ii) {


FXuint GMCover::fileType() const {
if ( data[0]==137 &&
data[1]==80 &&
data[2]==78 &&
data[3]==71 &&
data[4]==13 &&
data[5]==10 &&
data[6]==26 &&
data[7]==10) {

if (size>8 && data[0]==137 &&
data[1]==80 &&
data[2]==78 &&
data[3]==71 &&
data[4]==13 &&
data[5]==10 &&
data[6]==26 &&
data[7]==10) {
return FILETYPE_PNG;
}
else if (data[0]==0xFF &&
data[1]==0xD8){
else if (size>2 && data[0]==0xFF &&
data[1]==0xD8){
return FILETYPE_JPG;
}
else if (data[0]=='B' &&
data[1]=='M'){
else if (size>2 && data[0]=='B' &&
data[1]=='M'){
return FILETYPE_BMP;
}
else if (data[0]==0x47 &&
data[1]==0x49 &&
data[2]==0x46){
else if (size>3 && data[0]==0x47 &&
data[1]==0x49 &&
data[2]==0x46){
return FILETYPE_GIF;
}
else
Expand Down Expand Up @@ -470,7 +469,7 @@ GMCover * GMCover::fromTag(const FXString & mrl) {
return tags.getFrontCover();
}
return NULL;
}
}

GMCover * GMCover::fromFile(const FXString & filename) {
FXFile file(filename,FXIO::Reading);
Expand Down
13 changes: 8 additions & 5 deletions src/GMTag.cpp
Expand Up @@ -188,7 +188,8 @@ static GMCover * xiph_load_cover(const TagLib::ByteVector & bytevector) {
static GMCover * id3v2_load_cover(TagLib::ID3v2::AttachedPictureFrame * frame) {
FXString mime = frame->mimeType().toCString(true);
/// Skip File Icon
if (frame->type()==TagLib::ID3v2::AttachedPictureFrame::FileIcon ||
if (frame->picture().size()==0 ||
frame->type()==TagLib::ID3v2::AttachedPictureFrame::FileIcon ||
frame->type()==TagLib::ID3v2::AttachedPictureFrame::OtherFileIcon ||
frame->type()==TagLib::ID3v2::AttachedPictureFrame::ColouredFish) {
return NULL;
Expand All @@ -205,7 +206,7 @@ static FXbool id3v2_is_front_cover(TagLib::ID3v2::AttachedPictureFrame * frame){


GMCover* flac_load_cover_from_taglib(const TagLib::FLAC::Picture * picture) {
if (picture) {
if (picture && picture->data().size()>0) {
if (picture->type()==TagLib::FLAC::Picture::FileIcon ||
picture->type()==TagLib::FLAC::Picture::OtherFileIcon ||
picture->type()==TagLib::FLAC::Picture::ColouredFish) {
Expand All @@ -217,7 +218,7 @@ GMCover* flac_load_cover_from_taglib(const TagLib::FLAC::Picture * picture) {
}

GMCover* flac_load_frontcover_from_taglib(const TagLib::FLAC::Picture * picture) {
if (picture && picture->type()==TagLib::FLAC::Picture::FrontCover) {
if (picture && picture->type()==TagLib::FLAC::Picture::FrontCover && picture->data().size()>0) {
return new GMCover(picture->data().data(),picture->data().size(),picture->type(),picture->description().toCString(true));
}
return NULL;
Expand Down Expand Up @@ -905,7 +906,8 @@ GMCover * GMFileTag::getFrontCover() const {
if (mp4->itemListMap().contains("covr")) {
TagLib::MP4::CoverArtList coverlist = mp4->itemListMap()["covr"].toCoverArtList();
for(TagLib::MP4::CoverArtList::Iterator it = coverlist.begin(); it != coverlist.end(); it++) {
return new GMCover(it->data().data(),it->data().size());
if (it->data().size())
return new GMCover(it->data().data(),it->data().size());
}
}
}
Expand Down Expand Up @@ -949,7 +951,8 @@ FXint GMFileTag::getCovers(GMCoverList & covers) const {
if (mp4->itemListMap().contains("covr")) {
TagLib::MP4::CoverArtList coverlist = mp4->itemListMap()["covr"].toCoverArtList();
for(TagLib::MP4::CoverArtList::Iterator it = coverlist.begin(); it != coverlist.end(); it++) {
covers.append(new GMCover(it->data().data(),it->data().size(),0));
if (it->data().size())
covers.append(new GMCover(it->data().data(),it->data().size(),0));
}
}
}
Expand Down

0 comments on commit 5da2295

Please sign in to comment.