Ticket #3511: mythmusic_compilation.diff

File mythmusic_compilation.diff, 1.5 KB (added by stuartm, 17 years ago)

Possible Fix

  • mythmusic/metaiotaglib.h

     
    1212using TagLib::MPEG::File;
    1313using TagLib::Tag;
    1414using TagLib::ID3v2::UserTextIdentificationFrame;
     15using TagLib::ID3v2::TextIdentificationFrame;
    1516using TagLib::ID3v2::AttachedPictureFrame;
    1617using TagLib::String;
    1718using TagLib::MPEG::Properties;
  • mythmusic/metaiotaglib.cpp

     
    5555        if (!mdata->CompilationArtist().isEmpty())
    5656        {
    5757            // Compilation Artist (TPE4)
    58             taglib->ID3v2Tag()->frameListMap()["TPE4"].front()->setText(
    59                 QStringToTString(mdata->CompilationArtist()));
     58            TextIdentificationFrame *tpeframe;
     59
     60            TagLib::ID3v2::FrameList tpelist = taglib->ID3v2Tag()->frameListMap()["TPE4"];
     61            if (!tpelist.isEmpty())
     62            {
     63                tpeframe = (TextIdentificationFrame *)tpelist.front();
     64            }
     65            else {
     66                tpeframe = new TextIdentificationFrame(TagLib::ByteVector("TPE4"), TagLib::String::UTF8);
     67                taglib->ID3v2Tag()->addFrame(tpeframe);
     68            }
     69
     70            tpeframe->setText(QStringToTString(mdata->CompilationArtist()));
    6071        }
    6172    }
    6273