From 67b503da445a2a814b368639204e26452105524c Mon Sep 17 00:00:00 2001 From: Jonas Kvinge Date: Tue, 22 Nov 2022 21:09:18 +0100 Subject: [PATCH] TagReaderTagLib: Fix compilation tag read/write for MP4 Partial fix for #1076 --- ext/libstrawberry-tagreader/tagreadertaglib.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ext/libstrawberry-tagreader/tagreadertaglib.cpp b/ext/libstrawberry-tagreader/tagreadertaglib.cpp index 11449049..c6b61d21 100644 --- a/ext/libstrawberry-tagreader/tagreadertaglib.cpp +++ b/ext/libstrawberry-tagreader/tagreadertaglib.cpp @@ -400,6 +400,10 @@ bool TagReaderTagLib::ReadFile(const QString &filename, spb::tagreader::SongMeta song->set_originalyear(TStringToQString(mp4_tag->item(kMP4_OriginalYear_ID).toStringList().toString('\n')).left(4).toInt()); } + if (mp4_tag->item("cpil").isValid()) { + song->set_compilation(mp4_tag->item("cpil").toBool()); + } + { TagLib::MP4::Item item = mp4_tag->item(kMP4_FMPS_Playcount_ID); if (item.isValid()) { @@ -687,7 +691,7 @@ bool TagReaderTagLib::SaveFile(const QString &filename, const spb::tagreader::So tag->setItem("\251grp", TagLib::StringList(TagLib::String(song.grouping(), TagLib::String::UTF8))); tag->setItem("\251lyr", TagLib::StringList(TagLib::String(song.lyrics(), TagLib::String::UTF8))); tag->setItem("aART", TagLib::StringList(TagLib::String(song.albumartist(), TagLib::String::UTF8))); - tag->setItem("cpil", TagLib::StringList(song.compilation() ? "1" : "0")); + tag->setItem("cpil", TagLib::MP4::Item(song.compilation())); } // Handle all the files which have VorbisComments (Ogg, OPUS, ...) in the same way;