X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=libs%2Fardour%2Faudiofile_tagger.cc;h=0131292680b394e5747cddaf31239165924bbbc6;hb=5c0ce7311a25fb7f0346c545ec992ff8daf54b10;hp=53b9afdd3ed37403d8732582f734973ebb336ad9;hpb=bb826f4beebfcedc50570b818c305560d2233e47;p=ardour.git diff --git a/libs/ardour/audiofile_tagger.cc b/libs/ardour/audiofile_tagger.cc index 53b9afdd3e..0131292680 100644 --- a/libs/ardour/audiofile_tagger.cc +++ b/libs/ardour/audiofile_tagger.cc @@ -22,14 +22,14 @@ #include "ardour/session_metadata.h" -#include "pbd/convert.h" +#include "pbd/string_convert.h" -#include "taglib/fileref.h" -#include "taglib/flac/flacfile.h" -#include "taglib/ogg/oggfile.h" -#include "taglib/tag.h" -#include "taglib/toolkit/taglib.h" -#include "taglib/ogg/xiphcomment.h" +#include +#include +#include +#include +#include +#include /* Convert string to TagLib::String */ #define TL_STR(string) TagLib::String ((string).c_str(), TagLib::String::UTF8) @@ -43,6 +43,16 @@ bool AudiofileTagger::tag_file (std::string const & filename, SessionMetadata const & metadata) { TagLib::FileRef file (filename.c_str()); + if (file.isNull()) { + std::cerr << "TagLib::FileRef is null for file" << filename << std::endl; + return true; // continue anyway?! + } + + if (!file.tag()) { + std::cerr << "TagLib::Tag is null for file" << filename << std::endl; + return true; // continue anyway?! + } + TagLib::Tag & tag (*file.tag()); tag_generic (tag, metadata); @@ -108,7 +118,7 @@ AudiofileTagger::tag_vorbis_comment (TagLib::Ogg::XiphComment & tag, SessionMeta tag.addField ("MIXER", TL_STR(metadata.mixer())); tag.addField ("COMPILATION", TL_STR(metadata.compilation())); tag.addField ("DISCSUBTITLE", TL_STR(metadata.disc_subtitle())); - tag.addField ("DISCNUMBER", to_string (metadata.disc_number(), std::dec)); + tag.addField ("DISCNUMBER", to_string (metadata.disc_number())); // No field for total discs or tracks