From: Duke Yin Date: Wed, 16 Oct 2013 22:48:49 +0000 (-0400) Subject: Handle iTunes ID3v2.3 hacks X-Git-Tag: v1.11beta~16^2~1 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=944143a91b9541040117926e927f902d699cab09;p=taglib Handle iTunes ID3v2.3 hacks iTunes writes the 2.4 frames TSOA, TSOT, TSOP to 2.3 files. (It additionally defines TSO2 and TSOC for both 2.3 and 2.4.) TagLib should not delete these frames. --- diff --git a/taglib/mpeg/id3v2/id3v2tag.cpp b/taglib/mpeg/id3v2/id3v2tag.cpp index 57637a36..765086c8 100644 --- a/taglib/mpeg/id3v2/id3v2tag.cpp +++ b/taglib/mpeg/id3v2/id3v2tag.cpp @@ -461,10 +461,18 @@ ByteVector ID3v2::Tag::render() const void ID3v2::Tag::downgradeFrames(FrameList *frames, FrameList *newFrames) const { +#ifdef NO_ITUNES_HACKS const char *unsupportedFrames[] = { "ASPI", "EQU2", "RVA2", "SEEK", "SIGN", "TDRL", "TDTG", "TMOO", "TPRO", "TSOA", "TSOT", "TSST", "TSOP", 0 }; +#else + // iTunes writes and reads TSOA, TSOT, TSOP to ID3v2.3. + const char *unsupportedFrames[] = { + "ASPI", "EQU2", "RVA2", "SEEK", "SIGN", "TDRL", "TDTG", + "TMOO", "TPRO", "TSST", 0 + }; +#endif ID3v2::TextIdentificationFrame *frameTDOR = 0; ID3v2::TextIdentificationFrame *frameTDRC = 0; ID3v2::TextIdentificationFrame *frameTIPL = 0;