From d211c76cf8860843f990903e56750ddeb56a05d5 Mon Sep 17 00:00:00 2001 From: emeric Date: Mon, 9 May 2016 20:57:31 +0200 Subject: [PATCH] [METADATA] TagLib support for embedded OGG covers --- src/metadata/TagLibParser.cpp | 8 +++++++- test/TestAvMetadata.cpp | 22 +++++++++++++++++----- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/src/metadata/TagLibParser.cpp b/src/metadata/TagLibParser.cpp index 7280e753..28f455e6 100644 --- a/src/metadata/TagLibParser.cpp +++ b/src/metadata/TagLibParser.cpp @@ -88,7 +88,7 @@ TagLibParser::parse(const boost::filesystem::path& p, Items& items) items.insert( std::make_pair(MetaData::Type::Album, stringTrim( values.front().to8Bit(true)))); else if (tag == "TITLE") items.insert( std::make_pair(MetaData::Type::Title, stringTrim( values.front().to8Bit(true)))); - else if (tag == "MUSICBRAINZ RELEASE TRACK ID") + else if (tag == "MUSICBRAINZ_RELEASETRACKID") items.insert( std::make_pair(MetaData::Type::MusicBrainzTrackID, stringTrim( values.front().to8Bit(true)))); else if (tag == "MUSICBRAINZ_ARTISTID") items.insert( std::make_pair(MetaData::Type::MusicBrainzArtistID, stringTrim( values.front().to8Bit(true)))); @@ -168,6 +168,12 @@ TagLibParser::parse(const boost::filesystem::path& p, Items& items) items.insert( std::make_pair(MetaData::Type::Genres, genreList) ); } + else if (tag == "METADATA_BLOCK_PICTURE") + { + // Only add once + if (items.find(MetaData::Type::HasCover) == items.end()) + items.insert( std::make_pair(MetaData::Type::HasCover, true)); + } } } diff --git a/test/TestAvMetadata.cpp b/test/TestAvMetadata.cpp index 2ce4e1c5..b42d53f8 100644 --- a/test/TestAvMetadata.cpp +++ b/test/TestAvMetadata.cpp @@ -64,7 +64,6 @@ int main(int argc, char *argv[]) std::cout << "Duration: " << boost::posix_time::to_simple_string(boost::any_cast(item.second)) << std::endl; break; - case MetaData::Type::TrackNumber: std::cout << "Track: " << boost::any_cast(item.second) << std::endl; break; @@ -94,12 +93,25 @@ int main(int argc, char *argv[]) break; case MetaData::Type::AudioStreams: - { - for (auto& audioStream : boost::any_cast >(item.second)) - std::cout << "Audio stream '" << audioStream.desc << "' - " << audioStream.bitRate << " bps" << std::endl; + for (auto& audioStream : boost::any_cast >(item.second)) + std::cout << "Audio stream '" << audioStream.desc << "' - " << audioStream.bitRate << " bps" << std::endl; + break; + case MetaData::Type::MusicBrainzArtistID: + std::cout << "MusicBrainzArtistID: " << boost::any_cast(item.second) << std::endl; + break; - } + case MetaData::Type::MusicBrainzAlbumID: + std::cout << "MusicBrainzAlbumID: " << boost::any_cast(item.second) << std::endl; + break; + + case MetaData::Type::MusicBrainzTrackID: + std::cout << "MusicBrainzTrackID: " << boost::any_cast(item.second) << std::endl; + break; + + case MetaData::Type::MusicBrainzRecordingID: + std::cout << "MusicBrainzRecordingID: " << boost::any_cast(item.second) << std::endl; + break; default: break;